kettle-dev 1.1.19 → 1.1.21

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.
data/CHANGELOG.md CHANGED
@@ -17,136 +17,231 @@ Please file a bug if you notice a violation of semantic versioning.
17
17
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
18
18
 
19
19
  ## [Unreleased]
20
+
20
21
  ### Added
22
+
21
23
  ### Changed
24
+
22
25
  ### Deprecated
26
+
23
27
  ### Removed
28
+
24
29
  ### Fixed
30
+
25
31
  ### Security
26
32
 
33
+ ## [1.1.21] - 2025-09-16
34
+
35
+ - TAG: [v1.1.21][1.1.21t]
36
+ - COVERAGE: 96.83% -- 3661/3781 lines in 25 files
37
+ - BRANCH COVERAGE: 81.65% -- 1504/1842 branches in 25 files
38
+ - 77.01% documented
39
+
40
+ ### Changed
41
+
42
+ - improved templating
43
+ - improved documentation
44
+
45
+ ### Fixed
46
+
47
+ - kettle-readme-backers: read correct config file
48
+ - .opencollective.yml in project root
49
+
50
+ ## [1.1.20] - 2025-09-15
51
+
52
+ - TAG: [v1.1.20][1.1.20t]
53
+ - COVERAGE: 96.80% -- 3660/3781 lines in 25 files
54
+ - BRANCH COVERAGE: 81.65% -- 1504/1842 branches in 25 files
55
+ - 77.01% documented
56
+
57
+ ### Added
58
+
59
+ - Allow reformating of CHANGELOG.md without version bump
60
+ - `--include=GLOB` includes files not otherwise included in default template
61
+ - more test coverage
62
+
63
+ ### Fixed
64
+
65
+ - Add .licenserc.yaml to gem package
66
+ - Handling of GFM fenced code blocks in CHANGELOG.md
67
+ - Handling of nested list items in CHANGELOG.md
68
+ - Handling of blank lines around all headings in CHANGELOG.md
69
+
27
70
  ## [1.1.19] - 2025-09-14
71
+
28
72
  - TAG: [v1.1.19][1.1.19t]
29
73
  - COVERAGE: 96.58% -- 3531/3656 lines in 25 files
30
74
  - BRANCH COVERAGE: 81.11% -- 1443/1779 branches in 25 files
31
75
  - 76.88% documented
76
+
32
77
  ### Added
78
+
33
79
  - documentation of vcr on Ruby 2.4
34
80
  - Apache SkyWalking Eyes dependency license check
35
81
  - Added to template
82
+
36
83
  ### Fixed
84
+
37
85
  - fix duplicate headings in CHANGELOG.md Unreleased section
38
86
 
39
87
  ## [1.1.18] - 2025-09-12
88
+
40
89
  - TAG: [v1.1.18][1.1.18t]
41
90
  - COVERAGE: 96.24% -- 3477/3613 lines in 25 files
42
91
  - BRANCH COVERAGE: 81.01% -- 1425/1759 branches in 25 files
43
92
  - 76.88% documented
93
+
44
94
  ### Removed
95
+
45
96
  - remove patreon link from README template
46
97
 
47
98
  ## [1.1.17] - 2025-09-11
99
+
48
100
  - TAG: [v1.1.17][1.1.17t]
49
101
  - COVERAGE: 96.29% -- 3479/3613 lines in 25 files
50
102
  - BRANCH COVERAGE: 81.01% -- 1425/1759 branches in 25 files
51
103
  - 76.88% documented
104
+
52
105
  ### Added
106
+
53
107
  - improved documentation
54
108
  - better organized readme
55
109
  - badges are more clear & new badge for Ruby Friends Squad on Daily.dev
56
110
  - https://app.daily.dev/squads/rubyfriends
111
+
57
112
  ### Changed
113
+
58
114
  - update template to version_gem v1.1.9
59
115
  - right-size funding commit message append width
116
+
60
117
  ### Removed
118
+
61
119
  - remove patreon link from README
62
120
 
63
121
  ## [1.1.16] - 2025-09-10
122
+
64
123
  - TAG: [v1.1.16][1.1.16t]
65
124
  - COVERAGE: 96.24% -- 3477/3613 lines in 25 files
66
125
  - BRANCH COVERAGE: 81.01% -- 1425/1759 branches in 25 files
67
126
  - 76.88% documented
127
+
68
128
  ### Fixed
129
+
69
130
  - handling of alternate format of Unreleased section in CHANGELOG.md
70
131
 
71
132
  ## [1.1.15] - 2025-09-10
133
+
72
134
  - TAG: [v1.1.15][1.1.15t]
73
135
  - COVERAGE: 96.29% -- 3479/3613 lines in 25 files
74
136
  - BRANCH COVERAGE: 80.96% -- 1424/1759 branches in 25 files
75
137
  - 76.88% documented
138
+
76
139
  ### Fixed
140
+
77
141
  - fix appraisals for Ruby v2.7 to use correct x_std_libs
78
142
 
79
143
  ## [1.1.14] - 2025-09-10
