kettle-family 1.2.98 → 1.2.99
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 +16 -1
- data/README.md +7 -1
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +39 -1
- 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: e3fff3ab628dc6f5338ddf0a820485b986ce5f40aec27a905f1ee15e18450ab9
|
|
4
|
+
data.tar.gz: fa34533d50ee506f05e2f1cd9f865c011d12e91996b1c38cbabfe76eb0f9c676
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 81f62b1263cd2afbe483f7af09d0a4c1b3e4efac0328938592c84e381d5d731188031e1e9dad97ce343573b025a50d9de62424ce92d12be7245beced5de9996d
|
|
7
|
+
data.tar.gz: 95713fbc85dd8e285b7b94364bfe799735df2d2b9f19b1205d2ad0819d793f66c94e39aa3b3816826b2987dacabc14519e24f01a0447f29af1edb55567d49f95
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,19 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.2.99] - 2026-09-09
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.2.99][1.2.99t]
|
|
36
|
+
- COVERAGE: 93.52% -- 6261/6695 lines in 35 files
|
|
37
|
+
- BRANCH COVERAGE: 78.19% -- 2542/3251 branches in 35 files
|
|
38
|
+
- 32.75% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Keep resumed family releases on the prepared CI commit by skipping dependency-floor reconciliation and disabling sibling paths for child release validation.
|
|
43
|
+
|
|
44
|
+
- Scope branch-stack release resumes to the prepared branch so later targets run their complete release lifecycle before CI monitoring.
|
|
45
|
+
|
|
33
46
|
## [1.2.98] - 2026-09-09
|
|
34
47
|
|
|
35
48
|
- TAG: [v1.2.98][1.2.98t]
|
|
@@ -2692,7 +2705,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2692
2705
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
2693
2706
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
2694
2707
|
|
|
2695
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.
|
|
2708
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.99...HEAD
|
|
2709
|
+
[1.2.99]: https://github.com/kettle-dev/kettle-family/compare/v1.2.98...v1.2.99
|
|
2710
|
+
[1.2.99t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.99
|
|
2696
2711
|
[1.2.98]: https://github.com/kettle-dev/kettle-family/compare/v1.2.97...v1.2.98
|
|
2697
2712
|
[1.2.98t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.98
|
|
2698
2713
|
[1.2.97]: https://github.com/kettle-dev/kettle-family/compare/v1.2.96...v1.2.97
|
data/README.md
CHANGED
|
@@ -435,6 +435,12 @@ metadata fix requires a new full release run from step 0:
|
|
|
435
435
|
kettle-family release --publish --start-step 10 --local-ci
|
|
436
436
|
```
|
|
437
437
|
|
|
438
|
+
For `release.target_branches`, a resume position applies only to the first
|
|
439
|
+
selected branch, which is the one whose already-pushed release commit is being
|
|
440
|
+
resumed. Each later branch starts from step 0 so it creates, commits, and pushes
|
|
441
|
+
its own release candidate before `kettle-release` begins remote CI monitoring.
|
|
442
|
+
Use `--start-at member@branch` when the resumed branch is not the first target.
|
|
443
|
+
|
|
438
444
|
`--skip-changelog` skips only `kettle-changelog`; `--skip-appraisals` skips
|
|
439
445
|
only the Appraisal generation portion of release step 5 and still runs
|
|
440
446
|
`bin/rake yard`; and `--skip-ci` skips only remote CI monitoring. The generic
|
|
@@ -1180,7 +1186,7 @@ Thanks for RTFM. ☺️
|
|
|
1180
1186
|
[📌gitmoji]: https://gitmoji.dev
|
|
1181
1187
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1182
1188
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1183
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.
|
|
1189
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.695-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1184
1190
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
1185
1191
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1186
1192
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -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.2.
|
|
8
|
+
VERSION = "1.2.99"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -1492,7 +1492,7 @@ module Kettle
|
|
|
1492
1492
|
memo.concat(template_branch_sync_results(branch_members, runner: runner))
|
|
1493
1493
|
break memo unless memo.last&.ok?
|
|
1494
1494
|
end
|
|
1495
|
-
branch_results = current_branch_results(branch_members)
|
|
1495
|
+
branch_results = with_release_branch_resume_scope { current_branch_results(branch_members) }
|
|
1496
1496
|
tag_branch_results(branch_results, branch)
|
|
1497
1497
|
memo.concat(branch_results)
|
|
1498
1498
|
|
|
@@ -2604,6 +2604,10 @@ module Kettle
|
|
|
2604
2604
|
end
|
|
2605
2605
|
|
|
2606
2606
|
def release_dependency_floor_reconciliation_results(release_members)
|
|
2607
|
+
# A step resume must continue the already-prepared release commit.
|
|
2608
|
+
# Reconciliation can rewrite lockfiles and create a new commit, which
|
|
2609
|
+
# invalidates the CI SHA selected by the caller's --start-step.
|
|
2610
|
+
return [] if release_step_resume?
|
|
2607
2611
|
return [] unless execute && auto_dependency_floors
|
|
2608
2612
|
# Monorepo members intentionally keep their family dependencies as
|
|
2609
2613
|
# paths in the canonical development lockfile. Registry reconciliation
|
|
@@ -2671,6 +2675,7 @@ module Kettle
|
|
|
2671
2675
|
end
|
|
2672
2676
|
|
|
2673
2677
|
def append_dependency_floor_results(released_members:, dependent_members:, runner:, memo:)
|
|
2678
|
+
return if release_step_resume?
|
|
2674
2679
|
return unless auto_dependency_floors
|
|
2675
2680
|
return if dependent_members.empty?
|
|
2676
2681
|
|
|
@@ -3486,11 +3491,33 @@ module Kettle
|
|
|
3486
3491
|
end
|
|
3487
3492
|
|
|
3488
3493
|
def release_start_step_for(member)
|
|
3494
|
+
return nil if release_branch_resume_scoped? && !@release_branch_resume_active
|
|
3489
3495
|
return start_step unless fast_recovery_for?(member)
|
|
3490
3496
|
|
|
3491
3497
|
(fast_recovery == "retry-ci") ? 10 : 11
|
|
3492
3498
|
end
|
|
3493
3499
|
|
|
3500
|
+
# A release resume identifies one already-prepared branch commit. Later
|
|
3501
|
+
# branches in the same stack still need their complete lifecycle: build,
|
|
3502
|
+
# commit, push, and only then CI monitoring. Do not carry start_step (or
|
|
3503
|
+
# named CI recovery) beyond that first branch.
|
|
3504
|
+
def with_release_branch_resume_scope
|
|
3505
|
+
return yield unless release_branch_resume_scoped?
|
|
3506
|
+
|
|
3507
|
+
previous = @release_branch_resume_active
|
|
3508
|
+
@release_branch_resume_active = !@release_branch_resume_consumed
|
|
3509
|
+
yield
|
|
3510
|
+
ensure
|
|
3511
|
+
@release_branch_resume_consumed = true if @release_branch_resume_active
|
|
3512
|
+
@release_branch_resume_active = previous
|
|
3513
|
+
end
|
|
3514
|
+
|
|
3515
|
+
def release_branch_resume_scoped?
|
|
3516
|
+
command == "release" &&
|
|
3517
|
+
!config.release_target_branches.empty? &&
|
|
3518
|
+
(!start_step.nil? || !fast_recovery.nil?)
|
|
3519
|
+
end
|
|
3520
|
+
|
|
3494
3521
|
def release_skip_steps_for(member)
|
|
3495
3522
|
steps = Array(skip_steps).flat_map { |entry| entry.to_s.split(",") }.map(&:strip).reject(&:empty?)
|
|
3496
3523
|
steps << "10" if skip_ci
|
|
@@ -3641,6 +3668,13 @@ module Kettle
|
|
|
3641
3668
|
env = execution_profile(release_bootstrap_execution_profile, release_env)
|
|
3642
3669
|
env.merge!(release_wave_local_path_env_for(member, family_root: family_root))
|
|
3643
3670
|
env.merge!(release_local_path_policy_env(family_root: family_root))
|
|
3671
|
+
# A resumed child kettle-release starts in the member's mise
|
|
3672
|
+
# environment after the release candidate was already prepared.
|
|
3673
|
+
# Disable sibling paths so mise cannot reactivate them before the
|
|
3674
|
+
# resumed release validates that immutable lockfile. A new release
|
|
3675
|
+
# retains the staged local-graph policy until kettle-release reaches
|
|
3676
|
+
# its own release-lockfile boundary.
|
|
3677
|
+
env.merge!(release_lockfile_local_path_env_overrides(member)) if release_step_resume?
|
|
3644
3678
|
# Family release performs one live pin review before member releases.
|
|
3645
3679
|
# Child kettle-release must consume that reviewed cache instead of
|
|
3646
3680
|
# repeating the GitHub API lookup for every member.
|
|
@@ -5390,6 +5424,10 @@ module Kettle
|
|
|
5390
5424
|
!start_step.nil? || !skip_steps.to_s.empty? || fast_recovery || skip_ci
|
|
5391
5425
|
end
|
|
5392
5426
|
|
|
5427
|
+
def release_step_resume?
|
|
5428
|
+
!start_step.nil? || !skip_steps.to_s.empty?
|
|
5429
|
+
end
|
|
5430
|
+
|
|
5393
5431
|
def execution_profile(profile, env)
|
|
5394
5432
|
profile = ExecutionProfile.fetch(profile) unless profile.is_a?(ExecutionProfile::Definition)
|
|
5395
5433
|
env = env.dup
|
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.2.
|
|
4
|
+
version: 1.2.99
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -443,10 +443,10 @@ licenses:
|
|
|
443
443
|
- AGPL-3.0-only
|
|
444
444
|
metadata:
|
|
445
445
|
homepage_uri: https://kettle-family.galtzo.com
|
|
446
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.
|
|
447
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.
|
|
446
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.99
|
|
447
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.99/CHANGELOG.md
|
|
448
448
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
449
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.
|
|
449
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.99
|
|
450
450
|
funding_uri: https://github.com/sponsors/pboling
|
|
451
451
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
452
452
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|