Skip to content

Use thermite 0.14's version option instead of monkeypatching thermite - #188

Merged
danielpclark merged 3 commits into
masterfrom
claude/determined-shannon-ybz9nf-thermite-0.14
Oct 7, 2026
Merged

danielpclark merged 3 commits into
masterfrom
claude/determined-shannon-ybz9nf-thermite-0.14

Conversation

@danielpclark

Copy link
Copy Markdown
Owner

Stacked on #187 (the base branch here; it retargets to master once that merges). Goes with danielpclark/thermite#2, and must not be merged before thermite 0.14.0 is on rubygems.org, since the gemspec now requires thermite ~> 0.14.

What

lib/faster_path/thermite_initialize.rb redefined two thermite methods, and both were doing the wrong thing with the thermite the fork now has:

  • Config#ruby_version put the full Ruby version into the release tarball names (ruby3.4.6), so a prebuilt extension could only be downloaded by that exact patch release, although it works on every 3.4.x. thermite's own ruby34 naming is what its download code expects.
  • Tasks#github_download_uri made downloads use the gem's version as the release tag instead of the crate's. thermite master removed that method in its refactor, so the override had become dead code and installs without Cargo would have looked for v0.1.0. thermite 0.14 adds a version option for exactly this; the Rakefiles pass version: FasterPath::VERSION, so tarballs are faster_path-0.5.0-ruby34-linux-x86_64.tar.gz under tag v0.5.0.

rake build_lib also cleaned the Cargo target through Tasks#run_cargo, removed by the same refactor; it uses Thermite::Cargo now. The thermite test in the suite now checks what the Rakefiles rely on (tarball naming, the clean step) instead of the monkeypatch targets. The "method redefined" warnings on every rake run are gone with the file.

The Gemfile takes thermite from the fork's branch until 0.14.0 is published; that line can go once it is.

Verification

Ruby 3.4.6 on Linux: rake build_lib thermite:tarball builds and produces faster_path-0.5.0-ruby34-linux-x86_64.tar.gz; TEST_MONKEYPATCHES=true WITH_REGRESSION=true ENCODING=true rake minitest lint passes (138 tests, no offenses).

🤖 Generated with Claude Code

https://claude.ai/code/session_01CXvfgWzuq28ewqT3AyhX4Z


Generated by Claude Code

thermite_initialize.rb redefined two thermite methods. `Config#ruby_version`
put the running Ruby's full version into the release tarball names, so a
prebuilt extension was only found by that exact patch release (ruby3.4.6)
although it works on every 3.4.x; thermite's own `ruby34` naming is what
the download expects. `Tasks#github_download_uri` made the download use
the gem's version as the release tag instead of the crate's; thermite
0.14 removed that method and added a `version` option for exactly this,
which the Rakefiles now pass. `rake build_lib` cleaned the Cargo target
through a method the same refactor removed, so it uses `Thermite::Cargo`.

The Gemfile takes thermite from its repository until 0.14.0 is on
rubygems.org; the gemspec already requires it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CXvfgWzuq28ewqT3AyhX4Z
@semanticdiff-com

Copy link
Copy Markdown

Review changes with  SemanticDiff

@danielpclark
danielpclark changed the base branch from claude/determined-shannon-ybz9nf-rutie-0.13 to master October 7, 2026 13:37
@danielpclark
danielpclark merged commit a7b3233 into master Oct 7, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant