kettle-family 1.3.22 → 1.3.24
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +27 -1
- data/README.md +1 -1
- data/lib/kettle/family/nomono_bootstrap.rb +4 -3
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +64 -0
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fb4b30fa1f9686486190145163ab60e6cefb229baa32a20c998d68ba922839a6
|
|
4
|
+
data.tar.gz: 3907e7ac24a0b8e2292aac9bcf994a4af8dc26ed65815de6a938b2ebc595c8f7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e5453963f37698bc584bcd170b5856f1080fa37b5a85a3635806809a785bb3da15efbe11e5020933a27e8ae9a769cb7b40db6a109606cece50c0f012fb37d857
|
|
7
|
+
data.tar.gz: f0a93ff85d5881c187eae578b26e87e083424bf3e5646e4573b80ca0c1468d70a176fc2b365da1da538fb82a48fa2c198a5e38fbfa194fb45fb51a8d040bae0a
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,28 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.3.24] - 2026-10-19
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.3.24][1.3.24t]
|
|
36
|
+
- COVERAGE: 93.01% -- 7372/7926 lines in 44 files
|
|
37
|
+
- BRANCH COVERAGE: 77.25% -- 2947/3815 branches in 44 files
|
|
38
|
+
- 37.55% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- [kc] bup-nomono-bootstrap: Add a bup bootstrap phase that bumps stale nomono floors and reconciles member lockfiles with a pinned nomono update before member bundle update --all, so family-root floor raises no longer deadlock on older activated nomono releases. Dry-run bup plans the reconciliation without editing files.
|
|
43
|
+
|
|
44
|
+
## [1.3.23] - 2026-10-19
|
|
45
|
+
|
|
46
|
+
- TAG: [v1.3.23][1.3.23t]
|
|
47
|
+
- COVERAGE: 93.00% -- 7352/7905 lines in 44 files
|
|
48
|
+
- BRANCH COVERAGE: 77.31% -- 2937/3799 branches in 44 files
|
|
49
|
+
- 37.55% documented
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- Template dependency preparation records its changelog entries where the family config says changelogs go (K_CHANGELOG_PATH resolved from changelog mode/path), so a shared-changelog family no longer gets transferred template entries written into a member-local CHANGELOG.md — which split a lock-step member into its own release lane.
|
|
54
|
+
|
|
33
55
|
## [1.3.22] - 2026-10-19
|
|
34
56
|
|
|
35
57
|
- TAG: [v1.3.22][1.3.22t]
|
|
@@ -3121,7 +3143,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
3121
3143
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
3122
3144
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
3123
3145
|
|
|
3124
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.3.
|
|
3146
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.3.24...HEAD
|
|
3147
|
+
[1.3.24]: https://github.com/kettle-dev/kettle-family/compare/v1.3.23...v1.3.24
|
|
3148
|
+
[1.3.24t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.3.24
|
|
3149
|
+
[1.3.23]: https://github.com/kettle-dev/kettle-family/compare/v1.3.22...v1.3.23
|
|
3150
|
+
[1.3.23t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.3.23
|
|
3125
3151
|
[1.3.22]: https://github.com/kettle-dev/kettle-family/compare/v1.3.21...v1.3.22
|
|
3126
3152
|
[1.3.22t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.3.22
|
|
3127
3153
|
[1.3.21]: https://github.com/kettle-dev/kettle-family/compare/v1.3.18...v1.3.21
|
data/README.md
CHANGED
|
@@ -1225,7 +1225,7 @@ Thanks for RTFM. ☺️
|
|
|
1225
1225
|
[📌gitmoji]: https://gitmoji.dev
|
|
1226
1226
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1227
1227
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1228
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-7.
|
|
1228
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-7.926-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1229
1229
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
1230
1230
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1231
1231
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -10,12 +10,13 @@ module Kettle
|
|
|
10
10
|
class NomonoBootstrap
|
|
11
11
|
GEM_NAME = "nomono"
|
|
12
12
|
|
|
13
|
-
def initialize(latest_version:, mode: :dry_run)
|
|
13
|
+
def initialize(latest_version:, mode: :dry_run, phase: "template_bootstrap_dependencies")
|
|
14
14
|
@latest_version = Gem::Version.new(latest_version.to_s)
|
|
15
15
|
@mode = mode
|
|
16
|
+
@phase = phase
|
|
16
17
|
end
|
|
17
18
|
|
|
18
|
-
attr_reader :latest_version, :mode
|
|
19
|
+
attr_reader :latest_version, :mode, :phase
|
|
19
20
|
|
|
20
21
|
def member_needs_bootstrap?(member)
|
|
21
22
|
!!(gemfile_floor_outdated?(member) || lockfile_version_outdated?(member))
|
|
@@ -26,7 +27,7 @@ module Kettle
|
|
|
26
27
|
write_edits(edits)
|
|
27
28
|
CommandResult.new(
|
|
28
29
|
member.name,
|
|
29
|
-
|
|
30
|
+
phase,
|
|
30
31
|
["internal", "nomono-bootstrap", latest_version.to_s],
|
|
31
32
|
member.root,
|
|
32
33
|
0,
|
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "1.3.
|
|
8
|
+
VERSION = "1.3.24"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -578,6 +578,9 @@ module Kettle
|
|
|
578
578
|
update_family_root_bundle(runner: runner, memo: results) if %w[bup bupb update-bundler].include?(command)
|
|
579
579
|
return results unless results.all?(&:ok?)
|
|
580
580
|
|
|
581
|
+
results.concat(bup_bootstrap_dependency_results(workflow_members, runner: runner, memo: results)) if %w[bup bupb update-bundler].include?(command)
|
|
582
|
+
return results unless results.all?(&:ok?)
|
|
583
|
+
|
|
581
584
|
if %w[bup bupb update-bundler].include?(command) && release_mode_bundle_update?
|
|
582
585
|
results.concat(release_pre_clean_results(runner: runner))
|
|
583
586
|
return results unless results.last.nil? || results.last.ok?
|
|
@@ -1324,6 +1327,53 @@ module Kettle
|
|
|
1324
1327
|
)
|
|
1325
1328
|
end
|
|
1326
1329
|
|
|
1330
|
+
# Before a bundle update resolves the dependency graph, the member's
|
|
1331
|
+
# bootstrap must declare and lock the newest Nomono floor, otherwise the
|
|
1332
|
+
# generated bootstrap activates an older installed release and Bundler
|
|
1333
|
+
# rejects the duplicate requirement raised by the family-root floor bump.
|
|
1334
|
+
# This is the bup analogue of template_bootstrap_dependency_results.
|
|
1335
|
+
def bup_bootstrap_dependency_results(workflow_members, runner:, memo:)
|
|
1336
|
+
return [] if workflow_members.empty?
|
|
1337
|
+
|
|
1338
|
+
candidate_members = workflow_members.select { |member| nomono_bootstrap_candidate?(member) }
|
|
1339
|
+
return [] if candidate_members.empty?
|
|
1340
|
+
|
|
1341
|
+
latest_nomono_version = latest_released_nomono_version
|
|
1342
|
+
bootstrap = NomonoBootstrap.new(
|
|
1343
|
+
latest_version: latest_nomono_version,
|
|
1344
|
+
mode: execute ? :execute : :dry_run,
|
|
1345
|
+
phase: "bup_bootstrap_dependencies"
|
|
1346
|
+
)
|
|
1347
|
+
candidate_members.each_with_object([]) do |member, results|
|
|
1348
|
+
next unless bootstrap.member_needs_bootstrap?(member)
|
|
1349
|
+
|
|
1350
|
+
floor_result = bootstrap.bootstrap_member(member)
|
|
1351
|
+
results << floor_result
|
|
1352
|
+
break results unless results.last.ok?
|
|
1353
|
+
|
|
1354
|
+
results << runner.call(
|
|
1355
|
+
member: member,
|
|
1356
|
+
phase: "bup_bootstrap_dependencies",
|
|
1357
|
+
command: pinned_bundler_update_command(extra_gems: %w[nomono]),
|
|
1358
|
+
env: bup_bootstrap_dependency_env(member)
|
|
1359
|
+
)
|
|
1360
|
+
break results unless results.last.ok?
|
|
1361
|
+
end
|
|
1362
|
+
rescue => error
|
|
1363
|
+
[template_bootstrap_failure_result(workflow_members.first, error.message)]
|
|
1364
|
+
end
|
|
1365
|
+
|
|
1366
|
+
def bup_bootstrap_dependency_env(member)
|
|
1367
|
+
bundle_update_env.merge(
|
|
1368
|
+
# A standalone update re-resolves against the member's own bundle. The
|
|
1369
|
+
# member Gemfile bootstrap floor has already been bumped; here we only
|
|
1370
|
+
# reconcile the member lockfile for that gem, so the subsequent member
|
|
1371
|
+
# Gemfile.lock is not stale and the new floor resolves from the family
|
|
1372
|
+
# root local path instead of activating an older installed release.
|
|
1373
|
+
"BUNDLE_GEMFILE" => "#{member.root}/Gemfile"
|
|
1374
|
+
)
|
|
1375
|
+
end
|
|
1376
|
+
|
|
1327
1377
|
def template_bootstrap_dependency_results(workflow_members)
|
|
1328
1378
|
return [] if workflow_members.empty?
|
|
1329
1379
|
|
|
@@ -5776,6 +5826,20 @@ module Kettle
|
|
|
5776
5826
|
exclusions = compute_local_gem_exclusions(member)
|
|
5777
5827
|
env["KETTLE_JEM_LOCAL_GEM_EXCLUSIONS"] = exclusions.join(",") unless exclusions.empty?
|
|
5778
5828
|
end
|
|
5829
|
+
# Template dependency preparation records what it changed as changelog
|
|
5830
|
+
# entries. Changelogs go where the family config says they go — the
|
|
5831
|
+
# family root changelog for shared-changelog families, each member's
|
|
5832
|
+
# own otherwise — exactly like add-changelog. Without this, prepare
|
|
5833
|
+
# writes transferred entries into a member-local CHANGELOG.md even
|
|
5834
|
+
# when the family shares one, splitting a lock-step member into its
|
|
5835
|
+
# own release lane.
|
|
5836
|
+
if kettle_jem_template_command?(config.template_command || default_template_command(member))
|
|
5837
|
+
if config&.shared_changelog?
|
|
5838
|
+
env["K_CHANGELOG_PATH"] = File.expand_path(config.changelog_path, config.root)
|
|
5839
|
+
elsif member
|
|
5840
|
+
env["K_CHANGELOG_PATH"] = File.join(member.root, "CHANGELOG.md")
|
|
5841
|
+
end
|
|
5842
|
+
end
|
|
5779
5843
|
tool_gemfile = local_kettle_jem_gemfile if member && local_nomono_path_locked?(member)
|
|
5780
5844
|
# Nomono's existing generated bootstrap can activate an installed
|
|
5781
5845
|
# release before Bundler resolves a path-locked local Nomono. Start
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-family
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.24
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -567,10 +567,10 @@ licenses:
|
|
|
567
567
|
- AGPL-3.0-only
|
|
568
568
|
metadata:
|
|
569
569
|
homepage_uri: https://kettle-family.galtzo.com
|
|
570
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.3.
|
|
571
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.3.
|
|
570
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.3.24
|
|
571
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.3.24/CHANGELOG.md
|
|
572
572
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
573
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.3.
|
|
573
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.3.24
|
|
574
574
|
funding_uri: https://github.com/sponsors/pboling
|
|
575
575
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
576
576
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|