From Fedora Project Wiki
(Create F31 rpm 4.15 change proposal)
 
mNo edit summary
 
(10 intermediate revisions by 3 users not shown)
Line 8: Line 8:
== Owner ==
== Owner ==


* Name: User:pmatilai, User:ffesti
* Name: User:pmatilai, User:ffesti, User:ignatenkobrain


* Email: pmatilai@redhat.com,ffesti@redhat.com
* Email: pmatilai@redhat.com,ffesti@redhat.com, ignatenkobrain@fedoraproject.org
* 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> -->


Line 24: Line 24:
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=1718430 #1718430]
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/348 #348]


== Detailed Description ==
== Detailed Description ==
Line 30: Line 31:
RPM 4.15 contains numerous improvements over previous versions
RPM 4.15 contains numerous improvements over previous versions
* Faster builds due to increased parallelism
* Faster builds due to increased parallelism
* Dynamic build dependency generator (planned)
* Dynamic build dependency generator
* Support for %elif, %elifos and %elifarch statements in spec
* New %dnl macro for commenting
* Caret version operator (the opposite of tilde)  
* Caret version operator (the opposite of tilde)  
* String data is returned as surrogate-escaped utf-8 in Python 3 bindings
* String data is returned as surrogate-escaped utf-8 in Python 3 bindings
Line 39: Line 42:
* Native support for Lua 5.2-5.3 without compat defines in Lua
* Native support for Lua 5.2-5.3 without compat defines in Lua
* Numerous other improvements and bugfixes: https://rpm.org/wiki/Releases/4.15.0
* Numerous other improvements and bugfixes: https://rpm.org/wiki/Releases/4.15.0
* Enforcing utf-8 validation of header data at build-time


Rawhide rpm will be updated to 4.15 alpha once released and updated through
Rawhide rpm will be updated to 4.15 alpha once feature is approved and updated through
beta and rc cycles, 5.15.0 final release is expected prior to F31 final freeze.
beta and rc cycles, 4.15.0 final release is expected prior to F31 final freeze.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 57: Line 61:
** Fix Python 3 string/bytes usages in API users (https://bugzilla.redhat.com/show_bug.cgi?id=1693751 already in progress in rawhide)
** Fix Python 3 string/bytes usages in API users (https://bugzilla.redhat.com/show_bug.cgi?id=1693751 already in progress in rawhide)


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
* Release engineering: [https://pagure.io/releng/issue/8380 #8380]
<!-- 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.  
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: Change affects whole distribution rather than deliverables
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->


Line 71: Line 75:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
* Python 3 bindings see a dramatic change as all string data is now returned as utf-8 encoded string instead of bytes, but this is already being test-driven in rawhide and at least anaconda, dnf and mock are already compatible: https://bugzilla.redhat.com/show_bug.cgi?id=1631292
* Python 3 bindings see a dramatic change as all string data is now returned as utf-8 encoded string instead of bytes, but this is already being test-driven in rawhide and at least anaconda, dnf and mock are already compatible: https://bugzilla.redhat.com/show_bug.cgi?id=1693751
* Similar to compiler updates, some previously working specs might fail to build due to stricter error checking and the like.
* Similar to compiler updates, some previously working specs might fail to build due to stricter error checking and the like.
* Some long-standing perl and python macros and helpers have been removed from rpm and might need either changes to packages or redhat-rpm-config
* Some long-standing perl and python macros and helpers have been removed from rpm and might need either changes to packages or redhat-rpm-config
Line 107: Line 111:
-->
-->


[[Category:ChangeReadyForWrangler]]
[[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 13:05, 27 June 2019


RPM 4.15

Summary

Update RPM to the 4.15.0 release.

Owner

  • Name: User:pmatilai, User:ffesti, User:ignatenkobrain
  • Email: pmatilai@redhat.com,ffesti@redhat.com, ignatenkobrain@fedoraproject.org
  • Release notes owner:

Current status

Detailed Description

RPM 4.15 contains numerous improvements over previous versions

  • Faster builds due to increased parallelism
  • Dynamic build dependency generator
  • Support for %elif, %elifos and %elifarch statements in spec
  • New %dnl macro for commenting
  • Caret version operator (the opposite of tilde)
  • String data is returned as surrogate-escaped utf-8 in Python 3 bindings
  • %patchlist and %sourcelist spec sections for minimal boilerplate patch and source declarations
  • Experimental chroot operations for non-root users
  • Many error and warning report improvements
  • A new plugin for issuing audit log events on package install/update/erase
  • Native support for Lua 5.2-5.3 without compat defines in Lua
  • Numerous other improvements and bugfixes: https://rpm.org/wiki/Releases/4.15.0
  • Enforcing utf-8 validation of header data at build-time

Rawhide rpm will be updated to 4.15 alpha once feature is approved and updated through beta and rc cycles, 4.15.0 final release is expected prior to F31 final freeze.

Benefit to Fedora

See above.

Scope

  • Proposal owners:
    • Rebase RPM
    • help Python binding users adjust to the string change
    • help coordinate for macro + helper script removals
  • Policies and guidelines:

As always, utilizing new rpm features is subject to packaging guidelines, but the time for this is after the new version has properly landed. There is no need to change guidelines, any new features are optional.

  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

  • Python 3 bindings see a dramatic change as all string data is now returned as utf-8 encoded string instead of bytes, but this is already being test-driven in rawhide and at least anaconda, dnf and mock are already compatible: https://bugzilla.redhat.com/show_bug.cgi?id=1693751
  • Similar to compiler updates, some previously working specs might fail to build due to stricter error checking and the like.
  • Some long-standing perl and python macros and helpers have been removed from rpm and might need either changes to packages or redhat-rpm-config

How To Test

Rpm receives a thorough and constant testing via every single package build, system installs and updates. New features can be tested specifically as per their documentation.

User Experience

There are no significant user experience changes, but some more minor ones include:

  • faster package builds on SMP systems
  • improved diagnostics from macro errors/warnings and spec constrcuts

Dependencies

  • There is a soname bump involved so all API-dependent packages will need a rebuild.
  • The Python 3 string change has impact on several packages but this is already in process

Contingency Plan

  • Contingency mechanism: Roll back to rpm 4.14, but under no circumstances should such a thing be necessary.
  • Contingency deadline: Beta freeze.
  • Blocks release? No

Documentation

Draft release notes available at https://rpm.org/wiki/Releases/4.15.0

Release Notes