From Fedora Project Wiki
No edit summary
(urlgrabber has been ported, update page)
 
(35 intermediate revisions by 3 users not shown)
Line 21: Line 21:


<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
= Deprecate YUM 3 =
= Retire YUM 3 =


== Summary ==
== Summary ==
Remove yum (v3) and all related packages from Fedora.
Remove the YUM (version 3) package manager stack from Fedora.


== Owner ==
== Owner ==
Line 31: Line 31:
This should link to your home wiki page so we know who you are.  
This should link to your home wiki page so we know who you are.  
-->
-->
* Name: [[User:dmach|Daniel Mach]]
* Name: [[User:mdomonko|Michal Domonkos]]
* Email: dmach@redhat.com
* Email: mdomonko@redhat.com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
Line 43: Line 43:


== Current status ==
== Current status ==
* Targeted release: [[Releases/30 | Fedora 30 ]]  
* Targeted release: [[Releases/31 | Fedora 31 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 53: Line 53:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1682910 #1682910]
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/304 #304]


== Detailed Description ==
== Detailed Description ==
Remove packages from the distribution:
Remove the following packages from the distribution:
* createrepo
* createrepo
* yum
* yum
Line 63: Line 64:
* yum-metadata-parser
* yum-metadata-parser
* yum-updatesd
* yum-updatesd
* python-urlgrabber


All these packages should no longer be used and all software using them should be migrated to DNF.
All these packages should no longer be used by the end-user, and all software using them should be migrated to DNF.
 
Note that we intentionally omit the `python2-urlgrabber` package from the list, although it is also part of the YUM stack. <strike>While it should eventually go away too (or be [https://github.com/rpm-software-management/urlgrabber/pull/8 ported to Python 3]), it is still heavily used by the Fedora infrastructure (such as by `sigul`, `imagefactory` or `koji-containerbuild`). We will propose its removal (if not ported in time) for Fedora 31 instead.</strike> It has been ported to Python 3 [https://github.com/rpm-software-management/urlgrabber/releases/tag/urlgrabber-4-0-0 in version 4.0.0].


Compatibility:
Compatibility:
* Important packages such as yum, createrepo or yum-utils will be provided/obsoleted by relevant packages from the dnf stack
* Important packages such as `yum`, `createrepo` or `yum-utils` will be provided/obsoleted by relevant packages from the DNF stack
* Important executables such yum, repoquery, createrepo, etc. will be provided either as new executables or via symlinks
* Important executables such `/usr/bin/yum`, `/usr/bin/repoquery` or `/usr/bin/createrepo` will be provided either as new executables or symlinks to the respective DNF-based counterparts


== Benefit to Fedora ==
== Benefit to Fedora ==
Drop an old package manager that has no active upstream development.
Drop an old package manager that has no active upstream community.
Move existing users to DNF which that has active development.
Move existing users to DNF that is under active development.
Secondary benefit is reducing number of packages in Fedora that still depend on Python 2.
Secondary benefit is reducing the number of packages in Fedora that still depend on Python 2.


== Scope ==
== Scope ==
* Proposal owners: Remove packages from the distribution: createrepo, yum, yum-langpacks, yum-utils, yum-metadata-parser, python-urlgrabber
* Proposal owners: Remove the packages listed in the [https://fedoraproject.org/wiki/Changes/Retire_YUM_3#Detailed_Description Detailed Description] section from the distribution
* Other developers: Either remove packages from the distribution or switch them to DNF
* Other developers: Either remove the depending packages from the distribution or port them to the DNF stack
* Release engineering: [https://pagure.io/releng/issue/7588 #7588]
* Release engineering: [https://pagure.io/releng/issue/7588 #7588]
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.  
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.  
Line 89: Line 91:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
Any tool based on YUM 3 Python API will stop working. This applies on any 3rd party software which won't be changed in Fedora as part of this change.
Any tool based on the YUM 3 Python API will stop working. This applies on any 3rd party software which won't be changed in Fedora as part of this change.
CLI compatibility will be provided by DNF.
CLI compatibility will be provided by DNF.


== How To Test ==
== How To Test ==
Repoclosure passes after dropping the packages.
`repoclosure` passes after dropping the packages.


== User Experience ==
== User Experience ==
There shouldn't be any impact on YUM users because the functionality is provided by DNF already.
There shouldn't be any impact on the YUM users because the package management functionality is provided by DNF already.
Users of tools listed in the Dependencies section shouldn't see any difference if the migration to DNF is done properly.
Users of tools listed in the [https://fedoraproject.org/wiki/Changes/Retire_YUM_3#Dependencies Dependencies] section shouldn't see any difference if the migration to DNF is done properly.


== Dependencies ==
== Dependencies ==
The list of source packages (SRPMs) that still depend on some of the yum-related packages to be removed:
The list of source packages (SRPMs) that still depend on (some parts of) the YUM stack:
<pre>
# SRPM name
#  bugzilla: link requesting the maintainer to port their project to DNF
#  requires: which yum-related components the component requires
#  rpms: list of binary RPMs affected


appliance-tools:
* cobbler
  bugzilla: null
** tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1156552
  requires:
** requires: createrepo
  - python2-urlgrabber
** rpms: cobbler
  rpms:
* ddiskit
  - appliance-tools
** tracker: N/A
cas:
** requires: createrepo
  bugzilla: null
** rpms: ddiskit
  requires:
* diskimage-builder
  - python2-urlgrabber
** tracker: N/A
  rpms:
** requires: yum-utils
  - cas
** rpms: diskimage-builder
cobbler:
* dlrn
  bugzilla: null
** tracker: N/A
  requires:
** requires: createrepo
  - createrepo
** rpms: python3-dlrn
  - python2-urlgrabber
* fusioninventory-agent
  rpms:
** tracker: N/A
  - cobbler
** requires: yum
  - koan
** rpms: fusioninventory-agent-yum-plugin
ddiskit:
* grinder
  bugzilla: null
** tracker: N/A
  requires:
** requires: createrepo
  - createrepo
** rpms: grinder
  rpms:
* kiwi
  - ddiskit
** tracker: N/A
diskimage-builder:
** requires: yum
  bugzilla: null
** rpms: kiwi-systemdeps
  requires:
* koji
  - yum-utils
** tracker: https://pagure.io/koji/issue/971
  rpms:
** requires: createrepo
  - diskimage-builder
** rpms: koji-builder
dlrn:
* mach
  bugzilla: null
** tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1156528
  requires:
** requires: createrepo, yum
  - createrepo
** rpms: mach
  rpms:
* mash
  - python2-dlrn
** tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1156546
  - python3-dlrn
** requires: createrepo, yum
dnf-plugins-core:
** rpms: mash
  bugzilla: null
* nagios-plugins-check-updates
  requires:
** tracker: N/A
  - yum
** requires: yum
  rpms:
** rpms: nagios-plugins-check-updates
  - python2-dnf-plugin-migrate
* perl-Fedora-Rebuild
fusioninventory-agent:
** tracker: N/A
  bugzilla: null
** requires: createrepo
  requires:
** rpms: perl-Fedora-Rebuild
  - yum
* plague
  rpms:
** tracker: N/A
  - fusioninventory-agent-yum-plugin
** requires: createrepo
grinder:
** rpms: plague
  bugzilla: null
* pungi
  requires:
** tracker: N/A
  - createrepo
** requires: createrepo, yum, yum-utils
  rpms:
** rpms: pungi-legacy
  - grinder
* repo_manager
imagefactory:
** tracker: N/A
  bugzilla: null
** requires: createrepo
  requires:
** rpms: repo_manager
  - python2-urlgrabber
* repoview
  rpms:
** tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1156505
  - imagefactory
** requires: yum
kiwi:
** rpms: repoview
  bugzilla: null
* snake
  requires:
** tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1156539
  - yum
** requires: yum
  rpms:
** rpms: snake
  - kiwi-systemdeps
* system-config-kickstart
koji:
** tracker: N/A
  bugzilla: null
** requires: yum
  requires:
** rpms: system-config-kickstart
  - createrepo
* yum-axelget
  rpms:
** tracker: https://bugzilla.redhat.com/show_bug.cgi?id=1341140
  - koji-builder
** requires: yum, yum-plugin-fastestmirror
koji-containerbuild:
** rpms: yum-axelget
  bugzilla: null
* yum-rhn-plugin
  requires:
** tracker: N/A (package was recently retired but no compose happened since)
  - python2-urlgrabber
** requires: yum
  rpms:
** rpms: yum-rhn-plugin
  - koji-containerbuild-builder
mach:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - mach
mash:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - mash
nagios-plugins-check-updates:
  bugzilla: null
  requires:
  - yum
  rpms:
  - nagios-plugins-check-updates
osc:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - osc
perl-Fedora-Rebuild:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - perl-Fedora-Rebuild
plague:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - plague
pulp-rpm:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - pulp-rpm-plugins
  - pulp-rpm-yumplugins
repo_manager:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - repo_manager
repoview:
  bugzilla: null
  requires:
  - yum
  rpms:
  - repoview
rpm-ostree-toolbox:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - rpm-ostree-toolbox
sigul:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - sigul-bridge
snake:
  bugzilla: null
  requires:
  - yum
  rpms:
  - snake
system-config-kickstart:
  bugzilla: null
  requires:
  - yum
  rpms:
  - system-config-kickstart
yum-axelget:
  bugzilla: null
  requires:
  - yum
  - yum-plugin-fastestmirror
  rpms:
  - yum-axelget
yum-rhn-plugin:
  bugzilla: null
  requires:
  - yum
  rpms:
  - yum-rhn-plugin
</pre>


Updated: 2019-01-23
Updated: 2019-02-02


Generated with:
Generated with:
https://gist.github.com/dmnks/787b121503ba1e9d1565d58b4a4e3a62
https://gist.github.com/dmnks/787b121503ba1e9d1565d58b4a4e3a62
<pre>$ python3 deps.py createrepo yum yum-langpacks yum-utils yum-metadata-parser yum-updatesd python-urlgrabber</pre>
<pre>$ python3 deps.py createrepo yum yum-langpacks yum-utils yum-metadata-parser yum-updatesd</pre>


== Contingency Plan ==
== Contingency Plan ==
Line 301: Line 201:


== Release Notes ==
== Release Notes ==
Inform end-users about removing the YUM 3 stack and definitive migration to DNF.
Inform end-users about removing the YUM 3 stack and the definitive migration to DNF.


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF31]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Latest revision as of 10:14, 26 February 2019


Retire YUM 3

Summary

Remove the YUM (version 3) package manager stack from Fedora.

Owner

Current status

Detailed Description

Remove the following packages from the distribution:

  • createrepo
  • yum
  • yum-langpacks
  • yum-utils
  • yum-metadata-parser
  • yum-updatesd

All these packages should no longer be used by the end-user, and all software using them should be migrated to DNF.

Note that we intentionally omit the python2-urlgrabber package from the list, although it is also part of the YUM stack. While it should eventually go away too (or be ported to Python 3), it is still heavily used by the Fedora infrastructure (such as by sigul, imagefactory or koji-containerbuild). We will propose its removal (if not ported in time) for Fedora 31 instead. It has been ported to Python 3 in version 4.0.0.

Compatibility:

  • Important packages such as yum, createrepo or yum-utils will be provided/obsoleted by relevant packages from the DNF stack
  • Important executables such /usr/bin/yum, /usr/bin/repoquery or /usr/bin/createrepo will be provided either as new executables or symlinks to the respective DNF-based counterparts

Benefit to Fedora

Drop an old package manager that has no active upstream community. Move existing users to DNF that is under active development. Secondary benefit is reducing the number of packages in Fedora that still depend on Python 2.

Scope

  • Proposal owners: Remove the packages listed in the Detailed Description section from the distribution
  • Other developers: Either remove the depending packages from the distribution or port them to the DNF stack
  • Release engineering: #7588
  • Policies and guidelines: N/A
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Any tool based on the YUM 3 Python API will stop working. This applies on any 3rd party software which won't be changed in Fedora as part of this change. CLI compatibility will be provided by DNF.

How To Test

repoclosure passes after dropping the packages.

User Experience

There shouldn't be any impact on the YUM users because the package management functionality is provided by DNF already. Users of tools listed in the Dependencies section shouldn't see any difference if the migration to DNF is done properly.

Dependencies

The list of source packages (SRPMs) that still depend on (some parts of) the YUM stack:

Updated: 2019-02-02

Generated with: https://gist.github.com/dmnks/787b121503ba1e9d1565d58b4a4e3a62

$ python3 deps.py createrepo yum yum-langpacks yum-utils yum-metadata-parser yum-updatesd

Contingency Plan

  • Contingency mechanism: Do not remove the packages in the current release.
  • Contingency deadline: Beta Freeze
  • Blocks release? No
  • Blocks product? No

Documentation

N/A

Release Notes

Inform end-users about removing the YUM 3 stack and the definitive migration to DNF.