Stephen Gallagher wrote:
Modular builds have metadata that can indicate to consumers which
subpackages in this module should be considered "API". If a module
produces a package artifact and does not list it thusly, it is meant
to be treated as an internal implementation detail of the module (and
that the maintainer is not committing to maintaining that particular
package for any purpose other than supporting the API content of this
module).
We also have "filters" which are intended for allowing module
packagers to build and use build-time-only packages. They are built
and added to the module buildroot as part of the build process, but
they are filtered out so they don't end up in the final composed
repository. (This is useful if, for example, your package used a small
subset of some other package only at build-time and you don't want to
have to maintain that package for everyone in the distro just to build
yours).
Both of these should be equally disallowed by policy in Fedora (and in ALL
module streams, not just in default streams). Filtering packages is even
worse than declaring them non-API. It even interferes with installing non-
modular versions of the filtered packages (reportedly a common issue on
RHEL). And it is just an anti-social thing to do and against the goals of
Fedora (it conflicts with at least the following ideals that I would have
believed we all share: transparency, cooperation rather than duplication,
self-hosting). If your build-time dependency does not logically belong into
your module, then you should get it into Fedora proper and ask for
comaintainers, not take it private by filtering it from your module.
Kevin Kofler