(Update description as per 4.16.0 final) |
|||
(15 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
== Current status == | == Current status == | ||
[[Category: | [[Category:ChangeAcceptedF33]] | ||
[[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}} | ||
* FESCo issue: [https://pagure.io/fesco/issue/2360 #2360] | |||
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1818907 #1818907] | |||
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/461 #461] | |||
* FESCo issue: | |||
* Tracker bug: | |||
* Release notes tracker: | |||
== Detailed Description == | == Detailed Description == | ||
Line 36: | Line 25: | ||
RPM 4.16 contains numerous improvements over previous versions | RPM 4.16 contains numerous improvements over previous versions | ||
* New database backends and related developments to enable moving away from Berkeley DB | * New database backends and related developments to enable moving away from Berkeley DB | ||
** | ** a new sqlite backend | ||
** experimental readonly-bdb backend to support conversion from BDB without the library | ** a new experimental readonly-bdb backend to support conversion from BDB without the library | ||
** ndb backend promoted out of experimental | ** ndb backend promoted out of experimental | ||
* Much improved expression parser (specs and macros) | * Much improved expression parser (specs and macros, native version comparison support) | ||
* Powerful new macro features (expressions, ternary operator, literal macros, access to macro body, eliminate unexpected double-expansion etc) | * Powerful new macro features (expressions, ternary operator, literal macros, access to macro body, eliminate unexpected double-expansion, native version comparison etc) | ||
* Support for macro-only dependency generators (very fast as fork+exec is entirely avoided) | * Support for macro-only dependency generators (very fast as fork+exec is entirely avoided) | ||
* Support for meta dependencies (which do not affect ordering) | * 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) | ||
Rawhide rpm will be updated to 4.16 alpha once feature is approved and updated through | Rawhide rpm will be updated to 4.16 alpha once feature is approved and updated through | ||
Line 51: | Line 39: | ||
== Benefit to Fedora == | == 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. | 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 == | == Scope == | ||
Line 63: | Line 49: | ||
** Test compatibility of other software with different rpmdb format (containers, build-systems and such in particular) | ** Test compatibility of other software with different rpmdb format (containers, build-systems and such in particular) | ||
* Release engineering: [https://pagure.io/releng/ | * Release engineering: [https://pagure.io/releng/issue/9286 #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. | |||
* 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) | * Trademark approval: N/A (not needed for this Change) | ||
Line 81: | Line 62: | ||
specifically as per their documentation. | specifically as per their documentation. | ||
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. | |||
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 == | ||
There are no | There are no direct user experience changes by default, but a significant increase in overall robustness is expected with non-BDB databases. | ||
== Dependencies == | == 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 Plan == |
Latest revision as of 09:39, 30 September 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-09-30
- FESCo issue: #2360
- Tracker bug: #1818907
- Release notes tracker: #461
Detailed Description
RPM 4.16 contains numerous improvements over previous versions
- New database backends and related developments to enable moving away from Berkeley DB
- a new sqlite backend
- a new 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, native version comparison support)
- Powerful new macro features (expressions, ternary operator, literal macros, access to macro body, eliminate unexpected double-expansion, native version comparison 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)
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