Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ permissions:
id-token: write

env:
K_SOUP_COV_MIN_BRANCH: 100
K_SOUP_COV_MIN_LINE: 100
K_SOUP_COV_MIN_BRANCH: 89
K_SOUP_COV_MIN_LINE: 97
K_SOUP_COV_MIN_HARD: true
K_SOUP_COV_FORMATTERS: "xml,rcov,lcov,tty"
K_SOUP_COV_DO: true
Expand Down Expand Up @@ -48,7 +48,7 @@ jobs:
# Coverage
- ruby: "ruby"
appraisal: "coverage"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for this job, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep the workflow calling an always-available task (e.g., rake test/rake spec).

Suggested change
exec_cmd: "rake magic"
exec_cmd: "bundle exec rake spec"

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: latest
bundler: latest
Expand Down Expand Up @@ -115,7 +115,7 @@ jobs:
hide_complexity: true
indicators: true
output: both
thresholds: '100 100'
thresholds: '${{ env.K_SOUP_COV_MIN_LINE }} ${{ env.K_SOUP_COV_MIN_BRANCH }}'
continue-on-error: ${{ matrix.experimental != 'false' }}

- name: Add Coverage PR Comment
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/current.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,23 +40,23 @@ jobs:
# Ruby 4.0
- ruby: "ruby"
appraisal: "current"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: latest
bundler: latest

# truffleruby-33.0 (targets Ruby 3.3 compatibility)
- ruby: "truffleruby"
appraisal: "current"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default

# jruby-10.0 (targets Ruby 3.4 compatibility)
- ruby: "jruby"
appraisal: "current"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/dep-heads.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,23 +42,23 @@ jobs:
# Ruby 3.4
- ruby: "ruby"
appraisal: "dep-heads"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: latest
bundler: latest

# truffleruby-24.1 (targets Ruby 3.3 compatibility)
- ruby: "truffleruby"
appraisal: "dep-heads"
exec_cmd: "rake test"
exec_cmd: "rake magic"
gemfile: "Appraisal.root"
rubygems: default
bundler: default

# jruby-10.0 (targets Ruby 3.4 compatibility)
- ruby: "jruby"
appraisal: "dep-heads"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/heads.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,23 @@ jobs:
# ruby-head
- ruby: "ruby-head"
appraisal: "head"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default

# truffleruby-head
- ruby: "truffleruby-head"
appraisal: "head"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default

# jruby-head
- ruby: "jruby-head"
appraisal: "head"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/legacy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
# Ruby 3.2
- ruby: "ruby-3.2"
appraisal: "ruby-3-2"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Suggested change
exec_cmd: "rake magic"
exec_cmd: "rake spec"

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: latest
bundler: latest
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/supported.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ jobs:
# Ruby 3.4
- ruby: "ruby-3.4"
appraisal: "ruby-3-4"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: latest
bundler: latest

# Ruby 3.3
- ruby: "ruby-3.3"
appraisal: "ruby-3-3"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: latest
bundler: latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/truffle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
# truffleruby-25.0 (targets Ruby 3.2 compatibility)
- ruby: "truffleruby-25.0"
appraisal: "ruby-3-2"
exec_cmd: "rake test"
exec_cmd: "rake magic"
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow now runs rake magic, which is a custom task defined in Rakefile only when rspec/core/rake_task loads successfully. If rspec is missing/disabled for a runtime in the matrix, CI will fail with an undefined task. Either ensure :magic is always defined (even as a stub) or keep workflows calling an always-available task (e.g., rake test/rake spec).

Suggested change
exec_cmd: "rake magic"
exec_cmd: "rake spec"

Copilot uses AI. Check for mistakes.
gemfile: "Appraisal.root"
rubygems: default
bundler: default
Expand Down
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@ Please file a bug if you notice a violation of semantic versioning.

### Security

## [0.1.0] - 2026-02-21
## [1.0.0] - 2026-02-21

- TAG: [v1.0.0][1.0.0t]
- COVERAGE: 97.67% -- 252/258 lines in 10 files
- BRANCH COVERAGE: 89.39% -- 59/66 branches in 10 files
- 96.72% documented

### Added

- Initial release

### Security

[Unreleased]: https://github.com/kettle-rb/token-resolver/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/kettle-rb/ast-merge/compare/e0e299cad6e6914d512845c71df6b7ac8009e5ac...v1.0.0
[1.0.0t]: https://github.com/kettle-rb/ast-merge/tags/v1.0.0
Comment on lines +47 to +48
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 1.0.0 release links at the bottom point to the kettle-rb/ast-merge repository, which appears unrelated to this gem (token-resolver). This will send users to the wrong compare view/tag; update these URLs to the token-resolver repo (or whatever canonical remote you intend to publish releases from).

Suggested change
[1.0.0]: https://github.com/kettle-rb/ast-merge/compare/e0e299cad6e6914d512845c71df6b7ac8009e5ac...v1.0.0
[1.0.0t]: https://github.com/kettle-rb/ast-merge/tags/v1.0.0
[1.0.0]: https://github.com/kettle-rb/token-resolver/compare/e0e299cad6e6914d512845c71df6b7ac8009e5ac...v1.0.0
[1.0.0t]: https://github.com/kettle-rb/token-resolver/tags/v1.0.0

