kettle-dev 1.0.5 → 1.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aaab564b37e2892996a6f419cb71a48aa2f7e0ac5536379f0f7de36710922060
4
- data.tar.gz: 878eced8cbf467f399689ba5a93d93f8ffecea1eca451f7b1752c4c41b87ad9e
3
+ metadata.gz: 757457767d7c4dce99cfbb226f4c8a2a0f94b9a9aadd601b55f21c48a53cda30
4
+ data.tar.gz: e06421edd27c37161d6438f47809828914b2abd6c1b09722d0f7154eaacf078c
5
5
  SHA512:
6
- metadata.gz: 01c054122983c1c36bc0ec39c42a35732b9fb6225706e0034d6209923f0ac3704f874c23e7900617dc044a6b0245315bdbc8da72534a86f0eed87cd5156f94f3
7
- data.tar.gz: a52bc544f7243a1b727e956cef403601689f3331c5cb3376a4b9135eb0c2ca3353f3e048709e2f153cae847a74eab55c5c21f7d432cb621e2416120314e8c560
6
+ metadata.gz: 16c04f9745823ca90d1c22e0e471942fc81469fc8022cb6bdf3c064eee5c1f656d077e54ea283906f117d31f0101daf3057f18d7ef472c4373bbe1441c4b4672
7
+ data.tar.gz: 4a6ca6d6fe40cd1c694d73b6527e62d4dc44f97fe72a9b41a796f920b8a1c42a78e2c49f2040dae22d5c277b545b356a592f1ee54c1e28fca4ff6173a4ed1c78
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -12,6 +12,23 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
12
12
  ### Fixed
13
13
  ### Security
14
14
 
15
+ ## [1.0.7] - 2025-08-24
16
+ - TAG: [v1.0.7][1.0.7t]
17
+ - COVERAGE: 100.00% -- 130/130 lines in 7 files
18
+ - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
19
+ - 95.35% documented
20
+ ### Fixed
21
+ - Reproducible builds, with consistent checksums, by *not* using SOURCE_DATE_EPOCH.
22
+ - Since bundler v2.7.0 builds are reproducible by default.
23
+
24
+ ## [1.0.6] - 2025-08-24
25
+ - TAG: [v1.0.6][1.0.6t]
26
+ - COVERAGE: 100.00% -- 130/130 lines in 7 files
27
+ - BRANCH COVERAGE: 96.00% -- 48/50 branches in 7 files
28
+ - 95.35% documented
29
+ ### Fixed
30
+ - 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.
31
+
15
32
  ## [1.0.5] - 2025-08-24
16
33
  - TAG: [v1.0.5][1.0.5t]
17
34
  - COVERAGE: 100.00% -- 130/130 lines in 7 files
@@ -91,7 +108,11 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
91
108
  - Selecting will run the selected workflow via `act`
92
109
  - This may move to its own gem in the future.
93
110
 
94
- [Unreleased]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.5...HEAD
111
+ [Unreleased]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.7...HEAD
112
+ [1.0.7]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.6...v1.0.7
113
+ [1.0.7t]: https://gitlab.com/kettle-rb/kettle-dev/-/tags/v1.0.7
114
+ [1.0.6]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.5...v1.0.6
115
+ [1.0.6t]: https://gitlab.com/kettle-rb/kettle-dev/-/tags/v1.0.6
95
116
  [1.0.5]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.4...v1.0.5
96
117
  [1.0.5t]: https://gitlab.com/kettle-rb/kettle-dev/-/tags/v1.0.5
97
118
  [1.0.4]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.3...v1.0.4
data/CONTRIBUTING.md CHANGED
@@ -117,7 +117,8 @@ Run `kettle-release`.
117
117
  6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
118
118
  7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
119
119
  8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
120
- 9. Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use same timestamp, and generate same checksums
120
+ 9. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
121
+ - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
121
122
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
122
123
  - If the echo above has no output, then it didn't work.
123
124
  - Note: `zsh/datetime` module is needed, if running `zsh`.
data/README.md CHANGED
@@ -641,7 +641,7 @@ Thanks for RTFM. ☺️
641
641
  [📌gitmoji]:https://gitmoji.dev
