fix(config): cap prism below 2 in the ractorize bundle

MH
6h ago
+66-8

Summary

A fresh resolve of Gemfile.ractorize now picks prism 2.1.0, because minitest 6.1 no longer caps prism below 2. refract 1.1.0, which Phlex loads, references Prism::MissingNode, which prism 2 removed. So the ractorize job of any Phlex app fails at boot, before ractorize! runs:

ractorize: boot failed: NameError: uninitialized constant Prism::MissingNode

The fix is merged in refract (yippee-fun/refract#4) but not released yet; yippee-fun/refract#6 asks for the release.

  • config/ractorize.gemfile caps prism at < 2. The cap is added to the repo's own prism requirement, including a gemspec development dependency, or declared when the repo has none. Remove it once refract ships #4.
  • README ("The bundle") and CHANGELOG (0.5.1) say so.

Consumers get the cap when they bump to the release that ships it: conformance.yml copies the gemfile from the kit in the repo's lockfile.

Test plan

  • spec/conformance_kit/ractorize_gemfile_spec.rb: three new examples (no prism line, a Gemfile prism line, a gemspec dev dependency), all seen failing before the change; the two existing examples now expect prism too.
  • bundle exec rake: 246 examples, 0 failures, 18 pending; RuboCop clean. Spec file also green on Ruby 3.2.8.
  • Real app: phlex-reactive main (1db6426), Ruby 4.0.6, no lockfile, bundle exec conformance-kit check --ractorize:
Gemfile.ractorizeResolved prismResult
main2.1.0boot failed: NameError: uninitialized constant Prism::MissingNode
this branch1.9.0boot: ok, then ractorize! stops at the Rails main proc that rails/rails#59805 fixes

https://claude.ai/code/session_01E7i6yCPUYAKuVY9xXuKLf6


Summary by cubic

Fixes ractorize jobs failing at boot for Phlex apps by capping prism below 2 in config/ractorize.gemfile.

A fresh resolve now picks prism 2.1.0 since minitest 6.1 no longer caps it, and refract 1.1.0 references Prism::MissingNode, which prism 2 removed. The cap is added to the repo's own prism requirement (Gemfile line or gemspec development dependency) or declared when the repo has none, and carries that requirement so Bundler 2.6.5+ does not drop a gemspec's own prism floor. Remove the cap once refract releases yippee-fun/refract#4. README and CHANGELOG document the cap.