Skip to content

Replace annotate with annotaterb and upgrade to Rails 8.0 #886

Description

@suttondemlong

Why

annotate 3.2.0 declares activerecord >= 3.2, < 8.0 — a hard resolution blocker for Rails 8.0 — and is unmaintained. annotaterb 4.24.0 is the maintained fork. Since the swap exists only to unblock the framework bump, the two belong in one change.

Scope

  • Swap annotate -> annotaterb (development group only, so CI risk is near zero). Note that regenerating the # == Schema Information headers produces a large mechanical diff across all ActiveRecord models — consider doing the gem swap and the regeneration as separate commits so the regeneration does not hide anything.
  • gem "rails", "~> 8.0.0", bin/rails app:update
  • Keep load_defaults at 7.2; take new_framework_defaults_8_0.rb with everything commented

Verified Rails 8.1 resolves against this gem set, so 8.0 will too. Rails 8.1 requires PostgreSQL >= 9.5, so the current PG 12.8 is fine.

Acceptance criteria

  • Full suite green
  • Schema annotation headers regenerate cleanly
  • load_defaults still 7.2

Blocked by

#885 (Ruby 3.4.10) and #884 (Rails 7.2 defaults). Blocks #887.


Part of the Ruby + Rails upgrade sequence. Ruby 3.2 reached end of life on 2026-04-01 and the backend is on Rails 7.1; the goal is Ruby 3.4.10 and Rails 8.1, in steps that each keep CI green and are independently deployable.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions