milestoner 1.2.0 → 2.0.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 +4 -4
- data/README.md +43 -9
- data/bin/milestoner +1 -0
- data/lib/milestoner.rb +2 -0
- data/lib/milestoner/aids/git.rb +2 -0
- data/lib/milestoner/cli.rb +2 -0
- data/lib/milestoner/configuration.rb +2 -0
- data/lib/milestoner/errors/base.rb +2 -0
- data/lib/milestoner/errors/configuration.rb +2 -0
- data/lib/milestoner/errors/duplicate_tag.rb +2 -0
- data/lib/milestoner/errors/git.rb +2 -0
- data/lib/milestoner/errors/version.rb +2 -0
- data/lib/milestoner/identity.rb +3 -1
- data/lib/milestoner/publisher.rb +2 -0
- data/lib/milestoner/pusher.rb +2 -0
- data/lib/milestoner/tagger.rb +5 -3
- data/lib/tasks/console.rake +9 -0
- data/lib/tasks/rspec.rake +2 -0
- data/lib/tasks/rubocop.rake +2 -0
- metadata +9 -44
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f12b4a3234f91869a03f18bc09985b9d02be75fb
|
4
|
+
data.tar.gz: a9569f873f4daf4f01e0c9702f8419e48dd0aeb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d42da86c3180c0f427c860fb3028c155bab76064f9f0a8c9d13059aac7eebfb653cf22d05dd357c4ba91b50dc2e2a85314cdd47afc66db069d578449ee05d0c
|
7
|
+
data.tar.gz: c653ec5f2de7f5f68c4e81f3fbf1f948a24f03c314b0ed851739f88f25169a105534cc91fadd5d8b1a41eb44fa1c89bfb8812a2cd4dc23d1e16db108a8ee655b
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[](https://codeclimate.com/github/bkuhlmann/milestoner)
|
5
5
|
[](https://codeclimate.com/github/bkuhlmann/milestoner)
|
6
6
|
[](https://gemnasium.com/bkuhlmann/milestoner)
|
7
|
-
[](
|
7
|
+
[](https://travis-ci.org/bkuhlmann/milestoner)
|
8
8
|
[](https://www.patreon.com/bkuhlmann)
|
9
9
|
|
10
10
|
A command line interface for releasing Git repository milestones.
|
@@ -19,6 +19,7 @@ A command line interface for releasing Git repository milestones.
|
|
19
19
|
- [Usage](#usage)
|
20
20
|
- [Command Line Interface (CLI)](#command-line-interface-cli)
|
21
21
|
- [Customization](#customization)
|
22
|
+
- [Security](#security)
|
22
23
|
- [Tests](#tests)
|
23
24
|
- [Versioning](#versioning)
|
24
25
|
- [Code of Conduct](#code-of-conduct)
|
@@ -32,12 +33,17 @@ A command line interface for releasing Git repository milestones.
|
|
32
33
|
# Features
|
33
34
|
|
34
35
|
- Ensures [Semantic Versioning](http://semver.org) of Git repository tags:
|
35
|
-
- Format: `v<major>.<minor
|
36
|
+
- Format: `v<major>.<minor>.<maintenance>`.
|
36
37
|
- Example: `v0.1.0`.
|
37
38
|
- Ensures Git commits since last tag (or since initialization of repository if no tags exist) are included within each
|
38
39
|
Git tag message.
|
39
|
-
- Ensures Git commit messages are grouped by prefix, in order defined, for each Git tag message (
|
40
|
-
customized):
|
40
|
+
- Ensures Git commit messages are grouped by prefix, in order defined, for each Git tag message. Prefix defaults (can be
|
41
|
+
customized):
|
42
|
+
- Fixed
|
43
|
+
- Added
|
44
|
+
- Updated
|
45
|
+
- Removed
|
46
|
+
- Refactored
|
41
47
|
- Ensures Git commit merge messages are excluded within each Git tag message.
|
42
48
|
- Ensures Git commit messages are alphabetically sorted within each Git tag message.
|
43
49
|
- Ensures duplicate Git commit messages are removed (if any) within each Git tag message.
|
@@ -49,7 +55,7 @@ A command line interface for releasing Git repository milestones.
|
|
49
55
|
# Requirements
|
50
56
|
|
51
57
|
0. A UNIX-based system.
|
52
|
-
0. [
|
58
|
+
0. [Ruby 2.3.x](https://www.ruby-lang.org).
|
53
59
|
0. [GnuPG](https://www.gnupg.org).
|
54
60
|
|
55
61
|
# Setup
|
@@ -88,9 +94,9 @@ For publish options, type: `milestoner help publish`
|
|
88
94
|
|
89
95
|
-s, [--sign], [--no-sign] # Sign tag with GPG key.
|
90
96
|
|
91
|
-
When using Milestoner, the `--publish` command is intended to be the only command necessary for publishing a new
|
92
|
-
|
93
|
-
|
97
|
+
When using Milestoner, the `--publish` command is intended to be the only command necessary for publishing a new release
|
98
|
+
as it handles all of the steps necessary for tagging and pushing a new milestone. Should individual steps be needed,
|
99
|
+
then the `--tag` and `--push` options are available.
|
94
100
|
|
95
101
|
## Customization
|
96
102
|
|
@@ -127,7 +133,7 @@ Each `.milestonerrc` setting can be configured as follows:
|
|
127
133
|
- `version`: By default it is left blank so you'll be prompted by the CLI. However, it can be nice to bump this version
|
128
134
|
prior to each release and have the current version checked into source code at a per project level. The version, if
|
129
135
|
set, will be used to tag the repository. If the version is a duplicate, an error will be thrown. When supplying a
|
130
|
-
version, use this format: `<major>.<minor
|
136
|
+
version, use this format: `<major>.<minor>.<maintenance>`. Example: `0.1.0`.
|
131
137
|
- `git_commit_prefixes`: Should the default prefixes not be desired, you can define Git commit prefixes that match your
|
132
138
|
style. *NOTE: Prefix order is important with the first prefix defined taking precedence over the second and so forth.*
|
133
139
|
Special characters are allowed for prefixes but should be enclosed in quotes if used. To disable prefix usage
|
@@ -136,6 +142,34 @@ Each `.milestonerrc` setting can be configured as follows:
|
|
136
142
|
signing for enhanced security and include a signed signature as part of the Git tag. This is useful for public
|
137
143
|
milestones where the author of a milestone can be verified to ensure milestone integrity/security.
|
138
144
|
|
145
|
+
# Security
|
146
|
+
|
147
|
+
To securely sign your Git tags, install and configure [GPG](https://www.gnupg.org):
|
148
|
+
|
149
|
+
brew install gpg
|
150
|
+
gpg --gen-key
|
151
|
+
|
152
|
+
When creating your GPG key, choose these settings:
|
153
|
+
|
154
|
+
- Key kind: RSA and RSA (default)
|
155
|
+
- Key size: 4096
|
156
|
+
- Key validity: 0
|
157
|
+
- Real Name: `<your name>`
|
158
|
+
- Email: `<your email>`
|
159
|
+
- Passphrase: `<your passphrase>`
|
160
|
+
|
161
|
+
To obtain your key, run the following and take the part after the forward slash:
|
162
|
+
|
163
|
+
gpg --list-keys | grep pub
|
164
|
+
|
165
|
+
Add your key to your global Git configuration in the `[user]` section. Example:
|
166
|
+
|
167
|
+
[user]
|
168
|
+
signingkey = <your GPG key>
|
169
|
+
|
170
|
+
Now, when publishing a new milestone (i.e. `milestoner --publish <version> --sign`), signing of your Git tag will happen
|
171
|
+
automatically. You will be prompted for the GPG Passphrase each time but that is to be expected.
|
172
|
+
|
139
173
|
# Tests
|
140
174
|
|
141
175
|
To test, run:
|
data/bin/milestoner
CHANGED
data/lib/milestoner.rb
CHANGED
data/lib/milestoner/aids/git.rb
CHANGED
data/lib/milestoner/cli.rb
CHANGED
data/lib/milestoner/identity.rb
CHANGED
data/lib/milestoner/publisher.rb
CHANGED
data/lib/milestoner/pusher.rb
CHANGED
data/lib/milestoner/tagger.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "open3"
|
2
4
|
|
3
5
|
module Milestoner
|
@@ -73,11 +75,11 @@ module Milestoner
|
|
73
75
|
end
|
74
76
|
|
75
77
|
def raw_commits
|
78
|
+
log_command = "git log --oneline --no-merges --format='%s'"
|
76
79
|
tag_command = "$(git describe --abbrev=0 --tags --always)..HEAD"
|
77
|
-
|
78
|
-
full_command.gsub!(tag_command, "") unless tagged?
|
80
|
+
commits_command = tagged? ? "#{log_command} #{tag_command}" : log_command
|
79
81
|
|
80
|
-
`#{
|
82
|
+
`#{commits_command}`.split("\n")
|
81
83
|
end
|
82
84
|
|
83
85
|
def build_commit_prefix_groups
|
data/lib/tasks/rspec.rake
CHANGED
data/lib/tasks/rubocop.rake
CHANGED
metadata
CHANGED
@@ -1,36 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milestoner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
8
8
|
autorequire:
|
9
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-11-28 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-01-17 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: thor
|
@@ -52,14 +30,14 @@ dependencies:
|
|
52
30
|
requirements:
|
53
31
|
- - "~>"
|
54
32
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
33
|
+
version: '3.0'
|
56
34
|
type: :runtime
|
57
35
|
prerelease: false
|
58
36
|
version_requirements: !ruby/object:Gem::Requirement
|
59
37
|
requirements:
|
60
38
|
- - "~>"
|
61
39
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
40
|
+
version: '3.0'
|
63
41
|
- !ruby/object:Gem::Dependency
|
64
42
|
name: rake
|
65
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,20 +52,6 @@ dependencies:
|
|
74
52
|
- - ">="
|
75
53
|
- !ruby/object:Gem::Version
|
76
54
|
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
55
|
- !ruby/object:Gem::Dependency
|
92
56
|
name: pry
|
93
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -324,6 +288,7 @@ files:
|
|
324
288
|
- lib/milestoner/publisher.rb
|
325
289
|
- lib/milestoner/pusher.rb
|
326
290
|
- lib/milestoner/tagger.rb
|
291
|
+
- lib/tasks/console.rake
|
327
292
|
- lib/tasks/rspec.rake
|
328
293
|
- lib/tasks/rubocop.rake
|
329
294
|
homepage: https://github.com/bkuhlmann/milestoner
|
@@ -336,9 +301,9 @@ require_paths:
|
|
336
301
|
- lib
|
337
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
338
303
|
requirements:
|
339
|
-
- - "
|
304
|
+
- - "~>"
|
340
305
|
- !ruby/object:Gem::Version
|
341
|
-
version: '
|
306
|
+
version: '2.3'
|
342
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
343
308
|
requirements:
|
344
309
|
- - ">="
|
@@ -346,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
346
311
|
version: '0'
|
347
312
|
requirements: []
|
348
313
|
rubyforge_project:
|
349
|
-
rubygems_version: 2.5.
|
314
|
+
rubygems_version: 2.5.1
|
350
315
|
signing_key:
|
351
316
|
specification_version: 4
|
352
317
|
summary: A command line interface for releasing Git repository milestones.
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED
Binary file
|