dnf5
dnf5 copied to clipboard
Transaction Store and Load API
Operations such as System Upgrade
, Offline Upgrade
, History Replay
, History Redo
, History Store
and others require an API for storing and loading transactions.
- [x] Add an API to store (serialize) a transaction into a JSON data format. We will need to be able to serialize both
base::transaction
andtransaction::transaction
(history transaction). - [x] Add API to load the JSON serialized transaction into a Goal.
The first part is done but we still need:
- [x] Fix environments handling - requires ABI break
- [x] Add groups/environments replaying without loaded repos
- [ ] Verify functionality without loading repos
- [ ] Enable/Add CI tests
- [ ] Integrate running without loading repos into offline command (system-upgrade)
The API should support packages (RPMs), groups, environments and potentially also modules.
The first draft of the API is in PR: https://github.com/rpm-software-management/dnf5/pull/978
Second draft of the API is PR https://github.com/rpm-software-management/dnf5/pull/1005
Related issue to the mentioned ABI break: https://github.com/rpm-software-management/dnf5/issues/1025.
Comps and running without loading repos PR: https://github.com/rpm-software-management/dnf5/pull/1264
Make sure these scenarios are covered:
- https://github.com/rpm-software-management/dnf/issues/2031
- https://issues.redhat.com/browse/RHEL-17494
Related PR in libdnf:
- https://github.com/rpm-software-management/libdnf/pull/1644.
The API is finished.