diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a63a9c..42fbbf8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -82,6 +82,33 @@ jobs: with: toolchain: ${{ steps.msrv.outputs.msrv }} + - name: Maybe publish masterror-template + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + shell: bash + run: | + set -euo pipefail + if cargo metadata --no-deps --format-version=1 \ + | jq -e '.packages[] | select(.name=="masterror-template" and .source==null)' >/dev/null; then + echo "Publishing masterror-template..." + n=0 + until [ $n -ge 5 ] + do + if cargo +${{ steps.msrv.outputs.msrv }} publish -p masterror-template --locked --token "$CARGO_REGISTRY_TOKEN"; then + echo "masterror-template published." + break + fi + n=$((n+1)) + echo "Retry $n/5 for masterror-template..." + sleep $((5*n)) + done + else + echo "No local masterror-template found; skipping." + fi + + - name: Wait for crates.io index sync (after template) + run: sleep 15 + - name: Maybe publish masterror-derive env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cf7d29..1f25fc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.10.8] - 2025-10-25 + +### Fixed +- Updated the release workflow to publish `masterror-template` before + `masterror-derive`, ensuring crates.io recognises the shared dependency during + release automation. + ## [0.10.7] - 2025-10-24 ### Fixed diff --git a/Cargo.lock b/Cargo.lock index a280190..91644d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1606,7 +1606,7 @@ dependencies = [ [[package]] name = "masterror" -version = "0.10.7" +version = "0.10.8" dependencies = [ "actix-web", "axum", diff --git a/Cargo.toml b/Cargo.toml index 9cddd72..85acb4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "masterror" -version = "0.10.7" +version = "0.10.8" rust-version = "1.90" edition = "2024" license = "MIT OR Apache-2.0" diff --git a/README.md b/README.md index b376d9a..8580fd7 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,9 @@ Stable categories, conservative HTTP mapping, no `unsafe`. ~~~toml [dependencies] -masterror = { version = "0.10.7", default-features = false } +masterror = { version = "0.10.8", default-features = false } # or with features: -# masterror = { version = "0.10.7", features = [ +# masterror = { version = "0.10.8", features = [ # "axum", "actix", "openapi", "serde_json", # "sqlx", "sqlx-migrate", "reqwest", "redis", # "validator", "config", "tokio", "multipart", @@ -66,10 +66,10 @@ masterror = { version = "0.10.7", default-features = false } ~~~toml [dependencies] # lean core -masterror = { version = "0.10.7", default-features = false } +masterror = { version = "0.10.8", default-features = false } # with Axum/Actix + JSON + integrations -# masterror = { version = "0.10.7", features = [ +# masterror = { version = "0.10.8", features = [ # "axum", "actix", "openapi", "serde_json", # "sqlx", "sqlx-migrate", "reqwest", "redis", # "validator", "config", "tokio", "multipart", @@ -623,13 +623,13 @@ assert_eq!(resp.status, 401); Minimal core: ~~~toml -masterror = { version = "0.10.7", default-features = false } +masterror = { version = "0.10.8", default-features = false } ~~~ API (Axum + JSON + deps): ~~~toml -masterror = { version = "0.10.7", features = [ +masterror = { version = "0.10.8", features = [ "axum", "serde_json", "openapi", "sqlx", "reqwest", "redis", "validator", "config", "tokio" ] } @@ -638,7 +638,7 @@ masterror = { version = "0.10.7", features = [ API (Actix + JSON + deps): ~~~toml -masterror = { version = "0.10.7", features = [ +masterror = { version = "0.10.8", features = [ "actix", "serde_json", "openapi", "sqlx", "reqwest", "redis", "validator", "config", "tokio" ] }