Commit Graph
100 Commits
Author SHA1 Message Date
steven-omaha 73ca20f124 fix: README debian feature, version 2026-05-02 14:45:51 +02:00
steven-omaha 7e0c88ad1e chore(release): 1.7.1 2026-05-01 19:42:59 +02:00
steven-omaha 9efd35bb8d fix: debian without bindings
reimplemented parts of the Debian backend to get rid of the apt library that has a different version everywhere and therefore won't play nicely with our pacdef
2026-05-01 19:35:35 +02:00
steven-omaha 86e28d4a0a update dependencies, fix integration 2026-04-29 17:35:41 +02:00
steven-omaha 83275576fb refact: remove virtual package 2025-08-05 12:20:09 +02:00
steven-omaha 9a7fd77e99 update dependencies 2025-08-03 13:39:27 +02:00
steven-omaha 59d102a654 fix: build against alpm
alpm was updated to 4.x.x
2025-08-02 14:09:45 +02:00
steven-omaha 36ecc0d0c8 build: Update build script
see #80
2024-05-01 09:59:55 +02:00
steven-omaha dfb5d0bd23 refact(backend,grouping): overhaul
- 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.
2024-04-27 09:23:46 +02:00
steven-omaha 0c38728e14 fix: docstring lint 2024-04-24 20:14:42 +02:00
steven-omaha 1268df3628 fix(backend): docstring 2024-04-24 20:11:24 +02:00
steven-omaha b7bbb37511 fix(core): track unmanaged packages once 2024-04-24 20:08:27 +02:00
steven-omaha 15b50d8cb0 refact(logging): use 'log' logging facade
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.
2024-04-23 19:09:24 +02:00
steven-omaha 86880212c1 doc: fix toml syntax 2024-04-23 13:09:30 +02:00
steven-omaha 7e85bc39d5 doc(man): add pip_binary config value 2024-04-23 12:30:21 +02:00
steven-omaha dce5aec11f fix(man): toml syntax 2024-04-23 12:28:40 +02:00
steven-omaha e9c3cec6d8 refact(config)!: use toml instead of yaml
serde_yaml is deprecated and archived. We should not depend on that.
Therefore switching to toml.

Fixes #76.
2024-04-23 12:22:23 +02:00
steven-omaha 7b4f63d0ee refact(core,cli): declarative CLI approach
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.
2024-04-23 11:08:23 +02:00
steven-omaha 724f084acb refact(backend): static dispatch
major overhaul of Backend from dynamic to static dispatch

See #73.
2024-04-22 17:40:18 +02:00
steven-omaha b4915935ed refact: virtual manifest
restructure project into a virtual manifest

See #72, implemented by @ripytide
2024-04-14 18:32:42 +02:00
steven-omaha bdfa9b6aeb ci(release): fix adding zsh completion 2024-04-13 11:59:04 +02:00
steven-omaha cc581ef699 doc(README): add fedora backend 2024-04-13 11:54:12 +02:00
steven-omaha 8b189a99aa chore: Release 2024-04-13 11:49:01 +02:00
steven-omaha 99cccf45d6 chore(release): bump man pages 2024-04-13 11:46:51 +02:00
steven-omaha 3b9b933601 chore(release): bump dependencies 2024-04-13 11:46:20 +02:00
steven-omaha 1f33336246 chore(release): update lockfile 2024-04-13 11:44:01 +02:00
steven-omaha 513826b769 feat(backend): add fedora / dnf
This series of commits provides support for Fedora Linux and its dnf
package manager.

Implemented in #56. Closes #54.
2024-04-12 14:36:41 +02:00
steven-omaha 9c5537e44f refact(fedora): remove core::panic 2024-04-12 14:35:28 +02:00
steven-omaha b4ad51b105 refact: todo_per_backend 2024-04-09 19:51:50 +02:00
steven-omaha 5950d79feb fix(debian): remove unused import 2024-04-09 19:50:44 +02:00
steven-omaha 4283db61fa refact: add todo 2024-04-09 19:29:56 +02:00
steven-omaha 2b1e985f2f refact: use Result instead of ExitStatus 2024-04-09 19:28:57 +02:00
steven-omaha 025e63647e fix(group): symlink warning for package operation
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.
2024-04-09 14:50:18 +02:00
steven-omaha 9758257957 refact(cmd): dont return exitstatus 2024-04-09 14:09:04 +02:00
steven-omaha b98f8b1277 fix(rustup): finding installed components 2024-04-09 10:20:01 +02:00
steven-omaha 319be7303a refact(backend): cleanup 2024-04-09 10:17:20 +02:00
steven-omaha f02eb76396 refact(backend): add todo 2024-04-09 09:57:46 +02:00
steven-omaha 965a826d5e refact(rustup): RustupPackage::from_pacdef_packages 2024-04-09 09:55:15 +02:00
steven-omaha 794e3bf12b refact(rustup): getting switches per repotype 2024-04-09 09:45:59 +02:00
steven-omaha 56c547793a refact(rustup): introduce modules 2024-04-09 09:40:22 +02:00
steven-omaha 53ca201891 fix(review): apply skips remaining backends
Fixes #68.
2024-04-09 09:16:06 +02:00
steven-omaha 440ac78696 doc(README): update install section 2024-04-07 18:24:16 +02:00
steven-omaha 2b03e579da doc(env): should_print_debug_info 2024-04-07 18:10:01 +02:00
steven-omaha 8850cab4a3 refact(env): should_print_debug_info 2024-04-07 18:01:10 +02:00
steven-omaha db4f16c785 refact(rustup): install packages 2024-04-07 17:46:55 +02:00
steven-omaha 9de281617f refact(rustup): use run_external_command 2024-04-06 18:43:28 +02:00
steven-omaha b9fb617214 fix(cmd): show full command on error 2024-04-06 18:42:29 +02:00
steven-omaha 675b06352d refact(rustup): add run_external_command 2024-04-06 18:32:37 +02:00
steven-omaha 9d3654f436 ci(release): add zsh completion 2024-04-05 09:56:08 +02:00
steven-omaha 7e9f5e5930 doc(README): AUR binary version 2024-04-05 09:54:22 +02:00
steven-omaha 1d5f3d5232 chore: Release 2024-04-05 09:30:03 +02:00
steven-omaha 675ee2c0d8 chore(release): bump man pages 2024-04-05 09:25:00 +02:00
steven-omaha 9af77ba934 chore(release): update lockfile 2024-04-05 09:23:59 +02:00
steven-omaha 0e4bd99a5a feat(void): add void Linux backend
PR #69
2024-04-05 08:53:34 +02:00
steven-omaha 2dd4b0ef0e feat(rust): support $CARGO_HOME
get `.crates2.json` from `$CARGO_HOME` if present

Implements #70.
2024-04-04 21:38:55 +02:00
steven-omaha 8cc5365070 refact(rustup): rework most of the code 2024-04-04 17:10:14 +02:00
steven-omaha 2c409d2c46 ci(check): keep going after failure 2024-04-04 13:01:59 +02:00
steven-omaha ceaccc8748 style(rustup): add empty lines 2024-04-03 17:51:13 +02:00
steven-omaha 99210e8599 refact(rustup): add todo 2024-04-03 17:50:56 +02:00
steven-omaha 98e6e7f2c6 refact(rustup): remove unused mut 2024-04-03 17:47:58 +02:00
steven-omaha 5f6384b6b3 refact(rustup): get_all_installed_packages 2024-04-03 17:46:34 +02:00
steven-omaha 937efc3782 refact(rustup): make_dependency panic
calling this would be a programming error, therefore a panic is warranted
2024-04-03 17:42:57 +02:00
steven-omaha 2952b7ba44 doc(template,bug): config yaml 2024-04-03 12:53:59 +02:00
steven-omaha 313493c0f4 doc(template): feature request 2024-04-03 12:32:36 +02:00
steven-omaha 7b21120144 doc(template,backend): implement checkbox 2024-04-03 12:26:07 +02:00
steven-omaha 78039738f1 doc(template): backend request 2024-04-03 12:20:04 +02:00
steven-omaha ee72e5fae3 doc(issue,bug): pacdef config file 2024-04-03 12:14:34 +02:00
steven-omaha 8766e75238 doc(issue-template): version shell render 2024-04-03 11:59:13 +02:00
steven-omaha 7905ec777b doc(issue-template): multiline value 2024-04-03 11:57:43 +02:00
steven-omaha 9ce6dfb3ce doc(issue-template): reproduction, formatting 2024-04-03 11:54:57 +02:00
steven-omaha 5ddc33a355 doc(issue-template): add bug report form 2024-04-03 11:42:01 +02:00
steven-omaha 743c9555bc doc(README): rustup 2024-04-03 09:44:19 +02:00
steven-omaha 94146e3c4c ci: build binary on release
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.
2024-04-02 22:36:10 +02:00
steven-omaha 631a9afb7f feat(rustup): add rustup backend
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.
2024-04-02 15:04:34 +02:00
steven-omaha 8cc4791a9c doc: bump MSRV to 1.74
required by clap
2024-04-01 14:21:25 +02:00
steven-omaha afa8e7f55a doc: remove invalid link 2024-04-01 14:08:58 +02:00
steven-omaha 9767cc374d doc: minimum supported apt version 2024-04-01 14:08:45 +02:00
steven-omaha e37cf03349 ci: enable tests for all features 2024-04-01 14:01:17 +02:00
steven-omaha 6bba968897 ci: build, clippy for all features 2024-04-01 13:58:21 +02:00
steven-omaha 9f6f758a8d ci: fail on any clippy warning 2024-04-01 13:31:26 +02:00
steven-omaha 3f8468c660 fix(debian): build against rust-apt-0.7.0
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.
2024-03-26 14:22:00 +01:00
steven-omaha 4b7a497dda fix(review): typo 2024-03-24 20:57:32 +01:00
steven-omaha 34afcb0fd1 feat(review): add 'apply' reply
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.
2024-03-24 19:17:35 +01:00
steven-omaha 52f615324a chore: Release 2024-03-20 11:32:29 +01:00
steven-omaha ecf1aefd25 chore(release): bump man pages 2024-03-20 11:31:24 +01:00
steven-omaha 1bcb7f80cd chore(release): bump dependencies, update lockfile 2024-03-20 11:30:08 +01:00
steven-omaha 489074a897 chore: Release 2024-02-15 12:05:14 +01:00
steven-omaha d0693c1846 chore(release): bump man pages 2024-02-15 12:04:09 +01:00
steven-omaha cf86725c14 chore(release): update lockfile 2024-02-15 12:02:54 +01:00
steven-omaha 82bf880849 chore: Release 2024-01-28 08:18:35 +01:00
steven-omaha 1b22570cc8 chore(release): bump man pages 2024-01-28 08:17:56 +01:00
steven-omaha a8df38659a chore(release): update lockfile 2024-01-28 08:16:28 +01:00
steven-omaha 43805d7784 feat(python): pipx support
see #50
closes #48
2024-01-28 08:12:40 +01:00
steven-omaha ec1aab4b43 refact(ui): infallible conversion for u8 to char 2024-01-16 13:19:37 +01:00
steven-omaha b5cbcdce4b chore: Release 2023-12-26 17:56:53 +01:00
steven-omaha 0a421ddf42 chore(release): bump man pages 2023-12-26 17:55:37 +01:00
steven-omaha e6431d1967 chore(release): update lockfile 2023-12-26 17:54:24 +01:00
steven-omaha 527b2dba28 fix(README): typo 2023-11-06 10:37:31 +01:00
steven-omaha bcf43a8683 test(args): add negative test cases 2023-10-17 15:37:57 +02:00
steven-omaha 87a85b00dd test: add rstest crate, argument parsing tests 2023-10-17 15:21:19 +02:00