kettle-deps-floor 0.1.0
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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +138 -0
- data/LICENSE.md +10 -0
- data/README.md +460 -0
- data/exe/kettle-deps-floor +12 -0
- data/lib/kettle/deps/floor/cli.rb +236 -0
- data/lib/kettle/deps/floor/registry_resolver.rb +31 -0
- data/lib/kettle/deps/floor/updater.rb +398 -0
- data/lib/kettle/deps/floor/version.rb +15 -0
- data/lib/kettle/deps/floor.rb +19 -0
- data/sig/kettle/deps/floor.rbs +10 -0
- data.tar.gz.sig +0 -0
- metadata +357 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 79abdde57cba32cd503cf13a19d556364165c06df48308b6409a8e54a46e344e
|
|
4
|
+
data.tar.gz: 9d229a9ec1e79fe6826e25780a9cf938868ed41a0de98a906113f064557822d0
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 193a07a05e3284be07561f25c1139bf908fba744280953dc35470718aebc9833464f90d60ebd2a71dae239fdf08c3ef1f52fe6b79cc9a451addabf265009ac18
|
|
7
|
+
data.tar.gz: b58d8b3bef3f09b4c324ae9a908a837f36c9fa9f58def13a32e34e25eacd2fe3a1115bc3d7ba5a53df0e2287057c25211aad1711314bad4c9f9cede2e816d753
|
checksums.yaml.gz.sig
ADDED
|
Binary file
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
[![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
|
|
4
|
+
|
|
5
|
+
All notable changes to this project will be documented in this file.
|
|
6
|
+
|
|
7
|
+
The format is based on [Keep a Changelog][📗keep-changelog],
|
|
8
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
9
|
+
and [yes][📌major-versions-not-sacred], platform and engine support are part of the [public API][📌semver-breaking].
|
|
10
|
+
Please file a bug if you notice a violation of semantic versioning.
|
|
11
|
+
|
|
12
|
+
[📌semver]: https://semver.org/spec/v2.0.0.html
|
|
13
|
+
[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
|
|
14
|
+
[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
|
|
15
|
+
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
|
|
16
|
+
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
|
17
|
+
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
|
|
18
|
+
|
|
19
|
+
## [Unreleased]
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
### Deprecated
|
|
26
|
+
|
|
27
|
+
### Removed
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
|
|
31
|
+
### Security
|
|
32
|
+
|
|
33
|
+
## [0.1.0] - 2026-10-24
|
|
34
|
+
|
|
35
|
+
- TAG: [v0.1.0][0.1.0t]
|
|
36
|
+
- COVERAGE: 99.46% -- 368/370 lines in 5 files
|
|
37
|
+
- BRANCH COVERAGE: 80.98% -- 132/163 branches in 5 files
|
|
38
|
+
- 46.15% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- kettle-jem-template-20260720-005 - README Support & Community links now
|
|
43
|
+
include RubyForum.
|
|
44
|
+
- kettle-jem-template-20260726-001 - Projects now include YARD lint
|
|
45
|
+
configuration and documentation dependencies so documentation issues fail
|
|
46
|
+
before generated docs are refreshed.
|
|
47
|
+
- kettle-jem-template-20260727-001 - Spec harness documentation now lists the
|
|
48
|
+
RSpec helpers provided by `kettle-test`.
|
|
49
|
+
- kettle-jem-template-20260913-001 - Templating now also surfaces a review
|
|
50
|
+
entry in `dependency_conflicts.resolve` when a direct development
|
|
51
|
+
dependency doesn't support one or more of this project's declared
|
|
52
|
+
`engines:` and has no template-managed modular home (e.g. `sqlite3` on
|
|
53
|
+
`jruby`). Review each entry and pick a resolution per the project's own
|
|
54
|
+
engine support needs.
|
|
55
|
+
|
|
56
|
+
- [kc] generic-dependency-floor-manager: Add a reusable Prism-based dependency-floor updater with configurable Ruby source globs, explicit family target versions, bounded RubyGems upgrades, holds, dry-run/check/write modes, and safe changelog/commit orchestration.
|
|
57
|
+
|
|
58
|
+
- [kc] ndjson-event-stream: Add --events output using kettle-ndjson for versioned run_start, command_step, and summary records; keep human output on stderr and JSON reports mutually exclusive with event mode.
|
|
59
|
+
|
|
60
|
+
- [kc] template-placeholder-tolerance: Add a placeholder_pattern option (CLI flag and config key) that treats matched template tokens as opaque equal-length constants during Prism parsing, so template sources like kettle-jem's {KJ|...} files remain floor-managed; records whose floors or names sit inside placeholder spans are never planned or edited.
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
|
|
64
|
+
- kettle-jem-template-20260716-002 - Gemspecs now ship fewer repository-only
|
|
65
|
+
files, reducing package noise for downstream packagers.
|
|
66
|
+
- kettle-jem-template-20260720-002 - Development Gemfiles now use the released
|
|
67
|
+
`tree_sitter_language_pack` gem 1.13.3 or newer by default.
|
|
68
|
+
- kettle-jem-template-20260725-002 - Version specs now use `anonymous_loader` to
|
|
69
|
+
cover `version.rb` without redefining constants, or are removed when version
|
|
70
|
+
specs are not managed for the project.
|
|
71
|
+
- kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer
|
|
72
|
+
setup-ruby-flash planning and can prepare appraisal-only jobs without
|
|
73
|
+
installing the main Gemfile bundle.
|
|
74
|
+
- kettle-jem-template-20260801-001 - Generated README gem dashboard links now
|
|
75
|
+
use ClickGems instead of BestGems.
|
|
76
|
+
|
|
77
|
+
- [kc] kettle-jem/template: updated 120 project files:
|
|
78
|
+
- code and tests (7)
|
|
79
|
+
- configuration (3)
|
|
80
|
+
- dependencies (44)
|
|
81
|
+
- documentation (3)
|
|
82
|
+
- other (42)
|
|
83
|
+
- workflows (21)
|
|
84
|
+
|
|
85
|
+
- Relicense to AGPL-3.0-only (matching kettle-dev, whose runtime API this gem uses) before first release; the SkyWalking Eyes workflow and .licenserc.yaml are removed, as license-eye only supports permissive main licenses.
|
|
86
|
+
|
|
87
|
+
- [kc] kettle-jem/prepare: updated 3 project files:
|
|
88
|
+
- dependencies (3)
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
|
|
92
|
+
- kettle-jem-template-20260720-003 - StructuredMerge Git diff driver config now
|
|
93
|
+
uses the installed `smorg-rb` driver command.
|
|
94
|
+
- kettle-jem-template-20260725-001 - Release pull request branches beginning
|
|
95
|
+
with `feature/release` now run JRuby and TruffleRuby workflows.
|
|
96
|
+
- kettle-jem-template-20260726-002 - Generated version files now document their
|
|
97
|
+
version namespace and constants, reducing warning-only YARD lint output.
|
|
98
|
+
- kettle-jem-template-20260726-003 - Coverage upload steps now treat Coveralls,
|
|
99
|
+
QLTY, and Codecov as optional, so provider outages do not fail CI when local
|
|
100
|
+
coverage thresholds still pass.
|
|
101
|
+
- kettle-jem-template-20260728-002 - Generated RuboCop configs now ignore the
|
|
102
|
+
same `gemfiles/vendor/bundle` tree as `.gitignore`, so vendored dependency
|
|
103
|
+
installs are not reported as project lint debt.
|
|
104
|
+
- kettle-jem-template-20260728-003 - Generated dep-heads workflows now run
|
|
105
|
+
TruffleRuby jobs with current RubyGems and Bundler, avoiding setup failures
|
|
106
|
+
before the test suite starts.
|
|
107
|
+
- kettle-jem-template-20260728-004 - Generated dep-heads workflows now use the
|
|
108
|
+
setup-ruby Bundler install path for direct appraisal Gemfiles, avoiding rv
|
|
109
|
+
lockfile parser failures on Git and path dependencies.
|
|
110
|
+
- kettle-jem-template-20260728-005 - VersionGem bootstrap now creates the
|
|
111
|
+
missing canonical version spec when a project only has shim namespace version
|
|
112
|
+
specs.
|
|
113
|
+
- kettle-jem-template-20260730-001 - Gemspec package file enumeration now runs
|
|
114
|
+
relative to the gemspec directory, so release package contents stay correct
|
|
115
|
+
even when the gemspec is loaded from another working directory.
|
|
116
|
+
- kettle-jem-template-20260801-002 - Generated RSpec helpers now normalize
|
|
117
|
+
managed configuration block bindings structurally, preventing mixed block
|
|
118
|
+
parameter names from producing invalid configuration after a merge.
|
|
119
|
+
- kettle-jem-template-20260801-003 - Generated project metadata and
|
|
120
|
+
documentation now normalize configured underscore hostnames to valid
|
|
121
|
+
hyphenated hostnames.
|
|
122
|
+
- kettle-jem-template-20260801-004 - Generated organization README logos now
|
|
123
|
+
use GitHub's stable organization avatar endpoint instead of assuming a
|
|
124
|
+
matching Galtzo-hosted asset exists.
|
|
125
|
+
- kettle-jem-template-20260802-001 - Devcontainer JSON files now merge as JSONC,
|
|
126
|
+
preserving comments and trailing commas during template updates.
|
|
127
|
+
|
|
128
|
+
- Lower the kettle-dev gemspec floor to the released 3.1.24; 3.1.25 is not yet published, which made the gem unresolvable from a clean bundle.
|
|
129
|
+
|
|
130
|
+
- Declare the prism runtime dependency; the AST-based floor parsing needs it and it is only a default gem on Ruby 3.3+, so older Rubies could not load the tool.
|
|
131
|
+
|
|
132
|
+
- Scan embedded template text with a position loop over explicit MatchData; Regexp.last_match inside to_enum(:scan) blocks is unreliable on TruffleRuby.
|
|
133
|
+
|
|
134
|
+
- Whitelist the gem itself for license-eye (it is unresolvable from the registry before first release) and commit a release-mode Gemfile.lock with checksums and no local path remotes.
|
|
135
|
+
|
|
136
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-deps-floor/compare/v0.1.0...HEAD
|
|
137
|
+
[0.1.0]: https://github.com/kettle-dev/kettle-deps-floor/compare/93a58879cd306c9011fb0e1bc6f0bce548101117...v0.1.0
|
|
138
|
+
[0.1.0t]: https://github.com/kettle-dev/kettle-deps-floor/releases/tag/v0.1.0
|
data/LICENSE.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# License
|
|
2
|
+
|
|
3
|
+
This project is made available under the following license.
|
|
4
|
+
Choose the option that best fits your use case:
|
|
5
|
+
|
|
6
|
+
- [MIT](https://github.com/kettle-dev/kettle-deps-floor/blob/main/MIT.md)
|
|
7
|
+
|
|
8
|
+
## Copyright Notice
|
|
9
|
+
|
|
10
|
+
- Copyright (c) 2026 Peter H. Boling
|
data/README.md
ADDED
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
<a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by GitHub" src="https://github.com/kettle-dev.png?size=192" width="14%" align="right"/></a>
|
|
2
|
+
|
|
3
|
+
# 💎 Kettle::Deps::Floor
|
|
4
|
+
|
|
5
|
+
[![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only][📄license-img]][📄license] [![Total downloads][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
|
|
6
|
+
|
|
7
|
+
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know on Discord][✉️discord-invite] or [RubyForum][✉️ruby-forum], as I may have missed the notification.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
`if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
|
|
12
|
+
|
|
13
|
+
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
|
|
14
|
+
|
|
15
|
+
<details markdown="1">
|
|
16
|
+
<summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
|
|
17
|
+
|
|
18
|
+
I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
|
|
19
|
+
|
|
20
|
+
</details>
|
|
21
|
+
|
|
22
|
+
## 🌻 Synopsis <a href="https://discord.gg/3qme4XHNKN"><img alt="Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="8%" align="right"/></a> <a href="https://ruby-toolbox.com"><img alt="ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5" src="https://logos.galtzo.com/assets/images/ruby-lang/avatar-128px.svg" width="8%" align="right"/></a>
|
|
23
|
+
|
|
24
|
+
`kettle-deps-floor` discovers the minimum dependency versions already supported by your Ruby gems and raises their declared floors when newer versions are safe to use. It can inspect gemspecs and configured template sources, with upgrade limits, dry-run reports, checks, and controlled commits.
|
|
25
|
+
|
|
26
|
+
## 💡 Info you can shake a stick at
|
|
27
|
+
|
|
28
|
+
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
|
|
29
|
+
|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
30
|
+
| Works with JRuby | [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
|
|
31
|
+
| Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]|
|
|
32
|
+
| Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
|
|
33
|
+
| Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
|
|
34
|
+
| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
|
35
|
+
| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
|
|
36
|
+
| Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
|
|
37
|
+
| Compliance | [![License: AGPL-3.0-only][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
|
38
|
+
| Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
|
|
39
|
+
| Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼♂️devto-img]][💖💁🏼♂️devto] |
|
|
40
|
+
| `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼♂️aboutme-img]][💖💁🏼♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
|
|
41
|
+
|
|
42
|
+
### Compatibility
|
|
43
|
+
|
|
44
|
+
Compatible with MRI Ruby 3.2.0+, JRuby, and TruffleRuby.
|
|
45
|
+
CI workflows and Appraisals are generated for MRI Ruby 3.2.0+.
|
|
46
|
+
The current MRI CI lane runs on Linux and macOS.
|
|
47
|
+
This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
|
|
48
|
+
may be higher than the gem's runtime compatibility floor when legacy Rubies are
|
|
49
|
+
not practical for the current toolchain.
|
|
50
|
+
|
|
51
|
+
<a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
|
|
52
|
+
|
|
53
|
+
The _amazing_ test matrix is powered by the kettle-dev stack.
|
|
54
|
+
|
|
55
|
+
<details markdown="1">
|
|
56
|
+
<summary>How kettle-dev manages complexity in tests</summary>
|
|
57
|
+
|
|
58
|
+
| Gem | Source | Role | Total downloads |
|
|
59
|
+
|-----|--------|------|---------------------|
|
|
60
|
+
| [appraisal2](https://clickgems.clickhouse.com/dashboard/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [](https://clickgems.clickhouse.com/dashboard/appraisal2) |
|
|
61
|
+
| [appraisal2-rubocop](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) |
|
|
62
|
+
| [kettle-dev](https://clickgems.clickhouse.com/dashboard/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [](https://clickgems.clickhouse.com/dashboard/kettle-dev) |
|
|
63
|
+
| [kettle-jem](https://clickgems.clickhouse.com/dashboard/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [](https://clickgems.clickhouse.com/dashboard/kettle-jem) |
|
|
64
|
+
| [kettle-soup-cover](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) |
|
|
65
|
+
| [kettle-test](https://clickgems.clickhouse.com/dashboard/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [](https://clickgems.clickhouse.com/dashboard/kettle-test) |
|
|
66
|
+
| [rubocop-lts](https://clickgems.clickhouse.com/dashboard/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [](https://clickgems.clickhouse.com/dashboard/rubocop-lts) |
|
|
67
|
+
| [turbo_tests2](https://clickgems.clickhouse.com/dashboard/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [](https://clickgems.clickhouse.com/dashboard/turbo_tests2) |
|
|
68
|
+
|
|
69
|
+
</details>
|
|
70
|
+
|
|
71
|
+
### Federated DVCS
|
|
72
|
+
|
|
73
|
+
<details markdown="1">
|
|
74
|
+
<summary>Find this repo on federated forges (Coming soon!)</summary>
|
|
75
|
+
|
|
76
|
+
| Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI |
|
|
77
|
+
|-------------------------------------------------|-------------------------------------------|-------------------|------------------|-----------------|----------------|
|
|
78
|
+
| 🧪 [kettle-dev/kettle-deps-floor on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix |
|
|
79
|
+
| 🧊 [kettle-dev/kettle-deps-floor on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix |
|
|
80
|
+
| 🐙 [kettle-dev/kettle-deps-floor on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix |
|
|
81
|
+
|
|
82
|
+
</details>
|
|
83
|
+
|
|
84
|
+
### Enterprise Support
|
|
85
|
+
|
|
86
|
+
For enterprise support from the maintainer, use [Upwork][👨🏼🏫expsup-upwork] or [CodeMentor][👨🏼🏫expsup-codementor].
|
|
87
|
+
|
|
88
|
+
Other support channels:
|
|
89
|
+
|
|
90
|
+
- [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
|
|
91
|
+
- [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
|
92
|
+
|
|
93
|
+
## ✨ Installation
|
|
94
|
+
|
|
95
|
+
Install the gem and add to the application's Gemfile by executing:
|
|
96
|
+
|
|
97
|
+
```console
|
|
98
|
+
bundle add kettle-deps-floor
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
|
102
|
+
|
|
103
|
+
```console
|
|
104
|
+
gem install kettle-deps-floor
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## ⚙️ Configuration
|
|
108
|
+
|
|
109
|
+
By default, `kettle-deps-floor` scans `*.gemspec` in the selected project root
|
|
110
|
+
and queries RubyGems for newer compatible versions. A project may add
|
|
111
|
+
`.kettle-deps-floor.yml` to configure source globs, explicit family-release
|
|
112
|
+
versions, and dependency holds:
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
sources:
|
|
116
|
+
- "*.gemspec"
|
|
117
|
+
- "Gemfile"
|
|
118
|
+
target_versions:
|
|
119
|
+
token-resolver: "2.0.14"
|
|
120
|
+
holds:
|
|
121
|
+
rubocop-minitest: "Wait until the standard gem range permits this release."
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`target_versions` is useful for sibling-family lockstep releases. Holds suppress
|
|
125
|
+
a named dependency from automatic updates. Use quoted version strings.
|
|
126
|
+
|
|
127
|
+
## 🔧 Basic Usage
|
|
128
|
+
|
|
129
|
+
Preview compatible dependency-floor updates without changing files:
|
|
130
|
+
|
|
131
|
+
```console
|
|
132
|
+
bundle exec kettle-deps-floor --upgrade patch
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Check a family member against an explicit just-released sibling version:
|
|
136
|
+
|
|
137
|
+
```console
|
|
138
|
+
bundle exec kettle-deps-floor --check --target token-resolver=2.0.14
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Apply updates, add a keyed Unreleased changelog entry, and commit only the
|
|
142
|
+
changed source files (the default write behavior):
|
|
143
|
+
|
|
144
|
+
```console
|
|
145
|
+
bundle exec kettle-deps-floor --write --upgrade minor
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Use `--no-commit` to write without committing, `--no-changelog` to omit the
|
|
149
|
+
changelog update, `--source GLOB` to add or override scanned Ruby source paths,
|
|
150
|
+
and `--only GEM[,GEM...]` to limit the update set. The `major`, `minor`, and
|
|
151
|
+
`patch` limits constrain registry candidates; existing non-floor requirements
|
|
152
|
+
are still checked before a target is accepted. Changes use Prism AST source
|
|
153
|
+
locations rather than text substitutions.
|
|
154
|
+
|
|
155
|
+
Use `--events` to stream compact NDJSON progress events to stdout; the normal
|
|
156
|
+
human summary moves to stderr so the stream remains machine-readable. Events
|
|
157
|
+
use kettle-ndjson's versioned `run_start`, `command_step`, and `summary` schema.
|
|
158
|
+
|
|
159
|
+
## 🔐 Security
|
|
160
|
+
|
|
161
|
+
See [SECURITY.md][🔐security].
|
|
162
|
+
|
|
163
|
+
## 🤝 Contributing
|
|
164
|
+
|
|
165
|
+
If you need some ideas of where to help, you could work on adding more code coverage,
|
|
166
|
+
check [issues][🤝gh-issues] or [PRs][🤝gh-pulls], or use the gem and think about how it could be better.
|
|
167
|
+
|
|
168
|
+
We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
|
|
169
|
+
|
|
170
|
+
See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
|
|
171
|
+
|
|
172
|
+
### 🚀 Release Instructions
|
|
173
|
+
|
|
174
|
+
See [CONTRIBUTING.md][🤝contributing].
|
|
175
|
+
|
|
176
|
+
### Code Coverage
|
|
177
|
+
|
|
178
|
+
<details markdown="1">
|
|
179
|
+
<summary>Coverage service badges</summary>
|
|
180
|
+
|
|
181
|
+
[![Coverage Graph][🏀codecov-g]][🏀codecov]
|
|
182
|
+
|
|
183
|
+
[![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
|
|
184
|
+
|
|
185
|
+
[![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
|
|
186
|
+
|
|
187
|
+
</details>
|
|
188
|
+
|
|
189
|
+
### 🪇 Code of Conduct
|
|
190
|
+
|
|
191
|
+
Everyone interacting with this project's codebases, issue trackers,
|
|
192
|
+
chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct].
|
|
193
|
+
|
|
194
|
+
## 🌈 Contributors
|
|
195
|
+
|
|
196
|
+
[![Contributors][🖐contributors-img]][🖐contributors]
|
|
197
|
+
|
|
198
|
+
Made with [contributors-img][🖐contrib-rocks].
|
|
199
|
+
|
|
200
|
+
Also see GitLab Contributors: [https://gitlab.com/kettle-dev/kettle-deps-floor/-/graphs/main][🚎contributors-gl]
|
|
201
|
+
|
|
202
|
+
## 📌 Versioning
|
|
203
|
+
|
|
204
|
+
This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
|
|
205
|
+
For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
|
|
206
|
+
|
|
207
|
+
For example:
|
|
208
|
+
|
|
209
|
+
```ruby
|
|
210
|
+
spec.add_dependency("kettle-deps-floor", "~> 0.0")
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
<details markdown="1">
|
|
214
|
+
<summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
|
|
215
|
+
|
|
216
|
+
Dropping support for a platform can be a breaking change for affected users.
|
|
217
|
+
If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
|
|
218
|
+
|
|
219
|
+
To get a better understanding of how SemVer is intended to work over a project's lifetime,
|
|
220
|
+
read this article from the creator of SemVer:
|
|
221
|
+
|
|
222
|
+
- ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
|
|
223
|
+
|
|
224
|
+
</details>
|
|
225
|
+
|
|
226
|
+
See [CHANGELOG.md][📌changelog] for a list of releases.
|
|
227
|
+
|
|
228
|
+
## 📄 License
|
|
229
|
+
|
|
230
|
+
The gem is available under the following license: [AGPL-3.0-only](https://github.com/kettle-dev/kettle-deps-floor/blob/main/AGPL-3.0-only.md).
|
|
231
|
+
See [LICENSE.md][📄license] for details.
|
|
232
|
+
|
|
233
|
+
If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
|
|
234
|
+
|
|
235
|
+
### © Copyright
|
|
236
|
+
|
|
237
|
+
See [LICENSE.md][📄license] for the official copyright notice.
|
|
238
|
+
|
|
239
|
+
<details markdown="1">
|
|
240
|
+
<summary>Copyright holders</summary>
|
|
241
|
+
|
|
242
|
+
- Copyright (c) 2026 Peter H. Boling
|
|
243
|
+
|
|
244
|
+
</details>
|
|
245
|
+
|
|
246
|
+
## 🤑 A request for help
|
|
247
|
+
|
|
248
|
+
Maintainers have teeth and need to pay their dentists.
|
|
249
|
+
After getting laid off in an RIF in March, and encountering difficulty finding a new one,
|
|
250
|
+
I began spending most of my time building open source tools.
|
|
251
|
+
I'm hoping to be able to pay for my kids' health insurance this month,
|
|
252
|
+
so if you value the work I am doing, I need your support.
|
|
253
|
+
Please consider sponsoring me or the project.
|
|
254
|
+
|
|
255
|
+
To join the community or get help, use the RubyForum or Discord.
|
|
256
|
+
|
|
257
|
+
[![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
|
|
258
|
+
[![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
|
259
|
+
|
|
260
|
+
To say "thanks!" ☝️ Join the community or 👇️ send money.
|
|
261
|
+
|
|
262
|
+
[![Sponsor kettle-dev/kettle-deps-floor on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
|
|
263
|
+
|
|
264
|
+
### Please give the project a star ⭐ ♥.
|
|
265
|
+
|
|
266
|
+
Many parts of this project are actively managed by a [kettle-jem](https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem) smart template utilizing [StructuredMerge.org](https://structuredmerge.org) merge contracts.
|
|
267
|
+
|
|
268
|
+
Thanks for RTFM. ☺️
|
|
269
|
+
|
|
270
|
+
[⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
|
|
271
|
+
[⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
|
|
272
|
+
[⛳liberapay]: https://liberapay.com/pboling/donate
|
|
273
|
+
[🖇osc-all-img]: https://img.shields.io/opencollective/all/kettle-dev
|
|
274
|
+
[🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/kettle-dev
|
|
275
|
+
[🖇osc-backers-img]: https://img.shields.io/opencollective/backers/kettle-dev
|
|
276
|
+
[🖇osc-backers]: https://opencollective.com/kettle-dev#backer
|
|
277
|
+
[🖇osc-backers-i]: https://opencollective.com/kettle-dev/backers/badge.svg?style=flat
|
|
278
|
+
[🖇osc-sponsors]: https://opencollective.com/kettle-dev#sponsor
|
|
279
|
+
[🖇osc-sponsors-i]: https://opencollective.com/kettle-dev/sponsors/badge.svg?style=flat
|
|
280
|
+
[🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/kettle-dev?style=for-the-badge
|
|
281
|
+
[🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/kettle-dev?style=for-the-badge
|
|
282
|
+
[🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/kettle-dev?style=for-the-badge
|
|
283
|
+
[🖇osc]: https://opencollective.com/kettle-dev
|
|
284
|
+
[🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
|
|
285
|
+
[🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
|
|
286
|
+
[🖇sponsor]: https://github.com/sponsors/pboling
|
|
287
|
+
[🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
|
|
288
|
+
[🖇kofi]: https://ko-fi.com/pboling
|
|
289
|
+
[🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
|
|
290
|
+
[🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
|
|
291
|
+
[🖇buyme]: https://www.buymeacoffee.com/pboling
|
|
292
|
+
[🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
|
|
293
|
+
[🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
|
|
294
|
+
[🖇paypal]: https://www.paypal.com/paypalme/peterboling
|
|
295
|
+
[🖇floss-funding.dev]: https://floss-funding.dev
|
|
296
|
+
[🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
|
|
297
|
+
[✉️discord-invite]: https://discord.gg/3qme4XHNKN
|
|
298
|
+
[✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
|
|
299
|
+
[✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
|
|
300
|
+
[✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
|
|
301
|
+
[✉️ruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=flat&logo=discourse&label=Ruby%20Users%20Forum
|
|
302
|
+
[✉️ruby-forum-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=for-the-badge&logo=discourse&label=Ruby%20Users%20Forum
|
|
303
|
+
[✉️ruby-forum]: https://www.rubyforum.org/tag/kettle-dev
|
|
304
|
+
|
|
305
|
+
[✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
306
|
+
[⛳️gem-namespace]: https://github.com/kettle-dev/kettle-deps-floor
|
|
307
|
+
[⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle::Deps::Floor-3C2D2D.svg?style=square&logo=ruby&logoColor=white
|
|
308
|
+
[⛳️gem-name]: https://clickgems.clickhouse.com/dashboard/kettle-deps-floor
|
|
309
|
+
[⛳️name-img]: https://img.shields.io/badge/name-kettle--deps--floor-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
|
|
310
|
+
[⛳️tag-img]: https://img.shields.io/github/tag/kettle-dev/kettle-deps-floor.svg
|
|
311
|
+
[⛳️tag]: https://github.com/kettle-dev/kettle-deps-floor/releases
|
|
312
|
+
[🚂maint-blog]: http://www.railsbling.com/tags/kettle-deps-floor
|
|
313
|
+
[🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
|
|
314
|
+
[🚂maint-contact]: http://www.railsbling.com/contact
|
|
315
|
+
[🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
|
|
316
|
+
[💖🖇linkedin]: http://www.linkedin.com/in/peterboling
|
|
317
|
+
[💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
|
|
318
|
+
[💖✌️wellfound]: https://wellfound.com/u/peter-boling
|
|
319
|
+
[💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
|
|
320
|
+
[💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
|
|
321
|
+
[💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
|
|
322
|
+
[💖🐘ruby-mast]: https://ruby.social/@galtzo
|
|
323
|
+
[💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
|
|
324
|
+
[💖🦋bluesky]: https://bsky.app/profile/galtzo.com
|
|
325
|
+
[💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
|
|
326
|
+
[💖🌳linktree]: https://linktr.ee/galtzo
|
|
327
|
+
[💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
|
|
328
|
+
[💖💁🏼♂️devto]: https://dev.to/galtzo
|
|
329
|
+
[💖💁🏼♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
|
|
330
|
+
[💖💁🏼♂️aboutme]: https://about.me/peter.boling
|
|
331
|
+
[💖💁🏼♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
|
|
332
|
+
[💖🧊berg]: https://codeberg.org/pboling
|
|
333
|
+
[💖🐙hub]: https://github.org/pboling
|
|
334
|
+
[💖🛖hut]: https://sr.ht/~galtzo/
|
|
335
|
+
[💖🧪lab]: https://gitlab.com/pboling
|
|
336
|
+
[👨🏼🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
|
|
337
|
+
[👨🏼🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
|
|
338
|
+
[👨🏼🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
|
|
339
|
+
[👨🏼🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
|
|
340
|
+
[💁🏼♂️peterboling]: http://www.peterboling.com
|
|
341
|
+
[🚂railsbling]: http://www.railsbling.com
|
|
342
|
+
[📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
|
|
343
|
+
[📜src-gl]: https://gitlab.com/kettle-dev/kettle-deps-floor
|
|
344
|
+
[📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
|
|
345
|
+
[📜src-cb]: https://codeberg.org/kettle-dev/kettle-deps-floor
|
|
346
|
+
[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green
|
|
347
|
+
[📜src-gh]: https://github.com/kettle-dev/kettle-deps-floor
|
|
348
|
+
[📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
349
|
+
[📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
350
|
+
[📜gl-wiki]: https://gitlab.com/kettle-dev/kettle-deps-floor/-/wikis/home
|
|
351
|
+
[📜gh-wiki]: https://github.com/kettle-dev/kettle-deps-floor/wiki
|
|
352
|
+
[📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
|
|
353
|
+
[📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
|
|
354
|
+
[👽dl-rank]: https://clickgems.clickhouse.com/dashboard/kettle-deps-floor
|
|
355
|
+
[👽dl-ranki]: https://img.shields.io/gem/dt/kettle-deps-floor.svg
|
|
356
|
+
[👽version]: https://clickgems.clickhouse.com/dashboard/kettle-deps-floor
|
|
357
|
+
[👽versioni]: https://img.shields.io/gem/v/kettle-deps-floor.svg
|
|
358
|
+
[🏀qlty-mnt]: https://qlty.sh/gh/kettle-dev/projects/kettle-deps-floor
|
|
359
|
+
[🏀qlty-mnti]: https://qlty.sh/gh/kettle-dev/projects/kettle-deps-floor/maintainability.svg
|
|
360
|
+
[🏀qlty-cov]: https://qlty.sh/gh/kettle-dev/projects/kettle-deps-floor/metrics/code?sort=coverageRating
|
|
361
|
+
[🏀qlty-covi]: https://qlty.sh/gh/kettle-dev/projects/kettle-deps-floor/coverage.svg
|
|
362
|
+
[🏀codecov]: https://codecov.io/gh/kettle-dev/kettle-deps-floor
|
|
363
|
+
[🏀codecovi]: https://codecov.io/gh/kettle-dev/kettle-deps-floor/graph/badge.svg
|
|
364
|
+
[🏀coveralls]: https://coveralls.io/github/kettle-dev/kettle-deps-floor?branch=main
|
|
365
|
+
[🏀coveralls-img]: https://coveralls.io/repos/github/kettle-dev/kettle-deps-floor/badge.svg?branch=main
|
|
366
|
+
[🚎ruby-3.2-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/ruby-3.2.yml
|
|
367
|
+
[🚎ruby-3.3-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/ruby-3.3.yml
|
|
368
|
+
[🚎ruby-3.4-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/ruby-3.4.yml
|
|
369
|
+
[🚎jruby-10.0-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/jruby-10.0.yml
|
|
370
|
+
[🚎truby-24.2-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/truffleruby-24.2.yml
|
|
371
|
+
[🚎truby-25.0-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/truffleruby-25.0.yml
|
|
372
|
+
[🚎truby-33.0-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/truffleruby-33.0.yml
|
|
373
|
+
[🚎2-cov-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/coverage.yml
|
|
374
|
+
[🚎2-cov-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/coverage.yml/badge.svg
|
|
375
|
+
[🚎3-hd-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/heads.yml
|
|
376
|
+
[🚎3-hd-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/heads.yml/badge.svg
|
|
377
|
+
[🚎5-st-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/style.yml
|
|
378
|
+
[🚎5-st-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/style.yml/badge.svg
|
|
379
|
+
[🚎9-t-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/truffle.yml
|
|
380
|
+
[🚎9-t-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/truffle.yml/badge.svg
|
|
381
|
+
[🚎10-j-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/jruby.yml
|
|
382
|
+
[🚎10-j-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/jruby.yml/badge.svg
|
|
383
|
+
[🚎11-c-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/current.yml
|
|
384
|
+
[🚎11-c-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/current.yml/badge.svg
|
|
385
|
+
[🚎12-crh-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/dep-heads.yml
|
|
386
|
+
[🚎12-crh-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/dep-heads.yml/badge.svg
|
|
387
|
+
[🚎13-🔒️-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/locked_deps.yml
|
|
388
|
+
[🚎13-🔒️-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/locked_deps.yml/badge.svg
|
|
389
|
+
[🚎14-🔓️-wf]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/unlocked_deps.yml
|
|
390
|
+
[🚎14-🔓️-wfi]: https://github.com/kettle-dev/kettle-deps-floor/actions/workflows/unlocked_deps.yml/badge.svg
|
|
391
|
+
[💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
392
|
+
[💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
393
|
+
[💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
394
|
+
[💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
|
|
395
|
+
[💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
|
|
396
|
+
[💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
397
|
+
[💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
398
|
+
[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
399
|
+
[💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
|
|
400
|
+
[💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
401
|
+
[💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
|
|
402
|
+
[💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
|
|
403
|
+
[🤝gh-issues]: https://github.com/kettle-dev/kettle-deps-floor/issues
|
|
404
|
+
[🤝gh-pulls]: https://github.com/kettle-dev/kettle-deps-floor/pulls
|
|
405
|
+
[🤝gl-issues]: https://gitlab.com/kettle-dev/kettle-deps-floor/-/issues
|
|
406
|
+
[🤝gl-pulls]: https://gitlab.com/kettle-dev/kettle-deps-floor/-/merge_requests
|
|
407
|
+
[🤝cb-issues]: https://codeberg.org/kettle-dev/kettle-deps-floor/issues
|
|
408
|
+
[🤝cb-pulls]: https://codeberg.org/kettle-dev/kettle-deps-floor/pulls
|
|
409
|
+
[🤝cb-donate]: https://donate.codeberg.org/
|
|
410
|
+
[🤝contributing]: https://github.com/kettle-dev/kettle-deps-floor/blob/main/CONTRIBUTING.md
|
|
411
|
+
[🏀codecov-g]: https://codecov.io/gh/kettle-dev/kettle-deps-floor/graph/badge.svg
|
|
412
|
+
[🖐contrib-rocks]: https://contrib.rocks
|
|
413
|
+
[🖐contributors]: https://github.com/kettle-dev/kettle-deps-floor/graphs/contributors
|
|
414
|
+
[🖐contributors-img]: https://contrib.rocks/image?repo=kettle-dev/kettle-deps-floor
|
|
415
|
+
[🚎contributors-gl]: https://gitlab.com/kettle-dev/kettle-deps-floor/-/graphs/main
|
|
416
|
+
[🪇conduct]: https://github.com/kettle-dev/kettle-deps-floor/blob/main/CODE_OF_CONDUCT.md
|
|
417
|
+
[🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
|
|
418
|
+
[📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
|
419
|
+
[📌semver]: https://semver.org/spec/v2.0.0.html
|
|
420
|
+
[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
|
|
421
|
+
[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
|
|
422
|
+
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
|
|
423
|
+
[📌changelog]: https://github.com/kettle-dev/kettle-deps-floor/blob/main/CHANGELOG.md
|
|
424
|
+
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
|
425
|
+
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
|
|
426
|
+
[📌gitmoji]: https://gitmoji.dev
|
|
427
|
+
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
428
|
+
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
429
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.370-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
430
|
+
[🔐security]: https://github.com/kettle-dev/kettle-deps-floor/blob/main/SECURITY.md
|
|
431
|
+
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
432
|
+
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
433
|
+
[📄license]: LICENSE.md
|
|
434
|
+
[📄license-ref]: https://github.com/kettle-dev/kettle-deps-floor/blob/main/AGPL-3.0-only.md
|
|
435
|
+
[📄license-img]: https://img.shields.io/badge/License-AGPL--3.0--only-259D6C.svg
|
|
436
|
+
[📄license-compat]: https://www.apache.org/legal/resolved.html#category-x
|
|
437
|
+
[📄license-compat-img]: https://img.shields.io/badge/Apache_Incompatible:_Category_X-%E2%9C%97-C0392B.svg?style=flat&logo=Apache
|
|
438
|
+
|
|
439
|
+
[📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
|
|
440
|
+
[📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
|
|
441
|
+
[🚎yard-current]: http://rubydoc.info/gems/kettle-deps-floor
|
|
442
|
+
[🚎yard-head]: https://kettle-deps-floor.galtzo.com
|
|
443
|
+
[💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
|
|
444
|
+
[💎SHA_checksums]: https://gitlab.com/kettle-dev/kettle-deps-floor/-/tree/main/checksums
|
|
445
|
+
[💎rlts]: https://github.com/rubocop-lts/rubocop-lts
|
|
446
|
+
[💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
|
|
447
|
+
[💎appraisal2]: https://github.com/appraisal-rb/appraisal2
|
|
448
|
+
[💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
|
|
449
|
+
[💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
|
|
450
|
+
|
|
451
|
+
<!-- kettle-jem:metadata:start -->
|
|
452
|
+
| Field | Value |
|
|
453
|
+
|---|---|
|
|
454
|
+
| Package | kettle-deps-floor |
|
|
455
|
+
| Description | 💎 Discover and raise RubyGems dependency floors in gemspecs and configured template sources, with upgrade limits, dry-run reports, checks, and controlled commits. |
|
|
456
|
+
| Homepage | https://github.com/kettle-dev/kettle-deps-floor |
|
|
457
|
+
| Source | https://github.com/kettle-dev/kettle-deps-floor |
|
|
458
|
+
| License | `AGPL-3.0-only` |
|
|
459
|
+
| Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/kettle-dev, https://thanks.dev/u/gh/pboling, https://www.buymeacoffee.com/pboling |
|
|
460
|
+
<!-- kettle-jem:metadata:end -->
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
$stdout.sync = true
|
|
5
|
+
$stderr.sync = true
|
|
6
|
+
|
|
7
|
+
repo_lib = File.expand_path("../lib", __dir__)
|
|
8
|
+
$LOAD_PATH.unshift(repo_lib) if File.directory?(repo_lib) && !$LOAD_PATH.include?(repo_lib)
|
|
9
|
+
|
|
10
|
+
require "kettle/deps/floor"
|
|
11
|
+
|
|
12
|
+
exit(Kettle::Deps::Floor::CLI.run(ARGV))
|