This is a summary of a recent thread [1].

Traditional branches (such as "f29") have their EOL (end of life) encoded in the name. But what about stream branches [2] (such as "2.4" or "latest")?

Stream branches of RPM packages would always have an EOL associated with them. The format would be on of the following:
a) A date — mostly tied to an upstream version and its EOL.
b) A specific Fedora release — for release-specific packages.
c) Forever — rolling forward with upstream, latest development versions, etc.

Module streams would inherit their EOL from the packages they include — the earliest EOL would win. This could be optionally overridden on the module stream level by specifying one of the following:
a) A date.
b) A specific Fedora release.

There would be a policy that a module can reach its EOL in the middle of a Fedora release to prevent madness.

We need a way to specify the EOL value and to manage it over time, because it might change. For RPM stream branches, there is currently a way to specify an EOL value when requesting the branch [3] — the actual format might change based on this discussion. However, I'm not aware of a way to change the value if necessary nor a process associated with that. Also, there is currently no way to specify an EOL for modules.

After we figure this out, we also need to make sure the build system takes that into account (some recent progress [4]) and that the client tooling (mostly DNF) presents that to the user.

So... any comments to the concept? Any ideas about workflows or processes of managing the EOL values?


[2] Now "stream branches", formerly "arbitrary branches": https://fedoraproject.org/wiki/Changes/ArbitraryBranching 

--

Adam Šamalík
---------------------------
Software Engineer
Red Hat