144
+
80
145
  - TAG: [v1.1.14][1.1.14t]
81
146
  - COVERAGE: 96.24% -- 3477/3613 lines in 25 files
82
147
  - BRANCH COVERAGE: 80.96% -- 1424/1759 branches in 25 files
83
148
  - 76.88% documented
149
+
84
150
  ### Changed
151
+
85
152
  - use current x_std_libs modular gemfile for all appraisals that are pinned to current ruby
86
153
  - fix appraisals for Ruby v2 to use correct version of erb
87
154
 
88
155
  ## [1.1.13] - 2025-09-09
156
+
89
157
  - TAG: [v1.1.13][1.1.13t]
90
158
  - COVERAGE: 96.29% -- 3479/3613 lines in 25 files
91
159
  - BRANCH COVERAGE: 80.96% -- 1424/1759 branches in 25 files
92
160
  - 76.88% documented
161
+
93
162
  ### Fixed
163
+
94
164
  - include .rubocop_rspec.yml during install / template task's file copy
95
165
  - kettle-dev-setup now honors `--force` option
96
166
 
97
167
  ## [1.1.12] - 2025-09-09
168
+
98
169
  - TAG: [v1.1.12][1.1.12t]
99
170
  - COVERAGE: 94.84% -- 3422/3608 lines in 25 files
100
171
  - BRANCH COVERAGE: 78.97% -- 1386/1755 branches in 25 files
101
172
  - 76.88% documented
173
+
102
174
  ### Changed
175
+
103
176
  - improve Gemfile updates during kettle-dev-setup
104
177
  - git origin-based funding_org derivation during setup
105
178
 
106
179
  ## [1.1.11] - 2025-09-08
180
+
107
181
  - TAG: [v1.1.11][1.1.11t]
108
182
  - COVERAGE: 96.56% -- 3396/3517 lines in 24 files
109
183
  - BRANCH COVERAGE: 81.33% -- 1385/1703 branches in 24 files
110
184
  - 77.06% documented
185
+
111
186
  ### Changed
187
+
112
188
  - move kettle-dev-setup logic into Kettle::Dev::SetupCLI
189
+
113
190
  ### Fixed
191
+
114
192
  - gem dependency detection in kettle-dev-setup to prevent duplication
115
193
 
116
194
  ## [1.1.10] - 2025-09-08
195
+
117
196
  - TAG: [v1.1.10][1.1.10t]
118
197
  - COVERAGE: 97.14% -- 3256/3352 lines in 23 files
119
198
  - BRANCH COVERAGE: 81.91% -- 1345/1642 branches in 23 files
120
199
  - 76.65% documented
200
+
121
201
  ### Added
202
+
122
203
  - Improve documentation
123
204
  - Fix an internal link in README.md
205
+
124
206
  ### Changed
207
+
125
208
  - template task no longer overwrites CHANGELOG.md completely
126
209
  - attempts to retain existing release notes content
210
+
127
211
  ### Fixed
212
+
128
213
  - Fix a typo in the README.md
214
+
129
215
  ### Fixed
216
+
130
217
  - fix typo in the path to x_std_libs.gemfile
131
218
 
132
219
  ## [1.1.9] - 2025-09-07
220
+
133
221
  - TAG: [v1.1.9][1.1.9t]
134
222
  - COVERAGE: 97.11% -- 3255/3352 lines in 23 files
135
223
  - BRANCH COVERAGE: 81.91% -- 1345/1642 branches in 23 files
136
224
  - 76.65% documented
225
+
137
226
  ### Added
227
+
138
228
  - badge for current runtime heads in example readme
229
+
139
230
  ### Fixed
231
+
140
232
  - Add gemfiles/modular/x_std_libs.gemfile & injected.gemfile to template
141
233
  - example version of gemfiles/modular/runtime_heads.gemfile
142
234
  - necessary to avoid deps on recording gems in the template
143
235
 
144
236
  ## [1.1.8] - 2025-09-07
237
+
145
238
  - TAG: [v1.1.8][1.1.8t]
146
239
  - COVERAGE: 97.16% -- 3246/3341 lines in 23 files
147
240
  - BRANCH COVERAGE: 81.95% -- 1344/1640 branches in 23 files
148
241
  - 76.97% documented
242
+
149
243
  ### Added
244
+
150
245
  - add .aiignore to the template
151
246
  - add .rubocop_rspec.yml to the template
152
247
  - gemfiles/modular/x_std_libs pattern to template, including:
@@ -159,41 +254,58 @@ Please file a bug if you notice a violation of semantic versioning.
159
254
  - (performance) filter and prioritize example files in the `.github` directory
160
255
  - added codecov config to the template
161
256
  - Kettle::Dev.default_registered?
257
+
162
258
  ### Fixed
259
+
163
260
  - run specs as part of the test task
164
261
 
165
262
  ## [1.1.7] - 2025-09-06
263
+
166
264
  - TAG: [v1.1.7][1.1.7t]
167
265
  - COVERAGE: 97.12% -- 3237/3333 lines in 23 files
