milestoner 3.0.0 → 4.0.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: 9aa59dc5b98238b6b0f20689142e7926443d0fd8
4
- data.tar.gz: 87653a11e6ecf0f2f74f605188ebe20ac63c1ab7
3
+ metadata.gz: d59ec9f24097f54832599544a5de919b79c5820f
4
+ data.tar.gz: da3aed2ba4636234804e21a9af13a1133d3e17bd
5
5
  SHA512:
6
- metadata.gz: 38595bb8f085651035d26b5440cd86e1656a4b35acdfaf7e8ab788cd7cca5a7047cf8813d16fba0eabc4f59756fcb17903254bad7541d33903204a8a90ab2f49
7
- data.tar.gz: ccdf5a94d6b5189cfc2555e1bab248fcbe0bb9ad1869f3ba015518ce12e43e2b2bc6ca1911a8d31434f986c68f33c8898dc1dbc7e14a0db273e19b3bd5b09f5d
6
+ metadata.gz: 4c66221673d33f7b09c96b57736bc62b44df5746bb493ec1c7db2a63e441f4b3ceb8db001a53479621963e2138543c19dbd6fbd68f4e4d68ed63c8b7e0ec8bca
7
+ data.tar.gz: d1b34c04978f023e475c94a948def99ae4177723dd2387de0fc5c8cb1d24fde235b42290818c98c0a026c9f42738757806549515b2b258d853604dd1400ff579
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1,5 @@
1
- m�ۖ����8s��Q�&�g�΍TM[읂�)�9��хF�02���?���6 g���~�����:���"�o��Sؕ
2
- �E���/����DT�U$zjlUo���+��m[�#�}o�P�f�%����Q
1
+ G�7
2
+ `<xC$<��(w~��zF$d��܄t���g'�^0*��^] Z�?CK!�U�Ă�g� �>, �ʫv�,��I��c�|�- x�P>���=Y:
3
+ ��9�n��A�s��.Q%jiP^�ė�q�~���9b8(ߘ���t;����
4
+ k�=���Bx����h�%��_�kfEVT�b'���U 2�N .'�
5
+ p�єH�(({K E�e�J$^��dR�m
data/README.md CHANGED
@@ -33,12 +33,14 @@ A command line interface for releasing Git repository milestones.
33
33
 
34
34
  # Features
35
35
 
36
- - Uses [Versionaire](https://github.com/bkuhlmann/versionaire) for [Semantic Versioning](http://semver.org).
36
+ - Uses [Versionaire](https://github.com/bkuhlmann/versionaire) for
37
+ [Semantic Versioning](http://semver.org).
37
38
  - Format: `v<major>.<minor>.<maintenance>`.
38
39
  - Example: `v0.1.0`.
39
- - Ensures Git commits since last tag (or initialization of repository) are included within each Git tag message.
40
- - Ensures Git commit messages are grouped by prefix, in order defined, for each Git tag message. Prefix defaults (can be
41
- customized):
40
+ - Ensures Git commits since last tag (or initialization of repository) are included within each Git
41
+ tag message.
42
+ - Ensures Git commit messages are grouped by prefix, in order defined, for each Git tag message.
43
+ Defaults (can be customized):
42
44
  - Fixed
43
45
  - Added
44
46
  - Updated
@@ -47,12 +49,13 @@ A command line interface for releasing Git repository milestones.
47
49
  - Ensures Git commit merge messages are excluded within each Git tag message.
48
50
  - Ensures Git commit messages are alphabetically sorted within each Git tag message.
49
51
  - Ensures duplicate Git commit messages are removed (if any) within each Git tag message.
50
- - Ensures Git commit messages are sanitized by removing extra spaces and `[ci skip]` text within each Git tag message.
52
+ - Ensures Git commit messages are sanitized by removing extra spaces and `[ci skip]` text within
53
+ each Git tag message.
51
54
  - Provides optional security for signing Git tags with [GnuPG](https://www.gnupg.org) signing key.
52
55
 
53
56
  # Screencasts
54
57
 
55
- [![asciicast](https://asciinema.org/a/41207.png)](https://asciinema.org/a/41207)
58
+ [![asciicast](https://asciinema.org/a/91752.png)](https://asciinema.org/a/91752)
56
59
 
57
60
  # Requirements
58
61
 
@@ -67,8 +70,9 @@ For a secure install, type the following (recommended):
67
70
  gem cert --add <(curl --location --silent https://www.alchemists.io/gem-public.pem)
68
71
  gem install milestoner --trust-policy MediumSecurity
69
72
 
70
- NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification while
71
- allowing the installation of unsigned dependencies since they are beyond the scope of this gem.
73
+ NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification
74
+ while allowing the installation of unsigned dependencies since they are beyond the scope of this
75
+ gem.
72
76
 
73
77
  For an insecure install, type the following (not recommended):
74
78
 
@@ -81,16 +85,17 @@ For an insecure install, type the following (not recommended):
81
85
  From the command line, type: `milestoner help`
82
86
 
83
87
  milestoner -C, [--commits] # Show commits for next milestone.
84
- milestoner -P, [--publish=PUBLISH] # Tag and push milestone to remote repository.
85
- milestoner -c, [--config] # Show/manage gem configuration.
86
- milestoner -h, [--help=HELP] # Show this message or get help for a command.
88
+ milestoner -P, [--publish=VERSION] # Tag and push milestone to remote repository.
89
+ milestoner -c, [--config] # Manage gem configuration.
90
+ milestoner -h, [--help=COMMAND] # Show this message or get help for a command.
87
91
  milestoner -p, [--push] # Push local tag to remote repository.
88
- milestoner -t, [--tag=TAG] # Tag local repository with new version.
92
+ milestoner -t, [--tag=VERSION] # Tag local repository with new version.
89
93
  milestoner -v, [--version] # Show gem version.
90
94
 
91
95
  For config options, type: `milestoner help --config`
92
96
 
93
97
  -e, [--edit], [--no-edit] # Edit gem configuration.
98
+ -i, [--info], [--no-info] # Print gem configuration info.
94
99
 
95
100
  For tag options, type: `milestoner help --tag`
96
101
 
@@ -100,14 +105,14 @@ For publish options, type: `milestoner help --publish`
100
105
 
101
106
  -s, [--sign], [--no-sign] # Sign tag with GPG key.
102
107
 
103
- When using Milestoner, the `--publish` command is intended to be the only command necessary for publishing a new release
104
- as it handles all of the steps necessary for tagging and pushing a new milestone. Should individual steps be needed,
105
- then the `--tag` and `--push` options are available.
108
+ When using Milestoner, the `--publish` command is intended to be the only command necessary for
109
+ publishing a new release as it handles all of the steps necessary for tagging and pushing a new
110
+ milestone. Should individual steps be needed, then the `--tag` and `--push` options are available.
106
111
 
107
112
  ## Customization
108
113
 
109
- Should the default settings not be desired, customization is allowed via the `.milestonerrc` file. The `.milestonerrc`
110
- can be created at a global and/or local level. Example:
114
+ Should the default settings not be desired, customization is allowed via the `.milestonerrc` file.
115
+ The `.milestonerrc` can be created at a global and/or local level. Example:
111
116
 
112
117
  - Global: `~/.milestonerrc`
113
118
  - Local: `<project repository root>/.milestonerrc`
@@ -118,10 +123,11 @@ Order of precedence for any setting is resolved as follows (with the last taking
118
123
  0. Local project repository `.milestonerrc`.
119
124
  0. CLI option. Example: A version passed to either the `--tag` or `--publish` commands.
120
125
 
121
- Any setting provided to the CLI during runtime would trump a local/global setting and a local setting would trump a
122
- global setting. The global setting is the weakest of all but great for situations where custom settings should be
123
- applied to *all* projects. It is important to note that local settings completely trump any global settings -- there is
124
- no inheritance when local *and* global settings exist at the same time.
126
+ Any setting provided to the CLI during runtime would trump a local/global setting and a local
127
+ setting would trump a global setting. The global setting is the weakest of all but great for
128
+ situations where custom settings should be applied to *all* projects. It is important to note that
129
+ local settings completely trump any global settings -- there is no inheritance when local *and*
130
+ global settings exist at the same time.
125
131
 
126
132
  The `.milestonerrc` uses the following default settings:
127
133
 
@@ -136,16 +142,19 @@ The `.milestonerrc` uses the following default settings:
136
142
 
137
143
  Each `.milestonerrc` setting can be configured as follows:
138
144
 
139
- - `version`: Useful if desired to have the current version checked into source code per project. The version, if set,
140
- will be used to tag the repository. If the version is a duplicate, an error will be thrown. When supplying a version,
141
- it *must* be semantic: `<major>.<minor>.<maintenance>`. Example: `0.1.0`.
142
- - `git_commit_prefixes`: Should the default prefixes not be desired, you can define Git commit prefixes that match your
143
- style. *NOTE: Prefix order is important with the first prefix defined taking precedence over the second and so forth.*
144
- Special characters are allowed for prefixes but should be enclosed in quotes if used. To disable prefix usage
145
- completely, use an empty array. Example: `:git_commit_prefixes: []`.
146
- - `git_tag_sign`: Defaults to `false` but can be enabled by setting to `true`. When enabled, a Git tag will require GPG
147
- signing for enhanced security and include a signed signature as part of the Git tag. This is useful for public
148
- milestones where the author of a milestone can be verified to ensure milestone integrity/security.
145
+ - `version`: Useful if desired to have the current version checked into source code per project. The
146
+ version, if set, will be used to tag the repository. If the version is a duplicate, an error will
147
+ be thrown. When supplying a version, it *must* be semantic: `<major>.<minor>.<maintenance>`.
148
+ Example: `0.1.0`.
149
+ - `git_commit_prefixes`: Should the default prefixes not be desired, you can define Git commit
150
+ prefixes that match your style. *NOTE: Prefix order is important with the first prefix defined
151
+ taking precedence over the second and so forth.* Special characters are allowed for prefixes but
152
+ should be enclosed in quotes if used. To disable prefix usage completely, use an empty array.
153
+ Example: `:git_commit_prefixes: []`.
154
+ - `git_tag_sign`: Defaults to `false` but can be enabled by setting to `true`. When enabled, a Git
155
+ tag will require GPG signing for enhanced security and include a signed signature as part of the
156
+ Git tag. This is useful for public milestones where the author of a milestone can be verified to
157
+ ensure milestone integrity/security.
149
158
 
150
159
  # Security
151
160
 
@@ -172,8 +181,9 @@ Add your key to your global Git configuration in the `[user]` section. Example:
172
181
  [user]
173
182
  signingkey = <your GPG key>
174
183
 
175
- Now, when publishing a new milestone (i.e. `milestoner --publish <version> --sign`), signing of your Git tag will happen
176
- automatically. You will be prompted for the GPG Passphrase each time but that is to be expected.
184
+ Now, when publishing a new milestone (i.e. `milestoner --publish <version> --sign`), signing of your
185
+ Git tag will happen automatically. You will be prompted for the GPG Passphrase each time but that is
186
+ to be expected.
177
187
 
178
188
  # Tests
179
189
 
@@ -185,14 +195,14 @@ To test, run:
185
195
 
186
196
  Read [Semantic Versioning](http://semver.org) for details. Briefly, it means:
187
197
 
188
- - Patch (x.y.Z) - Incremented for small, backwards compatible bug fixes.
189
- - Minor (x.Y.z) - Incremented for new, backwards compatible public API enhancements and/or bug fixes.
198
+ - Patch (x.y.Z) - Incremented for small, backwards compatible, bug fixes.
199
+ - Minor (x.Y.z) - Incremented for new, backwards compatible, public API enhancements/fixes.
190
200
  - Major (X.y.z) - Incremented for any backwards incompatible public API changes.
191
201
 
192
202
  # Code of Conduct
193
203
 
194
- Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By participating in this project
195
- you agree to abide by its terms.
204
+ Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By
205
+ participating in this project you agree to abide by its terms.
196
206
 
197
207
  # Contributions
198
208
 
@@ -201,13 +211,14 @@ Read [CONTRIBUTING](CONTRIBUTING.md) for details.
201
211
  # License
202
212
 
203
213
  Copyright (c) 2015 [Alchemists](https://www.alchemists.io).
204
- Read the [LICENSE](LICENSE.md) for details.
214
+ Read [LICENSE](LICENSE.md) for details.
205
215
 
206
216
  # History
207
217
 
208
- Read the [CHANGELOG](CHANGELOG.md) for details.
218
+ Read [CHANGES](CHANGES.md) for details.
209
219
  Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
210
220
 
211
221
  # Credits
212
222
 
213
- Developed by [Brooke Kuhlmann](https://www.alchemists.io) at [Alchemists](https://www.alchemists.io).
223
+ Developed by [Brooke Kuhlmann](https://www.alchemists.io) at
224
+ [Alchemists](https://www.alchemists.io).
@@ -1,4 +1,5 @@
1
1
  #! /usr/bin/ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "milestoner"
4
5
  require "milestoner/cli"
@@ -1,11 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "milestoner/errors/base"
4
- require "milestoner/errors/configuration"
5
4
  require "milestoner/errors/duplicate_tag"
6
5
  require "milestoner/errors/git"
7
- require "milestoner/errors/version"
8
- require "milestoner/configuration"
9
6
  require "milestoner/git"
10
7
  require "milestoner/identity"
11
8
  require "milestoner/publisher"
@@ -4,6 +4,7 @@ require "yaml"
4
4
  require "thor"
5
5
  require "thor/actions"
6
6
  require "thor_plus/actions"
7
+ require "runcom"
7
8
 
8
9
  module Milestoner
9
10
  # The Command Line Interface (CLI) for the gem.
@@ -13,27 +14,36 @@ module Milestoner
13
14
 
14
15
  package_name Identity.version_label
15
16
 
17
+ def self.defaults
18
+ {
19
+ version: "0.1.0",
20
+ git_commit_prefixes: %w[Fixed Added Updated Removed Refactored],
21
+ git_tag_sign: false
22
+ }
23
+ end
24
+
25
+ # rubocop:disable Metrics/AbcSize
16
26
  def initialize args = [], options = {}, config = {}
17
27
  super args, options, config
18
- @configuration = Configuration.new Identity.file_name, defaults: defaults
19
- @tagger = Tagger.new configuration.settings[:version],
20
- commit_prefixes: configuration.settings[:git_commit_prefixes]
28
+ @configuration = Runcom::Configuration.new file_name: Identity.file_name, defaults: self.class.defaults
29
+ @tagger = Tagger.new configuration.to_h[:version],
30
+ commit_prefixes: configuration.to_h[:git_commit_prefixes]
21
31
  @pusher = Pusher.new
22
32
  @publisher = Publisher.new tagger: tagger, pusher: pusher
23
33
  end
24
34
 
25
35
  desc "-C, [--commits]", "Show commits for next milestone."
26
- map %w(-C --commits) => :commits
36
+ map %w[-C --commits] => :commits
27
37
  def commits
28
38
  tagger.commit_list.each { |commit| say commit }
29
39
  rescue StandardError => exception
30
40
  error exception.message
31
41
  end
32
42
 
33
- desc "-t, [--tag=TAG]", "Tag local repository with new version."
34
- map %w(-t --tag) => :tag
43
+ desc "-t, [--tag=VERSION]", "Tag local repository with new version."
44
+ map %w[-t --tag] => :tag
35
45
  method_option :sign, aliases: "-s", desc: "Sign tag with GPG key.", type: :boolean, default: false
36
- def tag version = configuration.settings[:version]
46
+ def tag version = configuration.to_h[:version]
37
47
  tagger.create version, sign: sign_tag?(options[:sign])
38
48
  say "Repository tagged: #{tagger.version_label}."
39
49
  rescue StandardError => exception
@@ -41,7 +51,7 @@ module Milestoner
41
51
  end
42
52
 
43
53
  desc "-p, [--push]", "Push local tag to remote repository."
44
- map %w(-p --push) => :push
54
+ map %w[-p --push] => :push
45
55
  def push
46
56
  pusher.push
47
57
  info "Tags pushed to remote repository."
@@ -49,10 +59,10 @@ module Milestoner
49
59
  error exception.message
50
60
  end
51
61
 
52
- desc "-P, [--publish=PUBLISH]", "Tag and push milestone to remote repository."
53
- map %w(-P --publish) => :publish
62
+ desc "-P, [--publish=VERSION]", "Tag and push milestone to remote repository."
63
+ map %w[-P --publish] => :publish
54
64
  method_option :sign, aliases: "-s", desc: "Sign tag with GPG key.", type: :boolean, default: false
55
- def publish version = configuration.settings[:version]
65
+ def publish version = configuration.to_h[:version]
56
66
  publisher.publish version, sign: sign_tag?(options[:sign])
57
67
  info "Repository tagged and pushed: #{tagger.version_label}."
58
68
  info "Milestone published!"
@@ -60,51 +70,35 @@ module Milestoner
60
70
  error exception.message
61
71
  end
62
72
 
63
- desc "-c, [--config]", "Show/manage gem configuration."
64
- map %w(-c --config) => :config
73
+ desc "-c, [--config]", "Manage gem configuration."
74
+ map %w[-c --config] => :config
65
75
  method_option :edit, aliases: "-e", desc: "Edit gem configuration.", type: :boolean, default: false
76
+ method_option :info, aliases: "-i", desc: "Print gem configuration info.", type: :boolean, default: false
66
77
  def config
67
- if options[:edit]
68
- `#{editor} #{configuration.computed_file_path}`
69
- else
70
- print_config_info
78
+ if options.edit? then `#{editor} #{configuration.computed_path}`
79
+ elsif options.info? then say("Using: #{configuration.computed_path}.")
80
+ else help(:config)
71
81
  end
72
82
  end
73
83
 
74
84
  desc "-v, [--version]", "Show gem version."
75
- map %w(-v --version) => :version
85
+ map %w[-v --version] => :version
76
86
  def version
77
87
  say Identity.version_label
78
88
  end
79
89
 
80
- desc "-h, [--help=HELP]", "Show this message or get help for a command."
81
- map %w(-h --help) => :help
90
+ desc "-h, [--help=COMMAND]", "Show this message or get help for a command."
91
+ map %w[-h --help] => :help
82
92
  def help task = nil
83
- say && super
93
+ say and super
84
94
  end
85
95
 
86
96
  private
87
97
 
88
98
  attr_reader :configuration, :tagger, :pusher, :publisher
89
99
 
90
- def defaults
91
- {
92
- version: "0.1.0",
93
- git_commit_prefixes: %w(Fixed Added Updated Removed Refactored),
94
- git_tag_sign: false
95
- }
96
- end
97
-
98
100
  def sign_tag? sign
99
- sign | configuration.settings[:git_tag_sign]
100
- end
101
-
102
- def print_config_info
103
- case
104
- when configuration.local? then say("Use local configuration: #{configuration.computed_file_path}.")
105
- when configuration.global? then say("Using global configuration: #{configuration.computed_file_path}.")
106
- else say("Global and local gem configuration not defined, using defaults instead.")
107
- end
101
+ sign | configuration.to_h[:git_tag_sign]
108
102
  end
109
103
  end
110
104
  end
@@ -12,7 +12,7 @@ module Milestoner
12
12
  end
13
13
 
14
14
  def self.version
15
- "3.0.0"
15
+ "4.0.0"
16
16
  end
17
17
 
18
18
  def self.version_label
@@ -20,7 +20,7 @@ module Milestoner
20
20
  end
21
21
 
22
22
  def commit_prefix_regex
23
- return // if commit_prefixes.empty?
23
+ return Regexp.new("") if commit_prefixes.empty?
24
24
  Regexp.union commit_prefixes
25
25
  end
26
26
 
@@ -65,12 +65,21 @@ module Milestoner
65
65
 
66
66
  attr_reader :git
67
67
 
68
- def raw_commits
69
- log_command = "git log --oneline --no-merges --format='%s'"
70
- tag_command = "$(git describe --abbrev=0 --tags --always)..HEAD"
71
- commits_command = tagged? ? "#{log_command} #{tag_command}" : log_command
68
+ def git_log_command
69
+ "git log --oneline --no-merges --format='%s'"
70
+ end
71
+
72
+ def git_tag_command
73
+ "$(git describe --abbrev=0 --tags --always)..HEAD"
74
+ end
72
75
 
73
- `#{commits_command}`.split("\n")
76
+ def git_commits_command
77
+ return "#{git_log_command} #{git_tag_command}" if tagged?
78
+ git_log_command
79
+ end
80
+
81
+ def raw_commits
82
+ `#{git_commits_command}`.split("\n")
74
83
  end
75
84
 
76
85
  def build_commit_prefix_groups
@@ -107,7 +116,8 @@ module Milestoner
107
116
  def git_tag sign: false
108
117
  message_file = Tempfile.new Identity.name
109
118
  File.open(message_file, "w") { |file| file.write git_message }
110
- `git tag #{git_options message_file, sign: sign}`
119
+ status = system "git tag #{git_options message_file, sign: sign}"
120
+ fail(Errors::Git, "Unable to create tag: #{version.label}.") unless status
111
121
  ensure
112
122
  message_file.close
113
123
  message_file.unlink
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require "rspec/core/rake_task"
3
5
  RSpec::Core::RakeTask.new(:spec)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require "rubocop/rake_task"
3
5
  RuboCop::RakeTask.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milestoner
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -12,25 +12,25 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZicm9v
14
14
  a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
15
- aW8wHhcNMTUwNzA1MTQ1MzExWhcNMTYwNzA0MTQ1MzExWjBBMQ8wDQYDVQQDDAZi
15
+ aW8wHhcNMTYxMDE5MTY0NDEzWhcNMTcxMDE5MTY0NDEzWjBBMQ8wDQYDVQQDDAZi
16
16
  cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
17
- GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzhOVcvLGBCceM
18
- PppVpJLUKsnskWzc1VqBXmv30feKNw+MOxMQaDsIP421qwqGO/2JHY60Kuobssk+
19
- 8/wqZkVFF/FFKxoQjuhlhc+VWLm8jWgXd4N1kwO2yytscQTzxc5qXarwA+36fqVH
20
- RhBAHhjka+HdBI+6o3CXRHJoC47iav+QpR7u/wYl3gNq6MJO3MmTKqHegEDLjRN0
21
- FJAr3bRAwq03ZtTuAVA2bdKLGThehe1RRRtJHJ/PHpmL2c203/GTXYtG6C8ILZIp
22
- ZroTqQ8yglCJ+3hSOmodZqSAQ0Rj7GJgtuNH81qlSrHu5sTvoZjGmEqSIhvsSJ80
23
- wKoPdZnFAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
24
- BBSUnF478a5lB4xuOBiktJdMJv6JmDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
17
+ GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgryPL4/IbWDcL
18
+ fnqpnoJALqj+ega7hSsvvD8sac57HPNLeKcOmSafFiQLAnTmmE132ZlFc8kyZRVn
19
+ zmqSESowO5jd+ggFuy1ySqQJXhwgik04KedKRUjpIDZePrjw+M5UJT1qzKCKL2xI
20
+ nx5cOKP1fSWJ1RRu8JhaDeSloGtYMdw2c28wnKPNIsWDood4xhbLcY9IqeISft2e
21
+ oTAHTHandHbvt24X3/n67ceNjLBbsVZPXCC1C8C8ccjHjA4Tm2uiFoDwThMcPggg
22
+ 90H6fh0vLFcNAobdPEchbge8tWtfmMPz2+C4yklANn81GA+ANsBS1uwx6mxJoMQU
23
+ BNVp0aLvAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
24
+ BBRS85Rn1BaqeIONByw4t46DMDMzHDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
25
25
  aXN0cy5pbzAfBgNVHRIEGDAWgRRicm9va2VAYWxjaGVtaXN0cy5pbzANBgkqhkiG
26
- 9w0BAQUFAAOCAQEAT7KtBXWsq1KA7NOSMeFEDeSvhrgdLwCG/37pIu0rjvx9iAW4
27
- gncxV0MccqIUtaF+lekjlXkIO+rXAVjvdha23KtpFTW90dYXp4NLPnPlSdyvYzJy
28
- FIAaWGvujOT8xEu4umd45q5aepE8li4bR071i5Z7F0trKNVYYrxjQFmH5SSKYRT/
29
- fXtICtAh1de3z3SOSK58IMPwjuoApYBxiqlmx0Uhla7mrzCE5+NmLPit3hLH6JFK
30
- aSif+qBc6oHD7EQWPF5cZkzkIURuwNwPBngZGxIKaMAgRhjGFXzUMAaq++r59cS9
31
- xTfQ4k6fglKEgpnLAXiKdo2c8Ym+X4rIKFfedQ==
26
+ 9w0BAQUFAAOCAQEAZMb57Y4wdpbX8XxTukEO7VC1pndccUsxdbziGsAOiuHET3Aq
27
+ ygLvrfdYrN88/w+qxncW5bxbO3a6UGkuhIFUPM8zRSE/rh6bCcJljTJrExVt42eV
28
+ aYCb7WJNsx3eNXHn3uQodq3tD+lmNJzz2bFeT3smGSKEnALBjqorO/2mpDh4FJ3S
29
+ 4CcDYsJ1ywep8LDJDBBGdKz9moL+axryzpeTpgTT/fFYFzRzWrURPyDvPOikh9TX
30
+ n/LUZ1dKhIHzfKx1B4+TEIefArObGfkLIDM8+Dq1RX7TF1k81Men7iu4MgE9bYBn
31
+ 3dE+xI3FdB5gWcdWxdtgRCmWjtXeYYyb4z6NQQ==
32
32
  -----END CERTIFICATE-----
33
- date: 2016-04-04 00:00:00.000000000 Z
33
+ date: 2016-11-05 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: thor
@@ -52,323 +52,225 @@ dependencies:
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '3.0'
55
+ version: '4.0'
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '3.0'
62
+ version: '4.0'
63
63
  - !ruby/object:Gem::Dependency
64
- name: versionaire
64
+ name: runcom
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '1.1'
69
+ version: '0.2'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '1.1'
76
+ version: '0.2'
77
77
  - !ruby/object:Gem::Dependency
78
- name: rake
78
+ name: versionaire
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
84
- type: :development
83
+ version: '2.0'
84
+ type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: '2.0'
91
91
  - !ruby/object:Gem::Dependency
92
- name: gemsmith
92
+ name: rake
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '7.0'
97
+ version: '11.0'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '7.0'
104
+ version: '11.0'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: pry
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: '0.10'
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: '0.10'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: pry-byebug
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- type: :development
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: '0'
133
- - !ruby/object:Gem::Dependency
134
- name: pry-remote
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">="
123
+ - - "~>"
138
124
  - !ruby/object:Gem::Version
139
- version: '0'
125
+ version: '3.4'
140
126
  type: :development
141
127
  prerelease: false
142
128
  version_requirements: !ruby/object:Gem::Requirement
143
129
  requirements:
144
- - - ">="
130
+ - - "~>"
145
131
  - !ruby/object:Gem::Version
146
- version: '0'
132
+ version: '3.4'
147
133
  - !ruby/object:Gem::Dependency
148
134
  name: pry-state
149
135
  requirement: !ruby/object:Gem::Requirement
150
136
  requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- version: '0'
154
- type: :development
155
- prerelease: false
156
- version_requirements: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- version: '0'
161
- - !ruby/object:Gem::Dependency
162
- name: pry-rescue
163
- requirement: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- version: '0'
168
- type: :development
169
- prerelease: false
170
- version_requirements: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: '0'
175
- - !ruby/object:Gem::Dependency
176
- name: pry-stack_explorer
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - ">="
137
+ - - "~>"
180
138
  - !ruby/object:Gem::Version
181
- version: '0'
139
+ version: '0.1'
182
140
  type: :development
183
141
  prerelease: false
184
142
  version_requirements: !ruby/object:Gem::Requirement
185
143
  requirements:
186
- - - ">="
144
+ - - "~>"
187
145
  - !ruby/object:Gem::Version
188
- version: '0'
146
+ version: '0.1'
189
147
  - !ruby/object:Gem::Dependency
190
148
  name: bond
191
149
  requirement: !ruby/object:Gem::Requirement
192
150
  requirements:
193
- - - ">="
151
+ - - "~>"
194
152
  - !ruby/object:Gem::Version
195
- version: '0'
153
+ version: '0.5'
196
154
  type: :development
197
155
  prerelease: false
198
156
  version_requirements: !ruby/object:Gem::Requirement
199
157
  requirements:
200
- - - ">="
158
+ - - "~>"
201
159
  - !ruby/object:Gem::Version
202
- version: '0'
160
+ version: '0.5'
203
161
  - !ruby/object:Gem::Dependency
204
162
  name: wirb
205
163
  requirement: !ruby/object:Gem::Requirement
206
164
  requirements:
207
- - - ">="
165
+ - - "~>"
208
166
  - !ruby/object:Gem::Version
209
- version: '0'
167
+ version: '2.0'
210
168
  type: :development
211
169
  prerelease: false
212
170
  version_requirements: !ruby/object:Gem::Requirement
213
171
  requirements:
214
- - - ">="
172
+ - - "~>"
215
173
  - !ruby/object:Gem::Version
216
- version: '0'
174
+ version: '2.0'
217
175
  - !ruby/object:Gem::Dependency
218
176
  name: hirb
219
177
  requirement: !ruby/object:Gem::Requirement
220
178
  requirements:
221
- - - ">="
179
+ - - "~>"
222
180
  - !ruby/object:Gem::Version
223
- version: '0'
181
+ version: '0.7'
224
182
  type: :development
225
183
  prerelease: false
226
184
  version_requirements: !ruby/object:Gem::Requirement
227
185
  requirements:
228
- - - ">="
186
+ - - "~>"
229
187
  - !ruby/object:Gem::Version
230
- version: '0'
188
+ version: '0.7'
231
189
  - !ruby/object:Gem::Dependency
232
190
  name: awesome_print
233
191
  requirement: !ruby/object:Gem::Requirement
234
192
  requirements:
235
- - - ">="
193
+ - - "~>"
236
194
  - !ruby/object:Gem::Version
237
- version: '0'
195
+ version: '1.7'
238
196
  type: :development
239
197
  prerelease: false
240
198
  version_requirements: !ruby/object:Gem::Requirement
241
199
  requirements:
242
- - - ">="
200
+ - - "~>"
243
201
  - !ruby/object:Gem::Version
244
- version: '0'
202
+ version: '1.7'
245
203
  - !ruby/object:Gem::Dependency
246
204
  name: rspec
247
205
  requirement: !ruby/object:Gem::Requirement
248
206
  requirements:
249
- - - ">="
250
- - !ruby/object:Gem::Version
251
- version: '0'
252
- type: :development
253
- prerelease: false
254
- version_requirements: !ruby/object:Gem::Requirement
255
- requirements:
256
- - - ">="
257
- - !ruby/object:Gem::Version
258
- version: '0'
259
- - !ruby/object:Gem::Dependency
260
- name: rb-fsevent
261
- requirement: !ruby/object:Gem::Requirement
262
- requirements:
263
- - - ">="
207
+ - - "~>"
264
208
  - !ruby/object:Gem::Version
265
- version: '0'
209
+ version: '3.5'
266
210
  type: :development
267
211
  prerelease: false
268
212
  version_requirements: !ruby/object:Gem::Requirement
269
213
  requirements:
270
- - - ">="
214
+ - - "~>"
271
215
  - !ruby/object:Gem::Version
272
- version: '0'
216
+ version: '3.5'
273
217
  - !ruby/object:Gem::Dependency
274
218
  name: guard-rspec
275
219
  requirement: !ruby/object:Gem::Requirement
276
220
  requirements:
277
- - - ">="
278
- - !ruby/object:Gem::Version
279
- version: '0'
280
- type: :development
281
- prerelease: false
282
- version_requirements: !ruby/object:Gem::Requirement
283
- requirements:
284
- - - ">="
285
- - !ruby/object:Gem::Version
286
- version: '0'
287
- - !ruby/object:Gem::Dependency
288
- name: terminal-notifier
289
- requirement: !ruby/object:Gem::Requirement
290
- requirements:
291
- - - ">="
292
- - !ruby/object:Gem::Version
293
- version: '0'
294
- type: :development
295
- prerelease: false
296
- version_requirements: !ruby/object:Gem::Requirement
297
- requirements:
298
- - - ">="
299
- - !ruby/object:Gem::Version
300
- version: '0'
301
- - !ruby/object:Gem::Dependency
302
- name: terminal-notifier-guard
303
- requirement: !ruby/object:Gem::Requirement
304
- requirements:
305
- - - ">="
221
+ - - "~>"
306
222
  - !ruby/object:Gem::Version
307
- version: '0'
223
+ version: '4.7'
308
224
  type: :development
309
225
  prerelease: false
310
226
  version_requirements: !ruby/object:Gem::Requirement
311
227
  requirements:
312
- - - ">="
228
+ - - "~>"
313
229
  - !ruby/object:Gem::Version
314
- version: '0'
230
+ version: '4.7'
315
231
  - !ruby/object:Gem::Dependency
316
232
  name: climate_control
317
233
  requirement: !ruby/object:Gem::Requirement
318
234
  requirements:
319
- - - ">="
320
- - !ruby/object:Gem::Version
321
- version: '0'
322
- type: :development
323
- prerelease: false
324
- version_requirements: !ruby/object:Gem::Requirement
325
- requirements:
326
- - - ">="
327
- - !ruby/object:Gem::Version
328
- version: '0'
329
- - !ruby/object:Gem::Dependency
330
- name: greenletters
331
- requirement: !ruby/object:Gem::Requirement
332
- requirements:
333
- - - ">="
235
+ - - "~>"
334
236
  - !ruby/object:Gem::Version
335
- version: '0'
237
+ version: '0.0'
336
238
  type: :development
337
239
  prerelease: false
338
240
  version_requirements: !ruby/object:Gem::Requirement
339
241
  requirements:
340
- - - ">="
242
+ - - "~>"
341
243
  - !ruby/object:Gem::Version
342
- version: '0'
244
+ version: '0.0'
343
245
  - !ruby/object:Gem::Dependency
344
246
  name: rubocop
345
247
  requirement: !ruby/object:Gem::Requirement
346
248
  requirements:
347
- - - ">="
249
+ - - "~>"
348
250
  - !ruby/object:Gem::Version
349
- version: '0'
251
+ version: '0.45'
350
252
  type: :development
351
253
  prerelease: false
352
254
  version_requirements: !ruby/object:Gem::Requirement
353
255
  requirements:
354
- - - ">="
256
+ - - "~>"
355
257
  - !ruby/object:Gem::Version
356
- version: '0'
258
+ version: '0.45'
357
259
  - !ruby/object:Gem::Dependency
358
260
  name: codeclimate-test-reporter
359
261
  requirement: !ruby/object:Gem::Requirement
360
262
  requirements:
361
- - - ">="
263
+ - - "~>"
362
264
  - !ruby/object:Gem::Version
363
- version: '0'
265
+ version: '0.6'
364
266
  type: :development
365
267
  prerelease: false
366
268
  version_requirements: !ruby/object:Gem::Requirement
367
269
  requirements:
368
- - - ">="
270
+ - - "~>"
369
271
  - !ruby/object:Gem::Version
370
- version: '0'
371
- description: A command line interface for releasing Git repository milestones.
272
+ version: '0.6'
273
+ description:
372
274
  email:
373
275
  - brooke@alchemists.io
374
276
  executables:
@@ -383,18 +285,14 @@ files:
383
285
  - bin/milestoner
384
286
  - lib/milestoner.rb
385
287
  - lib/milestoner/cli.rb
386
- - lib/milestoner/configuration.rb
387
288
  - lib/milestoner/errors/base.rb
388
- - lib/milestoner/errors/configuration.rb
389
289
  - lib/milestoner/errors/duplicate_tag.rb
390
290
  - lib/milestoner/errors/git.rb
391
- - lib/milestoner/errors/version.rb
392
291
  - lib/milestoner/git.rb
393
292
  - lib/milestoner/identity.rb
394
293
  - lib/milestoner/publisher.rb
395
294
  - lib/milestoner/pusher.rb
396
295
  - lib/milestoner/tagger.rb
397
- - lib/tasks/console.rake
398
296
  - lib/tasks/rspec.rake
399
297
  - lib/tasks/rubocop.rake
400
298
  homepage: https://github.com/bkuhlmann/milestoner
@@ -417,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
417
315
  version: '0'
418
316
  requirements: []
419
317
  rubyforge_project:
420
- rubygems_version: 2.6.2
318
+ rubygems_version: 2.6.8
421
319
  signing_key:
422
320
  specification_version: 4
423
321
  summary: A command line interface for releasing Git repository milestones.
metadata.gz.sig CHANGED
Binary file
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Milestoner
4
- # Default configuration for gem with support for custom settings.
5
- class Configuration
6
- def initialize file_name = Identity.file_name, defaults: {}
7
- @file_name = file_name
8
- @defaults = defaults
9
- end
10
-
11
- def local_file_path
12
- File.join Dir.pwd, file_name
13
- end
14
-
15
- def global_file_path
16
- File.join ENV["HOME"], file_name
17
- end
18
-
19
- def global?
20
- File.exist? global_file_path
21
- end
22
-
23
- def local?
24
- File.exist? local_file_path
25
- end
26
-
27
- def computed_file_path
28
- File.exist?(local_file_path) ? local_file_path : global_file_path
29
- end
30
-
31
- def settings
32
- defaults.merge(load_settings).reject { |_, value| value.nil? }
33
- end
34
-
35
- private
36
-
37
- attr_reader :file_name, :defaults
38
-
39
- def load_settings
40
- yaml = YAML.load_file computed_file_path
41
- yaml.is_a?(Hash) ? yaml : {}
42
- rescue
43
- defaults
44
- end
45
- end
46
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Milestoner
4
- module Errors
5
- # Raised for invalid gem configuration.
6
- class Configuration < Base
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Milestoner
4
- module Errors
5
- # Raised for invalid version formats.
6
- class Version < Base
7
- end
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- desc "Open IRB console for gem development environment"
2
- task :console do
3
- require "irb"
4
- require "milestoner"
5
- ARGV.clear
6
- IRB.start
7
- end