Manage packages from the desktop, and keep the manifest in git #5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Search, install, list and remove through dnf, flatpak and copr,
with the manifest in the repository updated as a side effect so it
never falls out of date.
Decided: a JSON manifest (jq is already this repository's data tool
and the palettes are JSON), browsing through the chooser, the
transaction in a floating terminal the way donbox-update already
does it, and a local conventional commit on a successful change.
get_packages.sh becomes a renderer over the manifest, absorbing the
COPR list, the flatpak ids and the repo definitions that are
heredocs today. It must install jq before it can read its own
manifest. jq is missing from the package list entirely and is only
present as somebody's dependency, which this fixes.
Implemented in
26b22ea.packages.json holds the repositories, the COPRs, the packages
and the flatpaks. get_packages.sh renders a machine from it and
installs jq first, since it cannot read its own manifest
without it. The metadata_expire every repository needs is stated
once in the renderer rather than in each of them.
donbox pkg search|add|remove|list|drift. Search and remove offer
the chooser, the transaction opens a terminal, and a success is
committed to packages.json alone so nothing else in the working
tree is swept in. A failed transaction leaves the manifest
untouched, which the suite covers along with the flatpak kind,
the duplicate case and the chooser path.
One thing did not survive contact: drift answers only what the
manifest promises that is not installed. The reverse cannot be
had from rpm. Fedora's image builder marks its own three hundred
packages as installed by the user, so 'installed by hand' is
indistinguishable from 'came with the machine'. Filtering by the
first transaction was not enough either, since the spin's own
package set arrives later. The command says as much rather than
printing three hundred lines of noise, and keeping the manifest
true as things are installed is what add is for.
Verified live: the search chooser against real dnf data, list,
and drift reporting nothing missing.