kettle-dev 3.1.0 → 3.1.1
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 +3 -2
- data/CHANGELOG.md +14 -1
- data/README.md +1 -1
- data/lib/kettle/dev/release_cli.rb +51 -5
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +12 -12
- 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: eaf2fc5f85eac56d87d38a8029c740631c50410cfb76c35d5e488df48374f170
|
|
4
|
+
data.tar.gz: d229bb60bdd25990a7e9666dcd7f54f61c42b58ecb695c63f70db3e1a17f2802
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c439b9406442d64e949a50fc2669eb1eb4a94a43e36cde5c71797e86d16e4278cff16bf582e212b54b1cf50ffbdaa982a334ffd25f4f8c12b6d887b6c8565aad
|
|
7
|
+
data.tar.gz: '0920ce88eb1b862b8071d1958ef9c638dc55166b68c6abab21b6b93d96fea1e8656187e00086c5a43ee2fb2dd408bb8c737cf5a524a86cab1fbd19e09d6fc90b'
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
�
|
|
1
|
+
/Xl�j�ꪝ��kc$��b��)���.�Z�����2B��>{(�
|
|
2
|
+
�}>��ŠU�����g��D?�Y�
|
|
3
|
+
�r�!RX��̩J���c�v�!�k�o�L�H��̧�i��T����(�� �xGW[t<�^>Aq���#��R��eij=H�L`ԯr�TJ�S������Ӟ�q}�4E,a�ܤ��^�I(&�z�4�Qzx/l�Y��d����4�_�����6������t���2��`��B ��b<qR�:=g(�{��a��6���Z�1�*)��t��.[RhFC/�Źs��W��3�i�ۑw��z�,��`2��A,J�r�ŕ�y�՛�K�=I�� J��l\.f�;nL6�`}��M�O'#.� s��
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,17 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [3.1.1] - 2026-09-14
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.1.1][3.1.1t]
|
|
36
|
+
- COVERAGE: 91.54% -- 6138/6705 lines in 48 files
|
|
37
|
+
- BRANCH COVERAGE: 76.08% -- 2344/3081 branches in 48 files
|
|
38
|
+
- 51.02% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Close release-created branch-stack validation PRs after successful publication instead of leaving obsolete conflicted PRs open.
|
|
43
|
+
|
|
33
44
|
## [3.1.0] - 2026-09-10
|
|
34
45
|
|
|
35
46
|
- TAG: [v3.1.0][3.1.0t]
|
|
@@ -3860,7 +3871,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
3860
3871
|
- Selecting will run the selected workflow via `act`
|
|
3861
3872
|
- This may move to its own gem in the future.
|
|
3862
3873
|
|
|
3863
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.
|
|
3874
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.1...HEAD
|
|
3875
|
+
[3.1.1]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.0...v3.1.1
|
|
3876
|
+
[3.1.1t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.1.1
|
|
3864
3877
|
[3.1.0]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.34...v3.1.0
|
|
3865
3878
|
[3.1.0t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.1.0
|
|
3866
3879
|
[3.0.34]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.33...v3.0.34
|
data/README.md
CHANGED
|
@@ -1066,7 +1066,7 @@ Thanks for RTFM. ☺️
|
|
|
1066
1066
|
[📌gitmoji]: https://gitmoji.dev
|
|
1067
1067
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1068
1068
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1069
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.
|
|
1069
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.705-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1070
1070
|
[🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
|
|
1071
1071
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1072
1072
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -214,6 +214,7 @@ module Kettle
|
|
|
214
214
|
@version_override = Kettle::Dev::Versioning.normalize_explicit_version(version)
|
|
215
215
|
@appraisal_task = normalize_appraisal_task(appraisal_task || ENV["KETTLE_RELEASE_APPRAISAL_TASK"])
|
|
216
216
|
@release_candidate = nil
|
|
217
|
+
@release_ci_pull_request = nil
|
|
217
218
|
@event_stream = options[:event_stream]
|
|
218
219
|
@event_recorder = Kettle::Ndjson.event_recorder(@event_stream, phase_timings: [])
|
|
219
220
|
@secrets_provider = options[:secrets_provider] || Kettle::Dev::ReleaseSecrets::Factory.build(provider_name: secrets_provider_name)
|
|
@@ -555,6 +556,11 @@ module Kettle
|
|
|
555
556
|
# 19. push tags to remotes (final step)
|
|
556
557
|
push_tags! if run_step?(19) && !local_ci?
|
|
557
558
|
|
|
559
|
+
# Branch-stack PRs exist only to trigger pull-request-only CI. They are
|
|
560
|
+
# deliberately not merged into trunk, so close the release-created PR
|
|
561
|
+
# after the publication has completed successfully.
|
|
562
|
+
close_generated_branch_stack_pull_request!
|
|
563
|
+
|
|
558
564
|
# Final success message
|
|
559
565
|
begin
|
|
560
566
|
version ||= detect_version
|
|
@@ -1460,11 +1466,24 @@ module Kettle
|
|
|
1460
1466
|
|
|
1461
1467
|
pull_request = github_pull_request_for_branch(owner: owner, repo: repo, branch: branch, base: trunk)
|
|
1462
1468
|
if pull_request
|
|
1463
|
-
|
|
1469
|
+
body = pull_request["body"]
|
|
1470
|
+
@release_ci_pull_request = {
|
|
1471
|
+
owner: owner,
|
|
1472
|
+
repo: repo,
|
|
1473
|
+
number: pull_request["number"],
|
|
1474
|
+
cleanup: body.is_a?(String) && body.index("Automated release validation PR for") == 0
|
|
1475
|
+
}
|
|
1476
|
+
puts "GitHub pull request ##{pull_request["number"]} already open for #{branch} -> #{trunk}: #{pull_request["url"]}"
|
|
1464
1477
|
return
|
|
1465
1478
|
end
|
|
1466
1479
|
|
|
1467
|
-
create_github_pull_request!(owner: owner, repo: repo, branch: branch, base: trunk)
|
|
1480
|
+
number = create_github_pull_request!(owner: owner, repo: repo, branch: branch, base: trunk)
|
|
1481
|
+
@release_ci_pull_request = {
|
|
1482
|
+
owner: owner,
|
|
1483
|
+
repo: repo,
|
|
1484
|
+
number: number,
|
|
1485
|
+
cleanup: true
|
|
1486
|
+
}
|
|
1468
1487
|
end
|
|
1469
1488
|
|
|
1470
1489
|
def github_pull_request_for_branch(owner:, repo:, branch:, base:)
|
|
@@ -1480,7 +1499,7 @@ module Kettle
|
|
|
1480
1499
|
"--state",
|
|
1481
1500
|
"open",
|
|
1482
1501
|
"--json",
|
|
1483
|
-
"number,url",
|
|
1502
|
+
"number,url,body",
|
|
1484
1503
|
"--limit",
|
|
1485
1504
|
"1"
|
|
1486
1505
|
)
|
|
@@ -1503,9 +1522,36 @@ module Kettle
|
|
|
1503
1522
|
"--title",
|
|
1504
1523
|
"Release #{branch}",
|
|
1505
1524
|
"--body",
|
|
1506
|
-
|
|
1525
|
+
release_validation_pull_request_body(branch)
|
|
1507
1526
|
)
|
|
1508
1527
|
puts "Created GitHub pull request for #{branch} -> #{base}: #{output.strip}"
|
|
1528
|
+
output[/\/pull\/(\d+)/, 1]
|
|
1529
|
+
end
|
|
1530
|
+
|
|
1531
|
+
def release_validation_pull_request_body(branch)
|
|
1532
|
+
"Automated release validation PR for `#{branch}`.\n\nThis PR exists only to run pull-request-only GitHub Actions before publishing the branch-stack release. Branch-stack releases are not merged into trunk."
|
|
1533
|
+
end
|
|
1534
|
+
|
|
1535
|
+
def close_generated_branch_stack_pull_request!
|
|
1536
|
+
pull_request = @release_ci_pull_request
|
|
1537
|
+
return unless pull_request && pull_request[:cleanup]
|
|
1538
|
+
|
|
1539
|
+
branch = current_branch
|
|
1540
|
+
trunk = detect_trunk_branch
|
|
1541
|
+
return unless branch_stack_release_branch?(branch, trunk)
|
|
1542
|
+
|
|
1543
|
+
args = [
|
|
1544
|
+
"pr", "close", pull_request[:number].to_s,
|
|
1545
|
+
"--repo", "#{pull_request[:owner]}/#{pull_request[:repo]}",
|
|
1546
|
+
"--comment", "Release completed successfully; closing the CI-only validation PR."
|
|
1547
|
+
]
|
|
1548
|
+
stdout, stderr, status = Open3.capture3(self.class.send(:command_env), "gh", *args)
|
|
1549
|
+
if status.success?
|
|
1550
|
+
puts "Closed release validation PR ##{pull_request[:number]} for #{branch}."
|
|
1551
|
+
else
|
|
1552
|
+
detail = stderr.strip.empty? ? stdout.strip : stderr.strip
|
|
1553
|
+
warn "Could not close release validation PR ##{pull_request[:number]}: #{detail}"
|
|
1554
|
+
end
|
|
1509
1555
|
end
|
|
1510
1556
|
|
|
1511
1557
|
def gh_output!(*args)
|
|
@@ -1748,7 +1794,7 @@ module Kettle
|
|
|
1748
1794
|
def git_output(args)
|
|
1749
1795
|
# Route all git interactions through the GitAdapter so tests can safely mock them
|
|
1750
1796
|
out, ok = @git.capture(args)
|
|
1751
|
-
[out.
|
|
1797
|
+
[out ? out.strip : "", !!ok]
|
|
1752
1798
|
end
|
|
1753
1799
|
|
|
1754
1800
|
def ensure_git_user!
|
data/lib/kettle/dev/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "3.1.
|
|
8
|
+
VERSION = "3.1.1"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
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: 3.1.
|
|
4
|
+
version: 3.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -60,7 +60,7 @@ dependencies:
|
|
|
60
60
|
version: '0.3'
|
|
61
61
|
- - ">="
|
|
62
62
|
- !ruby/object:Gem::Version
|
|
63
|
-
version: 0.3.
|
|
63
|
+
version: 0.3.15
|
|
64
64
|
type: :runtime
|
|
65
65
|
prerelease: false
|
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -70,7 +70,7 @@ dependencies:
|
|
|
70
70
|
version: '0.3'
|
|
71
71
|
- - ">="
|
|
72
72
|
- !ruby/object:Gem::Version
|
|
73
|
-
version: 0.3.
|
|
73
|
+
version: 0.3.15
|
|
74
74
|
- !ruby/object:Gem::Dependency
|
|
75
75
|
name: kettle-ndjson
|
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,7 +80,7 @@ dependencies:
|
|
|
80
80
|
version: '0.1'
|
|
81
81
|
- - ">="
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: 0.1.
|
|
83
|
+
version: 0.1.16
|
|
84
84
|
type: :runtime
|
|
85
85
|
prerelease: false
|
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -90,7 +90,7 @@ dependencies:
|
|
|
90
90
|
version: '0.1'
|
|
91
91
|
- - ">="
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
|
-
version: 0.1.
|
|
93
|
+
version: 0.1.16
|
|
94
94
|
- !ruby/object:Gem::Dependency
|
|
95
95
|
name: kettle-rb
|
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,7 +100,7 @@ dependencies:
|
|
|
100
100
|
version: '0.1'
|
|
101
101
|
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 0.1.
|
|
103
|
+
version: 0.1.13
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -110,7 +110,7 @@ dependencies:
|
|
|
110
110
|
version: '0.1'
|
|
111
111
|
- - ">="
|
|
112
112
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: 0.1.
|
|
113
|
+
version: 0.1.13
|
|
114
114
|
- !ruby/object:Gem::Dependency
|
|
115
115
|
name: kettle-test
|
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -120,7 +120,7 @@ dependencies:
|
|
|
120
120
|
version: '2.0'
|
|
121
121
|
- - ">="
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 2.0.
|
|
123
|
+
version: 2.0.22
|
|
124
124
|
type: :runtime
|
|
125
125
|
prerelease: false
|
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -130,7 +130,7 @@ dependencies:
|
|
|
130
130
|
version: '2.0'
|
|
131
131
|
- - ">="
|
|
132
132
|
- !ruby/object:Gem::Version
|
|
133
|
-
version: 2.0.
|
|
133
|
+
version: 2.0.22
|
|
134
134
|
- !ruby/object:Gem::Dependency
|
|
135
135
|
name: ruby-progressbar
|
|
136
136
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -401,10 +401,10 @@ licenses:
|
|
|
401
401
|
- AGPL-3.0-only
|
|
402
402
|
metadata:
|
|
403
403
|
homepage_uri: https://kettle-dev.galtzo.com
|
|
404
|
-
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.1.
|
|
405
|
-
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.1.
|
|
404
|
+
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.1.1
|
|
405
|
+
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.1.1/CHANGELOG.md
|
|
406
406
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
|
|
407
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.1.
|
|
407
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.1.1
|
|
408
408
|
funding_uri: https://github.com/sponsors/pboling
|
|
409
409
|
wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
|
|
410
410
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|