Re: Fedora 33 System-Wide Change proposal: Introduce module Obsoletes and EOL

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

 



Wouldn't be easier to use something we already have? E.g.
https://src.fedoraproject.org/rpms/fedora-obsolete-packages


Vít


Dne 30. 03. 20 v 16:30 Ben Cotton napsal(a):
> https://fedoraproject.org/wiki/Changes/Module_Obsoletes_and_EOL
>
> == Summary ==
> Fix Fedora upgradability issues when upgrading systems with module
> streams enabled.
>
>
> == Owner ==
> * Name: [[User:dmach| Daniel Mach]]
> * Email: dmach@xxxxxxxxxx
>
>
> == Detailed Description ==
> DNF currently doesn't have sufficient information to perform system
> upgrades of systems with enabled module streams correctly.
> To solve upgradability problems, we will add additional modulemd metadata.
> This includes information about a stream obsoleting another one or a
> stream being EOLed.
>
> Use Cases:
> * A module (all its streams) is removed from a distribution.
> * A stream has reached its EOL and must no longer be available.
> ** The stream packages have no replacements and must be removed from
> the system (an extension of fedora-obsolete-packages?)
> ** The stream packages get replaced with non-modular packages
> * A stream has reached its EOL and is Obsoleted by another stream.
> * A stream has reached its EOL and a user wants to continue using it
> regardless of EOL/Obsoletes.
> * A stream has reached its EOL and a user wants to install a new host
> with the EOLed stream enabled.
>
> There is going to be a new DNF config option:
>
> * (name: TBD) - automatically follow stream EOL/Obsoletes; only print
> a warning if turned off
>
> Proposed new modulemd document:
>
> <pre>
> document: TBD
> version: 1
> data:
>   # A string representing UTC date in ISO 8601 format: YYYY-MM-DD[T ]HH:MMZ
>   # When merging, entries with a newer 'modified' value will override
> any earlier values.
>   # MANDATORY
>   modified: 2020-03-19T23:26Z
>
>   # A boolean option to cancel/reset all previously specified obsoletes
>   # Example: repo 'fedora' has Obsoletes:nodejs:12; we want to bring
> nodejs:12 back in 'updates'
>   # If used, following options will be ignored: eol_date, obsoleted_by
>   # OPTIONAL
>   <TBD>: <bool>
>
>   # A string representing a Name of a module that is EOLed
>   # MANDATORY
>   module: nodejs
>
>   # A string representing a Stream of a module that is EOLed
>   # MANDATORY
>   stream: 11
>
>   # A string representing a Context of a module that is EOLed
>   # If not specified, all contexts get EOLed.
>   # NOTE: consider specifying a list of contexts
>   # OPTIONAL
>   context: aabbccddee
>
>   # A string representing UTC date in ISO 8601 format: YYYY-MM-DD[T ]HH:MMZ
>   # It is strongly recommended to keep HH:MM to 00:00.
>   # If not specified, the module is EOLed immediately.
>   OPTIONAL
>   eol_date: 2020-03-19T00:00Z
>
>   # A string describing the change, reason, etc.
>   # MANDATORY
>   message: "Module stream nodejs:11 is no longer supported. It is
> recommended to switch to nodejs:12"
>
>   # If a stream is not EOLed but Obsoleted, provide details about the
> obsoleting stream:
>   # OPTIONAL
>   obsoleted_by:
>     module: nodejs
>     stream: 12
> </pre>
>
>
>
> == Benefit to Fedora ==
> Seamless system upgrades of systems with module streams enabled.
>
>
> == Scope ==
> * Proposal owners:
> ** Introduce modularity features to:
> ** Obsolete a module stream
> ** Stream EOL
> ** Design a new modulemd documents for Obsoletes and EOL
> ** Get the new documents supported by libmodulemd
> ** Implement the new functionality in the DNF stack (libdnf, dnf,
> microdnf) and PackageKit
>
> * Other developers:
> ** Follow updated packaging policy. See the "Policies and guidelines" section.
>
> * Release engineering: [https://pagure.io/releng/issue/9359] (a check
> of an impact with Release Engineering is needed) <!-- REQUIRED FOR
> SYSTEM WIDE CHANGES -->
> Maintain and distribute new module metadata.
>
> * Policies and guidelines:
> ** Packaging policy and modularity documents require a change:
> *** When a module stream gets removed from a Fedora release, the
> maintainer of the module stream must provide a modulemd document with
> Obsoletes or EOL data.
>
> * Trademark approval: N/A (not needed for this Change)
>
>
> == Upgrade/compatibility impact ==
> This feature solves upgradability problems of systems with module
> streams enabled.
>
>
> == How To Test ==
> Stream Obsoletes:
> * Enable a stream that is not available in the next version of Fedora
> and is obsoleted by another stream in the metadata
> * Run system upgrade
> * Verify that the obsoleting stream is enabled instead of the obsoleted one
>
> Stream EOL:
> * Enable a stream that is not available in the next version of Fedora
> and is obsoleted in its module metadata
> * Run system upgrade
> * Verify that the EOLed stream is no longer enabled and does not show
> up in `dnf module list`
>
> Fedora upgradability:
> * Install Fedora 31 or 32
> * For each $stream in available streams
> ** dnf module reset '*'
> ** dnf module enable $stream
> ** dnf distro-sync --releasever=33 --assumeno
> ** # the command must not throw any errors related to modularity,
> especially related to the enabled stream
>
>
> == User Experience ==
> Fedora users experience upgradability problems when upgrading to Fedora 32
> when they have any module streams enabled.
>
> If a stream no longer exists on the version of Fedora they are upgrading to,
> DNF used to error out on resolving modular dependencies which was a
> clear release blocker.
> To workaround this case, all module streams are reset during the system upgrade.
> By doing this, modularity users lose information about enabled streams
> and they need to re-enable them by hand.
>
> This Change aims at removing the upgradability problems and allowing
> Fedora modularity users
> to upgrade their systems while keeping their streams enabled, reset or
> switched (obsoleted)
> according to newly provided modular metadata.
>
>
> == Dependencies ==
> * libmodulemd
> * libdnf
> * dnf
> * microdnf
> * PackageKit
>
>
> == Contingency Plan ==
> * Contingency mechanism: Remove the new metadata from Fedora composes
> and repositories. Fedora will stay at the current behavior.
> * Contingency deadline: Beta Freeze
> * Blocks release? Yes
>
>
> == Documentation ==
> TBD
>
> == Release Notes ==
> Modularity supports Obsoleting streams and stream EOL (end-of-life).
> Enabled streams are no longer reset during the system upgrade.
> When a stream reaches its EOL, it's reset.
> When a stream is Obsoleted, it's switched to the obsoleting stream.
>
>
_______________________________________________
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