kettle-dev 3.0.28 → 3.0.29
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 +1 -1
- data/lib/kettle/dev/lockfile_reset.rb +30 -8
- data/lib/kettle/dev/version.rb +1 -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: bc59b144ad35c13c8dc77cdadfcea930ba96aaf4d5d3896de8eaba577e83cd41
|
|
4
|
+
data.tar.gz: 3c045b3ba0e37e744a2e6305dd2b06edd30726973fb06c8462c2d40bb553e812
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1844c35d044d30ea440baca2c784b7aea035f37848c8dfa5b2a5a7533759e00eeaf20e04af3da857821617c762eaa717639b44fd17aabdd78cba5a1b2b7380ed
|
|
7
|
+
data.tar.gz: 7b4e5f90dbcf71235efe088f84ae03ec0707539f2072e2f246d0a48e1dc43bd361c8c5befc6a2bebfe7d017ceffca1fab631e897558bbcdf9882f3253cfe747a
|
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
|
+
## [3.0.29] - 2026-09-01
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.0.29][3.0.29t]
|
|
36
|
+
- COVERAGE: 91.58% -- 6003/6555 lines in 47 files
|
|
37
|
+
- BRANCH COVERAGE: 76.25% -- 2302/3019 branches in 47 files
|
|
38
|
+
- 50.24% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Install bootstrap gems required by statically evaluated Gemfiles before isolated release lockfile resolution.
|
|
43
|
+
|
|
44
|
+
- Ignore inactive nested Gemfile bootstrap requirements when their appraisal lockfile does not include the bootstrap gem.
|
|
45
|
+
|
|
33
46
|
## [3.0.28] - 2026-09-01
|
|
34
47
|
|
|
35
48
|
- TAG: [v3.0.28][3.0.28t]
|
|
@@ -3773,7 +3786,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
3773
3786
|
- Selecting will run the selected workflow via `act`
|
|
3774
3787
|
- This may move to its own gem in the future.
|
|
3775
3788
|
|
|
3776
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.
|
|
3789
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.29...HEAD
|
|
3790
|
+
[3.0.29]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.28...v3.0.29
|
|
3791
|
+
[3.0.29t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.29
|
|
3777
3792
|
[3.0.28]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.27...v3.0.28
|
|
3778
3793
|
[3.0.28t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.28
|
|
3779
3794
|
[3.0.27]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.26...v3.0.27
|
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.555-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
|
|
@@ -476,14 +476,18 @@ module Kettle
|
|
|
476
476
|
end
|
|
477
477
|
end
|
|
478
478
|
|
|
479
|
-
# Bundler evaluates a Gemfile
|
|
480
|
-
# Install only
|
|
481
|
-
# unrelated gems from the invoking Ruby cannot influence
|
|
479
|
+
# Bundler evaluates a Gemfile and its static eval_gemfile inputs before it
|
|
480
|
+
# resolves declared gems. Install only literal bootstrap requires into the
|
|
481
|
+
# reset sandbox so unrelated gems from the invoking Ruby cannot influence
|
|
482
|
+
# resolution.
|
|
482
483
|
def install_gemfile_bootstrap_gems!(gemfile:, lockfile:, gem_home:)
|
|
483
|
-
|
|
484
|
+
gemfile_bootstrap_gems(gemfile).each do |name, required_by_root_gemfile|
|
|
484
485
|
version = locked_registry_gem_version(lockfile, name)
|
|
485
486
|
source_url = registry_source_urls(lockfile).first
|
|
486
|
-
|
|
487
|
+
needs_install = required_by_root_gemfile || (version && source_url)
|
|
488
|
+
next unless needs_install
|
|
489
|
+
|
|
490
|
+
if !version || !source_url
|
|
487
491
|
raise Error, "Cannot isolate Gemfile bootstrap #{name.inspect}: #{display_path(lockfile)} does not lock it from a registry source"
|
|
488
492
|
end
|
|
489
493
|
|
|
@@ -491,9 +495,27 @@ module Kettle
|
|
|
491
495
|
end
|
|
492
496
|
end
|
|
493
497
|
|
|
494
|
-
def
|
|
495
|
-
|
|
496
|
-
|
|
498
|
+
def gemfile_bootstrap_gems(gemfile)
|
|
499
|
+
gemfile_source_paths(gemfile).each_with_index.each_with_object({}) do |(path, index), gems|
|
|
500
|
+
calls = require_calls_from_ripper(Ripper.sexp(File.read(path)))
|
|
501
|
+
calls.filter_map { |method_name, argument| bootstrap_gem_name(method_name, argument) }.each do |name|
|
|
502
|
+
gems[name] = gems.fetch(name, false) || index.zero?
|
|
503
|
+
end
|
|
504
|
+
end
|
|
505
|
+
end
|
|
506
|
+
|
|
507
|
+
def gemfile_source_paths(gemfile, seen = Set.new)
|
|
508
|
+
path = File.expand_path(gemfile)
|
|
509
|
+
return [] if seen.include?(path) || !File.file?(path)
|
|
510
|
+
|
|
511
|
+
seen << path
|
|
512
|
+
calls = require_calls_from_ripper(Ripper.sexp(File.read(path)))
|
|
513
|
+
nested_paths = calls.filter_map do |method_name, argument|
|
|
514
|
+
next unless method_name == "eval_gemfile" && argument
|
|
515
|
+
|
|
516
|
+
File.expand_path(argument, File.dirname(path))
|
|
517
|
+
end
|
|
518
|
+
[path, *nested_paths.flat_map { |nested_path| gemfile_source_paths(nested_path, seen) }]
|
|
497
519
|
end
|
|
498
520
|
|
|
499
521
|
def require_calls_from_ripper(node, calls = [])
|
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.0.
|
|
8
|
+
VERSION = "3.0.29"
|
|
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.0.
|
|
4
|
+
version: 3.0.29
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -400,10 +400,10 @@ licenses:
|
|
|
400
400
|
- AGPL-3.0-only
|
|
401
401
|
metadata:
|
|
402
402
|
homepage_uri: https://kettle-dev.galtzo.com
|
|
403
|
-
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.
|
|
404
|
-
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.
|
|
403
|
+
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.29
|
|
404
|
+
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.29/CHANGELOG.md
|
|
405
405
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
|
|
406
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.
|
|
406
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.29
|
|
407
407
|
funding_uri: https://github.com/sponsors/pboling
|
|
408
408
|
wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
|
|
409
409
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|