From 545b1d385fc41693bbc573abcfe348b88eb7e0d2 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Tue, 15 Jul 2025 16:36:59 +0300 Subject: [PATCH] chore: package derive lib --- .github/workflows/publish.yml | 6 ++++-- Cargo.lock | 6 ++++-- Cargo.toml | 2 ++ filecaster-derive/Cargo.toml | 14 +++++++++++++- filecaster-derive/src/from_file.rs | 2 +- filecaster/Cargo.toml | 14 +++++++------- 6 files changed, 31 insertions(+), 13 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 79425d5..bcb1aac 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,7 +4,7 @@ on: push: tags: # Pattern syntax: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet - - "v[0-9]+.[0-9]+.[0-9]+*" + - "v[0-9]*.[0-9]*.[0-9]*" # Trigger this workflow manually via workflow dispatch. workflow_dispatch: inputs: @@ -30,6 +30,8 @@ jobs: timeout-minutes: 25 steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: dtolnay/rust-toolchain@stable - name: cargo-release Cache id: cargo_release_cache @@ -57,7 +59,7 @@ jobs: # allow-branch HEAD is because GitHub actions switches # to the tag while building, which is a detached head - run: |- + run: | cargo release \ publish \ --workspace \ diff --git a/Cargo.lock b/Cargo.lock index 641c30e..bba1c45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,7 +50,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "filecaster" -version = "0.1.0" +version = "0.2.0" dependencies = [ "filecaster-derive", "merge", @@ -62,14 +62,16 @@ dependencies = [ [[package]] name = "filecaster-derive" -version = "0.1.0" +version = "0.2.0" dependencies = [ "claims", + "filecaster", "merge", "proc-macro-error2", "proc-macro2", "quote", "serde", + "serde_json", "syn", ] diff --git a/Cargo.toml b/Cargo.toml index a2f6f6e..01b5f15 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,9 +3,11 @@ resolver = "2" members = ["filecaster", "filecaster-derive"] [workspace.dependencies] +filecaster-derive = { path = "filecaster-derive" } serde = { version = "1.0", features = ["derive"] } merge = "0.2" # dev-dependencies +filecaster = { path = "filecaster" } claims = "0.8" serde_json = "1.0" tempfile = "3.10" diff --git a/filecaster-derive/Cargo.toml b/filecaster-derive/Cargo.toml index 2fe7232..79af478 100644 --- a/filecaster-derive/Cargo.toml +++ b/filecaster-derive/Cargo.toml @@ -1,7 +1,17 @@ [package] name = "filecaster-derive" -version = "0.1.0" +version = "0.2.0" edition = "2024" +authors = ["Kristofers Solo "] +description = "Procedural derive macro for `filecaster`: automatically implement `FromFile` for your structs." +license = "MIT OR Apache-2.0" +repository = "https://github.com/kristoferssolo/filecaster" +homepage = "https://github.com/kristoferssolo/filecaster" +documentation = "https://docs.rs/filecaster-derive" +readme = "../README.md" +keywords = ["proc-macro", "derive", "configuration", "file-parsing"] +categories = ["rust-patterns", "parsing", "config"] +exclude = ["/.github", "/.gitignore", "/tests", "*.png", "*.md"] [lib] proc-macro = true @@ -21,3 +31,5 @@ merge = { workspace = true, optional = true } [dev-dependencies] claims.workspace = true +serde_json.workspace = true +filecaster.workspace = true diff --git a/filecaster-derive/src/from_file.rs b/filecaster-derive/src/from_file.rs index c04dd9c..5ac0ac4 100644 --- a/filecaster-derive/src/from_file.rs +++ b/filecaster-derive/src/from_file.rs @@ -7,7 +7,7 @@ use syn::{ const WITH_MERGE: bool = cfg!(feature = "merge"); -/// Entry point: generate the shadow struct + [`FromFile`] impls. +/// Entry point: generate the shadow struct + `FromFile` impls. pub fn impl_from_file(input: &DeriveInput) -> Result { let name = &input.ident; let vis = &input.vis; diff --git a/filecaster/Cargo.toml b/filecaster/Cargo.toml index ad50b4b..5c2af28 100644 --- a/filecaster/Cargo.toml +++ b/filecaster/Cargo.toml @@ -1,17 +1,17 @@ [package] name = "filecaster" -version = "0.1.0" +version = "0.2.0" edition = "2024" authors = ["Kristofers Solo "] description = "Procedural macro to derive configuration from files, with optional merging capabilities." -repository = "https://github.com/kristoferssolo/filecaster" -documentation = "https://docs.rs/filecaster" -homepage = "https://github.com/kristoferssolo/filecaster" license = "MIT OR Apache-2.0" -keywords = ["proc-macro", "derive", "configuration", "file-parsing"] +repository = "https://github.com/kristoferssolo/filecaster" +homepage = "https://github.com/kristoferssolo/filecaster" +documentation = "https://docs.rs/filecaster" +readme = "../README.md" +keywords = ["configuration", "file-parsing"] categories = ["rust-patterns", "parsing", "config"] exclude = ["/.github", "/.gitignore", "/tests", "*.png", "*.md"] -readme = "README.md" [features] default = ["serde", "derive"] @@ -20,7 +20,7 @@ serde = ["dep:serde", "filecaster-derive/serde"] merge = ["dep:merge", "filecaster-derive/merge"] [dependencies] -filecaster-derive = { path = "../filecaster-derive", optional = true } +filecaster-derive = { workspace = true, optional = true } serde = { workspace = true, optional = true } merge = { workspace = true, optional = true }