From Fedora Project Wiki
Line 110: Line 110:


== Dependencies ==
== Dependencies ==
Table showing all packages which requires dnf, python3-dnf or python2-dnf in Fedora 26
Table showing all packages which requires dnf, python3-dnf or python2-dnf in Fedora 26:
{| class="wikitable sortable"
{| class="wikitable sortable"
! Package !! DNF-2.0 compatibility patch !! Status  
! Package !! DNF-2.0 compatibility patch !! Status  
Line 198: Line 198:
| system-config-language || || Not informed
| system-config-language || || Not informed
|}
|}
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)


== Contingency Plan ==
== Contingency Plan ==

Revision as of 14:19, 16 September 2016


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

  • 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

Users can notice usability improvements of DNF like better messages during resolution errors, showing whether package was installed as weak dependency, better handling of obsolete packages, less tracebacks, etc. One command line option and one configuration option changed semantic so DNF could behave differently in some way (these changes are compatible with yum but incompatible with DNF-1). See "Upgrade/compatibility impact" section when DNF could crash if components are not adjusted to DNF-2 changes.

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

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

Release Notes