From Fedora Project Wiki
(Final touches and mark ready for wrangler)
Line 11: Line 11:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeReadyForWrangler]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->


[[Category:SystemWideChange]]
[[Category:SystemWideChange]]
Line 21: Line 17:
* Targeted release: [[Releases/33 | Fedora 33 ]]  
* Targeted release: [[Releases/33 | Fedora 33 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page
Bugzilla states meaning as usual:
ASSIGNED -> accepted by FESCo with on going development
MODIFIED -> change is substantially done and testable
ON_QA -> change is code completed and could be tested in the Beta release (optionally by QA)
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: <will be assigned by the Wrangler>
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: <will be assigned by the Wrangler>
Line 74: Line 63:
specifically as per their documentation.
specifically as per their documentation.


Details on database testing to be added later.
The prime testing target should revolve around database functionality, robustness and compatibility with other software. There's a [https://bugzilla.redhat.com/show_bug.cgi?id=1766120 tracking bug] for Berkeley DB format dependencies.
 
Details on database testing to be supplied later.


== User Experience ==
== User Experience ==

Revision as of 13:50, 28 February 2020

RPM 4.16

Summary

Update RPM to the 4.16.0 release.

Owner

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

Current status

  • Targeted release: Fedora 33
  • Last updated: 2020-02-28
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

RPM 4.16 contains numerous improvements over previous versions

  • New database backends and related developments to enable moving away from Berkeley DB
    • experimental sqlite backend (the planned default from F34 onwards)
    • experimental readonly-bdb backend to support conversion from BDB without the library
    • ndb backend promoted out of experimental
  • Much improved expression parser (specs and macros)
  • Powerful new macro features (expressions, ternary operator, literal macros, access to macro body, eliminate unexpected double-expansion etc)
  • Support for macro-only dependency generators (very fast as fork+exec is entirely avoided)
  • Support for meta dependencies (which do not affect ordering)
  • Transparent verification support for alternative (ie uncompressed) payload digest (so deltarpm doesn't need to recompress)
  • Automatic SSD detection and optimization

Rawhide rpm will be updated to 4.16 alpha once feature is approved and updated through beta and rc cycles, 4.16.0 final release is expected before to F33 beta freeze.

Benefit to Fedora

See above for overall benefits, but most importantly this is the first major step towards moving away from Berkeley DB based rpmdb. The database format will not change in this release, but this release enables wider testing of the new backend(s) and related features such as switching from one backend to another. In particular it enables testing of *other software* for compatibility and interoperability with non-BDB databases. A database format change is planned for the next release, Fedora 34.

Scope

  • Proposal owners:
    • Rebase RPM
  • Other developers:
    • Test new release, report issues and bugs
    • Test compatibility of other software with different rpmdb format (containers, build-systems and such in particular)
  • Release engineering: #9286
  • 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. Guideline updates should not be necessary.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

  • Similar to compiler updates, some previously working specs might fail to build due to stricter error checking and the like. In particular, barewords (ie non-quoted strings) in expressions are no longer supported.

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.

The prime testing target should revolve around database functionality, robustness and compatibility with other software. There's a tracking bug for Berkeley DB format dependencies.

Details on database testing to be supplied later.

User Experience

There are no significant user experience changes by default, but a significant increase in overall robustness is expected with non-BDB databases.

Dependencies

  • A soname bump is involved so all API-dependent packages will need a rebuild
  • Rpm will grow an additional dependency on sqlite

Contingency Plan

  • Contingency mechanism: Roll back to rpm 4.15, but the chance of having to do should be negligible
  • Contingency deadline: Beta freeze.
  • Blocks release? No


Documentation

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

Release Notes