642
642
  [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20😜%20😍-34495e.svg?style=flat-square
643
643
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
644
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.069-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
644
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.130-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
645
645
  [🔐security]: SECURITY.md
646
646
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
647
647
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -0,0 +1 @@
1
+ f5a4e19daf87b88e9f61c4bfec481ea915f5f734cf665dbcbd34be6979718c89
@@ -0,0 +1 @@
1
+ 7b99485e9d4411f2766d7cf53121923e26284f455146a7ba281982634cc534384d91739d83113618852f8abd5093dbc465362afff62e5da041f996bed2bd3a4b
data/exe/kettle-release CHANGED
@@ -6,7 +6,7 @@
6
6
  # - Ensures version/changelog updated (with confirmation)
7
7
  # - Commits and pushes a release prep commit
8
8
  # - Ensures on trunk, up-to-date
9
- # - Exports SOURCE_DATE_EPOCH for reproducible checksums
9
+ # - Builds and releases using Bundler/Rake (reproducible by default in Bundler 2.7+)
10
10
  # - Runs `bundle exec rake build` (expects PEM password unless SKIP_GEM_SIGNING)
11
11
  # - If signing not skipped and no public cert in certs/<user>.pem, aborts with guidance
12
12
  # - Runs bin/gem_checksums
@@ -49,6 +49,8 @@ module Kettle
49
49
  def run
50
50
  puts "== kettle-release =="
51
51
 
52
+ ensure_bundler_2_7_plus!
53
+
52
54
  run_cmd!("bin/setup")
53
55
  run_cmd!("bin/rake")
54
56
 
@@ -92,8 +94,6 @@ module Kettle
92
94
  checkout!(trunk)
93
95
  pull!(trunk)
94
96
 
95
- export_source_date_epoch!
96
-
97
97
  ensure_signing_setup_or_skip!
98
98
  # Build: expect PEM password prompt unless SKIP_GEM_SIGNING
99
99
  puts "Running build (you may be prompted for the signing key password)..."
@@ -200,7 +200,7 @@ module Kettle
200
200
 
201
201
  def run_cmd!(cmd)
202
202
  puts "$ #{cmd}"
203
- # Ensure current ENV (including SOURCE_DATE_EPOCH) is propagated explicitly
203
+ # Execute commands with the current environment
204
204
  success = system(ENV, cmd)
205
205
  abort("Command failed: #{cmd}") unless success
206
206
  end
@@ -221,6 +221,19 @@ module Kettle
221
221
  abort("Git user.name or user.email not configured.") unless ok1 && ok2 && !name.empty? && !email.empty?
222
222
  end
223
223
 
224
+ def ensure_bundler_2_7_plus!
225
+ begin
226
+ require "bundler"
227
+ rescue LoadError
228
+ abort("Bundler is required. Please install bundler >= 2.7.0 and try again.")
229
+ end
230
+ ver = Gem::Version.new(Bundler::VERSION)
231
+ min = Gem::Version.new("2.7.0")
232
+ if ver < min
233
+ abort("kettle-release requires Bundler >= 2.7.0 for reproducible builds by default. Current: #{Bundler::VERSION}. Please upgrade bundler.")
234
+ end
235
+ end
236
+
224
237
  def detect_version
225
238
  # Look for lib/**/version.rb and extract VERSION constant string
226
239
  candidates = Dir[File.join(@root, "lib", "**", "version.rb")]
@@ -482,12 +495,6 @@ module Kettle
482
495
  puts "Merged #{feature} into #{trunk} and pushed. The PR (if any) should auto-close."
483
496
  end
484
497
 
485
- def export_source_date_epoch!
486
- epoch = Time.now.to_i
487
- ENV["SOURCE_DATE_EPOCH"] = epoch.to_s
488
- puts "Exported SOURCE_DATE_EPOCH=#{epoch}"
489
- end
490
-
491
498
  def ensure_signing_setup_or_skip!
492
499
  return if ENV.key?("SKIP_GEM_SIGNING")
493
500
 
@@ -527,8 +534,8 @@ module Kettle
527
534
  sha256sum: #{actual}
528
535
  file: #{checks_path}
529
536
  file: #{expected}
530
- Ensure SOURCE_DATE_EPOCH is set consistently and that the artifact used by release is identical to the one checksummed.
531
- You can retry: export SOURCE_DATE_EPOCH=$EPOCHSECONDS; bundle exec rake build && bin/gem_checksums && bundle exec rake release
537
+ The artifact being released must match the checksummed artifact exactly.
538
+ Retry locally: bundle exec rake build && bin/gem_checksums && bundle exec rake release
532
539
  MSG
533
540
  else
534
541
  puts "Checksum OK #{stage}: #{File.basename(gem_path)}"
@@ -573,7 +580,7 @@ if ARGV.include?("-h") || ARGV.include?("--help")
573
580
  - Commits a release prep change
574
581
  - Ensures trunk is up-to-date, pushes branch, and monitors CI (GitHub/GitLab)
575
582
  - Merges feature into trunk upon CI success
576
- - Exports SOURCE_DATE_EPOCH, builds, records checksums, and releases
583
+ - Builds, records checksums, and releases (requires Bundler >= 2.7.0)
577
584
 
578
585
  Environment:
579
586
  SKIP_GEM_SIGNING=true # skip gem signing during build/release
@@ -6,7 +6,7 @@ module Kettle
6
6
  module Version
7
7
  # The gem version.
8
8
  # @return [String]
9
- VERSION = "1.0.5"
9
+ VERSION = "1.0.7"
10
10
  end
11
11
  end
12
12
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -203,10 +203,8 @@ extra_rdoc_files:
203
203
  - REEK
204
204
  - RUBOCOP.md
205
205
  - SECURITY.md
206
- - checksums/kettle-dev-1.0.4.gem.sha256
207
- - checksums/kettle-dev-1.0.4.gem.sha512
208
- - checksums/kettle-dev-1.0.5.gem.sha256
209
- - checksums/kettle-dev-1.0.5.gem.sha512
206
+ - checksums/kettle-dev-1.0.7.gem.sha256
207
+ - checksums/kettle-dev-1.0.7.gem.sha512
210
208
  files:
211
209
  - ".devcontainer/devcontainer.json"
212
210
  - ".envrc"
@@ -258,10 +256,8 @@ files:
258
256
  - RUBOCOP.md
259
257
  - Rakefile
260
258
  - SECURITY.md
261
- - checksums/kettle-dev-1.0.4.gem.sha256
262
- - checksums/kettle-dev-1.0.4.gem.sha512
263
- - checksums/kettle-dev-1.0.5.gem.sha256
264
- - checksums/kettle-dev-1.0.5.gem.sha512
259
+ - checksums/kettle-dev-1.0.7.gem.sha256
260
+ - checksums/kettle-dev-1.0.7.gem.sha512
265
261
  - exe/kettle-commit-msg
266
262
  - exe/kettle-readme-backers
267
263
  - exe/kettle-release
@@ -294,10 +290,10 @@ licenses:
294
290
  - MIT
295
291
  metadata:
296
292
  homepage_uri: https://kettle-dev.galtzo.com/
297
- source_code_uri: https://github.com/galtzo-floss/kettle-dev/tree/v1.0.5
298
- changelog_uri: https://github.com/galtzo-floss/kettle-dev/blob/v1.0.5/CHANGELOG.md
293
+ source_code_uri: https://github.com/galtzo-floss/kettle-dev/tree/v1.0.7
294
+ changelog_uri: https://github.com/galtzo-floss/kettle-dev/blob/v1.0.7/CHANGELOG.md
299
295
  bug_tracker_uri: https://github.com/galtzo-floss/kettle-dev/issues
300
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.5
296
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.7
301
297
  funding_uri: https://github.com/sponsors/pboling
302
298
  wiki_uri: https://github.com/galtzo-floss/kettle-dev/wiki
303
299
  news_uri: https://www.railsbling.com/tags/kettle-dev
metadata.gz.sig CHANGED
Binary file
@@ -1 +0,0 @@
1
- 772ba761ef205f134e3a096fbfde418b3d699093482ff345bd755f8f596f9de7
@@ -1 +0,0 @@
1
- 5e791a2feaa44cfcede4c5e933f2d44725dd6c84d5b44511d8e26147a1540ed3455508fd9c2e1ed8d07093009863b2db38ff9532939404aed7f047091c495e36
@@ -1 +0,0 @@
1
- 60434bcaca59d509c76b746ca2707c4203c6e78fe1af64073c3e871a55ad72aa
@@ -1 +0,0 @@
1
- e818b9baeced996daebc4565812ff015ba552788220ff34773d2c5d7e3ff7e9a1adca4ae16379dd9551824c7e5a8bef877c66a14faa6795d3982b1faa0d35f07