Skip to content

Epic: 2025 Deferred Maintenance #898

Description

@jefferya

Summary:

  • A list of deferred maintenance items discovered while updating Rails to 7.2 (and 8.1)
  • Rails 7.2 end-of-life: Aug 2026 - PR #884 ready for review
  • Rails 8.1 (security support ends Oct 2027)
  • Ruby 3.3.x eol March 2027 (3.4.x 2028 Mar; v4.0 not supported by multiple Gem)
  • NodeJs v22 .tool-version end-of-life: April 30, 2027
  • Dart Sass v2: unknown eol but significant changes required to support v3

Details:

A list of deferred maintenance items discovered while updating Rails to 7.2 (and 8.1) plus adopting a new supported fork of the Comfy CMS Gem / Rails Engine - PR#885 - a stream-of-consciousness document. The purpose of this issue is to start a discussion about prioritization and about which should be addressed in 2026 and which should be deferred to a later date (sub-issue creation encouraged).

  1. Rails 7.2 end-of-life: Aug 2026

    • PR Update Rails to v8.1 #884 updates to Rails 8.1 (end-of-life Oct 2027; 2 years after release)
    • Deprecation warning: "resources received a hash argument controller" and support will be removed in Rails 8.2 - comfortable_mexican_sofa will need patching or replacement.
  2. sprockets-rails versus propshaft: Rails v8 introduces a new asset pipeline tool. The Library-CMS app minimally uses sprockets-rails. A refactoring would simplify the codebase following reasons in Rails Asset Pipeline

  3. Related to (2), Dart Sass function deprecation warnings from both the CMS Gem and Library CMS app regarding function removal in Dart Sass v3.0.0. The Rails 8 asset pipeline allow for the removal of Sass because recent browsers with recent version of CSS provide many/most of the features provided by Sass and the removal of Sass decreases complexity. Changes will be needed to either support the new Sass functions or move away from Sass.

    • Note in SCSS file all CSS comes from Ualberta's main website or external CDN's: is Sass needed?
    • "Deprecation Warning [color-functions]: green() is deprecated"
    • "Global built-in functions are deprecated and will be removed in Dart Sass 3.0.0. Use color.mix instead."
    • "The Sass if() syntax is deprecated in favor of the modern CSS syntax."
    • "Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0."
  4. Ruby 3.3.x eol March 2027 (3.4.x 2028 Mar; v4.0 not supported in the Gemfile)

    • In the past RedHat / CentOS would back-port security patches to the version in the CentOS RPMs repository; however, unsure if this will be the future practice.
  5. MariaDB updates to 11.4+ may need a Library-CMS config update to address the SSL https://mariadb.com/docs/release-notes/community-server/11.4/what-is-mariadb-114#ssl-tls

    • a mariadb-client v10 will not connect to a v11.4+ server without --disable-ssl or --disable-ssl-verify-server-cert to revert to the old behavior.
  6. Related to (2), is bundling needed or does is add additional complexity that should be removed to ease maintenance? The CMS Gem comes with its own asset handing and the Library-CSM app has little javascript. Could these be removed: jsbundling-rails or cssbundling-rails?

  7. Browserslist: browsers data (caniuse-lite) is 7 months old. Please run: npx update-browserslist-db@latest
    Why you should do it regularly: https://github.com/browserslist/update-db#readme

  8. Update of the DB seeds to help with test on staging and within this repository.

  9. Test suite is minimal. I'm my opinion if the tool has a longer-term place, the test suite should be expanded. Prioritise in conjunction with what the Web Team identifies as most important.

  10. NodeJs v22 .tool-version end-of-life: April 30, 2027

In progress

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions