From Fedora Project Wiki
Line 65: Line 65:
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.
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.
Tests related to sqlite backend are covered in [[Changes/Sqlite_Rpmdb#How_To_Test|the sqlite-specific change.]]. Another useful testing target is doing queries on a BDB database with the read-only BDB backend which can be exercised with `--define "_db_backend bdb_ro"` on rpm command line.


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

Revision as of 10:09, 12 May 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

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
    • 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. The change of database format is not a part of this change.

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.

Tests related to sqlite backend are covered in the sqlite-specific change.. Another useful testing target is doing queries on a BDB database with the read-only BDB backend which can be exercised with --define "_db_backend bdb_ro" on rpm command line.

User Experience

There are no direct 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