From Fedora Project Wiki
(Create F31 rpm 4.15 change proposal)
 
m (Add Fesco ticket)
Line 57: Line 57:
** 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 -->



Revision as of 12:29, 24 May 2019


RPM 4.15

Summary

Update RPM to the 4.15.0 release.

Owner

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

Current status

  • Targeted release: Fedora 31
  • Last updated: 2019-05-24
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

RPM 4.15 contains numerous improvements over previous versions

  • Faster builds due to increased parallelism
  • Dynamic build dependency generator (planned)
  • 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

Rawhide rpm will be updated to 4.15 alpha once released and updated through beta and rc cycles, 5.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=1631292
  • 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