DNF 2.0
Summary
DNF rebase to version 2.0.
Owner
- Name: Jan Silhan
- Name: Michal Luscon
- Name: Igor Gnatenko
- Email: jsilhan@redhat.com, mluscon@redhat.com, ignatenko@redhat.com
- Release notes owner:
Current status
- Targeted release: Fedora 26
- Last updated: 2016-09-16
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
DNF-2.0 is the next upcoming major version of DNF package manager. Unfortunately, it brings some incompatibilities with previous version of DNF (DNF-1) which were either needed to preserve compatibility with YUM CLI or where bigger redesigns were needed. A list of identified incompatible changes can be found here[1].
Benefit to Fedora
DNF-2 is the upstream DNF version, the only version actively developed. Currently the upstream contains many user requested features, increased compatibility with yum and over 30 bug fixes. To DNF-1 back porting of patches from upstream is difficult and only critical security and usability fixes will be cherry-picked to Fedora.
Scope
- Proposal owners:
- complete release notes
- deliver DNF-2.0 stack to Rawhide
- Other developers:
- Owners of 3rd party DNF plugins or components depending on DNF should check and adjust their packages otherwise they may not work with DNF-2.0.
- Release engineering:
- All release engineering tools that depends on DNF should be tested against DNF-2.0.
Upgrade/compatibility impact
Plugins based on DNF-1 providing commands will abort run of DNF. Any Python script or extension using 5 changed methods in DNF-2 will not work correctly. Components using DNF private Python functions could experience some issues. User or applications calling DNF CLI API can experience differences if any of 2 changed options were used. The code changes are needed for applications affected by mentioned changes. For main applications requiring DNF the patches were provided.
How To Test
- you can install DNF-2 from this COPR repo for testing
- testing scenarios:
- anaconda installation
- upgrade from previous Fedora version
- core functionality: install, upgrade, remove, repoquery
- dnf-plugins: copr, system-upgrade, download
- third party software: mock, yumex
User Experience
N/A (unaffected)
Dependencies
Table showing all packages which requires dnf, python3-dnf or python2-dnf in Fedora 26
Package | DNF-2.0 compatibility patch | Status |
---|---|---|
anaconda-core | https://github.com/rhinstaller/anaconda/pull/763 | Agreed to merge after DNF release |
auter | Not informed | |
calamares | Not informed | |
copr-frontend | Not informed | |
devassistant-core | Not informed | |
dnf-automatic | In the upstream | Compatible |
dnf-plugin-spacewalk | Not informed | |
dnf-plugin-subscription-manager | Not informed | |
dnf-plugin-system-upgrade | https://github.com/rpm-software-management/dnf-plugins-extras/pull/66 | In progress |
dnf-plugins-core | In the upstream | working with DNF-2 |
dnf-plugins-extras | In the upstream | working with DNF-2 |
dnf-yum | In the upstream | Compatible |
dnfdaemon | https://github.com/timlau/dnf-daemon/pull/6 | working with DNF-2 |
etckeeper-dnf | Not informed | |
fedora-upgrade | Not informed | |
freight-tools | Not informed | |
freight-tools-agent | Not informed | |
freight-tools-proxy | Not informed | |
libreport-python | Not informed | |
libreport-python3 | Not informed | |
libtaskotron-fedora | Not informed | |
lorax | informed | |
policycoreutils-devel | Not informed | |
python3-dnf-plugin-system-upgrade | https://github.com/rpm-software-management/dnf-plugins-extras/pull/66 | In progress |
rhn-client-tools | Not informed | |
rolekit | Not informed | |
supermin | Not informed | |
system-config-language | Not informed |
N/A (not a System Wide Change)
Contingency Plan
- Contingency mechanism:
- revert to DNF-1.1.x (epoch bump)
- revert to dnf-plugins-core-0.1.x (epoch bump)
- revert to dnf-plugins-extras-0.0.x (epoch bump)
- revert to dnf-plugin-system-upgrade-0.7.x (epoch bump)
- consequent rollback of already ported components in the table where the change for dnf-2.0 was needed
- Contingency deadline: F26 Alpha Freeze
- Blocks release? Yes
Documentation
documented differences between 1.x and 2.0