Freeze ViewComponent::VERSION::STRING (audition round 2)#2672
Merged
Conversation
audition round 2: freeze the computed version string so the constant is immutable and Ractor-shareable (frozen_string_literal doesn't cover the result of #join). Removes the corresponding runtime-unshareable-constant entry from the audition baseline.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves Ractor readiness by making the ViewComponent::VERSION::STRING constant immutable (and therefore shareable) and updates the audition baseline to reflect the resolved finding.
Changes:
- Freeze
ViewComponent::VERSION::STRINGso it is no longer a mutable, runtime-built String. - Document the change in the changelog under the
mainsection. - Regenerate
.audition-baseline.jsonto remove the resolvedruntime-unshareable-constantentry forversion.rb.
Show a summary per file
| File | Description |
|---|---|
| lib/view_component/version.rb | Freezes the computed version string constant to ensure immutability and Ractor shareability. |
| docs/CHANGELOG.md | Adds a changelog entry describing the version string freeze. |
| .audition-baseline.json | Updates the baseline by removing the resolved finding for lib/view_component/version.rb. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Low
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the audition CI integration.
Fixes one non-controversial, low-hanging finding from the audition baseline:
ViewComponent::VERSION::STRINGis built with[...].compact.join("."). Becausefrozen_string_literalonly freezes string literals (not the result of#join), the constant held a mutable, non-Ractor-shareable String. Freezing it makes the version constant immutable and shareable..audition-baseline.json(201 → 200 findings); theruntime-unshareable-constantentry forversion.rbis removed.Left for later (not low-hanging / would change behavior or public API): the class variables and
class_attribute/mattr_accessorstate, class-level ivars,define_methodblocks, and the$PROGRAM_NAMEscript-run line.