168
266
  - BRANCH COVERAGE: 81.95% -- 1344/1640 branches in 23 files
169
267
  - 76.97% documented
268
+
170
269
  ### Added
270
+
171
271
  - rake task - `appraisal:install`
172
272
  - initial setup for projects that didn't previously use Appraisal
273
+
173
274
  ### Changed
275
+
174
276
  - .git-hooks/commit-msg allows commit if gitmoji-regex is unavailable
175
277
  - simplified `*Task` classes' `task_abort` methods to just raise Kettle::Dev::Error
176
278
  - Allows caller to decide how to handle.
279
+
177
280
  ### Removed
281
+
178
282
  - addressable, rake runtime dependencies
179
283
  - moved to optional, or development dependencies
284
+
180
285
  ### Fixed
286
+
181
287
  - Fix local CI via act for templated workflows (skip JRuby in nektos/act locally)
182
288
 
183
289
  ## [1.1.6] - 2025-09-05
290
+
184
291
  - TAG: [v1.1.6][1.1.6t]
185
292
  - COVERAGE: 97.06% -- 3241/3339 lines in 23 files
186
293
  - BRANCH COVERAGE: 81.83% -- 1347/1646 branches in 23 files
187
294
  - 76.97% documented
295
+
188
296
  ### Fixed
297
+
189
298
  - bin/rake test works for minitest
190
299
 
191
300
  ## [1.1.5] - 2025-09-04
301
+
192
302
  - TAG: [v1.1.5][1.1.5t]
193
303
  - COVERAGE: 33.87% -- 1125/3322 lines in 22 files
194
304
  - BRANCH COVERAGE: 22.04% -- 361/1638 branches in 22 files
195
305
  - 76.83% documented
306
+
196
307
  ### Added
308
+
197
309
  - kettle-pre-release: run re-release checks on a library
198
310
  - validate URLs of image assets in Markdown files
199
311
  - honor ENV["FUNDING_FORGE"] set to "false" as intentional disabling of funding-related logic.
@@ -202,13 +314,19 @@ Please file a bug if you notice a violation of semantic versioning.
202
314
  - add gitlab pipeline result to ci:act
203
315
  - highlight SHA discrepancies in ci:act task header info
204
316
  - how to set up forge tokens for ci:act, and other tools, instructions for README.md
317
+
205
318
  ### Changed
319
+
206
320
  - expanded use of adapter patterns (Exit, Git, and Input)
207
321
  - refactored and improved structure of code, more resilient
208
322
  - kettle-release: do not abort immediately on CI failure; continue checking all workflows, summarize results, and prompt to (c)ontinue or (q)uit (reuses ci:act-style summary)
323
+
209
324
  ### Removed
325
+
210
326
  - defensive NameError handling in ChangelogCLI.abort method
327
+
211
328
  ### Fixed
329
+
212
330
  - replace token `{OPENCOLLECTIVE|ORG_NAME}` with funding org name
213
331
  - prefer .example version of .git-hooks
214
332
  - kettle-commit-msg now runs via rubygems (not bundler) so it will work via a system gem
@@ -217,32 +335,43 @@ Please file a bug if you notice a violation of semantic versioning.
217
335
  - RBS types documentation for GemSpecReader
218
336
 
219
337
  ## [1.1.4] - 2025-09-02
338
+
220
339
  - TAG: [v1.1.4][1.1.4t]
221
340
  - COVERAGE: 67.64% -- 554/819 lines in 9 files
222
341
  - BRANCH COVERAGE: 53.25% -- 221/415 branches in 9 files
223
342
  - 76.22% documented
343
+
224
344
  ### Fixed
345
+
225
346
  - documentation of rake tasks from this gem no longer includes standard gem tasks
226
347
  - kettle-dev-setup: package bin/setup so setup can copy it
227
348
  - kettle_dev_install task: set executable flag for .git-hooks script when installing
228
349
 
229
350
  ## [1.1.3] - 2025-09-02
351
+
230
352
  - TAG: [v1.1.3][1.1.3t]
231
353
  - COVERAGE: 97.14% -- 2857/2941 lines in 22 files
232
354
  - BRANCH COVERAGE: 82.29% -- 1194/1451 branches in 22 files
233
355
  - 76.22% documented
356
+
234
357
  ### Changed
358
+
235
359
  - URL for migrating repo to CodeBerg:
236
360
  - https://codeberg.org/repo/migrate
361
+
237
362
  ### Fixed
363
+
238
364
  - Stop double defining DEBUGGING constant
239
365
 
240
366
  ## [1.1.2] - 2025-09-02
367
+
241
368
  - TAG: [v1.1.2][1.1.2t]
242
369
  - COVERAGE: 97.14% -- 2858/2942 lines in 22 files
243
370
  - BRANCH COVERAGE: 82.29% -- 1194/1451 branches in 22 files
244
371
  - 76.76% documented
372
+
245
373
  ### Added
374
+
246
375
  - .gitlab-ci.yml documentation (in example)
247
376
  - kettle-dvcs script for setting up DVCS, and checking status of remotes
248
377
  - https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
@@ -251,82 +380,116 @@ Please file a bug if you notice a violation of semantic versioning.
251
380
  - Document kettle-dvcs CLI in README (usage, options, examples)
252
381
  - RBS types for Kettle::Dev::DvcsCLI and inline YARD docs on CLI
253
382
  - Specs for DvcsCLI covering remote normalization, fetch outcomes, and README updates
383
+
254
384
  ### Changed
385
+
255
386
  - major spec refactoring
387
+
256
388
  ### Fixed
389
+
257
390
  - (linting) rspec-pending_for 0.0.17+ (example gemspec)
258
391
 
259
392
  ## [1.1.1] - 2025-09-02
393
+
260
394
  - TAG: [v1.1.1][1.1.1t]
261
395
  - COVERAGE: 97.04% -- 2655/2736 lines in 21 files
262
396
  - BRANCH COVERAGE: 82.21% -- 1109/1349 branches in 21 files
263
397
  - 76.81% documented
398
+
264
399
  ### Added
400
+
265
401
  - .simplecov.example - keeps it generic
266
402
  - improved documentation on automatic release script
267
403
  - .gitlab-ci.yml documentation
404
+
268
405
  ### Fixed
406
+
269
407
  - reduce extra leading whitespace in info table column 2
270
408
 
271
409
  ## [1.1.0] - 2025-09-02
410
+
272
411
  - TAG: [v1.1.0][1.1.0t]
273
412
  - COVERAGE: 97.03% -- 2649/2730 lines in 21 files
274
413
  - BRANCH COVERAGE: 82.16% -- 1105/1345 branches in 21 files
275
414
  - 76.81% documented
415
+
276
416
  ### Added
417
+
277
418
  - exe/kettle-dev-setup - bootstrap templating in any RubyGem
419
+
278
420
  ### Removed
421
+
279
422
  - all runtime deps
280
423
  - dependencies haven't really changed; will be injected into the gemspec of the including gem
281
424
  - **almost** a breaking change; but this gem re-templates other gems
282
425
  - so non-breaking via re-templating.
283
426
 
284
427
  ## [1.0.27] - 2025-09-01
428
+
285
429
  - TAG: [v1.0.27][1.0.27t]
286
430
  - COVERAGE: 97.77% -- 2629/2689 lines in 22 files
287
431
  - BRANCH COVERAGE: 82.40% -- 1100/1335 branches in 22 files
288
432
  - 76.47% documented
433
+
289
434
  ### Changed
435
+
290
436
  - Use semver version dependency (~> 1.0) on kettle-dev when templating
437
+
291
438
  ### Removed
439
+
292
440
  - dependency on version_gem (backwards compatible change)
293
441
 
294
442
  ## [1.0.26] - 2025-09-01
443
+
295
444
  - TAG: [v1.0.26][1.0.26t]
296
445
  - COVERAGE: 97.81% -- 2630/2689 lines in 22 files
297
446
  - BRANCH COVERAGE: 82.40% -- 1100/1335 branches in 22 files
298
447
  - 75.00% documented
448
+
299
449
  ### Fixed
450
+
300
451
  - .env.local.example is now included in the packaged gem
301
452
  - making the copy by install / template tasks possible
302
453
 
303
454
  ## [1.0.25] - 2025-08-31
455
+
304
456
  - TAG: [v1.0.25][1.0.25t]
305
457
  - COVERAGE: 97.81% -- 2630/2689 lines in 22 files
306
458
  - BRANCH COVERAGE: 82.40% -- 1100/1335 branches in 22 files
307
459
  - 75.00% documented
460
+
308
461
  ### Added
462
+
309
463
  - test that .env.local.example is copied by install / template tasks
464
+
310
465
  ### Changed
466
+
311
467
  - update Appraisals.example template's instructions for updating appraisals
312
468
 
313
469
  ## [1.0.24] - 2025-08-31
470
+
314
471
  - TAG: [v1.0.24][1.0.24t]
315
472
  - COVERAGE: 97.51% -- 2625/2692 lines in 22 files
316
473
  - BRANCH COVERAGE: 81.97% -- 1096/1337 branches in 22 files
317
474
  - 75.00% documented
475
+
318
476
  ### Added
477
+
319
478
  - improved documentation
320
479
  - more badges in README (gem & template)
321
480
  - integration test for kettle-changelog using CHANGELOG.md.
322
481
  - integration test for kettle-changelog using KEEP_A_CHANGELOG.md.
482
+
323
483
  ### Changed
484
+
324
485
  - add output to error handling related to release creation on GitHub
325
486
  - refactored Kettle::Dev::Tasks::CITask.abort => task_abort
326
487
  - Avoids method name clash with ExitAdapter
327
488
  - follows the pattern of other Kettle::Dev::Tasks modules
328
489
  - move --help handling for kettle-changelog to kettle-changelog itself
490
+
329
491
  ### Fixed
492
+
330
493
  - typos in README for gem & template
331
494
  - kettle-changelog: more robust in retention of version chunks, and markdown link refs, that are not relevant to the chunk being added
