diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bda5b9b..48c90b4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,6 +41,9 @@ jobs: - name: Run tests run: cargo test --target=${{ matrix.target.arch }} --verbose if: ${{ matrix.target.skip-test != true }} + - name: Publish dry-run + run: cargo publish --dry-run -p csaf-rs --target=${{ matrix.target.arch }} --verbose + if: ${{ matrix.target.skip-test != true }} - name: Archive csaf-validator (${{ matrix.target.arch }}) uses: actions/upload-artifact@v4 with: diff --git a/Cargo.lock b/Cargo.lock index 282db25..f460efa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -183,8 +183,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "csaf-lib" -version = "0.1.0" +name = "csaf-rs" +version = "0.1.2" dependencies = [ "chrono", "glob", @@ -202,11 +202,11 @@ dependencies = [ [[package]] name = "csaf-validator" -version = "0.1.0" +version = "0.1.2" dependencies = [ "anyhow", "clap", - "csaf-lib", + "csaf-rs", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2c11187..e25f8ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,3 @@ [workspace] -members = ["csaf-validator", "csaf-lib"] +members = ["csaf-validator", "csaf-rs"] resolver = "2" \ No newline at end of file diff --git a/csaf-lib/Cargo.lock b/csaf-rs/Cargo.lock similarity index 100% rename from csaf-lib/Cargo.lock rename to csaf-rs/Cargo.lock diff --git a/csaf-lib/Cargo.toml b/csaf-rs/Cargo.toml similarity index 60% rename from csaf-lib/Cargo.toml rename to csaf-rs/Cargo.toml index ed61225..1b96dd2 100644 --- a/csaf-lib/Cargo.toml +++ b/csaf-rs/Cargo.toml @@ -1,6 +1,11 @@ [package] -name = "csaf-lib" -version = "0.1.0" +name = "csaf-rs" +description = "A parser for the CSAF standard written in Rust" +license = "Apache-2.0" +repository = "http://github.com/csaf-poc/csaf-rust" +keywords = ["csaf"] +readme = "../README.md" +version = "0.1.2" edition = "2021" [dependencies] diff --git a/csaf-lib/build.rs b/csaf-rs/build.rs similarity index 72% rename from csaf-lib/build.rs rename to csaf-rs/build.rs index 0bfe036..255e9cc 100644 --- a/csaf-lib/build.rs +++ b/csaf-rs/build.rs @@ -18,6 +18,21 @@ pub enum BuildError { } fn main() -> Result<(), BuildError> { + // We only need to generate these files as part of our cargo build process, + // not if we are publishing or getting built by cargo from a crates.io + // package. This is because the files are generated from the JSON schema + // files, which are not included in the published package. + let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR")); + if manifest_dir.to_string_lossy().contains("target/package") { + // If we're in target/package/, we don't need to generate the files + // because they are already generated in the package. + return Ok(()); + } else if manifest_dir.to_string_lossy().contains("crates.io") { + // If we're in a crates.io folder we don't need to generate the files + // because they are already generated in the debug build. + return Ok(()); + } + build( "./src/csaf/csaf2_0/csaf_json_schema.json", "csaf/csaf2_0/schema.rs", @@ -42,8 +57,8 @@ fn main() -> Result<(), BuildError> { Ok(()) } -fn build(input: &str, output: &str, no_date_time: bool) -> Result<(), BuildError> { - let content = fs::read_to_string(input)?; +fn build(input: &str, output: &str, no_date_time: bool) -> Result<(), BuildError> { + let content = fs::read_to_string(&input)?; let mut schema_value = serde_json::from_str(&content)?; if no_date_time { // Recursively search for "format": "date-time" and remove this format diff --git a/csaf-lib/src/csaf/csaf2_0/csaf_json_schema.json b/csaf-rs/src/csaf/csaf2_0/csaf_json_schema.json similarity index 100% rename from csaf-lib/src/csaf/csaf2_0/csaf_json_schema.json rename to csaf-rs/src/csaf/csaf2_0/csaf_json_schema.json diff --git a/csaf-lib/src/csaf/csaf2_0/getter_implementations.rs b/csaf-rs/src/csaf/csaf2_0/getter_implementations.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_0/getter_implementations.rs rename to csaf-rs/src/csaf/csaf2_0/getter_implementations.rs diff --git a/csaf-lib/src/csaf/csaf2_0/loader.rs b/csaf-rs/src/csaf/csaf2_0/loader.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_0/loader.rs rename to csaf-rs/src/csaf/csaf2_0/loader.rs diff --git a/csaf-lib/src/csaf/csaf2_0/mod.rs b/csaf-rs/src/csaf/csaf2_0/mod.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_0/mod.rs rename to csaf-rs/src/csaf/csaf2_0/mod.rs diff --git a/csaf-lib/src/csaf/csaf2_0/schema.rs b/csaf-rs/src/csaf/csaf2_0/schema.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_0/schema.rs rename to csaf-rs/src/csaf/csaf2_0/schema.rs diff --git a/csaf-lib/src/csaf/csaf2_0/validation.rs b/csaf-rs/src/csaf/csaf2_0/validation.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_0/validation.rs rename to csaf-rs/src/csaf/csaf2_0/validation.rs diff --git a/csaf-lib/src/csaf/csaf2_1/csaf.json b/csaf-rs/src/csaf/csaf2_1/csaf.json similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/csaf.json rename to csaf-rs/src/csaf/csaf2_1/csaf.json diff --git a/csaf-lib/src/csaf/csaf2_1/getter_implementations.rs b/csaf-rs/src/csaf/csaf2_1/getter_implementations.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/getter_implementations.rs rename to csaf-rs/src/csaf/csaf2_1/getter_implementations.rs diff --git a/csaf-lib/src/csaf/csaf2_1/loader.rs b/csaf-rs/src/csaf/csaf2_1/loader.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/loader.rs rename to csaf-rs/src/csaf/csaf2_1/loader.rs diff --git a/csaf-lib/src/csaf/csaf2_1/mod.rs b/csaf-rs/src/csaf/csaf2_1/mod.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/mod.rs rename to csaf-rs/src/csaf/csaf2_1/mod.rs diff --git a/csaf-lib/src/csaf/csaf2_1/schema.rs b/csaf-rs/src/csaf/csaf2_1/schema.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/schema.rs rename to csaf-rs/src/csaf/csaf2_1/schema.rs diff --git a/csaf-lib/src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json b/csaf-rs/src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json rename to csaf-rs/src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json diff --git a/csaf-lib/src/csaf/csaf2_1/ssvc_dp_schema.rs b/csaf-rs/src/csaf/csaf2_1/ssvc_dp_schema.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/ssvc_dp_schema.rs rename to csaf-rs/src/csaf/csaf2_1/ssvc_dp_schema.rs diff --git a/csaf-lib/src/csaf/csaf2_1/ssvc_schema.rs b/csaf-rs/src/csaf/csaf2_1/ssvc_schema.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/ssvc_schema.rs rename to csaf-rs/src/csaf/csaf2_1/ssvc_schema.rs diff --git a/csaf-lib/src/csaf/csaf2_1/validation.rs b/csaf-rs/src/csaf/csaf2_1/validation.rs similarity index 100% rename from csaf-lib/src/csaf/csaf2_1/validation.rs rename to csaf-rs/src/csaf/csaf2_1/validation.rs diff --git a/csaf-lib/src/csaf/getter_traits.rs b/csaf-rs/src/csaf/getter_traits.rs similarity index 100% rename from csaf-lib/src/csaf/getter_traits.rs rename to csaf-rs/src/csaf/getter_traits.rs diff --git a/csaf-lib/src/csaf/helpers.rs b/csaf-rs/src/csaf/helpers.rs similarity index 100% rename from csaf-lib/src/csaf/helpers.rs rename to csaf-rs/src/csaf/helpers.rs diff --git a/csaf-lib/src/csaf/mod.rs b/csaf-rs/src/csaf/mod.rs similarity index 100% rename from csaf-lib/src/csaf/mod.rs rename to csaf-rs/src/csaf/mod.rs diff --git a/csaf-lib/src/csaf/product_helpers.rs b/csaf-rs/src/csaf/product_helpers.rs similarity index 100% rename from csaf-lib/src/csaf/product_helpers.rs rename to csaf-rs/src/csaf/product_helpers.rs diff --git a/csaf-lib/src/csaf/test_helper.rs b/csaf-rs/src/csaf/test_helper.rs similarity index 100% rename from csaf-lib/src/csaf/test_helper.rs rename to csaf-rs/src/csaf/test_helper.rs diff --git a/csaf-lib/src/csaf/validation.rs b/csaf-rs/src/csaf/validation.rs similarity index 100% rename from csaf-lib/src/csaf/validation.rs rename to csaf-rs/src/csaf/validation.rs diff --git a/csaf-lib/src/csaf/validations/mod.rs b/csaf-rs/src/csaf/validations/mod.rs similarity index 100% rename from csaf-lib/src/csaf/validations/mod.rs rename to csaf-rs/src/csaf/validations/mod.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_01.rs b/csaf-rs/src/csaf/validations/test_6_1_01.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_01.rs rename to csaf-rs/src/csaf/validations/test_6_1_01.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_02.rs b/csaf-rs/src/csaf/validations/test_6_1_02.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_02.rs rename to csaf-rs/src/csaf/validations/test_6_1_02.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_03.rs b/csaf-rs/src/csaf/validations/test_6_1_03.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_03.rs rename to csaf-rs/src/csaf/validations/test_6_1_03.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_04.rs b/csaf-rs/src/csaf/validations/test_6_1_04.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_04.rs rename to csaf-rs/src/csaf/validations/test_6_1_04.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_05.rs b/csaf-rs/src/csaf/validations/test_6_1_05.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_05.rs rename to csaf-rs/src/csaf/validations/test_6_1_05.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_06.rs b/csaf-rs/src/csaf/validations/test_6_1_06.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_06.rs rename to csaf-rs/src/csaf/validations/test_6_1_06.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_07.rs b/csaf-rs/src/csaf/validations/test_6_1_07.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_07.rs rename to csaf-rs/src/csaf/validations/test_6_1_07.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_34.rs b/csaf-rs/src/csaf/validations/test_6_1_34.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_34.rs rename to csaf-rs/src/csaf/validations/test_6_1_34.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_35.rs b/csaf-rs/src/csaf/validations/test_6_1_35.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_35.rs rename to csaf-rs/src/csaf/validations/test_6_1_35.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_36.rs b/csaf-rs/src/csaf/validations/test_6_1_36.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_36.rs rename to csaf-rs/src/csaf/validations/test_6_1_36.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_37.rs b/csaf-rs/src/csaf/validations/test_6_1_37.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_37.rs rename to csaf-rs/src/csaf/validations/test_6_1_37.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_38.rs b/csaf-rs/src/csaf/validations/test_6_1_38.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_38.rs rename to csaf-rs/src/csaf/validations/test_6_1_38.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_39.rs b/csaf-rs/src/csaf/validations/test_6_1_39.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_39.rs rename to csaf-rs/src/csaf/validations/test_6_1_39.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_40.rs b/csaf-rs/src/csaf/validations/test_6_1_40.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_40.rs rename to csaf-rs/src/csaf/validations/test_6_1_40.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_41.rs b/csaf-rs/src/csaf/validations/test_6_1_41.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_41.rs rename to csaf-rs/src/csaf/validations/test_6_1_41.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_42.rs b/csaf-rs/src/csaf/validations/test_6_1_42.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_42.rs rename to csaf-rs/src/csaf/validations/test_6_1_42.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_43.rs b/csaf-rs/src/csaf/validations/test_6_1_43.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_43.rs rename to csaf-rs/src/csaf/validations/test_6_1_43.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_44.rs b/csaf-rs/src/csaf/validations/test_6_1_44.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_44.rs rename to csaf-rs/src/csaf/validations/test_6_1_44.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_45.rs b/csaf-rs/src/csaf/validations/test_6_1_45.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_45.rs rename to csaf-rs/src/csaf/validations/test_6_1_45.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_46.rs b/csaf-rs/src/csaf/validations/test_6_1_46.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_46.rs rename to csaf-rs/src/csaf/validations/test_6_1_46.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_47.rs b/csaf-rs/src/csaf/validations/test_6_1_47.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_47.rs rename to csaf-rs/src/csaf/validations/test_6_1_47.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_48.rs b/csaf-rs/src/csaf/validations/test_6_1_48.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_48.rs rename to csaf-rs/src/csaf/validations/test_6_1_48.rs diff --git a/csaf-lib/src/csaf/validations/test_6_1_49.rs b/csaf-rs/src/csaf/validations/test_6_1_49.rs similarity index 100% rename from csaf-lib/src/csaf/validations/test_6_1_49.rs rename to csaf-rs/src/csaf/validations/test_6_1_49.rs diff --git a/csaf-lib/src/lib.rs b/csaf-rs/src/lib.rs similarity index 100% rename from csaf-lib/src/lib.rs rename to csaf-rs/src/lib.rs diff --git a/csaf-validator/Cargo.toml b/csaf-validator/Cargo.toml index 22c8b7d..36062d5 100644 --- a/csaf-validator/Cargo.toml +++ b/csaf-validator/Cargo.toml @@ -1,9 +1,14 @@ [package] name = "csaf-validator" -version = "0.1.0" +description = "A validator for the CSAF standard written in Rust" +license = "Apache-2.0" +repository = "http://github.com/csaf-poc/csaf-rust" +keywords = ["csaf"] +readme = "../README.md" +version = "0.1.2" edition = "2021" [dependencies] -csaf-lib = { path = "../csaf-lib" } +csaf-rs = { path = "../csaf-rs", version = "0.1.2" } anyhow = "1.0.93" clap = { version = "4.5.23", features = ["derive"] } diff --git a/csaf-validator/src/main.rs b/csaf-validator/src/main.rs index 77642a9..5fc7570 100644 --- a/csaf-validator/src/main.rs +++ b/csaf-validator/src/main.rs @@ -1,8 +1,8 @@ use std::str::FromStr; use anyhow::{bail, Result}; -use csaf_lib::csaf::csaf2_0::loader::load_document as load_document_2_0; -use csaf_lib::csaf::csaf2_1::loader::load_document as load_document_2_1; -use csaf_lib::csaf::validation::{validate_by_preset, validate_by_test, Validatable, ValidationPreset}; +use csaf_rs::csaf::csaf2_0::loader::load_document as load_document_2_0; +use csaf_rs::csaf::csaf2_1::loader::load_document as load_document_2_1; +use csaf_rs::csaf::validation::{validate_by_preset, validate_by_test, Validatable, ValidationPreset}; use clap::Parser; /// A validator for CSAF documents