fastlane-plugin-changelog 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b3f23e18421455b7d1d85d01f42ad3417021681
4
- data.tar.gz: ef0b316111c36cc87147d033378960f40282ee5a
3
+ metadata.gz: 8942aab0857114d3400eaa42bebba390d2a231c0
4
+ data.tar.gz: 4d46daef140989c1159640ec6a6a25eb1b7b6b85
5
5
  SHA512:
6
- metadata.gz: eec2930f9df64e9cc1dd80247568650d81185363922f4d48ad5dae45bfeeaef79434b3f01866ac55e77c4f9a269570fb90c45ce8ae1584e1e3d097bddcf8bb63
7
- data.tar.gz: 287e063b596c7cc2b0a18e92397d770f92ac7fc4bdc4a0860be8f6b261e6e0ee49212418e9a55ff562eb0c7f1fb6db7a7a4ddf6fc1ed8a7884c77f3650374d99
6
+ metadata.gz: bfa381bc7b38b0b71e8179be0ae1a4123e7b9f552cb752b3b207e176d5a367cc622166bcf7c480b2bac5ef26a1d8999335341164849b31240b62fd74014da364
7
+ data.tar.gz: aa4431cabe2585de78c49a5164529780791cd25377e726b0003b386e07b890b8379d9178aa4a6eb7f0890b08eada155aa1dfe00931dc03993ba57c28dba49921
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # changelog plugin
2
2
 
