fix(config): cap prism below 2 in the ractorize bundle
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.gemfilecaps 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 expectprismtoo. -
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.ractorize | Resolved prism | Result |
|---|---|---|
| main | 2.1.0 | boot failed: NameError: uninitialized constant Prism::MissingNode |
| this branch | 1.9.0 | boot: 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.