Path to Ruby 3.0, 3.1, EL9 and Ubuntu 22.04

GitHub Actions

Related: I’ve posted the GitHub Actions in the relevant RFC as a comment Convert Foreman & plugins continuous integration to GitHub Actions - #6 by ekohl

@evgeni raised that various plugins have JS tests and those don’t respect the matrix.json file. Reusable Javascript tests · Issue #42 · theforeman/actions · GitHub has been filed to implement a reusable action for this.

NodeJS

In the past week the focus has been less on Ruby and more on NodeJS. As announced we merged webpack 5 and as expected, there was some fall out. Nothing major, but it occupied us nonetheless. For all the details, see Webpack 5 merge this Friday (2024-01-26).

One uncomfortable thing that showed up NodeJS 16. This is needed for EL9. It looks like we still need legacy peer dependencies handling with NPM. Another is that on EL9 the development packages for NodeJS 16 are missing. Because of that the current investigation is looking at NodeJS 18. That version also ships NPM 8 and we expect few problems. Fedora 38 ships it, which means you can finally just use the system packages in your development environment. Fedora 39 ships NodeJS 20, so that support is also considered. Active work is in Fixes #37134 - upgrade to node 18 and npm 8 by MariaAga · Pull Request #10016 · theforeman/foreman · GitHub.

If we look at the Foreman 3.10 schedule then it’s getting rather close. Next week we have CfgMgmtCamp 2024 where both @evgeni and I will attend. The week after that it’s already stabilization week.

I see 3 options:

  • @ehelms has time to work on the NodeJS > 14 upgrade next week and can get it done
  • We postpone Foreman 3.10 branching for this
  • We postpone Foreman on EL9 to 3.11

@evgeni notes that it’s very useful to have a non-official Foreman on EL9 release (as 3.10 was intended to be) because that makes upgrade testing possible.

@ekohl will discuss with @ehelms and the @releases team what’s the best course of action here.

Ruby 3

We set a target to merge Fixes #36849 - Run GHA on Ruby 3.0 by ofedoren · Pull Request #9989 · theforeman/foreman · GitHub on Tuesday. Due to webpack 5 that didn’t happen, but @ofedoren has continued testing (Fixes #36849 - Run GHA on Ruby 3.0 by ofedoren · Pull Request #9989 · theforeman/foreman · GitHub)

Foreman tasks / Dynflow need work:

Katello needs this and other changes. virt_who_configure depends on Katello and may be fixed once Katello works.

foreman_ansible also has some error that I don’t understand.

We agree to merge it today, even if that breaks some test suites. Maintainers can ignore the Ruby 3.0 result for now.

3 Likes