RFC: Sync Foreman and Katello versioning, and reset both to 5.0 with containerized deployment

Continuing along from the last iteration of this proposal, RFC: Sync Foreman and Katello versioning, and reset both to 5.0 at full EL9 support ..

RFC: Sync Foreman and Katello versioning, and reset both to 5.0 with containerized deployment

Decision Due Date: 2026-07-27.

I suggest that the target for this version change be what would otherwise be Foreman 3.20. (Currently we just started the development cycle for Foreman 3.19, so 3.20 is the next cycle after that.) It’s probably good to have a decision made before stabilization week. Extrapolating out from Foreman 3.19 Schedule and Planning , “Prep week” for this current cycle starts 2026-04-27, so the corresponding point in the next cycle would be 2026-07-27.

Context and Problem Statement

  • What is the problem being solved?
    • Currently we’re planning to improve foremanctl so that it can support a complete deployment of Foreman + Katello + other plugins in a containerized, opinionated way. As far as I understand, the goal is for these changes to land no later than Foreman 3.20, hence the rationale for the Decision Due Date above.
    • This is a fundamental change to how these projects are packaged and deployed, and IMO this alone more than justifies a major version bump.
    • Secondarily, resetting both Foreman and Katello to 5.0 will also have the side benefit of resetting the “Y” version of both to 0. Aligning Foreman and Katello minor versions like this will eliminate a lot of confusion around “Which Katello goes with which Foreman version?”, etc.
  • How does this affect the user or developer?
    • I’m not fully aware of the packaging / delivery side of things and how this change will affect it, so feedback is welcome here.

Proposal

  • The Foreman version formerly known as 3.20 would be Foreman 5.0
  • The Katello version formerly known as 4.22 would be Katello 5.0
  • Any other plugins that wish to bump their major version number could also do so

Alternative Designs

  • Not incrementing the major version (e.g. remaining Foreman 3.20 and Katello 4.22): This would be introducing a breaking and/or major change without a major version bump, and would be confusing at best.
  • Incrementing the major version of Foreman without doing so for Katello: This would not make any sense, because then you’d have Foreman 5.0 / Katello 4.22, (or even worse, Foreman 4.0 / Katello 4.22) and we’d have all the same problems with Foreman/Katello version matching clarity that we do now.
  • Incrementing the major version by 1 for both projects (e.g. Foreman 4.0 / Katello 5.0): This would introduce confusion because Katello’s major version would be greater than Foreman’s, and also we’d have all the same problems with Foreman/Katello version matching clarity that we do now.

Decision Outcome

tbd

Impacts

tbd

8 Likes

No problem on this side expected, having a clear version increase is never a problem for packaging. (Going down or changing the versioning schema would need some workarounds, but this not considered at all, so we are fine)

1 Like

In my book, syncing up Katello and Foreman versions can’t come soon enough!
The fact that we need to wait for an excuse (containerized deployment) to do a major version bump first, is a shame. But now that we have that opportunity we should definitely use it to sync up those versions!

1 Like

I would like that very much. And I do not mean it just as a one-time thing, but as a shift to branching the plugins together with foreman. Sadly there are plugins which are already way beyond major version 5 (the one “furthest away” is probably foreman_discovery with 26.y.z), so the proposed solution wouldn’t really work there. That being said, I don’t really have any ideas how to get out of this, beyond the crazy ones.

1 Like

Crazy thought: if we’re aligning them, at what point should we move the plugins into a single repository?

Now I’m not a fan of monorepo design but if we have all the downsides of keeping things in sync, should we start to leverage the upsides?

1 Like

I’m not necessarily against this, but think it should probably be a separate proposal. It can be done apart from version bumps and doesn’t need to be simultaneous.

+1 to this, it is also a chance for us to make tough changes to the API. For example, I want to make dependency solving no longer the default for incremental update, which technically should happen in an X version (although we aren’t really following semver).

Foreman and Katello have followed the same release pattern for… forever? I see no risk here.

The monorepo idea is interesting, I suppose the benefits would mostly be on the delivery side. We’d need to talk about how repo permissions look at that point too, which could be its own debate.

1 Like

Do I need to sign anything? Can we do this today?

+1 from me, for a long time I was always asking when are we going to sync Foreman and Katello version.

1 Like

Let’s sync the versions of Foreman and Katello! The earlier the better :slight_smile:

Syncing plugin versions seems tough, e.g. in foreman_puppet we try to bump a major version on breaking changes in Foreman, so we are at 9.X at the moment.