codelog 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b871029a453ff73c21adb12c5656b9be50049096a852e9c6e31ba7599023ddbf
4
- data.tar.gz: 2aa614de8b36eddbeae04dd34efc1e7716f7a24aa3cbee1ded0d171f768aacf8
3
+ metadata.gz: bdc0db61aa88a54e953d1bc0abcb652f776fa596db6fc21f17008ee96e65f00d
4
+ data.tar.gz: f426e53e20594ff0729d50172882e0233d30e7e89338e84d692a1ef73d2d3014
5
5
  SHA512:
6
- metadata.gz: cffe89ed35c63814b810949a3ba02bc48d4228e1cff2e941e214e54cf5c6a48c8e01059abadfed11917c0a1dff4fc838ad712bd37f90aba911e780860b36b0ed
7
- data.tar.gz: db61fc1fa5114692bf10f9998211d66c91b02975ffc10489369412f4e60a17e8c617e0c0045044d620234555bed29d97015e7f565d74c1ca8ff40dd22611e98d
6
+ metadata.gz: 658c2a502793683766b34f184a244a6c8e75bdef77675e483c2e7b36cf3b8c922cb95ccc715102780a5ed5f26bca97688da3428708167a0c674be0463af262fa
7
+ data.tar.gz: 730574b14e06985604734ad65248b9580ac404f4a515428ebb66e7d3131a63ef2099e2133e04400c39dc7f4699513d9c4c007e30bf087fa2be2ccf3d17ded93d
@@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file.
3
3
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
4
4
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
5
 
6
+ ## 0.7.0
7
+ ### Added
8
+ - Command `codelog bump [major|minor|patch]` that automatically sets the next version
9
+
10
+ ### Fixed
11
+ - Typos on the method `maintain_versioning_of_existing_changelog?` name and printed message
12
+
13
+ ---
6
14
  ## 0.6.0
7
15
  ### Added
8
16
  - The `new` command receives a `NAME` parameter that will be converted to the unreleased file name
data/README.md CHANGED
@@ -99,6 +99,12 @@ It will execute 3 steps:
99
99
  - Deletes the change files at `changelogs/unreleased/` because they now compose the new release. If it was not deleted, the change would appear repeated in the next release.
100
100
  - Updates the `CHANGELOG.md` file by merging all the releases at `changelogs/releases/`.
101
101
 
102
+ If you don't want to specify the release version manually, you can use the `bump` command:
103
+ ```bash
104
+ $ codelog bump [major|minor|patch] <RELEASE_DATE>
105
+ ```
106
+ Where the first mandatory parameter is the desired release type, i.e: If you don't have any release, `codelog bump patch` will release the 0.0.1 version.
107
+
102
108
  ## Configuring
103
109
 
104
110
  Since version 0.3.0, there are a few configurations that are possible. You can choose:
@@ -5,6 +5,7 @@ require 'codelog/version'
5
5
  require 'codelog/command/setup'
6
6
  require 'codelog/command/new'
7
7
  require 'codelog/command/release'
8
+ require 'codelog/command/bump'
8
9
  require 'codelog/command/step/changelog'
9
10
  require 'codelog/command/step/delete'
10
11
  require 'codelog/command/step/version'
@@ -23,5 +23,12 @@ module Codelog
23
23
  Date.today.strftime(Codelog::Config.date_input_format))
24
24
  Codelog::Command::Release.run version_number, release_date
25
25
  end
26
+
27
+ desc 'bump [VERSION_TYPE] <RELEASE_DATE>', 'Bumps the next version,
28
+ being it major, minor or patch'
29
+ def bump(version_type, release_date =
30
+ Date.today.strftime(Codelog::Config.date_input_format))
31
+ Codelog::Command::Bump.run version_type, release_date
32
+ end
26
33
  end
27
34
  end
@@ -0,0 +1,48 @@
1
+ module Codelog
2
+ module Command
3
+ class Bump
4
+ CHANGELOG_RELEASES_PATH = 'changelogs/releases/'.freeze
5
+ CHANGELOG_RELEASE_REGEXP = /^\d*\.{1}\d*\.{1}\d*$/
6
+ VALID_VERSION_TYPES = ['major', 'minor', 'patch'].freeze
7
+ INITIAL_RELEASE_VERSION = '0.0.0'.freeze
8
+
9
+ def self.run(version_type, release_date)
10
+ Codelog::Command::Bump.new.run version_type, release_date
11
+ end
12
+
13
+ def run(version_type, release_date)
14
+ unless VALID_VERSION_TYPES.include?(version_type.downcase)
15
+ abort(Codelog::Message::Error.invalid_version_type(version_type))
16
+ end
17
+
18
+ Codelog::Command::Release.run(next_version(version_type), release_date)
19
+ end
20
+
21
+ private
22
+
23
+ def next_version(version_type)
24
+ last_version = last_created_changelog.split('.').map(&:to_i)
25
+
26
+ case version_type.downcase
27
+ when 'major'
28
+ last_version = [(last_version[0] + 1), 0, 0]
29
+ when 'minor'
30
+ last_version = [last_version.first, (last_version[1] + 1), 0]
31
+ when 'patch'
32
+ last_version[2] += 1
33
+ end
34
+ last_version.join('.')
35
+ end
36
+
37
+ def last_created_changelog
38
+ released_versions = Dir.glob(File.join(CHANGELOG_RELEASES_PATH, '*.md*')).map do |file_path|
39
+ file_path.gsub(CHANGELOG_RELEASES_PATH, '').gsub('.md', '')
40
+ end.grep(CHANGELOG_RELEASE_REGEXP)
41
+
42
+ released_versions.max_by do |version_string|
43
+ Gem::Version.new(version_string)
44
+ end || INITIAL_RELEASE_VERSION
45
+ end
46
+ end
47
+ end
48
+ end
@@ -45,7 +45,7 @@ module Codelog
45
45
 
46
46
  def handle_existing_changelog
47
47
  return unless old_changelog_exists?
48
- if yes? Codelog::Message::Warning.mantain_versioning_of_existing_changelog?
48
+ if yes? Codelog::Message::Warning.maintain_versioning_of_existing_changelog?
49
49
  puts '== Copying existing changelog to releases folder =='
50
50
  copy_and_mark_changelog
51
51
  elsif yes? Codelog::Message::Warning.delete_existing_changelog?
@@ -36,6 +36,10 @@ module Codelog
36
36
  def could_not_parse_yaml(error)
37
37
  "#{prefix}: #{error.problem.capitalize} in #{error.file}:#{error.line}"
38
38
  end
39
+
40
+ def invalid_version_type(version_type)
41
+ "#{version_type} is not a valid version type."
42
+ end
39
43
  end
40
44
  end
41
45
 
@@ -45,9 +49,9 @@ module Codelog
45
49
  'WARNING'
46
50
  end
47
51
 
48
- def mantain_versioning_of_existing_changelog?
52
+ def maintain_versioning_of_existing_changelog?
49
53
  "#{prefix}: There is already a file named CHANGELOG.md within " \
50
- 'your project. Do you wish to mantain its versioning? (Y/N)'
54
+ 'your project. Do you wish to maintain its versioning? (Y/N)'
51
55
  end
52
56
 
53
57
  def delete_existing_changelog?
@@ -1,3 +1,3 @@
1
1
  module Codelog
2
- VERSION = '0.6.0'.freeze
2
+ VERSION = '0.7.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codelog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luís Bevilacqua
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2018-03-31 00:00:00.000000000 Z
15
+ date: 2018-05-19 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: thor
@@ -118,6 +118,7 @@ files:
118
118
  - lib/codelog.rb
119
119
  - lib/codelog/cli.rb
120
120
  - lib/codelog/clis/interactive.rb
121
+ - lib/codelog/command/bump.rb
121
122
  - lib/codelog/command/new.rb
122
123
  - lib/codelog/command/release.rb
123
124
  - lib/codelog/command/setup.rb