332
495
  - rearrange footer links in changelog by order, newest first, oldest last
@@ -334,34 +497,45 @@ Please file a bug if you notice a violation of semantic versioning.
334
497
  - replace Underscores with Dashes in Gem Names for [🚎yard-head] link
335
498
 
336
499
  ## [1.0.23] - 2025-08-30
500
+
337
501
  - TAG: [v1.0.23][1.0.23t]
338
502
  - COVERAGE: 97.75% -- 2428/2484 lines in 21 files
339
503
  - BRANCH COVERAGE: 81.76% -- 1013/1239 branches in 21 files
340
504
  - 76.00% documented
505
+
341
506
  ### Added
507
+
342
508
  - Carryover important fields from the original gemspec during templating
343
509
  - refactor gemspec parsing
344
510
  - normalize template gemspec data
511
+
345
512
  ### Fixed
513
+
346
514
  - include FUNDING.md in the released gem package
347
515
  - typo of required_ruby_version
348
516
 
349
517
  ## [1.0.22] - 2025-08-30
518
+
350
519
  - TAG: [v1.0.22][1.0.22t]
351
520
  - COVERAGE: 97.82% -- 2375/2428 lines in 20 files
352
521
  - BRANCH COVERAGE: 81.34% -- 972/1195 branches in 20 files
353
522
  - 76.23% documented
523
+
354
524
  ### Added
525
+
355
526
  - improved documentation
356
527
  - example version of heads workflow
357
528
  - give heads two attempts to succeed
358
529
 
359
530
  ## [1.0.21] - 2025-08-30
531
+
360
532
  - TAG: [v1.0.21][1.0.21t]
361
533
  - COVERAGE: 97.82% -- 2375/2428 lines in 20 files
362
534
  - BRANCH COVERAGE: 81.34% -- 972/1195 branches in 20 files
363
535
  - 76.23% documented
536
+
364
537
  ### Added
538
+
365
539
  - FUNDING.md in support of a funding footer on release notes
366
540
  - <!-- RELEASE-NOTES-FOOTER-START -->
367
541
  - <!-- RELEASE-NOTES-FOOTER-END -->
@@ -373,75 +547,99 @@ Please file a bug if you notice a violation of semantic versioning.
373
547
  - default to rubocop-ruby1_8 if no minimum ruby specified
374
548
  - template supports local development of RuboCop-LTS suite of gems
375
549
  - improved documentation
550
+
376
551
  ### Changed
552
+
377
553
  - dependabot: ignore rubocop-lts for updates
378
554
  - template configures RSpec to run tests in random order
379
555
 
380
556
  ## [1.0.20] - 2025-08-29
557
+
381
558
  - TAG: [v1.0.20][1.0.20t]
382
559
  - COVERAGE: 14.01% -- 96/685 lines in 8 files
383
560
  - BRANCH COVERAGE: 0.30% -- 1/338 branches in 8 files
384
561
  - 76.23% documented
562
+
385
563
  ### Changed
564
+
386
565
  - Use example version of ancient.yml workflow since local version has been customized
387
566
  - Use example version of jruby.yml workflow since local version has been customized
388
567
 
389
568
  ## [1.0.19] - 2025-08-29
569
+
390
570
  - TAG: [v1.0.19][1.0.19t]
391
571
  - COVERAGE: 97.84% -- 2350/2402 lines in 20 files
392
572
  - BRANCH COVERAGE: 81.46% -- 962/1181 branches in 20 files
393
573
  - 76.23% documented
574
+
394
575
  ### Fixed
395
- - replacement logic handles a dashed gem-name which maps onto a nested path structure
396
576
 
397
- ## [Unreleased]
398
- ### Added
399
- - kettle:dev:install and kettle:dev:template support `only=` option: comma-separated glob patterns matched against destination paths relative to project root; non-matching files are excluded from templating.
577
+ - replacement logic handles a dashed gem-name which maps onto a nested path structure
400
578
 
401
579
  ## [1.0.18] - 2025-08-29
580
+
402
581
  - TAG: [v1.0.18][1.0.18t]
403
582
  - COVERAGE: 71.70% -- 456/636 lines in 9 files
404
583
  - BRANCH COVERAGE: 51.17% -- 153/299 branches in 9 files
405
584
  - 76.23% documented
585
+
406
586
  ### Added
587
+
407
588
  - kettle:dev:install can overwrite gemspec with example gemspec
408
589
  - documentation for the start_step CLI option for kettle-release
409
- - kettle:dev:install add `only=` option for glob filtering.
590
+ - kettle:dev:install and kettle:dev:template support `only=` option with glob filtering:
591
+ - comma-separated glob patterns matched against destination paths relative to project root
592
+ - non-matching files are excluded from templating.
593
+
410
594
  ### Fixed
595
+
411
596
  - kettle:dev:install remove "Works with MRI Ruby*" lines with no badges left
412
597
  - kettle:dev:install prefix badge cell replacement with a single space
413
598
 
414
599
  ## [1.0.17] - 2025-08-29
600
+
415
601
  - TAG: [v1.0.17][1.0.17t]
