milestoner 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 048fc5e408dc33ae259639732315a07158ae5531
4
+ data.tar.gz: e6f3f12e4329cb47c58b1413f87aea235effab16
5
+ SHA512:
6
+ metadata.gz: d176b7238258c0ba630ef0dfd81c05657b8da54463bb5c2b00844c22fbe3280d8cc13eee80d73520b238bbbb106bed144018b53be95a489212950fe4c49998e2
7
+ data.tar.gz: 61ee34af933007993308d74765d8375fe7a7e1c583a8f8a9f0e4d50774690c39f1d9df3b815d7a900a03af994d0af2ca75d6d18e8a32e953c908e5f61e8a195e
Binary file
Binary file
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2015 [Alchemists](https://www.alchemists.io).
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,103 @@
1
+ # Milestoner
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/milestoner.svg)](http://badge.fury.io/rb/milestoner)
4
+ [![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/milestoner.svg)](https://codeclimate.com/github/bkuhlmann/milestoner)
5
+ [![Code Climate Coverage](https://codeclimate.com/github/bkuhlmann/milestoner/coverage.svg)](https://codeclimate.com/github/bkuhlmann/milestoner)
6
+ [![Gemnasium Status](https://gemnasium.com/bkuhlmann/milestoner.svg)](https://gemnasium.com/bkuhlmann/milestoner)
7
+ [![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/milestoner.svg)](http://travis-ci.org/bkuhlmann/milestoner)
8
+
9
+ A tool for automating and releasing Git repository milestones.
10
+
11
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
12
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
13
+ # Table of Contents
14
+
15
+ - [Features](#features)
16
+ - [Requirements](#requirements)
17
+ - [Setup](#setup)
18
+ - [Usage](#usage)
19
+ - [Tests](#tests)
20
+ - [Versioning](#versioning)
21
+ - [Code of Conduct](#code-of-conduct)
22
+ - [Contributions](#contributions)
23
+ - [License](#license)
24
+ - [History](#history)
25
+ - [Credits](#credits)
26
+
27
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
28
+
29
+ # Features
30
+
31
+ - Provides [Semantic Versioning](http://semver.org) for Git repositories in the form of `v<major>.<minor>.</maintenance>` tags.
32
+ Example: `v0.1.0`.
33
+ - Provides optional support for signing tags using GPG signing key.
34
+ - Automatically includes commits since last tag (or HEAD if no tags exist) within each tag message.
35
+
36
+ # Requirements
37
+
38
+ 0. A UNIX-based system.
39
+ 0. [MRI 2.x.x](http://www.ruby-lang.org).
40
+ 0. [GnuPG](https://www.gnupg.org).
41
+
42
+ # Setup
43
+
44
+ For a secure install, type the following (recommended):
45
+
46
+ gem cert --add <(curl -Ls http://www.my-website.com/gem-public.pem)
47
+ gem install milestoner --trust-policy MediumSecurity
48
+
49
+ NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification while
50
+ allowing the installation of unsigned dependencies since they are beyond the scope of this gem.
51
+
52
+ For an insecure install, type the following (not recommended):
53
+
54
+ gem install milestoner
55
+
56
+ # Usage
57
+
58
+ From the command line, type: milestoner help
59
+
60
+ milestoner -h, [--help=HELP] # Show this message or get help for a command.
61
+ milestoner -t, [--tag=TAG] # Tag repository with new version.
62
+ milestoner -v, [--version] # Show version.
63
+
64
+ For more gem creation options, type: milestoner help tag
65
+
66
+ -s, [--sign], [--no-sign] # Sign tag with GPG key.
67
+
68
+ # Tests
69
+
70
+ To test, run:
71
+
72
+ bundle exec spec
73
+
74
+ # Versioning
75
+
76
+ Read [Semantic Versioning](http://semver.org) for details. Briefly, it means:
77
+
78
+ - Patch (x.y.Z) - Incremented for small, backwards compatible bug fixes.
79
+ - Minor (x.Y.z) - Incremented for new, backwards compatible public API enhancements and/or bug fixes.
80
+ - Major (X.y.z) - Incremented for any backwards incompatible public API changes.
81
+
82
+ # Code of Conduct
83
+
84
+ Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By participating in this project
85
+ you agree to abide by its terms.
86
+
87
+ # Contributions
88
+
89
+ Read [CONTRIBUTING](CONTRIBUTING.md) for details.
90
+
91
+ # License
92
+
93
+ Copyright (c) 2015 [Alchemists](https://www.alchemists.io).
94
+ Read the [LICENSE](LICENSE.md) for details.
95
+
96
+ # History
97
+
98
+ Read the [CHANGELOG](CHANGELOG.md) for details.
99
+ Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
100
+
101
+ # Credits
102
+
103
+ Developed by [Brooke Kuhlmann](https://www.alchemists.io) at [Alchemists](https://www.alchemists.io).
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require "milestoner"
4
+ require "milestoner/cli"
5
+ require "milestoner/identity"
6
+
7
+ Process.setproctitle Milestoner::Identity.label_version
8
+ Milestoner::CLI.start
@@ -0,0 +1,3 @@
1
+ require "milestoner/identity"
2
+ require "milestoner/exceptions"
3
+ require "milestoner/release"
@@ -0,0 +1,41 @@
1
+ require "yaml"
2
+ require "thor"
3
+ require "thor/actions"
4
+ require "thor_plus/actions"
5
+
6
+ module Milestoner
7
+ # The Command Line Interface (CLI) for the gem.
8
+ class CLI < Thor
9
+ include Thor::Actions
10
+ include ThorPlus::Actions
11
+
12
+ package_name Milestoner::Identity.label
13
+
14
+ def initialize args = [], options = {}, config = {}
15
+ super args, options, config
16
+ end
17
+
18
+ desc "-t, [--tag=TAG]", "Tag repository with new version."
19
+ map %w(-t --tag) => :tag
20
+ method_option :sign, aliases: "-s", desc: "Sign tag with GPG key.", type: :boolean, default: false
21
+ def tag version
22
+ release = Milestoner::Release.new version
23
+ release.tag sign: options[:sign]
24
+ say "Repository tagged: #{release.version_label}."
25
+ rescue Milestoner::VersionError => version_error
26
+ error version_error.message
27
+ end
28
+
29
+ desc "-v, [--version]", "Show version."
30
+ map %w(-v --version) => :version
31
+ def version
32
+ say Milestoner::Identity.label_version
33
+ end
34
+
35
+ desc "-h, [--help=HELP]", "Show this message or get help for a command."
36
+ map %w(-h --help) => :help
37
+ def help task = nil
38
+ say && super
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,5 @@
1
+ module Milestoner
2
+ # Raised for invalid version formats.
3
+ class VersionError < StandardError
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ module Milestoner
2
+ # The canonical source of gem information.
3
+ module Identity
4
+ def self.name
5
+ "milestoner"
6
+ end
7
+
8
+ def self.label
9
+ "Milestoner"
10
+ end
11
+
12
+ def self.version
13
+ "0.1.0"
14
+ end
15
+
16
+ def self.label_version
17
+ [label, version].join " "
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,91 @@
1
+ module Milestoner
2
+ # Handles the release of new project milestones.
3
+ class Release
4
+ attr_reader :version
5
+
6
+ def self.commit_prefixes
7
+ %w(Fixed Added Updated Removed Refactored) # Order is important for controlling the sort.
8
+ end
9
+
10
+ def self.commit_prefix_regex
11
+ /\A(#{commit_prefixes.join "|"})/
12
+ end
13
+
14
+ def self.version_regex
15
+ /\A\d{1}\.\d{1}\.\d{1}\z/
16
+ end
17
+
18
+ def initialize version
19
+ @version = validate_version version
20
+ end
21
+
22
+ def version_label
23
+ "v#{version}"
24
+ end
25
+
26
+ def version_message
27
+ "Version #{version}."
28
+ end
29
+
30
+ def tagged?
31
+ response = `git tag`
32
+ !(response.nil? || response.empty?)
33
+ end
34
+
35
+ def commits
36
+ command = "git log --oneline --reverse --no-merges --format='%s'"
37
+
38
+ return `#{command}` unless tagged?
39
+ `#{command} $(git describe --abbrev=0 --tags --always)..HEAD`
40
+ end
41
+
42
+ def commits_sorted
43
+ prefix_regex = self.class.commit_prefix_regex
44
+
45
+ commits.split("\n").sort do |a, b|
46
+ next 1 unless a.match(prefix_regex) && b.match(prefix_regex)
47
+ sort_by_prefix a, b
48
+ end
49
+ end
50
+
51
+ def tag sign: false
52
+ `git tag #{tag_options sign: sign}`
53
+ end
54
+
55
+ private
56
+
57
+ def validate_version version
58
+ message = "Invalid version: #{version}. Use: <major>.<minor>.<maintenance>."
59
+ raise(VersionError, message) unless version.match(self.class.version_regex)
60
+ version
61
+ end
62
+
63
+ def index_for_prefix message
64
+ self.class.commit_prefixes.index message[self.class.commit_prefix_regex]
65
+ end
66
+
67
+ def sort_by_prefix a, b
68
+ a_index = index_for_prefix a
69
+ b_index = index_for_prefix b
70
+
71
+ case
72
+ when a_index > b_index then 1
73
+ when a_index == b_index then 0
74
+ when a_index < b_index then -1
75
+ else
76
+ a <=> b
77
+ end
78
+ end
79
+
80
+ def tag_message
81
+ commit_list = commits_sorted.map { |commit| "- #{commit}\n" }
82
+ %(#{version_message}\n\n#{commit_list.join})
83
+ end
84
+
85
+ def tag_options sign: false
86
+ options = %(--sign --annotate "#{version_label}" --message "#{tag_message}")
87
+ return options.gsub("--sign ", "") unless sign
88
+ options
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,6 @@
1
+ begin
2
+ require "rspec/core/rake_task"
3
+ RSpec::Core::RakeTask.new(:spec)
4
+ rescue LoadError => error
5
+ puts error.message
6
+ end
@@ -0,0 +1,6 @@
1
+ begin
2
+ require "rubocop/rake_task"
3
+ RuboCop::RakeTask.new
4
+ rescue LoadError => error
5
+ puts error.message
6
+ end
metadata ADDED
@@ -0,0 +1,345 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: milestoner
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Brooke Kuhlmann
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZicm9v
14
+ a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
15
+ aW8wHhcNMTUwNzA1MTQ1MzExWhcNMTYwNzA0MTQ1MzExWjBBMQ8wDQYDVQQDDAZi
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
25
+ aXN0cy5pbzAfBgNVHRIEGDAWgRRicm9va2VAYWxjaGVtaXN0cy5pbzANBgkqhkiG
26
+ 9w0BAQUFAAOCAQEAT7KtBXWsq1KA7NOSMeFEDeSvhrgdLwCG/37pIu0rjvx9iAW4
27
+ gncxV0MccqIUtaF+lekjlXkIO+rXAVjvdha23KtpFTW90dYXp4NLPnPlSdyvYzJy
28
+ FIAaWGvujOT8xEu4umd45q5aepE8li4bR071i5Z7F0trKNVYYrxjQFmH5SSKYRT/
29
+ fXtICtAh1de3z3SOSK58IMPwjuoApYBxiqlmx0Uhla7mrzCE5+NmLPit3hLH6JFK
30
+ aSif+qBc6oHD7EQWPF5cZkzkIURuwNwPBngZGxIKaMAgRhjGFXzUMAaq++r59cS9
31
+ xTfQ4k6fglKEgpnLAXiKdo2c8Ym+X4rIKFfedQ==
32
+ -----END CERTIFICATE-----
33
+ date: 2015-09-06 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: thor
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: thor_plus
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ - !ruby/object:Gem::Dependency
78
+ name: gemsmith
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: pry
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: pry-byebug
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: pry-state
121
+ requirement: !ruby/object:Gem::Requirement
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-stack_explorer
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ - !ruby/object:Gem::Dependency
148
+ name: pry-remote
149
+ requirement: !ruby/object:Gem::Requirement
150
+ 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: rspec
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ - !ruby/object:Gem::Dependency
190
+ name: rb-fsevent
191
+ requirement: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ type: :development
197
+ prerelease: false
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ - !ruby/object:Gem::Dependency
204
+ name: guard-rspec
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ - !ruby/object:Gem::Dependency
218
+ name: terminal-notifier
219
+ requirement: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ type: :development
225
+ prerelease: false
226
+ version_requirements: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ - !ruby/object:Gem::Dependency
232
+ name: terminal-notifier-guard
233
+ requirement: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ type: :development
239
+ prerelease: false
240
+ version_requirements: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ - !ruby/object:Gem::Dependency
246
+ name: climate_control
247
+ requirement: !ruby/object:Gem::Requirement
248
+ 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: greenletters
261
+ requirement: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
266
+ type: :development
267
+ prerelease: false
268
+ version_requirements: !ruby/object:Gem::Requirement
269
+ requirements:
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: '0'
273
+ - !ruby/object:Gem::Dependency
274
+ name: rubocop
275
+ requirement: !ruby/object:Gem::Requirement
276
+ 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: codeclimate-test-reporter
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
+ description: A tool for automating and releasing Git repository milestones.
302
+ email:
303
+ - brooke@alchemists.io
304
+ executables:
305
+ - milestoner
306
+ extensions: []
307
+ extra_rdoc_files:
308
+ - README.md
309
+ - LICENSE.md
310
+ files:
311
+ - LICENSE.md
312
+ - README.md
313
+ - bin/milestoner
314
+ - lib/milestoner.rb
315
+ - lib/milestoner/cli.rb
316
+ - lib/milestoner/exceptions.rb
317
+ - lib/milestoner/identity.rb
318
+ - lib/milestoner/release.rb
319
+ - lib/milestoner/tasks/rspec.rake
320
+ - lib/milestoner/tasks/rubocop.rake
321
+ homepage: https://www.alchemists.io
322
+ licenses:
323
+ - MIT
324
+ metadata: {}
325
+ post_install_message:
326
+ rdoc_options: []
327
+ require_paths:
328
+ - lib
329
+ required_ruby_version: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - ">="
332
+ - !ruby/object:Gem::Version
333
+ version: '0'
334
+ required_rubygems_version: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - ">="
337
+ - !ruby/object:Gem::Version
338
+ version: '0'
339
+ requirements: []
340
+ rubyforge_project:
341
+ rubygems_version: 2.4.8
342
+ signing_key:
343
+ specification_version: 4
344
+ summary: A tool for automating and releasing Git repository milestones.
345
+ test_files: []
@@ -0,0 +1,3 @@
1
+ �����c*��nK����x̩���t��[�CS�����
2
+ ��i竆
3
+ �)���cZ)�0