Skip to content

WA-FORWARD-001: Rails 7.2 forward compatibility assessment#769

Merged
kitcommerce merged 1 commit intonextfrom
wa-forward-001-rails72-compat
Mar 5, 2026
Merged

WA-FORWARD-001: Rails 7.2 forward compatibility assessment#769
kitcommerce merged 1 commit intonextfrom
wa-forward-001-rails72-compat

Conversation

@kitcommerce
Copy link

Fixes #761. Assessment of Rails 7.2 compatibility scope.

What changed

  • Created gemfiles/rails_7_2.gemfile
  • Documented compatibility findings in docs/rails7-migration-patterns/rails-7-2-notes.md
  • Scope: moderate

Client Impact

None for this PR (docs/assessment only).

Verification

See docs/rails7-migration-patterns/rails-7-2-notes.md

@kitcommerce kitcommerce added gate:build-pending Build gate running gate:build-passed Build gate passed review:architecture-pending Review in progress review:simplicity-pending Review in progress review:security-pending Review in progress review:rails-conventions-pending Rails conventions review in progress and removed gate:build-pending Build gate running review:architecture-pending Review in progress review:simplicity-pending Review in progress review:security-pending Review in progress review:rails-conventions-pending Rails conventions review in progress labels Mar 5, 2026
@kitcommerce
Copy link
Author

🔍 Wave 1 Review Dispatching

Build gate passed (docs/gemfile only — N/A for rubocop/brakeman/tests).

Dispatching Wave 1 reviewers in parallel:

  • architecture (assessment quality, structural approach)
  • simplicity (over-engineering check)
  • security (gemfile additions, credential handling)
  • rails-conventions (Rails 7.2 gemfile and configuration patterns)

@kitcommerce
Copy link
Author

Architecture Review

{
  "reviewer": "architecture",
  "verdict": "PASS",
  "severity": null,
  "summary": "Documentation-only PR with no code changes; no architectural impact to evaluate.",
  "findings": []
}

Documentation-only PR — adds a Rails 7.2 appraisal gemfile (follows existing gemfiles/ convention) and compatibility notes. No code, no new modules, no coupling changes. Nothing to flag architecturally.

@kitcommerce kitcommerce added review:architecture-done Review complete and removed review:architecture-pending Review in progress labels Mar 5, 2026
@kitcommerce
Copy link
Author

Simplicity Review

{
  "reviewer": "simplicity",
  "verdict": "PASS",
  "severity": null,
  "summary": "Documentation-only PR with a minimal gemfile; no over-engineering, unnecessary abstraction, or YAGNI violations.",
  "findings": []
}

Nothing to flag here. The gemfile is 5 lines using the standard eval_gemfile pattern, and the markdown doc is a straightforward assessment artifact. Both files do exactly what they need to and nothing more.

@kitcommerce kitcommerce added review:simplicity-done Review complete and removed review:simplicity-pending Review in progress labels Mar 5, 2026
@kitcommerce
Copy link
Author

🔒 Security Review

{
  "reviewer": "security",
  "verdict": "PASS",
  "severity": null,
  "summary": "No security concerns — PR adds only a standard Bundler gemfile and a markdown documentation file with no code, credentials, or sensitive data.",
  "findings": []
}

Details: Reviewed the gemfile (eval_gemfile is standard Bundler pattern, no novel risk) and the 73-line markdown assessment doc. No secrets, no authentication/authorization changes, no input handling, no data exposure vectors. Clean pass.

@kitcommerce kitcommerce added review:security-done Review complete and removed review:security-pending Review in progress labels Mar 5, 2026
@kitcommerce
Copy link
Author

Rails Conventions Review

Verdict: PASS_WITH_NOTES
Severity: LOW

Summary

The gemfile and documentation are well-structured and follow Rails/Bundler conventions. The appraisal gemfile pattern used (eval_gemfile + pessimistic version constraint) is idiomatic for Appraisal-style multi-Rails testing. The documentation accurately identifies key Rails 7.2 behavioral changes and uses correct Rails terminology. Two low-severity notes are worth addressing.


Findings

[LOW] Documentation references edgeguides.rubyonrails.org instead of stable guides

The doc links to:

  • https://edgeguides.rubyonrails.org/7_2_release_notes.html
  • https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-7-1-to-rails-7-2

edgeguides.rubyonrails.org tracks the main branch (Rails edge), not a stable release. For Rails 7.2 (a released version), the stable and authoritative URLs are:

  • https://guides.rubyonrails.org/7_2_release_notes.html
  • https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-7-1-to-rails-7-2

The edge guides content may drift from what applies to 7.2.x. Suggest updating to stable URLs before this doc becomes a long-term reference.


[LOW] No Appraisals file entry (informational, depending on tooling)

If the project uses the appraisal gem, the canonical workflow is to declare appraisals in an Appraisals file and let appraisal generate produce the gemfiles. The manually created gemfiles/rails_7_2.gemfile is structurally correct (matches Appraisal's generated format), but if Appraisals is used it should have a corresponding entry:

appraise 'rails-7-2' do
  gem 'rails', '~> 7.2.0'
end

If gemfiles are managed manually here, this is fine as-is — just note it for consistency with however the existing appraisal gemfiles were created.


What's Good

  • # frozen_string_literal: true header on the gemfile ✅
  • eval_gemfile File.expand_path('../Gemfile', __dir__) — correct Appraisal pattern for inheriting the root Gemfile ✅
  • ~> 7.2.0 pessimistic constraint is the right operator for pinning to a specific minor series during appraisal testing ✅
  • Rails 7.2 behavioral changes documented (Active Job transactional enqueue, alias_attribute change, Ruby 3.1 minimum) are all accurate and Rails-idiomatic ✅
  • Correctly notes that Workarea is Mongoid-based while flagging Active Job transactional enqueue as a potential app-layer concern — accurate nuance ✅
  • force_ssl call-out is appropriately hedged (isn't necessarily removed) ✅
  • Follow-up work items are well-scoped and actionable ✅

@kitcommerce kitcommerce added review:rails-conventions-done Rails conventions review complete review:rails-security-pending Rails security review in progress review:database-pending Database review in progress and removed review:rails-conventions-pending Rails conventions review in progress labels Mar 5, 2026
@kitcommerce kitcommerce added review:accessibility-pending Review in progress review:performance-done Review complete review:frontend-done Frontend review complete review:accessibility-done Review complete and removed review:performance-pending Review in progress review:accessibility-pending Review in progress review:frontend-pending Frontend review in progress labels Mar 5, 2026
@kitcommerce
Copy link
Author

Wave 3 Review Results

Performance

Verdict: PASS_WITH_NOTES (LOW) — No production performance impact. Docs-only. Minor note: if appraisal gemfile is wired to CI matrix, ensure intentional scope.

Frontend

Verdict: PASS_WITH_NOTES (LOW) — No frontend surface area changed. Minor optional: ensure fenced code blocks use language tags in docs.

Accessibility

Verdict: PASS_WITH_NOTES — No UI/markup changes. Minor doc hygiene note: use logical heading levels and descriptive links in documentation.

All Wave 3 reviewers passed. Proceeding to Wave 4 (documentation — final).

@kitcommerce kitcommerce added review:documentation-pending review:documentation-done merge:ready All conditions met, eligible for merge merge:hold In hold window before auto-merge and removed review:documentation-pending labels Mar 5, 2026
@kitcommerce
Copy link
Author

✅ All Review Waves Passed

All reviewers returned PASS or PASS_WITH_NOTES. This PR is merge-ready.

  • Wave 1 (Foundation — arch/simplicity/security/rails-conventions): ✅
  • Wave 2 (Correctness — rails-security/database/test-quality): ✅
  • Wave 3 (Quality — performance/frontend/accessibility): ✅
  • Wave 4 (Documentation — informational): ✅

Labeled merge:ready + merge:hold. Auto-merge eligible after 60-minute hold window (~12:27 AM ET).

@kitcommerce kitcommerce added gate:build-failed Build gate failed and removed merge:ready All conditions met, eligible for merge merge:hold In hold window before auto-merge gate:build-passed Build gate passed labels Mar 5, 2026
@kitcommerce kitcommerce force-pushed the wa-forward-001-rails72-compat branch from 45014e2 to 768ac0c Compare March 5, 2026 05:18
@kitcommerce kitcommerce added gate:build-passed Build gate passed merge:ready All conditions met, eligible for merge merge:hold In hold window before auto-merge and removed gate:build-failed Build gate failed labels Mar 5, 2026
@kitcommerce
Copy link
Author

✅ Build Gate Passed — CI now SUCCESS

All CI checks completed successfully after the rebase. All review waves were already complete. Hold window elapsed (started 04:27 UTC, eligible 05:27 UTC). Proceeding with auto-merge.

@kitcommerce kitcommerce merged commit 0a6da76 into next Mar 5, 2026
16 checks passed
@kitcommerce kitcommerce deleted the wa-forward-001-rails72-compat branch March 5, 2026 06:14
kitcommerce pushed a commit that referenced this pull request Mar 5, 2026
Adds test results documentation from running core engine tests under
Rails 7.2.3 + Mongoid 8.1 via gemfiles/rails_7_2.gemfile.

gemfiles/rails_7_2.gemfile was committed in PR #769 (forward compat).
Boot-time fixes were committed in 4c66bec.

Sample run (13 test files, 113 runs):
- 74 runs / 294 assertions PASSING
- 2 failures (slug caching #788, password validation #789)
- 2 errors (Rack::Cache not auto-required #787)

Follow-up issues created: #787, #788, #789

Closes #768
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gate:build-passed Build gate passed merge:hold In hold window before auto-merge merge:ready All conditions met, eligible for merge review:accessibility-done Review complete review:architecture-done Review complete review:database-done Database review complete review:documentation-done review:frontend-done Frontend review complete review:performance-done Review complete review:rails-conventions-done Rails conventions review complete review:rails-security-done Rails security review complete review:security-done Review complete review:simplicity-done Review complete review:test-quality-done Review complete

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant