- Refactor the confusing/bodgy consts backend macro to use a single
BackendInfo struct
- Combine supports_as_dependency() and the switches_dependency into a
single Option type as that is a better representation as it is an
optional backend feature.
- Add more types like Packages, Sections for uniformity.
- Added a crate-private prelude and switches all imports to use a
prelude glob import (excluding functions because it's nice to only be
importing types)
- Refactored Backend section name in logging by implementing Display for
AnyBackend that just prints the section
Implemented in #77.
Deduplicates the warning messages, and separates implementation from
intention.
The employed log crate is fairly small and simple. It sacrifices
eye-candy for minimalism, which we favor in this projectd.
Implemented in #75.
Use clap-derive to let it build the CLI and parse it automagically. This
allows to rework core and split up the monster Pacdef struct.
Switches groups from HashSet to BTreeSet for built-in sorting/more
deterministic general operation.
Refactored code base into a global type synonym Groups to remove
duplication of the HashSet/BTreeSet implementation detail to a single
location.
Implemented in #74.
Until now, when symlink warnings were enabled, these were printed
independent from the operation that was to be executed. This was
annoying especially when 'pacdef group export' was used to fix exactly
that.
Now this warning is only printed when subcommands from 'pacdef package'
are used.
Upon release of a new version, automatically build a separate version of
pacdef for each backend that requires a feature flag. Attach all the
artifacts to the Github release.
Implemented by @thechubbypanda. Fixes#58. PR in #63.
This commit adds support for rustup and was provided by @InnocentZero.
The main change under the hood is that rustup packages require up to
three path elements, either 'toolchain/<VERSION>' or
'component/<VERSION>/<component>', where <VERSION> can be stable,
nightly, or any explicit rust version. This change was facilitated by
making Package::repo crate-public.
The README still needs to be updated.
Related to #54. Merges #55.
1bcb7f8 bumped rust-apt from 0.5 to 0.7. This change made
Cache::packages(&self, &sort) a fallible function. The required change in
the Debian backend was missed.
This commit propagates the error in get_all_installed_packages and
get_explicitly_installed_packages for the Debian backend.
Fixes#64.
Add the 'a(p)ply' part to the review prompt, which applies all actions
that were put in so far. When the user has too many packages to review,
this allows them to process the packages in chunks of arbitrary sizes.
Related to #36.
The first attempt 02c44c92d0 caused
`Section.partial_cmp` and `Section.cmp` to call each other recursively.
That lead to a stack overflow when compiled without optimizations, and
an infinite loop when optimizations were enabled.
This commit now properly implements at first `Ord` for both `Section`
and `Group`, and from this derives `PartialEq` for each.