kettle-dev 1.1.23 → 1.1.25
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/.github/.codecov.yml.example +14 -0
- data/.junie/guidelines.md.example +141 -0
- data/CHANGELOG.md +36 -7
- data/README.md +6 -1
- data/README.md.example +1 -1
- data/Rakefile.example +1 -1
- data/kettle-dev.gemspec.example +4 -4
- data/lib/kettle/dev/readme_backers.rb +24 -0
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev.rb +3 -0
- data/sig/kettle/dev/readme_backers.rbs +1 -0
- data/sig/kettle/dev.rbs +1 -0
- data.tar.gz.sig +0 -0
- metadata +17 -4
- metadata.gz.sig +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e75e0d20259bcb2cac5f2b536484c86c90f14571b6eb3eaf932be12312a1c0f4
|
4
|
+
data.tar.gz: 371bb553cacb0123d8f23f45d96d12b868a4b575b414ba90c816bb28d60be421
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: faf91f091e1fa86de01ce175e6b56080f49a7c2168e783f36a21870662b70441501c44cdada7cd1aa865550fab539d634daf95c3de7d7559789857c9ae3f1fac
|
7
|
+
data.tar.gz: 7f7f375775fa0cbcd860b8366b3ec4f0638086335bf57881613c147ef4681916c7e8dc6434101a44793ba56f796aa8335ecbdc87686b0d0db1868529031d7c0d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -0,0 +1,141 @@
|
|
1
|
+
Project: kettle-dev — Development Guidelines (for advanced contributors)
|
2
|
+
|
3
|
+
This document captures project-specific knowledge to streamline setup, testing, and ongoing development.
|
4
|
+
|
5
|
+
1. Build and configuration
|
6
|
+
- ENV is controlled by `direnv`.
|
7
|
+
- Two files are loaded:
|
8
|
+
- .envrc — environment variables for local development, committed to source control
|
9
|
+
- .env.local — environment variables that are not committed to source control. These setting override .envrc.
|
10
|
+
- Run `direnv allow` after making changes to .envrc or .env.local.
|
11
|
+
- See .envrc for details.
|
12
|
+
- See .env.local.example for an example of what to put in .env.local.
|
13
|
+
- See CONTRIBUTING.md for details on how to set up your local environment.
|
14
|
+
- Ruby and Bundler
|
15
|
+
- Runtime supports Ruby >= {K_D_MIN_RUBY}
|
16
|
+
- Development tooling targets Ruby >= {K_D_MIN_DEV_RUBY} (minimum supported by setup-ruby GHA).
|
17
|
+
- Use a recent Ruby (>= 3.4 recommended) for fastest setup and to exercise modern coverage behavior.
|
18
|
+
- Install dependencies via Bundler in project root:
|
19
|
+
- bundle install
|
20
|
+
- Rake tasks (preferred entry points)
|
21
|
+
- The Rakefile wires common workflows. Useful targets:
|
22
|
+
- rake spec — run RSpec suite (also aliased via rake test)
|
23
|
+
- rake coverage — run specs with coverage locally and open a report (requires kettle-soup-cover)
|
24
|
+
- rake rubocop_gradual:autocorrect — RuboCop-LTS Gradual, with autocorrect as default task
|
25
|
+
- rake reek and rake reek:update — code smell checks and persisted snapshots in REEK
|
26
|
+
- rake yard — generate YARD docs for lib and selected extra files
|
27
|
+
- rake bundle:audit and rake bundle:audit:update — dependency vulnerability checks
|
28
|
+
- rake build / rake release — gem build/release helper tasks (Bundler + stone_checksums)
|
29
|
+
- The default rake target runs a curated set of tasks; this varies for CI vs local (see CI env var logic in Rakefile).
|
30
|
+
- Always run the default rake task prior commits, and after making changes to lib/ code, or *.md files, to allow the linter to autocorrect, and to generate updated documentation.
|
31
|
+
- Coverage orchestration
|
32
|
+
- Coverage is controlled by kettle-soup-cover and .simplecov. Thresholds (line and branch) are enforced and can fail the process.
|
33
|
+
- Thresholds are primarily controlled by environment variables (see .simplecov and comments therein) typically loaded via direnv (.envrc) and CI workflow (.github/workflows/coverage.yml). When running only a test subset, thresholds may fail; see Testing below.
|
34
|
+
- Gem signing (for releases)
|
35
|
+
- Signing is enabled unless SKIP_GEM_SIGNING is set. If enabled and certificates are present (certs/<USER>.pem), gem build will attempt to sign using ~/.ssh/gem-private_key.pem.
|
36
|
+
- See CONTRIBUTING.md for releasing details; use SKIP_GEM_SIGNING when building in environments without the private key.
|
37
|
+
- Important for local testing (to avoid hanging prompts): ALWAYS skip signing when building locally to test the packaging or install process. Without the private key password, the build will wait indefinitely at a signing prompt.
|
38
|
+
- One-off commands (recommended):
|
39
|
+
- SKIP_GEM_SIGNING=true gem build kettle-dev.gemspec
|
40
|
+
- SKIP_GEM_SIGNING=true bundle exec rake build
|
41
|
+
- SKIP_GEM_SIGNING=true bundle exec rake release # only to test workflow; do not actually push
|
42
|
+
- direnv option (optional, not recommended globally): add `export SKIP_GEM_SIGNING=true` to your .env.local when you know you won’t be signing in this environment.
|
43
|
+
- Remove or unset SKIP_GEM_SIGNING when performing a real, signed release in the environment that has the private key.
|
44
|
+
|
45
|
+
2. Testing
|
46
|
+
- Framework and helpers
|
47
|
+
- RSpec 3.13 with custom spec/spec_helper.rb configuration:
|
48
|
+
- silent_stream: STDOUT is silenced by default for examples to keep logs clean.
|
49
|
+
- To explicitly test console output, tag the example or group with :check_output.
|
50
|
+
- Global state hygiene: Around each example, FlossFunding.namespaces and FlossFunding.silenced are snapshotted and restored to prevent cross-test pollution.
|
51
|
+
- DEBUG toggle: Set DEBUG=true to require 'debug' and avoid silencing output during your run.
|
52
|
+
- ENV seeding: The suite sets ENV["FLOSS_FUNDING_FLOSS_FUNDING"] = "Free-as-in-beer" so that the library’s own namespace is considered activated (avoids noisy warnings).
|
53
|
+
- Coverage: kettle-soup-cover integrates SimpleCov; .simplecov is invoked from spec_helper when enabled by Kettle::Soup::Cover::DO_COV, which is controlled by K_SOUP_COV_DO being set to true / false.
|
54
|
+
- RSpec.describe usage:
|
55
|
+
- Use `describe "#<method_name>"` to contain a block of specs that test instance method behavior.
|
56
|
+
- Use `describe "::<method_name>"` to contain a block of specs that test class method behavior.
|
57
|
+
- Do not use `describe ".<method_name>"` because the dot is ambiguous w.r.t instance vs. class methods.
|
58
|
+
- When adding new code or modifying existing code always add tests to cover the updated behavior, including branches, and different types of expected and unexpected inputs.
|
59
|
+
- Additional test utilities:
|
60
|
+
- rspec-stubbed_env: Use stub_env to control ENV safely within examples.
|
61
|
+
- timecop-rspec: Time manipulation is available, and is setup by kettle-test.
|
62
|
+
- To freeze time use `freeze: Time.new(*args)` tag on an example or group
|
63
|
+
- Running tests (verified)
|
64
|
+
- Full suite (recommended to satisfy coverage thresholds):
|
65
|
+
- bin/rspec
|
66
|
+
- or: bundle exec rspec
|
67
|
+
- or: bundle exec rake spec
|
68
|
+
- Progress format (less verbose):
|
69
|
+
- bundle exec rspec --format progress
|
70
|
+
- Focused runs
|
71
|
+
- You can run a single file or example, but note: coverage thresholds need to be disabled with K_SOUP_COV_MIN_HARD=false
|
72
|
+
- Example: K_SOUP_COV_MIN_HARD=false bin/rspec spec/kettle-dev/class_spec.rb:42
|
73
|
+
- Output visibility
|
74
|
+
- To see STDOUT from the code under test, use the :check_output tag on the example or group.
|
75
|
+
Example:
|
76
|
+
RSpec.describe "output", :check_output do
|
77
|
+
it "prints" do
|
78
|
+
puts "This output should be visible"
|
79
|
+
expect(true).to be true
|
80
|
+
end
|
81
|
+
end
|
82
|
+
- Alternatively, run with DEBUG=true to disable silencing for the entire run.
|
83
|
+
- During a spec run, the presence of output about missing activation keys is often expected, since it is literally what this library is for. It only indicates a failure if the spec expected all activation keys to be present, and not all specs do.
|
84
|
+
- Adding new tests (guidelines)
|
85
|
+
- Organize specs by class/module. Do not create per-task umbrella spec files; add examples to the existing spec for the class/module under test, or create a new spec file for that class/module if one does not exist. Only create a standalone scenario spec when it intentionally spans multiple classes for an integration/benchmark scenario (e.g., bench_integration_spec), and name it accordingly.
|
86
|
+
- Spec file names must map to a real class or module under lib/ (mirror the path). Do not introduce specs for non-existent classes or ad-hoc names (e.g., avoid template_helpers_replacements_spec.rb when testing Kettle::Dev::TemplateHelpers; add those examples to template_helpers_spec.rb).
|
87
|
+
- REQUIRED: Provide unit tests for every class, module, constant, and public method. Place them in spec/ mirroring the path under lib/. When a file under lib/ is added or changed, ensure a corresponding spec file exists/updated for it.
|
88
|
+
- Add tests for all public methods and add contexts for variations of their arguments, and arity.
|
89
|
+
- This repository targets near-100% coverage of its public API; when you add new public methods, rake tasks to a rakelib, or config behavior, add or update specs accordingly.
|
90
|
+
- Place new specs under spec/ mirroring lib/ structure where possible. Do not require "spec_helper" at the top of spec files, as it is automatically loaded by .rspec.
|
91
|
+
- If your code relies on environment variables that drive activation (see "Activation env vars" below), prefer using rspec-stubbed_env:
|
92
|
+
- it does not support stubbing with blocks, but it does automatically clean up after itself.
|
93
|
+
- the below config is included in all spec scenarios by the kettle-test gem, so no need to do it again; it is here for reference:
|
94
|
+
include_context 'with stubbed env'
|
95
|
+
- in a before hook, or in an example:
|
96
|
+
stub_env("FLOSS_FUNDING_MY_NS" => "Free-as-in-beer")
|
97
|
+
# example code continues
|
98
|
+
- If your spec needs to assert on console output, tag it with :check_output. By default, STDOUT is silenced.
|
99
|
+
- Use Timecop for deterministic time-sensitive behavior as needed (require config/timecop is already done by spec_helper).
|
100
|
+
|
101
|
+
- Types and documentation
|
102
|
+
- REQUIRED: All public APIs must have RBS type signatures checked into sig/ under the corresponding path. When you add a new public method or change a signature, update the matching .rbs file.
|
103
|
+
- REQUIRED: All public methods must include inline YARD docs with @param/@return (and @yield/@option where applicable). Generate docs with `bundle exec rake yard` to verify formatting.
|
104
|
+
|
105
|
+
3. Additional development information
|
106
|
+
- Code style and static analysis
|
107
|
+
- RuboCop-LTS (Gradual) is integrated. Use:
|
108
|
+
- bundle exec rake rubocop_gradual:autocorrect
|
109
|
+
- bundle exec rake rubocop_gradual:force_update # only run if there are still linting violations the default rake task, which includes autocorrect locally, or a standalone autocorrect task, has run, and failed, and the violations won't be fixed
|
110
|
+
- Reek is configured to scan {lib,spec,tests}/**/*.rb. Use:
|
111
|
+
- bundle exec rake reek
|
112
|
+
- bundle exec rake reek:update # writes current output to REEK, fails on smells
|
113
|
+
- Keep REEK file updated with intentional smells snapshot when appropriate (e.g., after refactors).
|
114
|
+
- Locally, the default rake task includes reek:update.
|
115
|
+
- Documentation
|
116
|
+
- Generate YARD docs with: bundle exec rake yard. It includes lib/**/*.rb and extra docs like README.md, CHANGELOG.md, RUBOCOP.md, REEK, etc.
|
117
|
+
- Appraisal and multi-gemfile testing
|
118
|
+
- appraisal2 is present to manage multiple dependency sets; see Appraisals and gemfiles/modular/*.gemfile. If you need to verify against alternate dependency versions, use Appraisal to install and run rspec under those Gemfiles.
|
119
|
+
- You can run a single github workflow by running `act -W /github/workflows/<workflow name>.yml`
|
120
|
+
- CI/local differences and defaults
|
121
|
+
- The Rakefile adjusts default tasks based on CI env var. Locally, rake default may include coverage, reek:update, yard, etc. On CI, it tends to just run spec.
|
122
|
+
|
123
|
+
Quick start
|
124
|
+
1) bundle install
|
125
|
+
2) K_SOUP_COV_FORMATTERS="json" bin/rspec (generates a JSON coverage report with both line and branch data in coverage/. Use this single format.)
|
126
|
+
3) Static analysis: bundle exec rake rubocop_gradual:check && bundle exec rake reek
|
127
|
+
|
128
|
+
Notes
|
129
|
+
- ALWAYS Run bundle exec rake rubocop_gradual:autocorrect as the final step before completing a task, to lint and autocorrect any remaining issues. Then if there are new lint failures, attempt to correct them manually.
|
130
|
+
- NEVER run vanilla rubocop, as it won't handle the linting config properly. Always run rubocop_gradual:autocorrect or rubocop_gradual.
|
131
|
+
- Running only a subset of specs is supported but in order to bypass the hard failure due to coverage thresholds, you need to run with K_SOUP_COV_MIN_HARD=false.
|
132
|
+
- When adding code that writes to STDOUT, remember most specs silence output unless tagged with :check_output or DEBUG=true.
|
133
|
+
- Completion criteria after changes: Only consider your change “done” when the relevant examples pass, as verified by .rspec_status. Do not rely on STDOUT impressions; consult .rspec_status (and example IDs) to confirm green results for the affected files/examples. If you ran a subset, re-run the full suite before finalizing to restore coverage thresholds.
|
134
|
+
- Coverage reports: NEVER review the HTML report. Use JSON (preferred), XML, LCOV, or RCOV. For this project, always run tests with K_SOUP_COV_FORMATTERS set to "json".
|
135
|
+
- Do NOT modify .envrc in tasks; when running tests locally or in scripts, manually prefix each run, e.g.: K_SOUP_COV_FORMATTERS="json" bin/rspec
|
136
|
+
- For all the kettle-soup-cover options, see .envrc and find the K_SOUP_COV_* env vars.
|
137
|
+
- NEVER modify ENV variables in tests directly. Always use the stub_env macro from the rspec-stubbed_env gem (more details in the testing section above).
|
138
|
+
|
139
|
+
Important documentation rules
|
140
|
+
- Do NOT edit files under docs/ manually; they are generated by `bundle exec rake yard` as part of the default rake task.
|
141
|
+
- Clarification: Executable scripts provided by this gem (exe/* and installed binstubs) work when the gem is installed as a system gem (gem install kettle-dev). However, the Rake tasks provided by this gem require kettle-dev to be declared as a development dependency in the host project's Gemfile and loaded in the project's Rakefile.
|
data/CHANGELOG.md
CHANGED
@@ -20,22 +20,47 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
20
20
|
|
21
21
|
### Added
|
22
22
|
|
23
|
-
- Replace template tokens with real minimum ruby versions for runtime and development
|
24
|
-
|
25
23
|
### Changed
|
26
24
|
|
27
|
-
- consolidated specs
|
28
|
-
|
29
25
|
### Deprecated
|
30
26
|
|
31
27
|
### Removed
|
32
28
|
|
33
29
|
### Fixed
|
34
30
|
|
35
|
-
- Leaky state in specs
|
36
|
-
|
37
31
|
### Security
|
38
32
|
|
33
|
+
## [1.1.25] - 2025-09-18
|
34
|
+
|
35
|
+
- TAG: [v1.1.25][1.1.25t]
|
36
|
+
- COVERAGE: 96.87% -- 3708/3828 lines in 26 files
|
37
|
+
- BRANCH COVERAGE: 81.69% -- 1526/1868 branches in 26 files
|
38
|
+
- 78.33% documented
|
39
|
+
|
40
|
+
### Fixed
|
41
|
+
|
42
|
+
- kettle-readme-backers fails gracefully when README_UPDATER_TOKEN is missing from org secrets
|
43
|
+
|
44
|
+
## [1.1.24] - 2025-09-17
|
45
|
+
|
46
|
+
- TAG: [v1.1.24][1.1.24t]
|
47
|
+
- COVERAGE: 96.85% -- 3694/3814 lines in 26 files
|
48
|
+
- BRANCH COVERAGE: 81.81% -- 1520/1858 branches in 26 files
|
49
|
+
- 78.21% documented
|
50
|
+
|
51
|
+
### Added
|
52
|
+
|
53
|
+
- Replace template tokens with real minimum ruby versions for runtime and development
|
54
|
+
|
55
|
+
### Changed
|
56
|
+
|
57
|
+
- consolidated specs
|
58
|
+
|
59
|
+
### Fixed
|
60
|
+
|
61
|
+
- All .example files are now included in the gem package
|
62
|
+
- Leaky state in specs
|
63
|
+
|
39
64
|
## [1.1.23] - 2025-09-16
|
40
65
|
|
41
66
|
- TAG: [v1.1.23][1.1.23t]
|
@@ -955,7 +980,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
955
980
|
- Selecting will run the selected workflow via `act`
|
956
981
|
- This may move to its own gem in the future.
|
957
982
|
|
958
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
983
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.25...HEAD
|
984
|
+
[1.1.25]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.24...v1.1.25
|
985
|
+
[1.1.25t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.25
|
986
|
+
[1.1.24]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.23...v1.1.24
|
987
|
+
[1.1.24t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.24
|
959
988
|
[1.1.23]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.22...v1.1.23
|
960
989
|
[1.1.23t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.23
|
961
990
|
[1.1.22]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.21...v1.1.22
|
data/README.md
CHANGED
@@ -548,6 +548,11 @@ What it does:
|
|
548
548
|
- Tip:
|
549
549
|
- Run this locally before committing to keep your README current, or schedule it in CI to refresh periodically.
|
550
550
|
- It runs automatically on a once-a-week schedule by the .github/workflows/opencollective.yml workflow that is part of the kettle-dev template.
|
551
|
+
- Authentication requirement:
|
552
|
+
- When running in CI with the provided workflow, you must provide an organization-level Actions secret named `README_UPDATER_TOKEN`.
|
553
|
+
- Create it under your GitHub organization settings: `https://github.com/organizations/<YOUR_ORG>/settings/secrets/actions`.
|
554
|
+
- The updater will look for `REPO` or `GITHUB_REPOSITORY` (both usually set by GitHub Actions) to infer `<YOUR_ORG>` for guidance.
|
555
|
+
- If `README_UPDATER_TOKEN` is missing, the tool prints a helpful error to STDERR and aborts, including a direct link to the expected org settings page.
|
551
556
|
|
552
557
|
## 🦷 FLOSS Funding
|
553
558
|
|
@@ -916,7 +921,7 @@ Thanks for RTFM. ☺️
|
|
916
921
|
[📌gitmoji]:https://gitmoji.dev
|
917
922
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
918
923
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
919
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
924
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.828-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
920
925
|
[🔐security]: SECURITY.md
|
921
926
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
922
927
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/README.md.example
CHANGED
@@ -513,7 +513,7 @@ Thanks for RTFM. ☺️
|
|
513
513
|
[📌gitmoji]:https://gitmoji.dev
|
514
514
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
515
515
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
516
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
516
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.828-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
517
517
|
[🔐security]: SECURITY.md
|
518
518
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
519
519
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/Rakefile.example
CHANGED
data/kettle-dev.gemspec.example
CHANGED
@@ -95,7 +95,7 @@ Gem::Specification.new do |spec|
|
|
95
95
|
]
|
96
96
|
spec.require_paths = ["lib"]
|
97
97
|
spec.bindir = "exe"
|
98
|
-
# files
|
98
|
+
# Listed files are the relative paths from bindir above.
|
99
99
|
spec.executables = []
|
100
100
|
|
101
101
|
# Utilities
|
@@ -105,8 +105,8 @@ Gem::Specification.new do |spec|
|
|
105
105
|
# visibility and discoverability on RubyGems.org.
|
106
106
|
# However, development dependencies in gemspec will install on
|
107
107
|
# all versions of Ruby that will run in CI.
|
108
|
-
# This gem, and its gemspec runtime dependencies, will install on Ruby down to {K_D_MIN_RUBY}.
|
109
|
-
# This gem, and its gemspec development dependencies, will install on Ruby down to {K_D_MIN_DEV_RUBY}.
|
108
|
+
# This gem, and its gemspec runtime dependencies, will install on Ruby down to {K_D_MIN_RUBY}.
|
109
|
+
# This gem, and its gemspec development dependencies, will install on Ruby down to {K_D_MIN_DEV_RUBY}.
|
110
110
|
# Thus, dev dependencies in gemspec must have
|
111
111
|
#
|
112
112
|
# required_ruby_version ">= {K_D_MIN_DEV_RUBY}" (or lower)
|
@@ -115,7 +115,7 @@ Gem::Specification.new do |spec|
|
|
115
115
|
# and preferably a modular one (see gemfiles/modular/*.gemfile).
|
116
116
|
|
117
117
|
# Dev, Test, & Release Tasks
|
118
|
-
spec.add_development_dependency("{KETTLE|DEV|GEM}", "~> 1.1")
|
118
|
+
spec.add_development_dependency("{KETTLE|DEV|GEM}", "~> 1.1") # ruby >= 2.3.0
|
119
119
|
|
120
120
|
# Security
|
121
121
|
spec.add_development_dependency("bundler-audit", "~> 0.9.2") # ruby >= 2.0.0
|
@@ -46,6 +46,30 @@ module Kettle
|
|
46
46
|
@readme_path = readme_path
|
47
47
|
end
|
48
48
|
|
49
|
+
# Validate environment preconditions for running the updater.
|
50
|
+
# Ensures README_UPDATER_TOKEN is present. If missing, prints guidance and raises.
|
51
|
+
#
|
52
|
+
# @return [void]
|
53
|
+
# @raise [RuntimeError] when README_UPDATER_TOKEN is not provided
|
54
|
+
def validate
|
55
|
+
token = ENV["README_UPDATER_TOKEN"].to_s
|
56
|
+
if token.strip.empty?
|
57
|
+
repo = ENV["REPO"] || ENV["GITHUB_REPOSITORY"]
|
58
|
+
org = repo&.to_s&.split("/")&.first
|
59
|
+
org_url = if org && !org.strip.empty?
|
60
|
+
"https://github.com/organizations/#{org}/settings/secrets/actions"
|
61
|
+
else
|
62
|
+
"https://github.com/organizations/YOUR_ORG/settings/secrets/actions"
|
63
|
+
end
|
64
|
+
$stderr.puts "ERROR: README_UPDATER_TOKEN is not set."
|
65
|
+
$stderr.puts "Please create an organization-level Actions secret named README_UPDATER_TOKEN at:"
|
66
|
+
$stderr.puts " #{org_url}"
|
67
|
+
$stderr.puts "Then update the workflow to reference it, or provide README_UPDATER_TOKEN in the environment."
|
68
|
+
raise 'Missing ENV["README_UPDATER_TOKEN"]'
|
69
|
+
end
|
70
|
+
nil
|
71
|
+
end
|
72
|
+
|
49
73
|
def run!
|
50
74
|
readme = File.read(@readme_path)
|
51
75
|
|
data/lib/kettle/dev/version.rb
CHANGED
data/lib/kettle/dev.rb
CHANGED
@@ -62,6 +62,9 @@ module Kettle
|
|
62
62
|
# Accepts 1, true, y, yes (any case).
|
63
63
|
# @return [Regexp]
|
64
64
|
ENV_TRUE_RE = /\A(1|true|y|yes)\z/i
|
65
|
+
# Absolute path to the root of the kettle-dev gem (repository root when working from source)
|
66
|
+
# @return [String]
|
67
|
+
GEM_ROOT = File.expand_path("../..", __dir__)
|
65
68
|
|
66
69
|
@defaults = []
|
67
70
|
|
data/sig/kettle/dev.rbs
CHANGED
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: 1.1.
|
4
|
+
version: 1.1.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -215,6 +215,17 @@ extra_rdoc_files:
|
|
215
215
|
- RUBOCOP.md
|
216
216
|
- SECURITY.md
|
217
217
|
files:
|
218
|
+
- "./.aiignore.example"
|
219
|
+
- "./.env.local.example"
|
220
|
+
- "./.gitlab-ci.yml.example"
|
221
|
+
- "./.opencollective.yml.example"
|
222
|
+
- "./.simplecov.example"
|
223
|
+
- "./Appraisals.example"
|
224
|
+
- "./CHANGELOG.md.example"
|
225
|
+
- "./Gemfile.example"
|
226
|
+
- "./README.md.example"
|
227
|
+
- "./Rakefile.example"
|
228
|
+
- "./kettle-dev.gemspec.example"
|
218
229
|
- ".aiignore.example"
|
219
230
|
- ".devcontainer/devcontainer.json"
|
220
231
|
- ".env.local.example"
|
@@ -224,6 +235,7 @@ files:
|
|
224
235
|
- ".git-hooks/footer-template.erb.txt"
|
225
236
|
- ".git-hooks/prepare-commit-msg"
|
226
237
|
- ".git-hooks/prepare-commit-msg.example"
|
238
|
+
- ".github/.codecov.yml.example"
|
227
239
|
- ".github/FUNDING.yml"
|
228
240
|
- ".github/dependabot.yml"
|
229
241
|
- ".github/workflows/ancient.yml"
|
@@ -254,6 +266,7 @@ files:
|
|
254
266
|
- ".gitlab-ci.yml.example"
|
255
267
|
- ".junie/guidelines-rbs.md"
|
256
268
|
- ".junie/guidelines.md"
|
269
|
+
- ".junie/guidelines.md.example"
|
257
270
|
- ".licenserc.yaml"
|
258
271
|
- ".opencollective.yml"
|
259
272
|
- ".opencollective.yml.example"
|
@@ -391,10 +404,10 @@ licenses:
|
|
391
404
|
- MIT
|
392
405
|
metadata:
|
393
406
|
homepage_uri: https://kettle-dev.galtzo.com/
|
394
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
395
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
407
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.25
|
408
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.25/CHANGELOG.md
|
396
409
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
397
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
410
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.25
|
398
411
|
funding_uri: https://github.com/sponsors/pboling
|
399
412
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
400
413
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
@@ -1,3 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
�KNL�*CM�Q���!&
|
1
|
+
�v�J+on[��X�M�9]�/_�n�9�T=xK�\@Q���`iV��v��=��i��yuӦ��1����I�vj����R�|��_q�!>����=b�btL���87
|
2
|
+
b�H���|+�J������*ƴ�Eo�Lm�ɑ۬�QU�Gt�>�w�m指P�xx��IW.��J�K�����-��>�I��>�Q�I_��z�gY��H���p��ܢ�i �c�����+� ���5��s!ڷ�C�b�� #�� ��Қ�l�9���A�Z-'��:�X����j�r)E'�o�J�=��"�UvD��g۸��'PB�xg�{��gp'��~#[dN����B��=ds�T�{7���i��'��?��d0s��Ԃb��fӇ�~u~�&2C���aA���ʹ��@�V�k���ǬPU���Ŧ$������w �qJYO'D��b���ka��O�mAd=6/�EI�f.���^?rE����9�ƞ
|