Proposed Modular Policy for Fedora ELN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



FESCo has requested that I submit the module policy once more to the
Fedora development list for discussion. Feedback is welcome.


Plainext (asciidoc) below, much more readable HTML at
https://sgallagh.fedorapeople.org/docs/modularity/modularity/policies/


= Policies Regarding Modules in Fedora, Fedora ELN and EPEL

== Requirements for All Module Streams
* The module maintainer *MUST* have explicit commit privileges to all
packages included in the module stream. The provenpackager privilege
in Fedora is not sufficient.footnote:[This ensures that the package in
the module is being maintained by someone responsible for it.]
* Components built into a module *MUST* be associated with a reachable
commit in Fedora dist-git.footnote:[There are legal and licensing
requirements for reproducibility of builds.]
* If a stream of a module has build-time-only components, all such
components *MUST* be marked as `buildonly: True` in the module
metadata to avoid shipping them to users and polluting their
repository.

== Requirements for Default Streams
* Default streams are not permitted in Fedora or EPEL 8. Fedora ELN
permits defaults streams that adhere to the policy below.
* All RPMs in default module streams are required to conform to the
same https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/[requirements
around Conflicts] as non-modular RPMs.
* Packages provided at runtime by the default stream of a module
*MUST* depend only on packages provided by packages from default
module streams or the non-modular package set. By extension, default
streams of a module *MUST NOT* have a dependency on any non-default
stream.footnote:[It is highly recommended that default streams have no
module dependencies besides the platform to avoid potential future
conflicts during upgrades.]
* Packages provided from default streams *MAY* depend on content from
other default streams. If they do so, this dependency *MUST* be
encoded in the module metadata.footnote:[This is so that if the
maintainers of either module wishes to change its default stream, it
is easy to see what other modules would be impacted and coordinate
it.]
* All packages provided at runtime by the default stream of a module
*MUST* provide all the same functionality that a downstream consumer
would expect from a package in the non-modular package
set.footnote:[If a package is not filtered out from the default module
stream, it is going to be part of the default-available content and
therefore must be treated (and supported) just like a non-modular
package.]
* The default stream of a module *MUST NOT* change to a different
stream within a released Fedora version.footnote:[This is an extension
of the https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#stable-releases[stable
updates policy].] The default stream *MAY* be changed in Rawhide or
during Fedora upgrades. Changes to default streams *MUST* be approved
via a https://docs.fedoraproject.org/en-US/program_management/changes_policy/#_change_process[Fedora
Change proposal].
* Packages *MAY* convert from a non-modular package to a modular
default stream (or the reverse) only in Rawhide or during Fedora
upgrades.
* Default streams *MUST NOT* provide a binary RPM with the same
package name as a non-modular RPM in the same release except in the
case of a transition from one to the other.footnote:[Modular packages
shadow non-modular ones. This rule ensures that we don't have any
shadowed packages in the default package set.]
* Default streams *MUST NOT* provide a binary RPM with the same
package name as an RPM in a default stream in the same release except
in the case of a transition from one to the other.footnote:[In this
situation, whichever has the highest NEVRA would win the depsolving
and could break the other module.]
* Multiple default streams *MUST NOT* provide the same binary package
names at runtime.footnote:[They *MAY* provide other well-known names
in the same manner as permitted for non-modular content. For example,
two different default streams *MAY* provide content to be used with
the `alternatives` system or virtual `Provides` for capabilities.]
* Default streams *MUST NOT* provide a package that overrides a
package of the same name in the non-modular content except in approved
cases of migration between modular and non-modular delivery.
* Default streams *MUST NOT* use the `data.buildopts.rpm.macros`
metadata section without approval by FESCo.footnote:[This feature
allows for overriding the standard macros for building packages in
Fedora and should be avoided entirely for default streams so they are
built just like non-modular packages.]
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux