runger_release_assistant 1.0.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
  SHA256:
3
- metadata.gz: fb84a2deca6ff838d1daae768c394bc0bb90e720f78852689ed1915714eb4d3b
4
- data.tar.gz: 6db7e0ebc1ed0239584f5ea89ddefa9c9b051b169005a079033d6a34ab221c4b
3
+ metadata.gz: 1fd1765bf53528b6bbeead8fb86e0bb4724e5099754c5a13718695bf995d1350
4
+ data.tar.gz: bc7792a78e64e251716e833968652b613963f3b28c9f86305e3987ee30f4dc1e
5
5
  SHA512:
6
- metadata.gz: ef38b536bd49bfa2cf09cccf3217f9d4ffcbe661d598abeada58a2de273a91499e9bb605e50424132943ff399515e847e937dd9c2cccc514575bd4b6113a7061
7
- data.tar.gz: 219343ffdd17e7c48882bf296bcfdf71f54ded9c32320e062eab534343db0dc331cd83a4475dd4b376102048a432ff3fc594c465ff9a5b2720e67cb4c0e31225
6
+ metadata.gz: e40acdfe2472e00fbf65a39b9227442dcbd1f0a83bac348fcf4e492a3edb197dcc105b4a259dc512d612cabeafebdd0fc466299b07498241953de3493b72a4fc
7
+ data.tar.gz: cf0d5f5e637324e250b0575bf99382ad10bded2e1fe17484b13264f3786eb2ca399000402bebb1e3ce473a071ad3f3c5872429d15fbd8f3902a94e81c9c7926c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## v2.0.0 (2025-02-05)
2
+ - **BREAKING:** Source post-release command from `~/code/dotfiles` [`runger-config`](https://github.com/davidrunger/dotfiles/blob/cd02495fb2ad742cc1e85cc65aea5ff711485981/crystal-programs/runger-config.cr), rather than always running `main` command (if available).
3
+
1
4
  ## v1.0.0 (2025-01-29)
2
5
  - **BREAKING:** Run `main` (not `safe`) after releasing.
3
6
 
data/Gemfile CHANGED
@@ -8,9 +8,14 @@ gemspec
8
8
 
9
9
  group :development, :test do
10
10
  gem 'bundler', require: false
11
+ # Remove if/when byebug brings in this dependency for us.
12
+ gem 'irb'
11
13
  gem 'pry'
12
- gem 'pry-byebug'
14
+ # Go back to upstream if/when https://github.com/deivid-rodriguez/pry-byebug/pull/ 428 is merged.
15
+ gem 'pry-byebug', github: 'davidrunger/pry-byebug'
13
16
  gem 'rake', require: false
17
+ # Remove if/when byebug brings in this dependency for us.
18
+ gem 'reline'
14
19
  gem 'rspec', require: false
15
20
  gem 'rubocop', require: false
16
21
  gem 'rubocop-performance', require: false
data/Gemfile.lock CHANGED
@@ -1,7 +1,15 @@
1
+ GIT
2
+ remote: https://github.com/davidrunger/pry-byebug.git
3
+ revision: f6f73023ba081630ddee32ae4399fb31706f074f
4
+ specs:
5
+ pry-byebug (3.10.1)
6
+ byebug (>= 11.0)
7
+ pry (>= 0.13)
8
+
1
9
  PATH
2
10
  remote: .
3
11
  specs:
4
- runger_release_assistant (1.0.0)
12
+ runger_release_assistant (2.0.0)
5
13
  activesupport (>= 6)
6
14
  memo_wise (>= 1.7)
7
15
  rainbow (>= 3.0)
@@ -31,10 +39,16 @@ GEM
31
39
  coderay (1.1.3)
32
40
  concurrent-ruby (1.3.5)
33
41
  connection_pool (2.5.0)
42
+ date (3.4.1)
34
43
  diff-lcs (1.5.1)
35
44
  drb (2.2.1)
36
45
  i18n (1.14.7)
37
46
  concurrent-ruby (~> 1.0)
47
+ io-console (0.8.0)
48
+ irb (1.15.1)
49
+ pp (>= 0.6.0)
50
+ rdoc (>= 4.0.0)
51
+ reline (>= 0.4.2)
38
52
  json (2.9.1)
39
53
  language_server-protocol (3.17.0.4)
40
54
  logger (1.6.5)
@@ -45,17 +59,24 @@ GEM
45
59
  parser (3.3.7.0)
46
60
  ast (~> 2.4.1)
47
61
  racc
62
+ pp (0.6.2)
63
+ prettyprint
64
+ prettyprint (0.2.0)
48
65
  prism (1.3.0)
49
- pry (0.14.2)
66
+ pry (0.15.2)
50
67
  coderay (~> 1.1)
51
68
  method_source (~> 1.0)
52
- pry-byebug (3.10.1)
53
- byebug (~> 11.0)
54
- pry (>= 0.13, < 0.15)
69
+ psych (5.2.3)
70
+ date
71
+ stringio
55
72
  racc (1.8.1)
56
73
  rainbow (3.1.1)
57
74
  rake (13.2.1)
75
+ rdoc (6.11.0)
76
+ psych (>= 4.0.0)
58
77
  regexp_parser (2.10.0)
78
+ reline (0.6.0)
79
+ io-console (~> 0.5)
59
80
  rspec (3.13.0)
60
81
  rspec-core (~> 3.13.0)
61
82
  rspec-expectations (~> 3.13.0)
@@ -68,15 +89,15 @@ GEM
68
89
  rspec-mocks (3.13.2)
69
90
  diff-lcs (>= 1.2.0, < 2.0)
70
91
  rspec-support (~> 3.13.0)
71
- rspec-support (3.13.1)
72
- rubocop (1.71.0)
92
+ rspec-support (3.13.2)
93
+ rubocop (1.71.2)
73
94
  json (~> 2.3)
74
95
  language_server-protocol (>= 3.17.0)
75
96
  parallel (~> 1.10)
76
97
  parser (>= 3.3.0.2)
77
98
  rainbow (>= 2.2.2, < 4.0)
78
99
  regexp_parser (>= 2.9.3, < 3.0)
79
- rubocop-ast (>= 1.36.2, < 2.0)
100
+ rubocop-ast (>= 1.38.0, < 2.0)
80
101
  ruby-progressbar (~> 1.7)
81
102
  unicode-display_width (>= 2.4.0, < 4.0)
82
103
  rubocop-ast (1.38.0)
@@ -87,11 +108,12 @@ GEM
87
108
  rubocop-rspec (3.4.0)
88
109
  rubocop (~> 1.61)
89
110
  ruby-progressbar (1.13.0)
90
- runger_style (4.2.2)
111
+ runger_style (4.3.0)
91
112
  prism (>= 0.24.0)
92
113
  rubocop (>= 1.68.0)
93
114
  securerandom (0.4.1)
94
115
  slop (4.10.1)
116
+ stringio (3.1.2)
95
117
  tzinfo (2.0.6)
96
118
  concurrent-ruby (~> 1.0)
97
119
  unicode-display_width (3.1.4)
@@ -104,9 +126,11 @@ PLATFORMS
104
126
 
105
127
  DEPENDENCIES
106
128
  bundler
129
+ irb
107
130
  pry
108
- pry-byebug
131
+ pry-byebug!
109
132
  rake
133
+ reline
110
134
  rspec
111
135
  rubocop
112
136
  rubocop-performance
@@ -124,9 +148,12 @@ CHECKSUMS
124
148
  coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
125
149
  concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
126
150
  connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
151
+ date (3.4.1) sha256=bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f
127
152
  diff-lcs (1.5.1) sha256=273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe
128
153
  drb (2.2.1) sha256=e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340
129
154
  i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
155
+ io-console (0.8.0) sha256=cd6a9facbc69871d69b2cb8b926fc6ea7ef06f06e505e81a64f14a470fddefa2
156
+ irb (1.15.1) sha256=d9bca745ac4207a8b728a52b98b766ca909b86ff1a504bcde3d6f8c84faae890
130
157
  json (2.9.1) sha256=d2bdef4644052fad91c1785d48263756fe32fcac08b96a20bb15840e96550d11
131
158
  language_server-protocol (3.17.0.4) sha256=c484626478664fd13482d8180947c50a8590484b1258b99b7aedb3b69df89669
132
159
  logger (1.6.5) sha256=c3cfe56d01656490ddd103d38b8993d73d86296adebc5f58cefc9ec03741e56b
@@ -135,27 +162,33 @@ CHECKSUMS
135
162
  minitest (5.25.4) sha256=9cf2cae25ac4dfc90c988ebc3b917f53c054978b673273da1bd20bcb0778f947
136
163
  parallel (1.26.3) sha256=d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef
137
164
  parser (3.3.7.0) sha256=7449011771e3e7881297859b849de26a6f4fccd515bece9520a87e7d2116119b
165
+ pp (0.6.2) sha256=947ec3120c6f92195f8ee8aa25a7b2c5297bb106d83b41baa02983686577b6ff
166
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
138
167
  prism (1.3.0) sha256=b11620829831b1cb7e6c9b46c81ff8a6e36ccb3f888f164485eb7351f386273a
139
- pry (0.14.2) sha256=c4fe54efedaca1d351280b45b8849af363184696fcac1c72e0415f9bdac4334d
140
- pry-byebug (3.10.1) sha256=c8f975c32255bfdb29e151f5532130be64ff3d0042dc858d0907e849125581f8
168
+ pry (0.15.2) sha256=12d54b8640d3fa29c9211dd4ffb08f3fd8bf7a4fd9b5a73ce5b59c8709385b6b
169
+ pry-byebug (3.10.1)
170
+ psych (5.2.3) sha256=84a54bb952d14604fea22d99938348814678782f58b12648fcdfa4d2fce859ee
141
171
  racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
142
172
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
143
173
  rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
174
+ rdoc (6.11.0) sha256=bec66fb9b019be64f7ba7d2cd2aecb283a3a01fef23a95b33e2349c6d1aa0040
144
175
  regexp_parser (2.10.0) sha256=cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61
176
+ reline (0.6.0) sha256=57620375dcbe56ec09bac7192bfb7460c716bbf0054dc94345ecaa5438e539d2
145
177
  rspec (3.13.0) sha256=d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993
146
178
  rspec-core (3.13.2) sha256=94fbda6e4738e478f1c7532b7cc241272fcdc8b9eac03a97338b1122e4573300
147
179
  rspec-expectations (3.13.3) sha256=0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58
148
180
  rspec-mocks (3.13.2) sha256=2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef
149
- rspec-support (3.13.1) sha256=48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f
150
- rubocop (1.71.0) sha256=e19679efd447346ac476122313d3788ae23c38214790bcf660e984c747608bf0
181
+ rspec-support (3.13.2) sha256=cea3a2463fd9b84b9dcc9685efd80ea701aa8f7b3decb3b3ce795ed67737dbec
182
+ rubocop (1.71.2) sha256=9a7b7501aac661a338ed7ff2a5eba78e581759e1f0d3c82362b2ca217ed3f97f
151
183
  rubocop-ast (1.38.0) sha256=4fdf6792fe443a9a18acb12dbc8225d0d64cd1654e41fedb30e79c18edbb26ae
152
184
  rubocop-performance (1.23.1) sha256=f22f86a795f5e6a6180aac2c6fc172534b173a068d6ed3396d6460523e051b82
153
185
  rubocop-rspec (3.4.0) sha256=8721c13b6a8c9530a7ac481cea9423022f946fcf72428bda8289f8b57e4d4885
154
186
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
155
- runger_release_assistant (1.0.0)
156
- runger_style (4.2.2) sha256=23bb4c2b8875d79113f72179a7e4ad96bd5ecde8d7a54bd18f4e60c2ab65dd64
187
+ runger_release_assistant (2.0.0)
188
+ runger_style (4.3.0) sha256=543c2414626d9084fef8fd057bf561c702e395f35e7af4ee6ee403276cf60614
157
189
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
158
190
  slop (4.10.1) sha256=844322b5ffcf17ed4815fdb173b04a20dd82b4fd93e3744c88c8fafea696d9c7
191
+ stringio (3.1.2) sha256=204f1828f85cdb39d57cac4abc6dc44b04505a223f131587f2e20ae3729ba131
159
192
  tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
160
193
  unicode-display_width (3.1.4) sha256=8caf2af1c0f2f07ec89ef9e18c7d88c2790e217c482bfc78aaa65eadd5415ac1
161
194
  unicode-emoji (4.0.4) sha256=2c2c4ef7f353e5809497126285a50b23056cc6e61b64433764a35eff6c36532a
data/README.md CHANGED
@@ -5,11 +5,8 @@
5
5
  This is a CLI tool that I (David Runger) use to automate the release of new gem
6
6
  versions via git/GitHub and (optionally) via RubyGems.
7
7
 
8
- **I do not recommend this gem for general use.**
9
-
10
8
  <!--ts-->
11
9
  * [runger_release_assistant](#runger_release_assistant)
12
- * [Not recommended for general use!](#not-recommended-for-general-use)
13
10
  * [Dependencies](#dependencies)
14
11
  * [Installation](#installation)
15
12
  * [Global installation](#global-installation)
@@ -18,30 +15,17 @@ versions via git/GitHub and (optionally) via RubyGems.
18
15
  * [Basic usage](#basic-usage)
19
16
  * [Available options and examples](#available-options-and-examples)
20
17
  * [Config](#config)
18
+ * [Post-release command](#post-release-command)
21
19
  * [Using with RubyGems](#using-with-rubygems)
22
20
  * [Development](#development)
23
21
  * [Contributing](#contributing)
24
22
  * [License](#license)
25
23
 
26
24
  <!-- Created by https://github.com/ekalinin/github-markdown-toc -->
27
- <!-- Added by: david, at: Tue Jul 23 12:46:01 AM CDT 2024 -->
25
+ <!-- Added by: david, at: Wed Feb 5 04:11:40 AM CST 2025 -->
28
26
 
29
27
  <!--te-->
30
28
 
31
- ## Not recommended for general use!
32
-
33
- This gem is somewhat customized and built specifically for my (David Runger's)
34
- custom and idiosyncratic workflow. For example, after releasing, this gem will
35
- automatically execute a `main` command, if one is present on the machine. You
36
- might not want this behavior (if you have a `main` command that you _don't_ want
37
- to be invoked after a release).
38
-
39
- Realistically speaking, though, this gem actually probably could be used by
40
- anyone, since most of this gem's functionality actually is built in a
41
- generalized way that I think won't conflict with most other people's workflows,
42
- but, still, I'm guessing that there are other, better tools available, anyway,
43
- and, so, on net, I just wouldn't recommend that others use this gem.
44
-
45
29
  ## Dependencies
46
30
 
47
31
  This gem assumes that you have `git` installed.
@@ -142,6 +126,10 @@ automatically detect as the "primary branch" any one of the following: `main`,
142
126
  and if you also want `git: true` and `rubygems: false`, then you don't need to
143
127
  create a config file.
144
128
 
129
+ ## Post-release command
130
+
131
+ If you specify a `post-release-command` in your `~/code/dotfiles` [`runger-config`](https://github.com/davidrunger/dotfiles/blob/cd02495fb2ad742cc1e85cc65aea5ff711485981/crystal-programs/runger-config.cr), then `runger_release_assistant` will execute that command after a successful release.
132
+
145
133
  ## Using with RubyGems
146
134
 
147
135
  By default, `runger_release_assistant` assumes that you only want to "release" your gem via GitHub. If
@@ -2,6 +2,6 @@
2
2
 
3
3
  # rubocop:disable Style/StaticClass
4
4
  class RungerReleaseAssistant
5
- VERSION = '1.0.0'
5
+ VERSION = '2.0.0'
6
6
  end
7
7
  # rubocop:enable Style/StaticClass
@@ -75,8 +75,6 @@ class RungerReleaseAssistant
75
75
  print_release_info
76
76
  confirm_release_looks_good
77
77
  verify_repository_cleanliness
78
- remember_initial_branch
79
- switch_to_main
80
78
 
81
79
  update_changelog_for_release
82
80
  update_version_file(next_version)
@@ -98,8 +96,7 @@ class RungerReleaseAssistant
98
96
  ERROR_LOG
99
97
  restore_and_abort(exit_code: 1)
100
98
  else
101
- run_main_command
102
- switch_to_initial_branch
99
+ run_post_release_command
103
100
  end
104
101
 
105
102
  private
@@ -147,18 +144,10 @@ class RungerReleaseAssistant
147
144
  fail 'There are staged changes!' if !system('git diff-index --quiet --cached HEAD')
148
145
  end
149
146
 
150
- def remember_initial_branch
151
- @initial_branch = current_branch
152
- end
153
-
154
147
  def current_branch
155
148
  system_output('git branch --show-current')
156
149
  end
157
150
 
158
- def switch_to_main
159
- execute_command("git checkout #{primary_branch}")
160
- end
161
-
162
151
  memo_wise \
163
152
  def primary_branch
164
153
  @options[:primary_branch] ||
@@ -228,14 +217,14 @@ class RungerReleaseAssistant
228
217
  execute_command('bundle exec rake release', show_system_output: true)
229
218
  end
230
219
 
231
- def run_main_command
232
- if system('which main')
233
- execute_command('main', clear_bundler_context: true)
234
- end
235
- end
220
+ def run_post_release_command
221
+ post_release_command_query_command =
222
+ 'runger-config --directory ~/code/dotfiles post-release-command'
236
223
 
237
- def switch_to_initial_branch
238
- execute_command("git checkout #{@initial_branch}") if @initial_branch
224
+ if system("#{post_release_command_query_command} --silent")
225
+ post_release_command = `#{post_release_command_query_command}`.rstrip
226
+ execute_command(post_release_command, clear_bundler_context: true)
227
+ end
239
228
  end
240
229
 
241
230
  def system_output(command)
@@ -280,7 +269,6 @@ class RungerReleaseAssistant
280
269
  execute_command("git checkout Gemfile.lock #{changelog_path} #{version_file_path}")
281
270
  end
282
271
 
283
- switch_to_initial_branch
284
272
  exit(exit_code)
285
273
  end
286
274
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runger_release_assistant
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Runger
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-01-30 00:00:00.000000000 Z
10
+ date: 2025-02-05 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport