#146 Add policy that all packages in default stream MUST be part of module API
Opened 2 months ago by bookwar. Modified a month ago

It is hard to differentiate api and non-api packages provided by a module.

When users install package via dnf install <name>, they can install a package provided by a default stream without realizing that the packages is actually modular. Thus the expectations are that the package is properly supported on Fedora and can be used to build custom applications or as a standalone app.

For non-api packages this is not the case, as module owner doesn't provide full support for them and can update them with incompatible changes as long as module API still works.

Therefore, we propose a policy that all packages exposed through the default stream must belong to the module API.

If the policy is accepted, it should probably be implemented as a check in fedmod lint.


We talked about this at Flock, and because there is some confusion about what exactly it means for packages to be in the module API, let's rephrase this:

"All packages in a default module stream must be, in terms of maintenance level and stability, treated the same way as non-modular packages."

That's to follow one the principles I believe we have: Putting packages in a default module stream should not change the way they can be used in terms of installation and updates.

Just for the record, I'm +1 to that policy change proposal.

We talked about this at Flock, and because there is some confusion about what exactly it means for packages to be in the module API, let's rephrase this:
"All packages in a default module stream must be, in terms of maintenance level and stability, treated the same way as non-modular packages."
That's to follow one the principles I believe we have: Putting packages in a default module stream should not change the way they can be used in terms of installation and updates.
Just for the record, I'm +1 to that policy change proposal.

Minor adjustment: "All packages exposed in a default module stream must be, in terms of maintenance level and stability, treated the same way as non-modular packages." Mostly just to clarify that if the package is filtered out with the data.filter.rpms section (meaning it's a build-time-only dependency and doesn't appear in the repo) it doesn't need to follow this rule.

Metadata Update from @psabata:
- Issue tagged with: Meeting

a month ago

At the weekly meeting, we agreed on:

"Default modules should declare all their exposed packages as API or bundle appropriately; alternatively they must stop being the default; the exact wording will be figured out in the ticket later"

Login to comment on this ticket.

Metadata