From b473f8e432c18681cf7fee7e68aac0f5df08e4da Mon Sep 17 00:00:00 2001 From: ripytide Date: Sat, 13 Apr 2024 14:14:11 +0100 Subject: [PATCH] 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" --- Cargo.lock | 8 ------ Cargo.toml | 28 +++++-------------- RELEASE-CHECKLIST.md | 2 +- bacon.toml | 2 +- crates/{pacdef_core => pacdef}/Cargo.toml | 21 +++++++------- crates/{pacdef_core => pacdef}/build.rs | 0 .../{pacdef_core => pacdef}/src/args/cli.rs | 0 .../src/args/datastructure.rs | 0 .../{pacdef_core => pacdef}/src/args/mod.rs | 0 .../src/args/parsing.rs | 0 .../{pacdef_core => pacdef}/src/args/tests.rs | 0 .../src/backend/actual/arch.rs | 0 .../src/backend/actual/debian.rs | 0 .../src/backend/actual/fedora.rs | 0 .../src/backend/actual/flatpak.rs | 0 .../src/backend/actual/mod.rs | 0 .../src/backend/actual/python.rs | 0 .../src/backend/actual/rust.rs | 0 .../src/backend/actual/rustup/helpers.rs | 0 .../src/backend/actual/rustup/mod.rs | 0 .../src/backend/actual/rustup/types.rs | 0 .../src/backend/actual/void.rs | 0 .../src/backend/backend_trait.rs | 0 .../src/backend/iter.rs | 0 .../src/backend/macros.rs | 0 .../src/backend/mod.rs | 0 .../src/backend/root.rs | 0 .../src/backend/todo_per_backend.rs | 0 crates/{pacdef_core => pacdef}/src/cmd.rs | 0 crates/{pacdef_core => pacdef}/src/config.rs | 0 crates/{pacdef_core => pacdef}/src/core.rs | 4 +-- crates/{pacdef_core => pacdef}/src/env.rs | 0 crates/{pacdef_core => pacdef}/src/errors.rs | 0 .../src/grouping/group.rs | 0 .../src/grouping/mod.rs | 0 .../src/grouping/package.rs | 0 .../src/grouping/section.rs | 0 crates/{pacdef_core => pacdef}/src/lib.rs | 0 crates/{main => pacdef/src}/main.rs | 6 ++-- crates/{pacdef_core => pacdef}/src/path.rs | 0 .../src/review/datastructures.rs | 0 .../{pacdef_core => pacdef}/src/review/mod.rs | 8 +++--- .../src/review/strategy.rs | 0 crates/{pacdef_core => pacdef}/src/search.rs | 0 crates/{pacdef_core => pacdef}/src/ui.rs | 0 crates/pacdef_core/README.md | 8 ------ crates/pacdef_macros/Cargo.toml | 15 +++++----- crates/pacdef_macros/README.md | 8 ------ 48 files changed, 37 insertions(+), 73 deletions(-) rename crates/{pacdef_core => pacdef}/Cargo.toml (57%) rename crates/{pacdef_core => pacdef}/build.rs (100%) rename crates/{pacdef_core => pacdef}/src/args/cli.rs (100%) rename crates/{pacdef_core => pacdef}/src/args/datastructure.rs (100%) rename crates/{pacdef_core => pacdef}/src/args/mod.rs (100%) rename crates/{pacdef_core => pacdef}/src/args/parsing.rs (100%) rename crates/{pacdef_core => pacdef}/src/args/tests.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/arch.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/debian.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/fedora.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/flatpak.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/mod.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/python.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/rust.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/rustup/helpers.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/rustup/mod.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/rustup/types.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/actual/void.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/backend_trait.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/iter.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/macros.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/mod.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/root.rs (100%) rename crates/{pacdef_core => pacdef}/src/backend/todo_per_backend.rs (100%) rename crates/{pacdef_core => pacdef}/src/cmd.rs (100%) rename crates/{pacdef_core => pacdef}/src/config.rs (100%) rename crates/{pacdef_core => pacdef}/src/core.rs (99%) rename crates/{pacdef_core => pacdef}/src/env.rs (100%) rename crates/{pacdef_core => pacdef}/src/errors.rs (100%) rename crates/{pacdef_core => pacdef}/src/grouping/group.rs (100%) rename crates/{pacdef_core => pacdef}/src/grouping/mod.rs (100%) rename crates/{pacdef_core => pacdef}/src/grouping/package.rs (100%) rename crates/{pacdef_core => pacdef}/src/grouping/section.rs (100%) rename crates/{pacdef_core => pacdef}/src/lib.rs (100%) rename crates/{main => pacdef/src}/main.rs (92%) rename crates/{pacdef_core => pacdef}/src/path.rs (100%) rename crates/{pacdef_core => pacdef}/src/review/datastructures.rs (100%) rename crates/{pacdef_core => pacdef}/src/review/mod.rs (97%) rename crates/{pacdef_core => pacdef}/src/review/strategy.rs (100%) rename crates/{pacdef_core => pacdef}/src/search.rs (100%) rename crates/{pacdef_core => pacdef}/src/ui.rs (100%) delete mode 100644 crates/pacdef_core/README.md delete mode 100644 crates/pacdef_macros/README.md diff --git a/Cargo.lock b/Cargo.lock index b947cad..311873c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -390,14 +390,6 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "pacdef" version = "1.6.0" -dependencies = [ - "anyhow", - "pacdef_core", -] - -[[package]] -name = "pacdef_core" -version = "1.6.0" dependencies = [ "alpm", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 1c1d2d9..055767b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,9 @@ -[package] -name = "pacdef" -version = "1.6.0" +[workspace] +members = ["crates/*"] +resolver = "2" + +[workspace.package] edition = "2021" -description = "multi-backend declarative package manager for Linux" license = "GPL-3.0-or-later" repository = "https://github.com/steven-omaha/pacdef" readme = "README.md" @@ -10,26 +11,11 @@ keywords = ["package-manager", "linux", "declarative", "cli"] categories = ["command-line-utilities"] rust-version = "1.74" -[workspace] -members = ["crates/pacdef_macros", "crates/pacdef_core"] - [workspace.dependencies] -anyhow = "1.0" - -[dependencies] -anyhow = {workspace = true} -pacdef_core = {path = "crates/pacdef_core", version = "=1.6.0" } - -[[bin]] -name = "pacdef" -path = "crates/main/main.rs" +pacdef_macros = { path = "crates/pacdef_macros", version = "1.0" } +pacdef = { path = "crates/pacdef", version = "1.6" } [profile.release] lto = "off" opt-level = "z" strip = true - -[features] -default = [] -debian = ["pacdef_core/debian"] -arch = ["pacdef_core/arch"] diff --git a/RELEASE-CHECKLIST.md b/RELEASE-CHECKLIST.md index ef8fb47..cf9a250 100644 --- a/RELEASE-CHECKLIST.md +++ b/RELEASE-CHECKLIST.md @@ -6,7 +6,7 @@ Release Checklist * Run `cargo outdated` and review semver incompatible updates. Unless there is a strong motivation otherwise, review and update every dependency. * Update the date and version in all man pages: "chore(release): bump man pages". -* Run `cargo release -p pacdef_core -p pacdef `. +* Run `cargo release -p pacdef `. `pacdef_core` and `pacdef` shall have the same version at all times. Verify everything works as expected. * Rerun `cargo publish` with `--execute.` diff --git a/bacon.toml b/bacon.toml index cfbc38a..bddc645 100644 --- a/bacon.toml +++ b/bacon.toml @@ -42,7 +42,7 @@ command = [ "--color", "always", "--package", - "pacdef_core", + "pacdef", "--", "--color", "always", # see https://github.com/Canop/bacon/issues/124 diff --git a/crates/pacdef_core/Cargo.toml b/crates/pacdef/Cargo.toml similarity index 57% rename from crates/pacdef_core/Cargo.toml rename to crates/pacdef/Cargo.toml index ed54c88..8f626ca 100644 --- a/crates/pacdef_core/Cargo.toml +++ b/crates/pacdef/Cargo.toml @@ -1,16 +1,17 @@ [package] -name = "pacdef_core" +name = "pacdef" +description = "multi-backend declarative package manager for Linux" version = "1.6.0" -edition = "2021" -description = "pacdef core library" -license = "GPL-3.0-or-later" -repository = "https://github.com/steven-omaha/pacdef/tree/main/crates/pacdef_core" -readme = "README.md" -keywords = ["package-manager", "linux", "declarative", "cli"] -categories = ["command-line-utilities"] + +edition.workspace = true +license.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true +categories.workspace = true [dependencies] -anyhow = { workspace = true } +anyhow = "1.0" clap = "4.5" const_format = { version = "0.2", default-features = false } path-absolutize = "3.1" @@ -24,7 +25,7 @@ serde_derive = "1.0" serde_json = "1.0" serde_yaml = "0.9" -pacdef_macros = { path = "../pacdef_macros", version = "1.0" } +pacdef_macros.workspace = true # backends alpm = { version = "3.0", optional = true } diff --git a/crates/pacdef_core/build.rs b/crates/pacdef/build.rs similarity index 100% rename from crates/pacdef_core/build.rs rename to crates/pacdef/build.rs diff --git a/crates/pacdef_core/src/args/cli.rs b/crates/pacdef/src/args/cli.rs similarity index 100% rename from crates/pacdef_core/src/args/cli.rs rename to crates/pacdef/src/args/cli.rs diff --git a/crates/pacdef_core/src/args/datastructure.rs b/crates/pacdef/src/args/datastructure.rs similarity index 100% rename from crates/pacdef_core/src/args/datastructure.rs rename to crates/pacdef/src/args/datastructure.rs diff --git a/crates/pacdef_core/src/args/mod.rs b/crates/pacdef/src/args/mod.rs similarity index 100% rename from crates/pacdef_core/src/args/mod.rs rename to crates/pacdef/src/args/mod.rs diff --git a/crates/pacdef_core/src/args/parsing.rs b/crates/pacdef/src/args/parsing.rs similarity index 100% rename from crates/pacdef_core/src/args/parsing.rs rename to crates/pacdef/src/args/parsing.rs diff --git a/crates/pacdef_core/src/args/tests.rs b/crates/pacdef/src/args/tests.rs similarity index 100% rename from crates/pacdef_core/src/args/tests.rs rename to crates/pacdef/src/args/tests.rs diff --git a/crates/pacdef_core/src/backend/actual/arch.rs b/crates/pacdef/src/backend/actual/arch.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/arch.rs rename to crates/pacdef/src/backend/actual/arch.rs diff --git a/crates/pacdef_core/src/backend/actual/debian.rs b/crates/pacdef/src/backend/actual/debian.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/debian.rs rename to crates/pacdef/src/backend/actual/debian.rs diff --git a/crates/pacdef_core/src/backend/actual/fedora.rs b/crates/pacdef/src/backend/actual/fedora.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/fedora.rs rename to crates/pacdef/src/backend/actual/fedora.rs diff --git a/crates/pacdef_core/src/backend/actual/flatpak.rs b/crates/pacdef/src/backend/actual/flatpak.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/flatpak.rs rename to crates/pacdef/src/backend/actual/flatpak.rs diff --git a/crates/pacdef_core/src/backend/actual/mod.rs b/crates/pacdef/src/backend/actual/mod.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/mod.rs rename to crates/pacdef/src/backend/actual/mod.rs diff --git a/crates/pacdef_core/src/backend/actual/python.rs b/crates/pacdef/src/backend/actual/python.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/python.rs rename to crates/pacdef/src/backend/actual/python.rs diff --git a/crates/pacdef_core/src/backend/actual/rust.rs b/crates/pacdef/src/backend/actual/rust.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/rust.rs rename to crates/pacdef/src/backend/actual/rust.rs diff --git a/crates/pacdef_core/src/backend/actual/rustup/helpers.rs b/crates/pacdef/src/backend/actual/rustup/helpers.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/rustup/helpers.rs rename to crates/pacdef/src/backend/actual/rustup/helpers.rs diff --git a/crates/pacdef_core/src/backend/actual/rustup/mod.rs b/crates/pacdef/src/backend/actual/rustup/mod.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/rustup/mod.rs rename to crates/pacdef/src/backend/actual/rustup/mod.rs diff --git a/crates/pacdef_core/src/backend/actual/rustup/types.rs b/crates/pacdef/src/backend/actual/rustup/types.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/rustup/types.rs rename to crates/pacdef/src/backend/actual/rustup/types.rs diff --git a/crates/pacdef_core/src/backend/actual/void.rs b/crates/pacdef/src/backend/actual/void.rs similarity index 100% rename from crates/pacdef_core/src/backend/actual/void.rs rename to crates/pacdef/src/backend/actual/void.rs diff --git a/crates/pacdef_core/src/backend/backend_trait.rs b/crates/pacdef/src/backend/backend_trait.rs similarity index 100% rename from crates/pacdef_core/src/backend/backend_trait.rs rename to crates/pacdef/src/backend/backend_trait.rs diff --git a/crates/pacdef_core/src/backend/iter.rs b/crates/pacdef/src/backend/iter.rs similarity index 100% rename from crates/pacdef_core/src/backend/iter.rs rename to crates/pacdef/src/backend/iter.rs diff --git a/crates/pacdef_core/src/backend/macros.rs b/crates/pacdef/src/backend/macros.rs similarity index 100% rename from crates/pacdef_core/src/backend/macros.rs rename to crates/pacdef/src/backend/macros.rs diff --git a/crates/pacdef_core/src/backend/mod.rs b/crates/pacdef/src/backend/mod.rs similarity index 100% rename from crates/pacdef_core/src/backend/mod.rs rename to crates/pacdef/src/backend/mod.rs diff --git a/crates/pacdef_core/src/backend/root.rs b/crates/pacdef/src/backend/root.rs similarity index 100% rename from crates/pacdef_core/src/backend/root.rs rename to crates/pacdef/src/backend/root.rs diff --git a/crates/pacdef_core/src/backend/todo_per_backend.rs b/crates/pacdef/src/backend/todo_per_backend.rs similarity index 100% rename from crates/pacdef_core/src/backend/todo_per_backend.rs rename to crates/pacdef/src/backend/todo_per_backend.rs diff --git a/crates/pacdef_core/src/cmd.rs b/crates/pacdef/src/cmd.rs similarity index 100% rename from crates/pacdef_core/src/cmd.rs rename to crates/pacdef/src/cmd.rs diff --git a/crates/pacdef_core/src/config.rs b/crates/pacdef/src/config.rs similarity index 100% rename from crates/pacdef_core/src/config.rs rename to crates/pacdef/src/config.rs diff --git a/crates/pacdef_core/src/core.rs b/crates/pacdef/src/core.rs similarity index 99% rename from crates/pacdef_core/src/core.rs rename to crates/pacdef/src/core.rs index af47332..1a49262 100644 --- a/crates/pacdef_core/src/core.rs +++ b/crates/pacdef/src/core.rs @@ -548,7 +548,7 @@ where Err(e) => { // CrossesDevices is nightly. See rust #86442. // We cannot check that here, so we just assume that - // that would be the error if permisisons are okay. + // that would be the error if permissions are okay. if e.kind() == std::io::ErrorKind::PermissionDenied { bail!(e); } @@ -583,7 +583,7 @@ fn find_groups_by_name<'a>(names: &[String], groups: &'a HashSet) -> Resu Ok(result) } -/// Show the error chain for an error that has occured when a backend was queried +/// Show the error chain for an error that has occurred when a backend was queried /// if the `RUST_BACKTRACE` env variable is set to `1` or `full`. #[allow(clippy::option_if_let_else)] fn show_backend_query_error(error: &anyhow::Error, backend: &dyn Backend) { diff --git a/crates/pacdef_core/src/env.rs b/crates/pacdef/src/env.rs similarity index 100% rename from crates/pacdef_core/src/env.rs rename to crates/pacdef/src/env.rs diff --git a/crates/pacdef_core/src/errors.rs b/crates/pacdef/src/errors.rs similarity index 100% rename from crates/pacdef_core/src/errors.rs rename to crates/pacdef/src/errors.rs diff --git a/crates/pacdef_core/src/grouping/group.rs b/crates/pacdef/src/grouping/group.rs similarity index 100% rename from crates/pacdef_core/src/grouping/group.rs rename to crates/pacdef/src/grouping/group.rs diff --git a/crates/pacdef_core/src/grouping/mod.rs b/crates/pacdef/src/grouping/mod.rs similarity index 100% rename from crates/pacdef_core/src/grouping/mod.rs rename to crates/pacdef/src/grouping/mod.rs diff --git a/crates/pacdef_core/src/grouping/package.rs b/crates/pacdef/src/grouping/package.rs similarity index 100% rename from crates/pacdef_core/src/grouping/package.rs rename to crates/pacdef/src/grouping/package.rs diff --git a/crates/pacdef_core/src/grouping/section.rs b/crates/pacdef/src/grouping/section.rs similarity index 100% rename from crates/pacdef_core/src/grouping/section.rs rename to crates/pacdef/src/grouping/section.rs diff --git a/crates/pacdef_core/src/lib.rs b/crates/pacdef/src/lib.rs similarity index 100% rename from crates/pacdef_core/src/lib.rs rename to crates/pacdef/src/lib.rs diff --git a/crates/main/main.rs b/crates/pacdef/src/main.rs similarity index 92% rename from crates/main/main.rs rename to crates/pacdef/src/main.rs index 4b63cfe..046a50b 100644 --- a/crates/main/main.rs +++ b/crates/pacdef/src/main.rs @@ -1,5 +1,5 @@ /*! -Main program for `pacdef`. All internal logic happens in [`pacdef_core`]. +Main program for `pacdef`. */ #![warn( @@ -21,8 +21,8 @@ use std::process::{ExitCode, Termination}; use anyhow::{bail, Context, Result}; -use pacdef_core::path::{get_config_path, get_config_path_old_version, get_group_dir}; -use pacdef_core::{get_args, Config, Error as PacdefError, Group, Pacdef}; +use pacdef::path::{get_config_path, get_config_path_old_version, get_group_dir}; +use pacdef::{get_args, Config, Error as PacdefError, Group, Pacdef}; const MAJOR_UPDATE_MESSAGE: &str = "VERSION UPGRADE You seem to have used version 0.x of pacdef before. diff --git a/crates/pacdef_core/src/path.rs b/crates/pacdef/src/path.rs similarity index 100% rename from crates/pacdef_core/src/path.rs rename to crates/pacdef/src/path.rs diff --git a/crates/pacdef_core/src/review/datastructures.rs b/crates/pacdef/src/review/datastructures.rs similarity index 100% rename from crates/pacdef_core/src/review/datastructures.rs rename to crates/pacdef/src/review/datastructures.rs diff --git a/crates/pacdef_core/src/review/mod.rs b/crates/pacdef/src/review/mod.rs similarity index 97% rename from crates/pacdef_core/src/review/mod.rs rename to crates/pacdef/src/review/mod.rs index a8212cd..837df00 100644 --- a/crates/pacdef_core/src/review/mod.rs +++ b/crates/pacdef/src/review/mod.rs @@ -53,8 +53,8 @@ pub fn review( println!(); let mut iter = strategies.iter().peekable(); - while let Some(strat) = iter.next() { - strat.show(); + while let Some(strategy) = iter.next() { + strategy.show(); if iter.peek().is_some() { println!(); @@ -66,8 +66,8 @@ pub fn review( return Ok(()); } - for strat in strategies { - strat.execute()?; + for strategy in strategies { + strategy.execute()?; } Ok(()) diff --git a/crates/pacdef_core/src/review/strategy.rs b/crates/pacdef/src/review/strategy.rs similarity index 100% rename from crates/pacdef_core/src/review/strategy.rs rename to crates/pacdef/src/review/strategy.rs diff --git a/crates/pacdef_core/src/search.rs b/crates/pacdef/src/search.rs similarity index 100% rename from crates/pacdef_core/src/search.rs rename to crates/pacdef/src/search.rs diff --git a/crates/pacdef_core/src/ui.rs b/crates/pacdef/src/ui.rs similarity index 100% rename from crates/pacdef_core/src/ui.rs rename to crates/pacdef/src/ui.rs diff --git a/crates/pacdef_core/README.md b/crates/pacdef_core/README.md deleted file mode 100644 index 83c2832..0000000 --- a/crates/pacdef_core/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# pacdef_core - -core library for pacdef - - -## supported rust version - -latest stable diff --git a/crates/pacdef_macros/Cargo.toml b/crates/pacdef_macros/Cargo.toml index ca5f8b8..59002ad 100644 --- a/crates/pacdef_macros/Cargo.toml +++ b/crates/pacdef_macros/Cargo.toml @@ -1,13 +1,14 @@ [package] name = "pacdef_macros" -version = "1.0.1" -edition = "2021" -license = "GPL-3.0-or-later" -readme = "README.md" -repository = "https://github.com/steven-omaha/pacdef/tree/main/crates/pacdef_macros" description = "procedural macros for pacdef" -keywords = ["macro", "proc-macro"] -categories = ["command-line-utilities"] +version = "1.0.1" + +edition.workspace = true +license.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true +categories.workspace = true [dependencies] proc-macro2 = "1.0" diff --git a/crates/pacdef_macros/README.md b/crates/pacdef_macros/README.md deleted file mode 100644 index e8175a3..0000000 --- a/crates/pacdef_macros/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# pacdef_macros - -procedural macros for pacdef - - -## supported rust version - -latest stable