semmy 1.1.0 → 1.2.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/CHANGELOG.md +5 -9
- data/README.md +25 -0
- data/lib/semmy/configuration.rb +2 -0
- data/lib/semmy/tasks.rb +8 -6
- data/lib/semmy/tasks/branches.rb +34 -6
- data/lib/semmy/version.rb +1 -1
- data/lib/semmy/version_string.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a9c4378a310880351973ba7495052ba8732629137915052be599823e74436c5
|
4
|
+
data.tar.gz: f3225ce6b30493cd39ca8b53a1751367874bb4cc195944eaeefd9c8b3881f31d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdc2c3cb16604b4204a69de93c0b6d362487d743943e7d8da4bb40073fc4efcdef4d00b1fabf75a5311966edcd884607fcaf310545842a38f76a3517592fcfd4
|
7
|
+
data.tar.gz: 3ca48dbd6d46c1ef27c493f0d45404344ee13bbb6a2258029ecf6dea8eed8bc7d462f7a7051380ccf59f3bff041038c7b4b6c75ae32819ad7b6b08cb649cd1bb
|
data/CHANGELOG.md
CHANGED
@@ -1,17 +1,13 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
### Version 1.
|
3
|
+
### Version 1.2.0
|
4
4
|
|
5
|
-
2019-01-
|
5
|
+
2019-01-24
|
6
6
|
|
7
|
-
[Compare changes](https://github.com/tf/semmy/compare/1-
|
7
|
+
[Compare changes](https://github.com/tf/semmy/compare/1-1-stable...v1.2.0)
|
8
8
|
|
9
|
-
-
|
10
|
-
branch (e.g. `2-x-stable`).
|
11
|
-
|
12
|
-
- Bug fix: Ensure test install of gem during `release:prepare` does not hang
|
13
|
-
waiting for interactive input on uninstall.
|
9
|
+
- Add config option to automatically push branches after release.
|
14
10
|
|
15
11
|
See
|
16
|
-
[1-
|
12
|
+
[1-1-stable branch](https://github.com/tf/semmy/blob/1-1-stable/CHANGELOG.md)
|
17
13
|
for previous changes.
|
data/README.md
CHANGED
@@ -67,6 +67,15 @@ Add the tasks to your Rakefile:
|
|
67
67
|
|
68
68
|
Semmy::Tasks.install
|
69
69
|
|
70
|
+
You can pass config options:
|
71
|
+
|
72
|
+
# Rakefile
|
73
|
+
require 'semmy'
|
74
|
+
|
75
|
+
Semmy::Tasks.install do |config|
|
76
|
+
# see Semmy::Configuration for options
|
77
|
+
end
|
78
|
+
|
70
79
|
## Usage
|
71
80
|
|
72
81
|
Semmy defines a new task to prepare a release:
|
@@ -100,6 +109,22 @@ The resulting commit graph looks like:
|
|
100
109
|
* (v1.2.0, 1-2-stable) Prepare 1.2.0 release
|
101
110
|
* Some new feature
|
102
111
|
|
112
|
+
By default, the new stable branch and the bump commit are not pushed
|
113
|
+
automatically. This can be activated by setting the
|
114
|
+
`push_branches_after_release` config option to `true`.
|
115
|
+
|
116
|
+
This will be the new default once Semmy 2.0 is released. You can opt
|
117
|
+
into the future default behavior globally without changing config
|
118
|
+
options on the project level by setting the
|
119
|
+
`SEMMY_PUSH_BRANCHES_AFTER_RELEASE` environment variable to `on`.
|
120
|
+
|
121
|
+
Branches will be pushed to the remote passed as an argument to the
|
122
|
+
`release` task:
|
123
|
+
|
124
|
+
$ rake release[upstream]
|
125
|
+
|
126
|
+
By default, branches are pushed to `origin`.
|
127
|
+
|
103
128
|
### Releasing a Patch Level Version
|
104
129
|
|
105
130
|
Assume an important bug fix has been added to `master`:
|
data/lib/semmy/configuration.rb
CHANGED
@@ -3,6 +3,7 @@ module Semmy
|
|
3
3
|
attr_accessor :development_version_suffix
|
4
4
|
|
5
5
|
attr_accessor :stable_branch_name
|
6
|
+
attr_accessor :push_branches_after_release
|
6
7
|
|
7
8
|
attr_accessor :prepare_commit_message
|
8
9
|
attr_accessor :bump_commit_message
|
@@ -25,6 +26,7 @@ module Semmy
|
|
25
26
|
@development_version_suffix = 'dev'
|
26
27
|
|
27
28
|
@stable_branch_name = '%{major}-%{minor}-stable'
|
29
|
+
@push_branches_after_release = ENV['SEMMY_PUSH_BRANCHES_AFTER_RELEASE'] == 'on'
|
28
30
|
|
29
31
|
@prepare_commit_message = 'Prepare %{version} release'
|
30
32
|
@bump_commit_message = 'Bump version to %{version}'
|
data/lib/semmy/tasks.rb
CHANGED
@@ -49,22 +49,24 @@ module Semmy
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
task 'release:after:master' => [
|
52
|
+
task 'release:after:master', [:remote] => [
|
53
53
|
'semmy:branches:create_stable',
|
54
54
|
'semmy:versioning:bump_minor',
|
55
55
|
'semmy:changelog:update_for_minor',
|
56
|
-
'semmy:commit:bump'
|
56
|
+
'semmy:commit:bump',
|
57
|
+
'semmy:branches:push_master',
|
58
|
+
'semmy:branches:push_previous_stable'
|
57
59
|
]
|
58
60
|
|
59
61
|
desc 'Prepare repository for development of next verion'
|
60
|
-
task 'release:after' do
|
62
|
+
task 'release:after', [:remote] do |_, args|
|
61
63
|
if Scm.on_master? || Scm.on_major_version_stable?(config.stable_branch_name)
|
62
|
-
Rake.application['release:after:master'].invoke
|
64
|
+
Rake.application['release:after:master'].invoke(args[:remote])
|
63
65
|
end
|
64
66
|
end
|
65
67
|
|
66
|
-
task 'release' do
|
67
|
-
Rake.application['release:after'].invoke
|
68
|
+
task 'release', [:remote] do |_, args|
|
69
|
+
Rake.application['release:after'].invoke(args[:remote])
|
68
70
|
end
|
69
71
|
|
70
72
|
task 'bump:patch' => [
|
data/lib/semmy/tasks/branches.rb
CHANGED
@@ -6,19 +6,47 @@ module Semmy
|
|
6
6
|
def define
|
7
7
|
namespace 'branches' do
|
8
8
|
task 'create_stable' do
|
9
|
-
|
10
|
-
VersionString.components(Project.version)
|
9
|
+
Shell.info("Creating stable branch #{stable_branch_name}.")
|
11
10
|
|
12
|
-
|
11
|
+
git.branch(stable_branch_name).create
|
12
|
+
end
|
13
|
+
|
14
|
+
task 'push_master', [:remote] do |_, args|
|
15
|
+
push_branch(args[:remote], 'master')
|
16
|
+
end
|
13
17
|
|
14
|
-
|
18
|
+
task 'push_previous_stable', [:remote] do |_, args|
|
19
|
+
push_branch(args[:remote], previous_stable_branch_name)
|
15
20
|
end
|
16
21
|
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def stable_branch_name
|
27
|
+
VersionString.stable_branch_name(Project.version,
|
28
|
+
config.stable_branch_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
def previous_stable_branch_name
|
32
|
+
VersionString.previous_stable_branch_name(Project.version,
|
33
|
+
config.stable_branch_name)
|
34
|
+
end
|
17
35
|
|
18
|
-
|
19
|
-
|
36
|
+
def push_branch(remote, name)
|
37
|
+
remote ||= 'origin'
|
38
|
+
|
39
|
+
if config.push_branches_after_release
|
40
|
+
Shell.info("Pushing #{name} to #{remote}.")
|
41
|
+
git.push(remote, name)
|
42
|
+
else
|
43
|
+
Shell.info("NOTE: Remember to push #{name} to #{remote}.")
|
20
44
|
end
|
21
45
|
end
|
46
|
+
|
47
|
+
def git
|
48
|
+
Git.open('.')
|
49
|
+
end
|
22
50
|
end
|
23
51
|
end
|
24
52
|
end
|
data/lib/semmy/version.rb
CHANGED
data/lib/semmy/version_string.rb
CHANGED
@@ -62,6 +62,10 @@ module Semmy
|
|
62
62
|
components.join('.')
|
63
63
|
end
|
64
64
|
|
65
|
+
def stable_branch_name(version, stable_branch_name_pattern)
|
66
|
+
stable_branch_name_pattern % VersionString.components(version)
|
67
|
+
end
|
68
|
+
|
65
69
|
def previous_stable_branch_name(version, stable_branch_name_pattern)
|
66
70
|
stable_branch_name_pattern % previous_minor_version_components(version)
|
67
71
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semmy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Fischbach
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|