416
602
  - COVERAGE: 98.14% -- 2271/2314 lines in 20 files
417
603
  - BRANCH COVERAGE: 81.42% -- 916/1125 branches in 20 files
418
604
  - 76.23% documented
605
+
419
606
  ### Fixed
607
+
420
608
  - kettle-changelog added to exe files so packaged with released gem
421
609
 
422
610
  ## [1.0.16] - 2025-08-29
611
+
423
612
  - TAG: [v1.0.16][1.0.16t]
424
613
  - COVERAGE: 98.14% -- 2271/2314 lines in 20 files
425
614
  - BRANCH COVERAGE: 81.42% -- 916/1125 branches in 20 files
426
615
  - 76.23% documented
616
+
427
617
  ### Fixed
618
+
428
619
  - default rake task must be defined before it can be enhanced
429
620
 
430
621
  ## [1.0.15] - 2025-08-29
622
+
431
623
  - TAG: [v1.0.15][1.0.15t]
432
624
  - COVERAGE: 98.17% -- 2259/2301 lines in 20 files
433
625
  - BRANCH COVERAGE: 81.00% -- 908/1121 branches in 20 files
434
626
  - 76.03% documented
627
+
435
628
  ### Added
629
+
436
630
  - kettle-release: early validation of identical set of copyright years in README.md and CHANGELOG.md, adds current year if missing, aborts on mismatch
437
631
  - kettle-release: update KLOC in README.md
438
632
  - kettle-release: update Rakefile.example with version and date
633
+
439
634
  ### Changed
635
+
440
636
  - kettle-release: print package name and version released as final line
441
637
  - use git adapter to wrap more git commands to make tests easier to build
442
638
  - stop testing Ruby 2.4 on CI due to a strange issue with VCR.
443
639
  - still testing Ruby 2.3
640
+
444
641
  ### Fixed