3
- [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-changelog)
3
+ [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-changelog)[![Build Status](https://travis-ci.org/pajapro/fastlane-plugin-changelog.svg?branch=master)](https://travis-ci.org/pajapro/fastlane-plugin-changelog) [![Twitter: @hello_paja](https://img.shields.io/badge/contact-@Hello_Paja-blue.svg?style=flat)](https://twitter.com/hello_paja)
4
4
 
5
5
  ## Getting Started
6
6
 
@@ -16,14 +16,6 @@ This plugin is inspired by and based on [Keep a CHANGELOG](http://keepachangelog
16
16
 
17
17
  Since [Keep a CHANGELOG](http://keepachangelog.com/) project proposes a well-defined structure with _sections_ (e.g.: `[Unreleased]`, `0.3.0]`) and _subsections_ (`Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`) it opens up an opportunity to automate reading from/writing to `CHANGELOG.md` with [`fastlane`](https://fastlane.tools).
18
18
 
19
- ## Getting started
20
- 1. `cd` to your project folder
21
- 2. `touch CHANGELOG.md`
22
- 3. open `CHANGELOG.md` in your favourite text editor
23
- 4. paste in proposed structure from [What’s a change log?](http://keepachangelog.com/)
24
-
25
- 🤖 A feature request to automate this during installation has [been raised](https://github.com/fastlane/fastlane/issues/5736).
26
-
27
19
  ## Actions
28
20
  `fastlane-plugin-changelog` consists of 3 actions enabling you to manipulate `CHANGELOG.md` from [`fastlane`](https://fastlane.tools).
29
21
 
@@ -49,8 +41,8 @@ read_changelog(
49
41
  Updates section identifier of your project's `CHANGELOG.md` file.
50
42
  ``` ruby
51
43
  update_changelog(
52
- section_identifier: "[Build 123]", # Specify what section to update
53
- updated_section_identifier: "Build 321" # Specify new section identifier
44
+ section_identifier: '[Build 123]', # Specify what section to update
45
+ updated_section_identifier: 'Build 321' # Specify new section identifier
54
46
  )
55
47
  ```
56
48
 
@@ -59,8 +51,8 @@ Stamps the _Unreleased_ (see [How can I minimize the effort required?](http://ke
59
51
  Additionally, you can provide an optional `git_tag` param, specifing git tag associated with this section. `stamp_changelog` will then create a link to diff between this and previous section's tag on Github. This will enable you to quickly get to [comparison between two tags](https://help.github.com/articles/comparing-commits-across-time/).
60
52
  ``` ruby
61
53
  stamp_changelog(
62
- section_identifier: "Build XYZ", # Specify identifier to stamp the Unreleased section with
63
- git_tag: "bXYZ" # Specify reference to git tag associated with this section
54
+ section_identifier: 'Build XYZ', # Specify identifier to stamp the Unreleased section with
55
+ git_tag: 'bXYZ' # Specify reference to git tag associated with this section
64
56
  )
65
57
  ```
66
58
 
@@ -8,7 +8,7 @@ module Fastlane
8
8
  def self.run(params)
9
9
  changelog_path = params[:changelog_path] unless params[:changelog_path].to_s.empty?
10
10
  UI.error("CHANGELOG.md at path '#{changelog_path}' does not exist") unless File.exist?(changelog_path)
11
-
11
+
12
12
  section_identifier = params[:section_identifier] unless params[:section_identifier].to_s.empty?
13
13
  escaped_section_identifier = section_identifier[/\[(.*?)\]/, 1]
14
14
 
@@ -46,16 +46,14 @@ module Fastlane
46
46
  def self.remove_markdown(line, excluded_markdown_elements)
47
47
  markdownless_line = line
48
48
  excluded_markdown_elements.each do |element|
49
- if line =~ /^#{element}/
50
- indexOfElement = line.index(element)
51
- indexOfWhitespace = indexOfElement + element.to_s.length
52
-
53
- if line[indexOfWhitespace] == " " # remove white space (if any) following the markdown element
54
- markdownless_line = markdownless_line.gsub(element.to_s + " ", "")
55
- else
56
- markdownless_line = markdownless_line.gsub(element.to_s, "")
57
- end
58
-
49
+ next unless line =~ /^#{element}/
50
+ index_of_element = line.index(element)
51
+ index_of_whitespace = index_of_element + element.to_s.length
52
+
53
+ if line[index_of_whitespace] == " " # remove white space (if any) following the markdown element
54
+ markdownless_line = markdownless_line.gsub(element.to_s + " ", "")
55
+ else
56
+ markdownless_line = markdownless_line.gsub(element.to_s, "")
59
57
  end
60
58
  end
61
59
 
@@ -12,11 +12,11 @@ module Fastlane
12
12
  unreleased_section_content = Actions::ReadChangelogAction.run(changelog_path: changelog_path, section_identifier: UNRELEASED_IDENTIFIER)
13
13
  if unreleased_section_content.eql?("\n")
14
14
  UI.important("WARNING: No changes in [Unreleased] section to stamp!")
15
- else
15
+ else
16
16
  section_identifier = params[:section_identifier] unless params[:section_identifier].to_s.empty?
17
17
  stamp_date = params[:stamp_date]
18
18
  git_tag = params[:git_tag]
19
-
19
+
20
20
  stamp(changelog_path, section_identifier, stamp_date, git_tag)
21
21
  end
22
22
  end
@@ -4,13 +4,12 @@ module Fastlane
4
4
  def self.run(params)
5
5
  changelog_path = params[:changelog_path] unless params[:changelog_path].to_s.empty?
6
6
  UI.error("CHANGELOG.md at path '#{changelog_path}' does not exist") unless File.exist?(changelog_path)
7
-
7
+
8
8
  section_identifier = params[:section_identifier] unless params[:section_identifier].to_s.empty?
9
9
  escaped_section_identifier = section_identifier[/\[(.*?)\]/, 1]
10
10
 
11
11
  new_section_identifier = params[:updated_section_identifier] unless params[:updated_section_identifier].to_s.empty?
12
- # new_section_content = params[:updated_section_content] unless (params[:updated_section_content].to_s.empty?)
13
-
12
+
14
13
  UI.message "Starting to update #{section_identifier} section of '#{changelog_path}'"
15
14
 
16
15
  # Read & update file content
@@ -32,12 +31,10 @@ module Fastlane
32
31
  if params[:append_date]
33
32
  now = Time.now.strftime("%Y-%m-%d")
34
33
  line.concat(" - " + now)
35
- line.delete!("\n") # remove line break, because concatenation adds line break between section identifer & date
34
+ line.delete!("\n") # remove line break, because concatenation adds line break between section identifer & date
36
35
  line.concat("\n") # add line break to the end of the string, in order to start next line on the next line
37
36
  end
38
37
 
39
- found_identifying_section = false
40
-
41
38
  UI.message "Old section identifier: #{line_old.delete!("\n")}"
42
39
  UI.message "New section identifier: #{line.delete("\n")}"
43
40
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Changelog
3
- VERSION = "0.4.0"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -2,10 +2,55 @@ require 'fastlane/plugin/changelog/version'
2
2
 
3
3
  module Fastlane
4
4
  module Changelog
5
+ CHANGELOG_PATH = './CHANGELOG.md'
6
+ DEFAULT_CHANGELOG = '# Change Log
7
+ All notable changes to this project will be documented in this file.
8
+
9
+ The format is based on [Keep a Changelog](http://keepachangelog.com/)
10
+ and this project adheres to [Semantic Versioning](http://semver.org/).
11
+
12
+ ## [Unreleased]
13
+ ### Added
14
+ - Your awesome new feature'
15
+
5
16
  # Return all .rb files inside the "actions" and "helper" directory
6
17
  def self.all_classes
7
18
  Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
8
19
  end
20
+
21
+ # Offer user to setup CHANGELOG.md file in project folder (unless it already exists)
22
+ def self.setup_changelog
23
+ unless has_changelog?
24
+ if FastlaneCore::UI.confirm('Your project folder does not have CHANGELOG.md - do you want to create one now?')
25
+ create_changelog
26
+
27
+ FastlaneCore::UI.message('Changelog plugin can automaticaly create a link for comparison between two tags (see https://github.com/pajapro/fastlane-plugin-changelog#--stamp_changelog)')
28
+ if FastlaneCore::UI.confirm('Do you want to create links for comparing tags on Github?')
29
+ github_url = FastlaneCore::UI.input('Enter your Github URL (e.g.: https://github.com/fastlane/fastlane):')
30
+ output = DEFAULT_CHANGELOG + "\n\n[Unreleased]: #{github_url}/compare/master...HEAD"
31
+ write_to_changelog(output)
32
+ else
33
+ write_to_changelog(DEFAULT_CHANGELOG)
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ # Does CHANGELOG.md exists in project folder?
40
+ def self.has_changelog?
41
+ File.exist?(CHANGELOG_PATH)
42
+ end
43
+
44
+ # Create CHANGELOG.md file
45
+ def self.create_changelog
46
+ FileUtils.touch 'CHANGELOG.md'
47
+ end
48
+
49
+ # Write given content to CHANGELOG.md
50
+ def self.write_to_changelog(changelog)
51
+ File.open(CHANGELOG_PATH, 'w') { |f| f.write(changelog) }
52
+ FastlaneCore::UI.success('Successfuly created CHANGELOG.md')
53
+ end
9
54
  end
10
55
  end
11
56
 
@@ -14,3 +59,6 @@ end
14
59
  Fastlane::Changelog.all_classes.each do |current|
15
60
  require current
16
61
  end
62
+
63
+ # By default we want to ensure CHANGELOG.md is present
64
+ Fastlane::Changelog.setup_changelog
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-changelog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Prochazka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-27 00:00:00.000000000 Z
11
+ date: 2016-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry