milestoner 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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