From Fedora Project Wiki
(Created page with "{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To re...")
 
m (Change status or related components to dnf)
 
(45 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.<br/> '''Copy the source to a ''new page'' before making changes!  DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.'''}}


<!-- Self Contained or System Wide Change Proposal?
<!-- Self Contained or System Wide Change Proposal?
Line 23: Line 22:


<!-- 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 -->
= Change Proposal Name <!-- The name of your change proposal --> =
= DNF 2.0 <!-- The name of your change proposal --> =


== Summary ==
== Summary ==
DNF rebase to 2.0 version
DNF rebase to version 2.0.


== Owner ==
== Owner ==
Line 35: Line 34:
* Name: [[User:jsilhan| Jan Silhan]]
* Name: [[User:jsilhan| Jan Silhan]]
* Name: [[User:mluscon| Michal Luscon]]
* Name: [[User:mluscon| Michal Luscon]]
* Name: [[User:ignatenko| Igor Gnatenko]]
* Name: [[User:ignatenkobrain|Igor Gnatenko]]
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
* Email: <your email address so we can contact you, invite you to meetings, etc.>
* Email: jsilhan@redhat.com, mluscon@redhat.com, ignatenko@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 58: Line 57:
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=1377324 #1377324]


== Detailed Description ==
== Detailed Description ==


DNF-2.0 is the next upcoming major version of DNF package manager.  
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[http://dnf.readthedocs.io/en/latest/dnf-1_vs_dnf-2.html].


== Benefit to Fedora ==
== Benefit to Fedora ==


DNF-2.0 brings many new features and bug fixes. [Release Notes]
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 ==
== Scope ==
* Proposal owners:
* Proposal owners:
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
 
** complete release notes 
* Other developers: (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
** deliver DNF-2.0 stack to Rawhide
Owners of 3rd party DNF plugins or components depending on DNF should adjust their packages otherwise they may not work with DNF-2.  
* 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: (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Release engineering:  
All release enginerring tools that depends on DNF should be tested against DNF-2.0.
** All release engineering tools that depends on DNF should be tested against DNF-2.0.
 
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuid required?  If a rel-eng ticket exists, add a link here.
Please work with releng prior to feature submission, and ensure that someone is on board to do any process development work and testing; don't just assume that a bullet point in a change puts someone else on the hook.-->
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->
 
* Policies and guidelines: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Do the packaging guidelines or other documents need to be updated for this feature?  If so, does it need to happen before or after the implementation is done?  If a FPC ticket exists, add a link here. -->
 


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
Enduser compatibility should be preserved as much as possible. Only minor
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.
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)


== How To Test ==
== How To Test ==
* you can install DNF-2 from [https://copr.fedorainfracloud.org/coprs/rpmsoftwaremanagement/dnf-nightly/ 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
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  


Line 108: Line 102:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)


== User Experience ==
== User Experience ==
<!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
 
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 ==
== Dependencies ==
Table showing all packages which requires dnf, python3-dnf or python2-dnf in Fedora 26:
{| class="wikitable sortable"
! Package !! DNF-2.0 compatibility patch !! Status
|-
| anaconda-core || https://github.com/rhinstaller/anaconda/pull/763 || Agreed to merge after DNF release
|-
| auter || || Informed
|-
| calamares || || Informed
|-
| copr-frontend || || Informedd
|-
| devassistant-core || || Informed
|-
| dnf-automatic || In the upstream || Compatible
|-
| dnf-plugin-spacewalk || || Informed
|-
| dnf-plugin-subscription-manager || || 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 || || Informed
|-
| fedora-upgrade || || Informed
|-
| freight-tools || || Informed
|-
| freight-tools-agent || || Informed
|-
| freight-tools-proxy || || Informed
|-
| libreport-python || || Informed
|-
| libreport-python3 || || Informed
|-
| libtaskotron-fedora || || Informed
|-
| lorax || || Informed
|-
| policycoreutils-devel || || Informed
|-
| python3-dnf-plugin-system-upgrade || https://github.com/rpm-software-management/dnf-plugins-extras/pull/66 || In progress
|-
| rhn-client-tools || || Informed
|-
| rolekit || || Informed
|-
| supermin || || Informed
|-
| system-config-language || || 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 ==


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* 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
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: F26 Alpha Freeze  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? Yes
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this change, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
[http://dnf.readthedocs.io/en/latest/dnf-1_vs_dnf-2.html documented differences between 1.x and 2.0]
 
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)


== Release Notes ==
== Release Notes ==
Line 146: Line 224:
-->
-->


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF26]]
<!-- 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 -->
Line 153: Line 231:


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SelfContainedChange]]
<!-- [[Category:SelfContainedChange]] -->
<!-- [[Category:SystemWideChange]] -->
[[Category:SystemWideChange]]

Latest revision as of 15:19, 22 November 2016


DNF 2.0

Summary

DNF rebase to version 2.0.

Owner

Current status

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 Informed
calamares Informed
copr-frontend Informedd
devassistant-core Informed
dnf-automatic In the upstream Compatible
dnf-plugin-spacewalk Informed
dnf-plugin-subscription-manager 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 Informed
fedora-upgrade Informed
freight-tools Informed
freight-tools-agent Informed
freight-tools-proxy Informed
libreport-python Informed
libreport-python3 Informed
libtaskotron-fedora Informed
lorax Informed
policycoreutils-devel Informed
python3-dnf-plugin-system-upgrade https://github.com/rpm-software-management/dnf-plugins-extras/pull/66 In progress
rhn-client-tools Informed
rolekit Informed
supermin Informed
system-config-language 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