Commit Graph
603 Commits
Author SHA1 Message Date
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
innocentzero 3d01741401 build: Update build script
cargo version 1.77 onwards added support for cargo:: to communicate with
cargo and deprecated the old cargo: syntax.

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-30 10:11:04 +05:30
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
ripytide 536c670e0d refactor to use Packages more and fix PartialEq,Ord impls on Package to all be consistent with each other 2024-04-25 14:11:19 +01: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
ripytide 17e42ca435 Backend trait refactors
- 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`
2024-04-24 17:03:42 +01: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
ripytide 2ad00c3cdc switched to custom zero-dependency logger implementation 2024-04-23 15:26:52 +01:00
ripytide c290247c7a logging refactor 2024-04-23 14:56:36 +01: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
ripytide a5880f614e declarative cli and core: refactor 2024-04-22 16:59:23 +01: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
ripytide df5b229d23 major overhaul of Backend from dynamic to static dispatch using an big enum 2024-04-22 14:08:53 +01: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
ripytide 636a7a02ec fix typos and release checklist 2024-04-14 17:21:05 +01:00
ripytide b473f8e432 restructure project into a virtual manifest
- remove redundant readme
- de-duplicate Cargo.toml information using workspace inheritance
- rename "pacdef_core" to "pacdef"
- move "crates/main/main.rs" to "crates/pacdef/src/main.rs"
2024-04-13 14:37:12 +01: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
innocentzero bcefc4969a docs(fedora): Switches and show_package_info
Add docstrings for the query switches and show_package_info functions.

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-12 17:54:48 +05:30
innocentzero b3263b02a7 fix(fedora): AS_DEPENDENCY and package_info
Set SUPPORTS_AS_DEPENDENCY and rewrite show_package_info for dnf

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-12 17:48:28 +05:30
innocentzero 4fe2b0597d refact(fedora): Move fetch flags to constants
Move the flags required for get_installed_packages and
get_user_installed_packages to separate module constants.

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-12 17:34:04 +05:30
innocentzero 027a27f7e1 style(fedora): Implicit types and module consts
Use type inferencing for variables and move default repo filter to a
constant.

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-12 17:30:39 +05:30
innocentzero 1ba6b365a3 style(fedora): Comments and empty lines
Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 22:48:14 +05:30
innocentzero f8a4671f09 fix(fedora): Fix linter warnings
Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 22:18:14 +05:30
innocentzero 2ad5ef4cf5 refact(fedora): Package creation from output
Packages created now strip the repo if it is one of the default one on
fedora

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 22:13:04 +05:30
innocentzero dc14a43f90 fix(fedora): Package install, update and query
Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 22:12:17 +05:30
innocentzero 39999908b0 refact(fedora): Changes in Backend trait
Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 21:14:49 +05:30
innocentzero 24f1dce866 feat(fedora): Use dnf repoquery to query packages
Use dnf repoquery to query packages for better interop and more
parsable output.

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 21:08:47 +05:30
innocentzero 1fc8add2c2 feat(fedora): Add fedora as a backend
Note- This is currently heavily experimental and not tested thoroughly.

Signed-off-by: innocentzero <isfarulhaque@proton.me>
2024-04-11 21:08:47 +05:30
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