milestoner 1.2.0 → 2.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: 5c64c1d287d178bb4a94d22d147ab4cf0209596c
4
- data.tar.gz: c7673a64ee8582a831713ea1d844dbed877059fe
3
+ metadata.gz: f12b4a3234f91869a03f18bc09985b9d02be75fb
4
+ data.tar.gz: a9569f873f4daf4f01e0c9702f8419e48dd0aeb9
5
5
  SHA512:
6
- metadata.gz: 42b4ac251e73c7043c84cfabd70f6542f9b737227f49378cb6557e9328161be8d20465a4554cc9d63751dd3ff3e59998a88d1b37145b860fbbf0bfb1bb1c591a
7
- data.tar.gz: 2c5a5e98610837905397ca9b69dd45b3a27657ff28871df493cc713b7dc8048793cf688e62549a3437adba0c9a95f462e019a95f8f2285e16b64ed0359d60f8f
6
+ metadata.gz: 8d42da86c3180c0f427c860fb3028c155bab76064f9f0a8c9d13059aac7eebfb653cf22d05dd357c4ba91b50dc2e2a85314cdd47afc66db069d578449ee05d0c
7
+ data.tar.gz: c653ec5f2de7f5f68c4e81f3fbf1f948a24f03c314b0ed851739f88f25169a105534cc91fadd5d8b1a41eb44fa1c89bfb8812a2cd4dc23d1e16db108a8ee655b
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Code Climate GPA](https://codeclimate.com/github/bkuhlmann/milestoner.svg)](https://codeclimate.com/github/bkuhlmann/milestoner)
5
5
  [![Code Climate Coverage](https://codeclimate.com/github/bkuhlmann/milestoner/coverage.svg)](https://codeclimate.com/github/bkuhlmann/milestoner)
6
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)
7
+ [![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/milestoner.svg)](https://travis-ci.org/bkuhlmann/milestoner)
8
8
  [![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](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>.</maintenance>`.
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 (prefixes can be
40
- customized): "Fixed", "Added", "Updated", "Removed", "Refactored".
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. [MRI 2.x.x](http://www.ruby-lang.org).
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
- release as it handles all of the steps necessary for tagging and pushing a new release. Should individual steps
93
- be needed, then the `--tag` and `--push` options are available.
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>.</maintenance>`. Example: `0.1.0`.
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:
@@ -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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "milestoner/aids/git"
2
4
  require "milestoner/errors/base"
3
5
  require "milestoner/errors/configuration"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  module Aids
3
5
  # Augments an object with Git support.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "yaml"
2
4
  require "thor"
3
5
  require "thor/actions"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  # Default configuration for gem with support for custom settings.
3
5
  class Configuration
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  module Errors
3
5
  # The base class for all Milestoner related errors.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  module Errors
3
5
  # Raised for invalid gem configuration.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  module Errors
3
5
  # Raised for duplicate tags.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  module Errors
3
5
  # Raised for projects not initialized as Git repositories.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  module Errors
3
5
  # Raised for invalid version formats.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  # Gem identity information.
3
5
  module Identity
@@ -10,7 +12,7 @@ module Milestoner
10
12
  end
11
13
 
12
14
  def self.version
13
- "1.2.0"
15
+ "2.0.0"
14
16
  end
15
17
 
16
18
  def self.version_label
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  # Handles the tagging and pushing of a milestone to a remote repository.
3
5
  class Publisher
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Milestoner
2
4
  # Handles publishing of Git tags to remote repository.
3
5
  class Pusher
@@ -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
- full_command = "git log --oneline --no-merges --format='%s' #{tag_command}"
78
- full_command.gsub!(tag_command, "") unless tagged?
80
+ commits_command = tagged? ? "#{log_command} #{tag_command}" : log_command
79
81
 
80
- `#{full_command}`.split("\n")
82
+ `#{commits_command}`.split("\n")
81
83
  end
82
84
 
83
85
  def build_commit_prefix_groups
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ desc "Open IRB console for gem development environment"
4
+ task :console do
5
+ require "irb"
6
+ require "milestoner"
7
+ ARGV.clear
8
+ IRB.start
9
+ end
@@ -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,36 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milestoner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
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: '2.1'
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: '2.1'
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: '0'
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.0
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.
Binary file
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file