Skip to content

docs: add Foreman Release Cycle#2287

Open
d1nuc0m wants to merge 1 commit into
theforeman:gh-pagesfrom
d1nuc0m:release-cycle
Open

docs: add Foreman Release Cycle#2287
d1nuc0m wants to merge 1 commit into
theforeman:gh-pagesfrom
d1nuc0m:release-cycle

Conversation

@d1nuc0m

@d1nuc0m d1nuc0m commented Mar 30, 2026

Copy link
Copy Markdown
Contributor

Adding Foreman Release Cycle

It is a WIP - which is Katello schedule? The same of Foreman? Where can I find dates?

Probably style can be improved too, web dev is not my field

@stejskalleos

Copy link
Copy Markdown
Contributor

cc @jafiala @ogajduse

@ogajduse ogajduse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together, @d1nuc0m!

A few things to update:

3.19.0 GA shipped June 9 - table still shows "EXP." The next release is 5.0 (not 3.20), with GA planned 2026-09-08. This was agreed in the versioning sync RFC - the major bump reflects the shift to containerized deployments via foremanctl and permanently aligns Foreman + Katello versions. See the 5.0 schedule.

The X.Y.1 -> X.Y.2 -> X.Y.3 notation in the policy section reads like patch versions, but these are actually minor/major bumps (3.17, 3.18, 3.19). The policy is: two latest released versions are supported, where "version" means the last X or Y bump. So once 5.0 ships, 5.0 and 3.19 are supported, 3.18 goes EOL.

On the version history table - I'd question whether maintaining a full release date table on this page adds much value. It uses scheduled dates that differ from actuals (e.g. 3.16 announced 2025-09-10 not 09-09, 3.18 announced 2026-03-11 not 03-10), and it's already drifted (3.19 still marked expected, 5.0 missing). Each release already has its own "Schedule and Planning" post on Discourse, which the table links to anyway. Instead of maintaining this manually, _config.yml already has foreman_latest_releases with the currently supported versions — it gets updated every release. The page could use Liquid to render the supported versions directly from that data, so no manual page edits are needed — just the config update that already happens at release time. For the full history, a link to the Discourse Release category would do.

On Katello - historically each Katello release shipped alongside a specific Foreman version (e.g. Katello 4.21 with Foreman 3.19). Starting with 5.0, both projects share the same version number. Worth mentioning this.

On the styling - the nth-child CSS breaks whenever rows are added or removed (all colors shift down). If you do keep a table, Bootstrap is already loaded site-wide, so <span class="label label-success">Supported</span> / <span class="label label-important">End Of Life</span> in the Status column would work better — status-based, not position-based.

@d1nuc0m

d1nuc0m commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

@ogajduse thanks for the review!

3.19.0 GA shipped June 9 - table still shows "EXP."

Tbh I had not updated the PR not knowing if it may be interesting.

The X.Y.1 -> X.Y.2 -> X.Y.3 notation in the policy section reads like patch versions, but these are actually minor/major bumps (3.17, 3.18, 3.19). The policy is: two latest released versions are supported, where "version" means the last X or Y bump. So once 5.0 ships, 5.0 and 3.19 are supported, 3.18 goes EOL.

Tried to clarify it - the two latest minors are supported

On the version history table - I'd question whether maintaining a full release date table on this page adds much value.

Idk, for history's sake? Switched to Liquid anyway

On Katello - historically each Katello release shipped alongside a specific Foreman version (e.g. Katello 4.21 with Foreman 3.19). Starting with 5.0, both projects share the same version number. Worth mentioning this.

Done

Bootstrap is already loaded site-wide, so Supported / End Of Life in the Status column would work better — status-based, not position-based.

Web dev is definitely not my field :D

Used <span class="label label-danger"> instead of <span class="label label-important"> as the latter seems not to be working.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants