From Fedora Project Wiki


DNF 2.0

Summary

DNF rebase to version 2.0.

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

  • early adopters are welcomed to use 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

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

Packages that requires dnf, python3-dnf or python2-dnf in Fedora 24

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 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-yum In upstream Compatible
dnfdaemon https://github.com/timlau/dnf-daemon/pull/6 Merged
etckeeper-dnf Not informed
fedora-upgrade Not informed
fontpackages-tools 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 Not informed
policycoreutils-devel Not informed
python-dnf-langpacks Retired in Fc25
python3-dnf-langpacks Retired in Fc25
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

Release Notes