642
+
445
643
  - include gemfiles/modular/*gemfile.example with packaged gem
446
644
  - CI workflow result polling logic revised:
447
645
  - includes a delay
@@ -449,33 +647,46 @@ Please file a bug if you notice a violation of semantic versioning.
449
647
  - prevents false failures from previous runs
450
648
 
451
649
  ## [1.0.14] - 2025-08-28
650
+
452
651
  - TAG: [v1.0.14][1.0.14t]
453
652
  - COVERAGE: 97.70% -- 2125/2175 lines in 20 files
454
653
  - BRANCH COVERAGE: 78.77% -- 842/1069 branches in 20 files
455
654
  - 76.03% documented
655
+
456
656
  ### Added
657
+
457
658
  - kettle-release: Push tags to additional remotes after release
659
+
458
660
  ### Changed
661
+
459
662
  - Improve .gitlab-ci.yml pipeline
663
+
460
664
  ### Fixed
665
+
461
666
  - Removed README badges for unsupported old Ruby versions
462
667
  - Minor inconsistencies in template files
463
668
  - git added as a dependency to optional.gemfile instead of the example template
464
669
 
465
670
  ## [1.0.13] - 2025-08-28
671
+
466
672
  - TAG: [v1.0.13][1.0.13t]
467
673
  - COVERAGE: 41.94% -- 65/155 lines in 6 files
468
674
  - BRANCH COVERAGE: 1.92% -- 1/52 branches in 6 files
469
675
  - 76.03% documented
676
+
470
677
  ### Added
678
+
471
679
  - kettle-release: Create GitHub release from tag & changelog entry
472
680
 
473
681
  ## [1.0.12] - 2025-08-28
682
+
474
683
  - TAG: [v1.0.12][1.0.12t]
475
684
  - COVERAGE: 97.80% -- 1957/2001 lines in 19 files
476
685
  - BRANCH COVERAGE: 79.98% -- 763/954 branches in 19 files
477
686
  - 78.70% documented
687
+
478
688
  ### Added
689
+
479
690
  - CIMonitor to consolidate workflow / pipeline monitoring logic for GH/GL across kettle-release and rake tasks, with handling for:
480
691
  - minutes exhausted
481
692
  - blocked
@@ -487,7 +698,9 @@ Please file a bug if you notice a violation of semantic versioning.
487
698
  - success
488
699
  - Ability to restart kettle-release from any failed step, so manual fixed can be applied.
489
700
  - Example (after intermittent failure of CI): `bundle exec kettle-release start_step=10`
701
+
490
702
  ### Fixed
703
+
491
704
  - added optional.gemfile.example, and handling for it in templating
492
705
  - kettle-changelog: ensure a blank line at end of file
493
706
  - add sleep(0.2) to ci:act to prevent race condition with stdout flushing
@@ -495,11 +708,14 @@ Please file a bug if you notice a violation of semantic versioning.
495
708
  - ensure it doesn't abort the process in CI
496
709
 
497
710
  ## [1.0.11] - 2025-08-28
711
+
498
712
  - TAG: [v1.0.11][1.0.11t]
499
713
  - COVERAGE: 97.90% -- 1959/2001 lines in 19 files
500
714
  - BRANCH COVERAGE: 79.98% -- 763/954 branches in 19 files
501
715
  - 78.70% documented
716
+
502
717
  ### Added
718
+
503
719
  - Add more .example templates
504
720
  - .github/workflows/coverage.yml.example
505
721
  - .gitlab-ci.yml.example
@@ -509,15 +725,21 @@ Please file a bug if you notice a violation of semantic versioning.
509
725
  - extracts emoji grapheme from H1 to apply to gemspec's summary and description
510
726
  - removes badges for unsupported rubies, and major version MRI row if all badges removed
511
727
  - new exe script: kettle-changelog - transitions a changelog from unreleased to next release
728
+
512
729
  ### Changed
730
+
513
731
  - Make 'git' gem dependency optional; fall back to raw `git` commands when the gem is not present (rescues LoadError). See Kettle::Dev::GitAdapter.
514
732
  - upgraded to stone_checksums v1.0.2
515
733
  - exe scripts now print their name and version as they start up
734
+
516
735
  ### Removed
736
+
517
737
  - dependency on git gem
518
738
  - git gem is still supported if present and not bypassed by new ENV variable `KETTLE_DEV_DISABLE_GIT_GEM`
519
739
  - no longer a direct dependency
740
+
520
741
  ### Fixed
742
+
521
743
  - Upgrade stone_checksums for release compatibility with bundler v2.7+
522
744
  - Retains compatibility with older bundler < v2.7
523
745
  - Ship all example templates with gem
@@ -526,30 +748,42 @@ Please file a bug if you notice a violation of semantic versioning.
526
748
  - preserve table alignment
527
749
 
528
750
  ## [1.0.10] - 2025-08-24
751
+
529
752
  - TAG: [v1.0.10][1.0.10t]
530
753
  - COVERAGE: 97.68% -- 1685/1725 lines in 17 files
531
754
  - BRANCH COVERAGE: 77.54% -- 618/797 branches in 17 files- 95.35% documented
532
755
  - 77.00% documented
756
+
533
757
  ### Added
758
+
534
759
  - runs git add --all before git commit, to ensure all files are committed.
760
+
535
761
  ### Changed
762
+
536
763
  - This gem is now loaded via Ruby's standard `autoload` feature.
537
764
  - Bundler is always expected, and most things probably won't work without it.
538
765
  - exe/ scripts and rake tasks logic is all now moved into classes for testability, and is nearly fully covered by tests.
539
766
  - New Kettle::Dev::GitAdapter class is an adapter pattern wrapper for git commands
540
767
  - New Kettle::Dev::ExitAdapter class is an adapter pattern wrapper for Kernel.exit and Kernel.abort within this codebase.
768
+
541
769
  ### Removed
770
+
542
771
  - attempts to make exe/* scripts work without bundler. Bundler is required.
772
+
543
773
  ### Fixed
774
+
544
775
  - `Kettle::Dev::ReleaseCLI#detect_version` handles gems with multiple VERSION constants
545
776
  - `kettle:dev:template` task was fixed to copy `.example` files with the destination filename lacking the `.example` extension, except for `.env.local.example`
546
777
 
547
778
  ## [1.0.9] - 2025-08-24
779
+
548
780
  - TAG: [v1.0.9][1.0.9t]
549
781
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
550
782
  - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
551
783
  - 95.35% documented
784
+
552
785
  ### Added
786
+
553
787
  - kettle-release: Add a sanity check for the latest released version of the gem being released, and display it during the confirmation with user that CHANGELOG.md and version.rb have been updated, so they can compare the value in version.rb with the value of the latest released version.
554
788
  - If the value in version.rb is less than the latest released version's major or minor, then check for the latest released version that matches the major + minor of what is in version.rb.
555
789
  - This way a stable branch intended to release patch updates to older versions is able to work use the script.
@@ -557,77 +791,105 @@ Please file a bug if you notice a violation of semantic versioning.
557
791
  - template task: now copies `certs/pboling.pem` into the host project when available.
558
792
 
559
793
  ## [1.0.8] - 2025-08-24
794
+
560
795
  - TAG: [v1.0.8][1.0.8t]
561
796
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
562
797
  - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
563
798
  - 95.35% documented
799
+
564
800
  ### Fixed
801
+
565
802
  - Can't add checksums to the gem package, because it changes the checksum (duh!)
566
803
 
567
804
  ## [1.0.7] - 2025-08-24
805
+
568
806
  - TAG: [v1.0.7][1.0.7t]
569
807
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
570
808
  - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
571
809
  - 95.35% documented
810
+
572
811
  ### Fixed
812
+
573
813
  - Reproducible builds, with consistent checksums, by *not* using SOURCE_DATE_EPOCH.
574
814
  - Since bundler v2.7.0 builds are reproducible by default.
575
815
 
576
816
  ## [1.0.6] - 2025-08-24
817
+
577
818
  - TAG: [v1.0.6][1.0.6t]
578
819
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
579
820
  - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
580
821
  - 95.35% documented
822
+
581
823
  ### Fixed
824
+
582
825
  - kettle-release: ensure SOURCE_DATE_EPOCH is applied within the same shell for both build and release by prefixing the commands with the env var (e.g., `SOURCE_DATE_EPOCH=$epoch bundle exec rake build` and `... rake release`); prevents losing the variable across shell boundaries and improves reproducible checksums.
583
826
 
584
827
  ## [1.0.5] - 2025-08-24
828
+
585
829
  - TAG: [v1.0.5][1.0.5t]
586
830
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
587
831
  - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
588
832
  - 95.35% documented
833
+
589
834
  ### Fixed
835
+
590
836
  - kettle-release: will run regardless of how it is invoked (i.e. works as binstub)
591
837
 
592
838
  ## [1.0.4] - 2025-08-24
839
+
593
840
  - TAG: [v1.0.4][1.0.4t]
594
841
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
595
842
  - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
596
843
  - 95.35% documented
844
+
597
845
  ### Added
846
+
598
847
  - kettle-release: checks all remotes for a GitHub remote and syncs origin/trunk with it; prompts to rebase or --no-ff merge when histories diverge; pushes to both origin and the GitHub remote on merge; uses the GitHub remote for GitHub Actions CI checks, and also checks GitLab CI when a GitLab remote and .gitlab-ci.yml are present.
599
848
  - kettle-release: push logic improved — if a remote named `all` exists, push the current branch to it (assumed to cover multiple push URLs). Otherwise push the current branch to `origin` and to any GitHub, GitLab, and Codeberg remotes (whatever their names are).
849
+
600
850
  ### Fixed
851
+
601
852
  - kettle-release now validates SHA256 checksums of the built gem against the recorded checksums and aborts on mismatch; helps ensure reproducible artifacts (honoring SOURCE_DATE_EPOCH).
602
853
  - kettle-release now enforces CI checks and aborts if CI cannot be verified; supports GitHub Actions and GitLab pipelines, including releases from trunk/main.
603
854
  - kettle-release no longer requires bundler/setup, preventing silent exits when invoked from a dependent project; adds robust output flushing.
604
855
 
605
856
  ## [1.0.3] - 2025-08-24
857
+
606
858
  - TAG: [v1.0.3][1.0.3t]
607
859
  - COVERAGE: 100.00% -- 98/98 lines in 7 files
608
860
  - BRANCH COVERAGE: 100.00% -- 30/30 branches in 7 files
609
861
  - 94.59% documented
862
+
610
863
  ### Added
864
+
611
865
  - template task now copies .git-hooks files necessary for git hooks to work
866
+
612
867
  ### Fixed
868
+
613
869
  - kettle-release now uses the host project's root, instead of this gem's installed root.
614
870
  - Added .git-hooks files necessary for git hooks to work
615
871
 
616
872
  ## [1.0.2] - 2025-08-24
873
+
617
874
  - TAG: [v1.0.2][1.0.2t]
618
875
  - COVERAGE: 100.00% -- 98/98 lines in 7 files
619
876
  - BRANCH COVERAGE: 100.00% -- 30/30 branches in 7 files
620
877
  - 94.59% documented
878
+
621
879
  ### Fixed
880
+
622
881
  - Added files necessary for kettle:dev:template task to work
623
882
  - .github/workflows/opencollective.yml working!
624
883
 
625
884
  ## [1.0.1] - 2025-08-24
885
+
626
886
  - TAG: [v1.0.1][1.0.1t]
627
887
  - COVERAGE: 100.00% -- 98/98 lines in 7 files
628
888
  - BRANCH COVERAGE: 100.00% -- 30/30 branches in 7 files
629
889
  - 94.59% documented
890
+
630
891
  ### Added
892
+
631
893
  - These were documented but not yet released:
632
894
  - `kettle-release` ruby script for safely, securely, releasing a gem.
633
895
  - This may move to its own gem in the future.
@@ -635,11 +897,14 @@ Please file a bug if you notice a violation of semantic versioning.
635
897
  - This may move to its own gem in the future.
636
898
 
637
899
  ## [1.0.0] - 2025-08-24
900
+
638
901
  - TAG: [v1.0.0][1.0.0t]
639
902
  - COVERAGE: 100.00% -- 98/98 lines in 7 files
640
903
  - BRANCH COVERAGE: 100.00% -- 30/30 branches in 7 files
641
904
  - 94.59% documented
905
+
642
906
  ### Added
907
+
643
908
  - initial release, with auto-config support for:
644
909
  - bundler-audit
645
910
  - rake
@@ -660,7 +925,11 @@ Please file a bug if you notice a violation of semantic versioning.
660
925
  - Selecting will run the selected workflow via `act`
661
926
  - This may move to its own gem in the future.
662
927
 
663
- [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.19...HEAD
928
+ [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.21...HEAD
929
+ [1.1.21]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.20...v1.1.21
930
+ [1.1.21t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.21
931
+ [1.1.20]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.19...v1.1.20
932
+ [1.1.20t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.20
664
933
  [1.1.19]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.18...v1.1.19
665
934
  [1.1.19t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.19
666
935
  [1.1.18]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.17...v1.1.18