From a819836f342932a0de7a96cb18ffbcb02bc58f1b Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 13:08:33 +0200 Subject: [PATCH 1/7] Preparation for crates.io publishing --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- csaf | 2 +- {csaf-lib => csaf-rs}/Cargo.lock | 0 {csaf-lib => csaf-rs}/Cargo.toml | 6 +++++- {csaf-lib => csaf-rs}/build.rs | 0 .../src/csaf/csaf2_0/csaf_json_schema.json | 0 .../src/csaf/csaf2_0/getter_implementations.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_0/loader.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_0/mod.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_0/schema.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_0/validation.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/csaf.json | 0 .../src/csaf/csaf2_1/getter_implementations.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/loader.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/mod.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/schema.rs | 0 .../src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/ssvc_dp_schema.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/ssvc_schema.rs | 0 {csaf-lib => csaf-rs}/src/csaf/csaf2_1/validation.rs | 0 {csaf-lib => csaf-rs}/src/csaf/getter_traits.rs | 0 {csaf-lib => csaf-rs}/src/csaf/helpers.rs | 0 {csaf-lib => csaf-rs}/src/csaf/mod.rs | 0 {csaf-lib => csaf-rs}/src/csaf/product_helpers.rs | 0 {csaf-lib => csaf-rs}/src/csaf/test_helper.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validation.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/mod.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_01.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_02.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_03.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_04.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_05.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_06.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_07.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_34.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_35.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_36.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_37.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_38.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_39.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_40.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_41.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_42.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_43.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_44.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_45.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_46.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_47.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_48.rs | 0 {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_49.rs | 0 {csaf-lib => csaf-rs}/src/lib.rs | 0 csaf-validator/Cargo.toml | 6 +++++- csaf-validator/src/main.rs | 6 +++--- ssvc | 2 +- 55 files changed, 18 insertions(+), 10 deletions(-) rename {csaf-lib => csaf-rs}/Cargo.lock (100%) rename {csaf-lib => csaf-rs}/Cargo.toml (66%) rename {csaf-lib => csaf-rs}/build.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_0/csaf_json_schema.json (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_0/getter_implementations.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_0/loader.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_0/mod.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_0/schema.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_0/validation.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/csaf.json (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/getter_implementations.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/loader.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/mod.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/schema.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/ssvc_dp_schema.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/ssvc_schema.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/csaf2_1/validation.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/getter_traits.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/helpers.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/mod.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/product_helpers.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/test_helper.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validation.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/mod.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_01.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_02.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_03.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_04.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_05.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_06.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_07.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_34.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_35.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_36.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_37.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_38.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_39.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_40.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_41.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_42.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_43.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_44.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_45.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_46.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_47.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_48.rs (100%) rename {csaf-lib => csaf-rs}/src/csaf/validations/test_6_1_49.rs (100%) rename {csaf-lib => csaf-rs}/src/lib.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 282db25..d84640b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -183,7 +183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "csaf-lib" +name = "csaf-rs" version = "0.1.0" dependencies = [ "chrono", @@ -206,7 +206,7 @@ version = "0.1.0" 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 b/csaf index bf62791..62fb87c 160000 --- a/csaf +++ b/csaf @@ -1 +1 @@ -Subproject commit bf6279113d14f731aa92f2e0fd6944c8938a2d6c +Subproject commit 62fb87c6b6d0754bf0a4df20fc9e3d387497d0fe 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 66% rename from csaf-lib/Cargo.toml rename to csaf-rs/Cargo.toml index ed61225..3043eb5 100644 --- a/csaf-lib/Cargo.toml +++ b/csaf-rs/Cargo.toml @@ -1,5 +1,9 @@ [package] -name = "csaf-lib" +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"] version = "0.1.0" edition = "2021" diff --git a/csaf-lib/build.rs b/csaf-rs/build.rs similarity index 100% rename from csaf-lib/build.rs rename to csaf-rs/build.rs 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..b3e8164 100644 --- a/csaf-validator/Cargo.toml +++ b/csaf-validator/Cargo.toml @@ -1,9 +1,13 @@ [package] name = "csaf-validator" +description = "A validator for the CSAF standard written in Rust" +license = "Apache-2.0" +repository = "http://github.com/csaf-poc/csaf-rust" +keywords = ["csaf"] version = "0.1.0" edition = "2021" [dependencies] -csaf-lib = { path = "../csaf-lib" } +csaf-rs = { path = "../csaf-rs" } 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 diff --git a/ssvc b/ssvc index 34b5e9b..6557e21 160000 --- a/ssvc +++ b/ssvc @@ -1 +1 @@ -Subproject commit 34b5e9b3db970826a3122baa3b79f4dc51039aab +Subproject commit 6557e21cac6951704b28034e9f137bde8f4049d5 From 53ff890436da718cd3ed258c844d29a425823d9b Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 13:11:22 +0200 Subject: [PATCH 2/7] Restored csaf ssvc --- csaf | 2 +- ssvc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csaf b/csaf index 62fb87c..7265d64 160000 --- a/csaf +++ b/csaf @@ -1 +1 @@ -Subproject commit 62fb87c6b6d0754bf0a4df20fc9e3d387497d0fe +Subproject commit 7265d6414a652ca53c87e92e8b3d9249f54258df diff --git a/ssvc b/ssvc index 6557e21..d7bb91a 160000 --- a/ssvc +++ b/ssvc @@ -1 +1 @@ -Subproject commit 6557e21cac6951704b28034e9f137bde8f4049d5 +Subproject commit d7bb91abe1f63794fd8bf26b5011cfb8d6e12a16 From 3be248148a9b2e90cb2885c3bd6694f0aebdd9a4 Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 13:13:47 +0200 Subject: [PATCH 3/7] Restored csaf ssvc --- csaf | 2 +- ssvc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csaf b/csaf index 7265d64..bf62791 160000 --- a/csaf +++ b/csaf @@ -1 +1 @@ -Subproject commit 7265d6414a652ca53c87e92e8b3d9249f54258df +Subproject commit bf6279113d14f731aa92f2e0fd6944c8938a2d6c diff --git a/ssvc b/ssvc index d7bb91a..34b5e9b 160000 --- a/ssvc +++ b/ssvc @@ -1 +1 @@ -Subproject commit d7bb91abe1f63794fd8bf26b5011cfb8d6e12a16 +Subproject commit 34b5e9b3db970826a3122baa3b79f4dc51039aab From 02bc210fbac3a8ee3ab700ccafe53a9dd7a96d04 Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 13:45:40 +0200 Subject: [PATCH 4/7] Moved git submodules --- .gitmodules | 8 ++++---- csaf-rs/build.rs | 2 +- csaf => csaf-rs/csaf | 0 ssvc => csaf-rs/ssvc | 0 4 files changed, 5 insertions(+), 5 deletions(-) rename csaf => csaf-rs/csaf (100%) rename ssvc => csaf-rs/ssvc (100%) diff --git a/.gitmodules b/.gitmodules index 583660a..b344db6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +1,8 @@ -[submodule "csaf"] - path = csaf +[submodule "csaf-rs/csaf"] + path = csaf-rs/csaf url = https://github.com/oasis-tcs/csaf branch = master -[submodule "ssvc"] - path = ssvc +[submodule "csaf-rs/ssvc"] + path = csaf-rs/ssvc url = https://github.com/CERTCC/SSVC.git branch = main diff --git a/csaf-rs/build.rs b/csaf-rs/build.rs index 0bfe036..3c030fc 100644 --- a/csaf-rs/build.rs +++ b/csaf-rs/build.rs @@ -34,7 +34,7 @@ fn main() -> Result<(), BuildError> { true, )?; build( - "../ssvc/data/schema/v1/Decision_Point-1-0-1.schema.json", + "ssvc/data/schema/v1/Decision_Point-1-0-1.schema.json", "csaf/csaf2_1/ssvc_dp_schema.rs", false, )?; diff --git a/csaf b/csaf-rs/csaf similarity index 100% rename from csaf rename to csaf-rs/csaf diff --git a/ssvc b/csaf-rs/ssvc similarity index 100% rename from ssvc rename to csaf-rs/ssvc From 1c3b6041ef8e7a7aa72a8e706e7eac22b3fe6835 Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 14:03:09 +0200 Subject: [PATCH 5/7] Fixed build/publish --- .github/workflows/build.yml | 3 +++ .gitmodules | 8 ++++---- csaf-rs/csaf => csaf | 0 csaf-rs/build.rs | 28 ++++++++++++++++++++++++++-- csaf-validator/Cargo.toml | 2 +- csaf-rs/ssvc => ssvc | 0 6 files changed, 34 insertions(+), 7 deletions(-) rename csaf-rs/csaf => csaf (100%) rename csaf-rs/ssvc => ssvc (100%) 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/.gitmodules b/.gitmodules index b344db6..583660a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +1,8 @@ -[submodule "csaf-rs/csaf"] - path = csaf-rs/csaf +[submodule "csaf"] + path = csaf url = https://github.com/oasis-tcs/csaf branch = master -[submodule "csaf-rs/ssvc"] - path = csaf-rs/ssvc +[submodule "ssvc"] + path = ssvc url = https://github.com/CERTCC/SSVC.git branch = main diff --git a/csaf-rs/csaf b/csaf similarity index 100% rename from csaf-rs/csaf rename to csaf diff --git a/csaf-rs/build.rs b/csaf-rs/build.rs index 3c030fc..fa245e9 100644 --- a/csaf-rs/build.rs +++ b/csaf-rs/build.rs @@ -21,29 +21,53 @@ fn main() -> Result<(), BuildError> { build( "./src/csaf/csaf2_0/csaf_json_schema.json", "csaf/csaf2_0/schema.rs", + false, true, )?; build( "./src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json", "csaf/csaf2_1/ssvc_schema.rs", false, + false, )?; build( "./src/csaf/csaf2_1/csaf.json", "csaf/csaf2_1/schema.rs", + false, true, )?; build( "ssvc/data/schema/v1/Decision_Point-1-0-1.schema.json", "csaf/csaf2_1/ssvc_dp_schema.rs", + true, false, )?; 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, from_root: bool, no_date_time: bool) -> Result<(), BuildError> { + let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR")); + let input_path = if from_root { + let mut manifest_path = manifest_dir.to_path_buf(); + + // Handle cargo publish case where we're in target/package/ + if manifest_path.to_string_lossy().contains("target/package") { + // Go up 3 levels: target/package/ -> project root + for _ in 0..3 { + manifest_path.pop(); + } + } else { + // Go up 1 level: csaf-rs -> project root + manifest_path.pop(); + } + + manifest_path.join(input) + } else { + manifest_dir.join(input) + }; + + let content = fs::read_to_string(&input_path)?; 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-validator/Cargo.toml b/csaf-validator/Cargo.toml index b3e8164..87684e0 100644 --- a/csaf-validator/Cargo.toml +++ b/csaf-validator/Cargo.toml @@ -8,6 +8,6 @@ version = "0.1.0" edition = "2021" [dependencies] -csaf-rs = { path = "../csaf-rs" } +csaf-rs = { path = "../csaf-rs", version = "0.1.0" } anyhow = "1.0.93" clap = { version = "4.5.23", features = ["derive"] } diff --git a/csaf-rs/ssvc b/ssvc similarity index 100% rename from csaf-rs/ssvc rename to ssvc From 38ab4e45cd3cf531a8305f4962eddf6f5b4aef48 Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 14:18:20 +0200 Subject: [PATCH 6/7] 0.1.1 with README.md --- Cargo.lock | 4 ++-- csaf-rs/Cargo.toml | 3 ++- csaf-validator/Cargo.toml | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d84640b..1018a97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -184,7 +184,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "csaf-rs" -version = "0.1.0" +version = "0.1.1" dependencies = [ "chrono", "glob", @@ -202,7 +202,7 @@ dependencies = [ [[package]] name = "csaf-validator" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap", diff --git a/csaf-rs/Cargo.toml b/csaf-rs/Cargo.toml index 3043eb5..735670b 100644 --- a/csaf-rs/Cargo.toml +++ b/csaf-rs/Cargo.toml @@ -4,7 +4,8 @@ description = "A parser for the CSAF standard written in Rust" license = "Apache-2.0" repository = "http://github.com/csaf-poc/csaf-rust" keywords = ["csaf"] -version = "0.1.0" +readme = "../README.md" +version = "0.1.1" edition = "2021" [dependencies] diff --git a/csaf-validator/Cargo.toml b/csaf-validator/Cargo.toml index 87684e0..2a27b29 100644 --- a/csaf-validator/Cargo.toml +++ b/csaf-validator/Cargo.toml @@ -4,10 +4,11 @@ description = "A validator for the CSAF standard written in Rust" license = "Apache-2.0" repository = "http://github.com/csaf-poc/csaf-rust" keywords = ["csaf"] -version = "0.1.0" +readme = "../README.md" +version = "0.1.1" edition = "2021" [dependencies] -csaf-rs = { path = "../csaf-rs", version = "0.1.0" } +csaf-rs = { path = "../csaf-rs", version = "0.1.1" } anyhow = "1.0.93" clap = { version = "4.5.23", features = ["derive"] } From 8d2ba6a97e73c62a3e7c262a091c17dbf8d0c3cc Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Fri, 20 Jun 2025 14:26:36 +0200 Subject: [PATCH 7/7] Published 0.1.2 --- Cargo.lock | 4 ++-- csaf-rs/Cargo.toml | 2 +- csaf-rs/build.rs | 45 ++++++++++++++++----------------------- csaf-validator/Cargo.toml | 4 ++-- 4 files changed, 23 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1018a97..f460efa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -184,7 +184,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "csaf-rs" -version = "0.1.1" +version = "0.1.2" dependencies = [ "chrono", "glob", @@ -202,7 +202,7 @@ dependencies = [ [[package]] name = "csaf-validator" -version = "0.1.1" +version = "0.1.2" dependencies = [ "anyhow", "clap", diff --git a/csaf-rs/Cargo.toml b/csaf-rs/Cargo.toml index 735670b..1b96dd2 100644 --- a/csaf-rs/Cargo.toml +++ b/csaf-rs/Cargo.toml @@ -5,7 +5,7 @@ license = "Apache-2.0" repository = "http://github.com/csaf-poc/csaf-rust" keywords = ["csaf"] readme = "../README.md" -version = "0.1.1" +version = "0.1.2" edition = "2021" [dependencies] diff --git a/csaf-rs/build.rs b/csaf-rs/build.rs index fa245e9..255e9cc 100644 --- a/csaf-rs/build.rs +++ b/csaf-rs/build.rs @@ -18,56 +18,47 @@ 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", - false, true, )?; build( "./src/csaf/csaf2_1/ssvc-1-0-1-merged.schema.json", "csaf/csaf2_1/ssvc_schema.rs", false, - false, )?; build( "./src/csaf/csaf2_1/csaf.json", "csaf/csaf2_1/schema.rs", - false, true, )?; build( - "ssvc/data/schema/v1/Decision_Point-1-0-1.schema.json", + "../ssvc/data/schema/v1/Decision_Point-1-0-1.schema.json", "csaf/csaf2_1/ssvc_dp_schema.rs", - true, false, )?; Ok(()) } -fn build(input: &str, output: &str, from_root: bool, no_date_time: bool) -> Result<(), BuildError> { - let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let input_path = if from_root { - let mut manifest_path = manifest_dir.to_path_buf(); - - // Handle cargo publish case where we're in target/package/ - if manifest_path.to_string_lossy().contains("target/package") { - // Go up 3 levels: target/package/ -> project root - for _ in 0..3 { - manifest_path.pop(); - } - } else { - // Go up 1 level: csaf-rs -> project root - manifest_path.pop(); - } - - manifest_path.join(input) - } else { - manifest_dir.join(input) - }; - - let content = fs::read_to_string(&input_path)?; +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-validator/Cargo.toml b/csaf-validator/Cargo.toml index 2a27b29..36062d5 100644 --- a/csaf-validator/Cargo.toml +++ b/csaf-validator/Cargo.toml @@ -5,10 +5,10 @@ license = "Apache-2.0" repository = "http://github.com/csaf-poc/csaf-rust" keywords = ["csaf"] readme = "../README.md" -version = "0.1.1" +version = "0.1.2" edition = "2021" [dependencies] -csaf-rs = { path = "../csaf-rs", version = "0.1.1" } +csaf-rs = { path = "../csaf-rs", version = "0.1.2" } anyhow = "1.0.93" clap = { version = "4.5.23", features = ["derive"] }