Copilot uses AI. Check for mistakes.
12 changes: 6 additions & 6 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ GEM
rdoc (>= 4.0.0)
reline (>= 0.4.2)
json (2.18.1)
kettle-dev (1.1.60)
kettle-dev (1.2.4)
kettle-soup-cover (1.1.1)
simplecov (~> 0.22)
simplecov-cobertura (~> 3.0)
Expand Down Expand Up @@ -319,17 +319,17 @@ PLATFORMS

DEPENDENCIES
addressable (>= 2.8, < 3)
appraisal2 (~> 3.0)
appraisal2 (~> 3.0.6, ~> 3.0)
benchmark (~> 0.5, >= 0.5.0)
bundler-audit (~> 0.9.2)
debug (>= 1.1)
erb (~> 5.0)
gem_bench (~> 2.0, >= 2.0.5)
gitmoji-regex (~> 1.0, >= 1.0.3)
irb (~> 1.15, >= 1.15.2)
kettle-dev (~> 1.1)
kettle-dev (~> 1.2)
kettle-soup-cover (~> 1.0, >= 1.0.10)
kettle-test (~> 1.0, >= 1.0.6)
kettle-test (~> 1.0, >= 1.0.10)
kramdown (~> 2.5, >= 2.5.1)
kramdown-parser-gfm (~> 1.1)
mutex_m (~> 0.2)
Expand All @@ -344,7 +344,7 @@ DEPENDENCIES
rubocop-ruby3_2
ruby-progressbar (~> 1.13)
standard (>= 1.50)
stone_checksums (~> 1.0, >= 1.0.2)
stone_checksums (~> 1.0, >= 1.0.3)
stringio (>= 3.0)
token-resolver!
yaml-converter (~> 0.1)
Expand Down Expand Up @@ -383,7 +383,7 @@ CHECKSUMS
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
kettle-dev (1.1.60) sha256=e155e60912c171b4fab24cfce1dc6f00e87cb3e62803a235c8524516d1ba1850
kettle-dev (1.2.4) sha256=71373c67fe7eb0a9656e70dfd10cf226a15083b6d1be18dafcb5360f21ee98b6
kettle-soup-cover (1.1.1) sha256=2303885a9d8485d8d43cb250bcf73570f6b6fb997526beeaef3ef54e3501d445
kettle-test (1.0.10) sha256=ddefc5d54b290ee6dbe5a3983128f6948fa63f624ca676c1e6cfffc9b6878179
kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright

<ul>
<li>
Copyright (c) 2023, 2025 Peter H. Boling, of
Copyright (c) 2026 Peter H. Boling, of
<a href="https://discord.gg/3qme4XHNKN">
Galtzo.com
<picture>
Expand Down Expand Up @@ -623,7 +623,7 @@ Thanks for RTFM. ☺️
[📌gitmoji]: https://gitmoji.dev
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.308-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.258-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
[🔐security]: SECURITY.md
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
Expand Down
38 changes: 38 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,44 @@ end
# External gems that define tasks - add here!
require "kettle/dev"

### SPEC TASKS
# For coverage aggregation with SimpleCov merging:
# - Each task uses a unique K_SOUP_COV_COMMAND_NAME so SimpleCov tracks them separately
# - K_SOUP_COV_USE_MERGING=true must be set in .envrc for results to merge
# - K_SOUP_COV_MERGE_TIMEOUT should be set long enough for all tasks to complete
begin
require "rspec/core/rake_task"

# kettle-dev creates an RSpec::Core::RakeTask.new(:spec) which has both
# prerequisites and actions. We will leave that, and the default test task, alone,
# and use *magic* here.
Rake::Task[:magic].clear if Rake::Task.task_defined?(:magic)
desc("Run specs")
RSpec::Core::RakeTask.new(:magic) do |t|
t.pattern = "./spec/**/*_spec.rb"
end

desc("Set SimpleCov command name for remaining specs")
task(:set_coverage_command_name) do
ENV["K_SOUP_COV_COMMAND_NAME"] = "Test Coverage"
end
Rake::Task[:magic].enhance([:set_coverage_command_name])

Rake::Task[:coverage].clear if Rake::Task.task_defined?(:coverage)
desc("Slap magic onto the main coverage task")
task(coverage: [:magic])
rescue LoadError
desc("(stub) spec is unavailable")
task(:spec) do # rubocop:disable Rake/DuplicateTask
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
end

desc("(stub) test is unavailable")
task(:test) do # rubocop:disable Rake/DuplicateTask
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
end
end
Comment on lines +85 to +95
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If requiring "rspec/core/rake_task" fails (e.g., rspec not installed/disabled for a given RUBY_VERSION), this rescue block defines :spec/:test stubs but not :magic. Since CI workflows invoke rake magic, those environments will error with an undefined task. Define a stub :magic here (or keep workflows using an always-defined task like :test/:spec).

Copilot uses AI. Check for mistakes.

### RELEASE TASKS
# Setup stone_checksums
begin
Expand Down
2 changes: 1 addition & 1 deletion docs/Token.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ <h2>Defined Under Namespace</h2>
</div>

<div id="footer">
Generated on Sat Feb 21 05:19:21 2026 by
Generated on Sat Feb 21 05:58:48 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.38 (ruby-4.0.1).
</div>
Expand Down
Loading
Loading