From 22da38e68398dea016acfe637edda73809400518 Mon Sep 17 00:00:00 2001 From: cornholio <0@mcornholio.ru> Date: Thu, 29 Aug 2024 10:56:09 +0200 Subject: [PATCH] Renamed and merged crates @chevdor still owns the package on crates.io, and refuses to allow parity to publish it And maybe instead of two crates, we only need one? --- .github/workflows/publish.yml | 9 +-- Cargo.lock | 63 +++++++++----------- Cargo.toml | 43 +++++++++++--- cli/build.rs => build.rs | 12 ++-- cli/.rustfmt.toml | 4 -- cli/Cargo.toml | 39 ------------- cli/README.md | 1 - cli/tests/check.rs | 65 --------------------- cli/tests/common.rs | 11 ---- cli/tests/generate.rs | 47 --------------- cli/tests/load.rs | 67 ---------------------- cli/tests/scan.rs | 16 ------ prdoclib/Cargo.toml | 21 ------- prdoclib/README.md | 1 - prdoclib/template.prdoc | 1 - {cli/src => src/bin/prdoc}/main.rs | 49 +++++++++------- {cli/src => src/bin/prdoc}/opts.rs | 4 +- {prdoclib/src => src}/commands/check.rs | 0 {prdoclib/src => src}/commands/generate.rs | 2 +- {prdoclib/src => src}/commands/load.rs | 0 {prdoclib/src => src}/commands/mod.rs | 0 {prdoclib/src => src}/commands/scan.rs | 4 +- {prdoclib/src => src}/commands/version.rs | 0 {prdoclib/src => src}/common.rs | 0 {prdoclib/src => src}/config.rs | 0 {prdoclib/src => src}/doc_filename.rs | 11 ++-- {prdoclib/src => src}/docfile.rs | 0 {prdoclib/src => src}/docfile_wrapper.rs | 0 {prdoclib/src => src}/error.rs | 0 {prdoclib/src => src}/lib.rs | 0 {prdoclib/src => src}/prdoc_source.rs | 0 {prdoclib/src => src}/schema.rs | 8 +-- {prdoclib/src => src}/title.rs | 0 {prdoclib/src => src}/utils.rs | 0 34 files changed, 114 insertions(+), 364 deletions(-) rename cli/build.rs => build.rs (97%) delete mode 100644 cli/.rustfmt.toml delete mode 100644 cli/Cargo.toml delete mode 120000 cli/README.md delete mode 100644 cli/tests/check.rs delete mode 100644 cli/tests/common.rs delete mode 100644 cli/tests/generate.rs delete mode 100644 cli/tests/load.rs delete mode 100644 cli/tests/scan.rs delete mode 100644 prdoclib/Cargo.toml delete mode 120000 prdoclib/README.md delete mode 120000 prdoclib/template.prdoc rename {cli/src => src/bin/prdoc}/main.rs (86%) rename {cli/src => src/bin/prdoc}/opts.rs (97%) rename {prdoclib/src => src}/commands/check.rs (100%) rename {prdoclib/src => src}/commands/generate.rs (98%) rename {prdoclib/src => src}/commands/load.rs (100%) rename {prdoclib/src => src}/commands/mod.rs (100%) rename {prdoclib/src => src}/commands/scan.rs (89%) rename {prdoclib/src => src}/commands/version.rs (100%) rename {prdoclib/src => src}/common.rs (100%) rename {prdoclib/src => src}/config.rs (100%) rename {prdoclib/src => src}/doc_filename.rs (94%) rename {prdoclib/src => src}/docfile.rs (100%) rename {prdoclib/src => src}/docfile_wrapper.rs (100%) rename {prdoclib/src => src}/error.rs (100%) rename {prdoclib/src => src}/lib.rs (100%) rename {prdoclib/src => src}/prdoc_source.rs (100%) rename {prdoclib/src => src}/schema.rs (90%) rename {prdoclib/src => src}/title.rs (100%) rename {prdoclib/src => src}/utils.rs (100%) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bd9575a..46507b0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -49,13 +49,6 @@ jobs: run: cargo set-version "$(echo "${{ github.ref_name }}" | sed -e 's/^v//')" - name: Build and publish prdoclib - run: cargo publish -p prdoclib --token "${CRATESIO_TOKEN}" - env: - CRATESIO_TOKEN: ${{ secrets.CRATESIO_TOKEN }} - - - name: Build and publish prdoc - # `set-version` will change Cargo.toml in `cli` package as it depends on `prdoclib` - # thus, we need --allow-dirty, to include uncommitted changes; - run: cargo publish --allow-dirty -p prdoc --token "${CRATESIO_TOKEN}" + run: cargo publish -p parity-prdoc --token "${CRATESIO_TOKEN}" env: CRATESIO_TOKEN: ${{ secrets.CRATESIO_TOKEN }} diff --git a/Cargo.lock b/Cargo.lock index 28edbe7..e9ed3c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -102,13 +102,14 @@ dependencies = [ [[package]] name = "assert_cmd" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc65048dd435533bb1baf2ed9956b9a278fbfdcf90301b39ee117f06c0199d37" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", @@ -200,9 +201,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", @@ -210,9 +211,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -557,6 +558,25 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +[[package]] +name = "parity-prdoc" +version = "0.0.0-updated-from-ci" +dependencies = [ + "assert_cmd", + "clap", + "color-eyre", + "env_logger", + "exitcode", + "log", + "regex", + "serde", + "serde_json", + "serde_yaml", + "thiserror", + "toml", + "valico", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -607,37 +627,6 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" -[[package]] -name = "prdoc" -version = "0.0.0-updated-from-ci" -dependencies = [ - "assert_cmd", - "clap", - "color-eyre", - "env_logger", - "exitcode", - "log", - "prdoclib", - "serde", - "serde_json", - "serde_yaml", -] - -[[package]] -name = "prdoclib" -version = "0.0.0-updated-from-ci" -dependencies = [ - "exitcode", - "log", - "regex", - "serde", - "serde_json", - "serde_yaml", - "thiserror", - "toml", - "valico", -] - [[package]] name = "predicates" version = "3.1.2" diff --git a/Cargo.toml b/Cargo.toml index 875551c..2f9c4f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ -[workspace.package] +[package] +name = "parity-prdoc" version = "0.0.0-updated-from-ci" authors = ["chevdor ", "Wilfried Kopp ", "Yuri Volkov <0@mcornholio.ru>"] edition = "2021" @@ -7,12 +8,12 @@ keywords = ["cli", "documentation", "parity"] license = "MIT" repository = "https://github.com/paritytech/prdoc" -[workspace] -resolver = "2" -members = [ - "cli", - "prdoclib", -] +[lib] +name = "prdoclib" +path = "src/lib.rs" + +[[bin]] +name = "prdoc" [profile.production] inherits = "release" @@ -20,3 +21,31 @@ lto = true panic = "abort" opt-level = "z" codegen-units = 1 + +[dependencies] +log = "0.4" +regex = "1.10" +exitcode = "1.1" +thiserror = "1.0" +serde = { version = "1.0", features = ["derive"] } +serde_yaml = { version = "0.9", optional = false } +serde_json = { version = "1.0", optional = false } +valico = { version = "4.0", default-features = false, features = [] } +toml = "0.8.19" +assert_cmd = "2.0" +color-eyre = "0.6" +env_logger = "0.11" +clap = { version = "4", features = [ + "derive", + "env", + "unicode", + "cargo", + "color", + "help", + "usage", + "error-context", + "suggestions", +] } + +[dev-dependencies] +assert_cmd = "2.0" diff --git a/cli/build.rs b/build.rs similarity index 97% rename from cli/build.rs rename to build.rs index 8d0cee7..30dd6e1 100644 --- a/cli/build.rs +++ b/build.rs @@ -15,16 +15,16 @@ pub fn generate_cargo_key_build_date() { Ok(o) if o.status.success() => { let sha = String::from_utf8_lossy(&o.stdout).trim().to_owned(); Cow::from(sha) - } + }, Ok(o) => { let status = o.status; println!("cargo:warning=Failed fetching the date timestamp: {status}"); Cow::from("unknown") - } + }, Err(err) => { println!("cargo:warning=Failed fetching the datge: {err}"); Cow::from("unknown") - } + }, }; println!("cargo:rustc-env=PRDOC_CLI_BUILD_DATE={build_date}"); @@ -38,16 +38,16 @@ pub fn generate_cargo_key_git() { Ok(o) if o.status.success() => { let tmsp = String::from_utf8_lossy(&o.stdout).trim().to_owned(); Cow::from(tmsp) - } + }, Ok(o) => { let status = o.status; println!("cargo:warning=Git command failed with status: {status}"); Cow::from("unknown") - } + }, Err(err) => { println!("cargo:warning=Failed to execute git command: {err}"); Cow::from("unknown") - } + }, } }; diff --git a/cli/.rustfmt.toml b/cli/.rustfmt.toml deleted file mode 100644 index 2dbdca6..0000000 --- a/cli/.rustfmt.toml +++ /dev/null @@ -1,4 +0,0 @@ -hard_tabs = true -max_width = 120 -use_small_heuristics = "Max" -edition = "2021" diff --git a/cli/Cargo.toml b/cli/Cargo.toml deleted file mode 100644 index 16ca672..0000000 --- a/cli/Cargo.toml +++ /dev/null @@ -1,39 +0,0 @@ -[package] -name = "prdoc" -description = "prdoc is a cli" -authors.workspace = true -version.workspace = true -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -repository.workspace = true -license.workspace = true - -readme = "README.md" - -[dependencies] -prdoclib = { path = "../prdoclib", version = "0.0.0-updated-from-ci" } - -log = "0.4" -exitcode = "1.1" -assert_cmd = "2.0" -color-eyre = "0.6" -env_logger = "0.11" - -serde = { version = "1.0", features = ["derive"] } -serde_yaml = { version = "0.9", optional = false } -serde_json = { version = "1.0", optional = false } -clap = { version = "4", features = [ - "derive", - "env", - "unicode", - "cargo", - "color", - "help", - "usage", - "error-context", - "suggestions", -] } - -[dev-dependencies] -assert_cmd = "2.0" diff --git a/cli/README.md b/cli/README.md deleted file mode 120000 index 32d46ee..0000000 --- a/cli/README.md +++ /dev/null @@ -1 +0,0 @@ -../README.md \ No newline at end of file diff --git a/cli/tests/check.rs b/cli/tests/check.rs deleted file mode 100644 index 925384e..0000000 --- a/cli/tests/check.rs +++ /dev/null @@ -1,65 +0,0 @@ -mod common; - -#[cfg(test)] -mod cli_tests { - - #[cfg(test)] - mod check { - use crate::common::*; - - #[test] - fn it_check_passes() { - let mut cmd = prdoc_bin(); - - let assert = cmd.arg("check").args(["-d", "../tests/data/all"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_check_with_number_when_valid() { - let mut cmd = prdoc_bin(); - - let assert = cmd.args(["check", "-d", "../tests/data/some", "-n", "1234"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_check_with_number_when_invalid() { - let mut cmd = prdoc_bin(); - - let assert = cmd.args(["check", "-d", "../tests/data/some", "-n", "1"]).assert(); - assert.failure().code(exitcode::DATAERR); - } - - #[test] - fn it_check_with_file_when_valid() { - let mut cmd = prdoc_bin(); - let assert = cmd.args(["check", "-f", "pr_1234_some_test_minimal.prdoc"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_check_with_file_and_dir_when_valid() { - let mut cmd = prdoc_bin(); - - let assert = cmd.args(["check", "-f", "pr_1234_some_test_minimal.prdoc"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_check_with_list_all() { - let mut cmd = prdoc_bin(); - - let assert = cmd.args(["check", "--list", "../tests/data/lists/simple/all_good.txt"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_check_with_list_some() { - let mut cmd = prdoc_bin(); - - let assert = cmd.args(["check", "--list", "../tests/data/lists/simple/some_good.txt"]).assert(); - assert.failure().code(exitcode::DATAERR); - } - } -} diff --git a/cli/tests/common.rs b/cli/tests/common.rs deleted file mode 100644 index 1f52ca0..0000000 --- a/cli/tests/common.rs +++ /dev/null @@ -1,11 +0,0 @@ -use assert_cmd::Command; -use prdoclib::config; - -#[cfg(test)] -#[allow(dead_code)] -pub(crate) fn prdoc_bin() -> Command { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).expect("Failed getting test bin"); - cmd.env(config::env::PRDOC_FOLDERS, "../tests/data/all"); - cmd.env(config::env::PRDOC_CONFIG, "../prdoc.toml"); - cmd -} diff --git a/cli/tests/generate.rs b/cli/tests/generate.rs deleted file mode 100644 index 007ebc0..0000000 --- a/cli/tests/generate.rs +++ /dev/null @@ -1,47 +0,0 @@ -mod common; - -#[cfg(test)] -mod cli_tests { - #[cfg(test)] - mod generate { - use crate::common::prdoc_bin; - use std::fs; - - #[test] - fn it_generate_fails_without_number() { - let mut cmd = prdoc_bin(); - let assert = cmd.arg("generate").assert(); - assert.failure().code(2); - } - - #[test] - fn it_generate_with_number() { - let mut cmd = prdoc_bin(); - let assert = cmd.args(["generate", "--dry-run", "42"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_does_not_overwrite() { - // Ensure we start without a file so the first generate always work - let _ = fs::remove_file("/tmp/pr_9999.prdoc"); - - let mut cmd = prdoc_bin(); - let assert = cmd.args(["generate", "--output-dir", "/tmp", "9999"]).assert(); - assert.success().code(exitcode::OK); - - let mut cmd = prdoc_bin(); - let assert = cmd.args(["generate", "--output-dir", "/tmp", "9999"]).assert(); - assert.failure().code(exitcode::IOERR); - } - - #[test] - fn it_should_not_fail() { - let _ = fs::remove_file("/tmp/prdoc/pr_9998.prdoc"); - - let mut cmd = prdoc_bin(); - let assert = cmd.args(["generate", "-d", "/tmp/prdoc/", "9998"]).assert(); - assert.success().code(exitcode::OK); - } - } -} diff --git a/cli/tests/load.rs b/cli/tests/load.rs deleted file mode 100644 index 7c2b55d..0000000 --- a/cli/tests/load.rs +++ /dev/null @@ -1,67 +0,0 @@ -mod common; - -#[cfg(test)] -mod cli_tests { - #[cfg(test)] - mod check { - use crate::common::prdoc_bin; - use assert_cmd::Command; - use std::env; - - #[test] - fn it_loads_one_file() { - let mut cmd = prdoc_bin(); - - let assert = cmd.arg("load").args(["-d", "../tests/data/all"]).args(["--file", "pr_1237.prdoc"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_loads_one_by_number() { - let mut cmd = prdoc_bin(); - let assert = cmd.arg("load").args(["-d", "../tests/data/all", "-n", "1237"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_loads_some_by_number() { - let mut cmd = prdoc_bin(); - let assert = cmd.arg("load").args(["-d", "../tests/data/all", "-n", "1234", "-n", "1237"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_loads_all_by_folder() { - let mut cmd = prdoc_bin(); - let assert = cmd.arg("load").args(["-d", "../tests/data/all"]).assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_loads_some_by_folder() { - let mut cmd = prdoc_bin(); - let assert = cmd.arg("load").args(["-d", "../tests/data/some"]).assert(); - assert.failure().code(65); - } - - #[test] - fn it_loads_all_by_list() { - let mut cmd = prdoc_bin(); - let assert = cmd - .arg("load") - .args(["-d", "../tests/data/all", "--list", "../tests/data/lists/simple/all_good.txt"]) - .assert(); - assert.success().code(exitcode::OK); - } - - #[test] - fn it_loads_some_by_list() { - let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).expect("Failed getting test bin"); - let assert = cmd - .arg("load") - .args(["-d", "../tests/data/some", "--list", "../tests/data/lists/simple/some_good.txt"]) - .assert(); - assert.failure().code(65); - } - } -} diff --git a/cli/tests/scan.rs b/cli/tests/scan.rs deleted file mode 100644 index 5b07228..0000000 --- a/cli/tests/scan.rs +++ /dev/null @@ -1,16 +0,0 @@ -mod common; - -#[cfg(test)] -mod cli_tests { - #[cfg(test)] - mod scan { - use crate::common::prdoc_bin; - - #[test] - fn it_provides_a_scan() { - let mut cmd = prdoc_bin(); - let assert = cmd.args(["-d", "../tests/data/some"]).args(["scan"]).assert(); - assert.success().code(exitcode::OK); - } - } -} diff --git a/prdoclib/Cargo.toml b/prdoclib/Cargo.toml deleted file mode 100644 index 2da5908..0000000 --- a/prdoclib/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "prdoclib" -description = "prdoclib is a lib" -authors.workspace = true -version.workspace = true -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -repository.workspace = true -license.workspace = true - -[dependencies] -log = "0.4" -regex = "1.10" -exitcode = "1.1" -thiserror = "1.0" -serde = { version = "1.0", features = ["derive"] } -serde_yaml = { version = "0.9", optional = false } -serde_json = { version = "1.0", optional = false } -valico = { version = "4.0", default-features = false, features = [] } -toml = "0.8.19" diff --git a/prdoclib/README.md b/prdoclib/README.md deleted file mode 120000 index 32d46ee..0000000 --- a/prdoclib/README.md +++ /dev/null @@ -1 +0,0 @@ -../README.md \ No newline at end of file diff --git a/prdoclib/template.prdoc b/prdoclib/template.prdoc deleted file mode 120000 index be10d87..0000000 --- a/prdoclib/template.prdoc +++ /dev/null @@ -1 +0,0 @@ -../template.prdoc \ No newline at end of file diff --git a/cli/src/main.rs b/src/bin/prdoc/main.rs similarity index 86% rename from cli/src/main.rs rename to src/bin/prdoc/main.rs index 9357e0c..e70ca72 100644 --- a/cli/src/main.rs +++ b/src/bin/prdoc/main.rs @@ -1,4 +1,5 @@ -//! Entry point of the cli. The cli itself does not contain much, it is mostly a shell around the [prdoclib]. +//! Entry point of the cli. The cli itself does not contain much, it is mostly a shell around the +//! [prdoclib]. #![warn(missing_docs)] mod opts; @@ -16,12 +17,10 @@ use prdoclib::{ }, common::PRNumber, config::Config, - prdoc_source::PRDocSource, - prdoc_source::PRDocSource::File, + prdoc_source::{PRDocSource, PRDocSource::File}, schema::Schema, }; -use std::cmp::Ordering; -use std::{collections::HashSet, env, path::PathBuf}; +use std::{cmp::Ordering, collections::HashSet, env, path::PathBuf}; /// Main entry point of the cli fn main() -> color_eyre::Result<()> { @@ -35,11 +34,11 @@ fn main() -> color_eyre::Result<()> { Ok(c) => { log::debug!("Config found: {:#?}", c); c - } + }, Err(_e) => { log::warn!("No config could be found, using default"); Config::get_default_config() - } + }, }; let prdoc_dir: Vec = match (&config.prdoc_folders, opts.prdoc_folders) { @@ -56,14 +55,20 @@ fn main() -> color_eyre::Result<()> { let template_path = prdoclib::utils::get_template_path(&config); log::debug!("PRDoc folder: {dir:?}"); - match GenerateCmd::run(cmd_opts.dry_run, cmd_opts.number, None, Some(dir), template_path) { + match GenerateCmd::run( + cmd_opts.dry_run, + cmd_opts.number, + None, + Some(dir), + template_path, + ) { Ok(_) => Ok(()), Err(e) => { log::error!("{e}"); std::process::exit(exitcode::IOERR); - } + }, } - } + }, Some(SubCommand::Check(cmd_opts)) => { log::debug!("cmd_opts: {cmd_opts:#?}"); @@ -84,8 +89,8 @@ fn main() -> color_eyre::Result<()> { results.sort_by(|a, b| match (&a.0, &b.0) { (File(path_a), File(path_b)) => path_a.cmp(path_b), - (PRDocSource::Number(num_a), PRDocSource::Number(num_b)) - | (PRDocSource::Both(_, num_a), PRDocSource::Both(_, num_b)) => num_a.cmp(num_b), + (PRDocSource::Number(num_a), PRDocSource::Number(num_b)) | + (PRDocSource::Both(_, num_a), PRDocSource::Both(_, num_b)) => num_a.cmp(num_b), _ => Ordering::Greater, }); @@ -102,7 +107,8 @@ fn main() -> color_eyre::Result<()> { let plural_s = if results.len() > 1 { "s" } else { "" }; println!("Checked {} file{plural_s}.", results.len()); } else { - let json = serde_json::to_string_pretty(&results).expect("We can serialize the result"); + let json = + serde_json::to_string_pretty(&results).expect("We can serialize the result"); println!("{json}"); } @@ -112,7 +118,7 @@ fn main() -> color_eyre::Result<()> { } else { std::process::exit(exitcode::DATAERR) } - } + }, Some(SubCommand::Scan(cmd_opts)) => { let schema_path = config.schema_path(); @@ -146,12 +152,16 @@ fn main() -> color_eyre::Result<()> { println!( "{number}\t{file}", file = f.display(), - number = if let Some(number) = n { number.to_string() } else { "n/a".to_string() } + number = if let Some(number) = n { + number.to_string() + } else { + "n/a".to_string() + } ); }); } Ok(()) - } + }, Some(SubCommand::Load(cmd_opts)) => { log::debug!("cmd_opts: {cmd_opts:#?}"); @@ -185,9 +195,9 @@ fn main() -> color_eyre::Result<()> { } else { std::process::exit(exitcode::DATAERR) } - } + }, - None => { + None => if opts.version { let name = crate_name!(); let version = crate_version!(); @@ -195,7 +205,6 @@ fn main() -> color_eyre::Result<()> { Ok(()) } else { unreachable!("We show help if there is no arg"); - } - } + }, } } diff --git a/cli/src/opts.rs b/src/bin/prdoc/opts.rs similarity index 97% rename from cli/src/opts.rs rename to src/bin/prdoc/opts.rs index 8d4b04f..9ad870c 100644 --- a/cli/src/opts.rs +++ b/src/bin/prdoc/opts.rs @@ -109,8 +109,8 @@ pub struct LoadOpts { pub file: Option, /// One or more PR numbers. - /// Depending on the host OS, the max length of a command may differ. If you run into issues, make sure to check the - /// `--list` option instead. + /// Depending on the host OS, the max length of a command may differ. If you run into issues, + /// make sure to check the `--list` option instead. #[clap(short, long)] pub number: Option>, diff --git a/prdoclib/src/commands/check.rs b/src/commands/check.rs similarity index 100% rename from prdoclib/src/commands/check.rs rename to src/commands/check.rs diff --git a/prdoclib/src/commands/generate.rs b/src/commands/generate.rs similarity index 98% rename from prdoclib/src/commands/generate.rs rename to src/commands/generate.rs index 83b80d6..7163c5d 100644 --- a/prdoclib/src/commands/generate.rs +++ b/src/commands/generate.rs @@ -23,7 +23,7 @@ impl GenerateCmd { Ok(dir) => dir.join(PRDOC_DEFAULT_DIR), Err(e) => { eprint!("Project root not found, falling back to the current folder: {e:?}"); - PathBuf::from(".") + PathBuf::from("../..") }, } } diff --git a/prdoclib/src/commands/load.rs b/src/commands/load.rs similarity index 100% rename from prdoclib/src/commands/load.rs rename to src/commands/load.rs diff --git a/prdoclib/src/commands/mod.rs b/src/commands/mod.rs similarity index 100% rename from prdoclib/src/commands/mod.rs rename to src/commands/mod.rs diff --git a/prdoclib/src/commands/scan.rs b/src/commands/scan.rs similarity index 89% rename from prdoclib/src/commands/scan.rs rename to src/commands/scan.rs index 4294b37..3e0b018 100644 --- a/prdoclib/src/commands/scan.rs +++ b/src/commands/scan.rs @@ -1,4 +1,6 @@ -//! Implementation of the scan command. The scan command searches for files that could +//! Implementation of the scan command. +//! +//! The scan command searches for files that could //! potentially be PRDOC files. It does not check the validity of the files and the scanning is //! solely done based on the filenames diff --git a/prdoclib/src/commands/version.rs b/src/commands/version.rs similarity index 100% rename from prdoclib/src/commands/version.rs rename to src/commands/version.rs diff --git a/prdoclib/src/common.rs b/src/common.rs similarity index 100% rename from prdoclib/src/common.rs rename to src/common.rs diff --git a/prdoclib/src/config.rs b/src/config.rs similarity index 100% rename from prdoclib/src/config.rs rename to src/config.rs diff --git a/prdoclib/src/doc_filename.rs b/src/doc_filename.rs similarity index 94% rename from prdoclib/src/doc_filename.rs rename to src/doc_filename.rs index d201123..c9bf372 100644 --- a/prdoclib/src/doc_filename.rs +++ b/src/doc_filename.rs @@ -15,9 +15,10 @@ use crate::{ title::Title, }; +/// Helps to build and check filenames for prdoc +/// /// A `prdoc` is made of its content: a [DocFile](/prdoclib::docfile::DocFile) but also requires a -/// valid filename. This struct describe the filename pattern and provide helpers to build and check -/// valid `prdoc` filenames. +/// valid filename. #[derive(Debug, PartialEq, Serialize, Hash, Eq)] pub struct DocFileName { /// The PR number @@ -200,15 +201,15 @@ mod test_doc_file_name { #[test] fn test_find() { assert_eq!( - PathBuf::from("../tests/data/some/pr_1234_some_test_minimal.prdoc"), - DocFileName::find(1234, None, &PathBuf::from("../tests/data/some")).unwrap() + PathBuf::from("./tests/data/some/pr_1234_some_test_minimal.prdoc"), + DocFileName::find(1234, None, &PathBuf::from("./tests/data/some")).unwrap() ); } #[test] fn test_from_pathbuf() { let dfn = DocFileName::try_from(&PathBuf::from( - "../tests/data/some/pr_1234_some_test_minimal.prdoc", + "./tests/data/some/pr_1234_some_test_minimal.prdoc", )) .unwrap(); assert_eq!(1234, dfn.number); diff --git a/prdoclib/src/docfile.rs b/src/docfile.rs similarity index 100% rename from prdoclib/src/docfile.rs rename to src/docfile.rs diff --git a/prdoclib/src/docfile_wrapper.rs b/src/docfile_wrapper.rs similarity index 100% rename from prdoclib/src/docfile_wrapper.rs rename to src/docfile_wrapper.rs diff --git a/prdoclib/src/error.rs b/src/error.rs similarity index 100% rename from prdoclib/src/error.rs rename to src/error.rs diff --git a/prdoclib/src/lib.rs b/src/lib.rs similarity index 100% rename from prdoclib/src/lib.rs rename to src/lib.rs diff --git a/prdoclib/src/prdoc_source.rs b/src/prdoc_source.rs similarity index 100% rename from prdoclib/src/prdoc_source.rs rename to src/prdoc_source.rs diff --git a/prdoclib/src/schema.rs b/src/schema.rs similarity index 90% rename from prdoclib/src/schema.rs rename to src/schema.rs index 5c2b0ba..fe593c0 100644 --- a/prdoclib/src/schema.rs +++ b/src/schema.rs @@ -90,16 +90,16 @@ mod test_schema_validation { #[test] fn test_load_valid_1234() { - let schema = Schema::new("../tests/data/sample_schema.json".into()); - let file = PathBuf::from("../tests/data/some/pr_1234_some_test_minimal.prdoc"); + let schema = Schema::new("./tests/data/sample_schema.json".into()); + let file = PathBuf::from("./tests/data/some/pr_1234_some_test_minimal.prdoc"); assert!(schema.load(&file).is_ok()); } #[test] fn test_check_valid_1234() { - let schema = Schema::new("../tests/data/sample_schema.json".into()); + let schema = Schema::new("./tests/data/sample_schema.json".into()); - let file = PathBuf::from("../tests/data/some/pr_1234_some_test_minimal.prdoc"); + let file = PathBuf::from("./tests/data/some/pr_1234_some_test_minimal.prdoc"); assert!(schema.check_file(&file)); } } diff --git a/prdoclib/src/title.rs b/src/title.rs similarity index 100% rename from prdoclib/src/title.rs rename to src/title.rs diff --git a/prdoclib/src/utils.rs b/src/utils.rs similarity index 100% rename from prdoclib/src/utils.rs rename to src/utils.rs