diff --git a/.github/workflows/release-preflight.yml b/.github/workflows/release-preflight.yml index d0b0abb7..27dc0ace 100644 --- a/.github/workflows/release-preflight.yml +++ b/.github/workflows/release-preflight.yml @@ -374,8 +374,36 @@ jobs: shell: bash run: | set -euo pipefail + # cargo package must rewrite path+version dependencies to + # registry-resolvable versions during its manifest-prepare phase, + # before any verification build runs -- --no-verify does not skip + # this. So packaging a crate whose dependency is another + # manifest-declared sibling that hasn't been published yet always + # fails here, even though the real `cargo publish` step (which runs + # for real, in manifest publish_order) will succeed once that + # sibling is actually live. Treat that specific, identified failure + # as non-blocking; any other cargo package failure still fails this + # step. + mapfile -t manifest_packages < <(python3 .github/scripts/release_artifacts.py list-publish-plan --manifest "${RELEASE_ARTIFACT_MANIFEST}" | cut -d'|' -f1) while IFS='|' read -r package _; do - cargo package -p "$package" --locked --allow-dirty + if ! output="$(cargo package -p "$package" --locked --allow-dirty 2>&1)"; then + skip=false + for sibling in "${manifest_packages[@]}"; do + [[ "${sibling}" == "${package}" ]] && continue + if grep -qF "no matching package named \`${sibling}\`" <<<"${output}"; then + skip=true + break + fi + done + if [[ "${skip}" == true ]]; then + echo "::warning::cargo package -p ${package} failed only because manifest sibling crate has not published yet (expected for a new intermediate crate's first release; the real cargo publish step runs in manifest publish_order and will succeed). Treating as non-blocking." + echo "${output}" + continue + fi + echo "${output}" >&2 + exit 1 + fi + echo "${output}" done < <(python3 .github/scripts/release_artifacts.py list-publish-plan --manifest "${RELEASE_ARTIFACT_MANIFEST}") - id: github_release_permissions diff --git a/Cargo.lock b/Cargo.lock index dcc03b40..4a72a600 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -712,7 +712,7 @@ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "sc-compose" -version = "1.5.0" +version = "1.6.0" dependencies = [ "anyhow", "clap", @@ -732,7 +732,7 @@ dependencies = [ [[package]] name = "sc-compose-py" -version = "1.5.0" +version = "1.6.0" dependencies = [ "pyo3", "sc-composer", @@ -742,7 +742,7 @@ dependencies = [ [[package]] name = "sc-composer" -version = "1.5.0" +version = "1.6.0" dependencies = [ "minijinja", "quick-xml", @@ -758,7 +758,7 @@ dependencies = [ [[package]] name = "sc-composer-beads" -version = "1.5.0" +version = "1.6.0" dependencies = [ "process-wrap", "sc-composer", @@ -770,7 +770,7 @@ dependencies = [ [[package]] name = "sc-composer-beads-python" -version = "1.5.0" +version = "1.6.0" dependencies = [ "pyo3", "sc-composer-beads", @@ -804,14 +804,14 @@ dependencies = [ [[package]] name = "sc-sha" -version = "1.5.0" +version = "1.6.0" dependencies = [ "sha2", ] [[package]] name = "sc-sha-go" -version = "1.5.0" +version = "1.6.0" dependencies = [ "sc-sha", "serde", @@ -823,7 +823,7 @@ dependencies = [ [[package]] name = "sc-sha-python" -version = "1.5.0" +version = "1.6.0" dependencies = [ "pyo3", "sc-sha", diff --git a/Cargo.toml b/Cargo.toml index 85081b7e..a6170860 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/sc-composer", "crates/sc-composer-beads", "crates/sc-compose" resolver = "2" [workspace.package] -version = "1.5.0" +version = "1.6.0" authors = ["Randlee"] edition = "2024" license = "MIT" @@ -24,8 +24,8 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" serde_yaml = "0.9" quick-xml = "0.41" -sc-sha = { path = "crates/sc-sha", version = "1.5.0" } -sc-composer = { path = "crates/sc-composer", version = "1.5.0" } +sc-sha = { path = "crates/sc-sha", version = "1.6.0" } +sc-composer = { path = "crates/sc-composer", version = "1.6.0" } sha2 = "0.10" similar = "2" time = { version = "0.3", features = ["formatting", "macros"] } diff --git a/README.md b/README.md index 310d7d67..36f639ea 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,7 @@ handoff requirements. | Any (Rust) | crates.io | `cargo install sc-compose` | | Any (Python) | PyPI | `pip install sc-compose` | | Any (source) | cargo | `cargo build --release -p sc-compose` | -| Rust lib | Cargo.toml | `sc-composer = "1.5.0"` | +| Rust lib | Cargo.toml | `sc-composer = "1.6.0"` | Bundled examples are guaranteed in Homebrew, Scoop, Winget, and GitHub Release installs. `cargo install` ships the binary only — set `SC_COMPOSE_DATA_DIR` for @@ -186,11 +186,11 @@ examples. | | | |---|---| -| Version | 1.5.0 | +| Version | 1.6.0 | | MSRV | Rust 1.94.1 | | Rust edition | 2024 | | Platforms | macOS, Linux, Windows | -| Stability | stable 1.5 release line | +| Stability | stable 1.6 release line | --- diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml index 49e4d63c..905acb8a 100644 --- a/bindings/python/Cargo.toml +++ b/bindings/python/Cargo.toml @@ -22,7 +22,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] pyo3 = "0.29" -sc-composer = { path = "../../crates/sc-composer", version = "1.5.0" } +sc-composer = { path = "../../crates/sc-composer", version = "1.6.0" } serde_json = "1" serde_yaml.workspace = true diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index c0247523..ede9f482 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "sc-compose" -version = "1.5.0" +version = "1.6.0" description = "Python bindings for sc-compose composition APIs" readme = "README.md" requires-python = ">=3.11" diff --git a/bindings/sc-composer-beads-python/Cargo.toml b/bindings/sc-composer-beads-python/Cargo.toml index 0d0c8720..111cc67b 100644 --- a/bindings/sc-composer-beads-python/Cargo.toml +++ b/bindings/sc-composer-beads-python/Cargo.toml @@ -22,7 +22,7 @@ python-extension = ["pyo3/extension-module"] [dependencies] pyo3 = "0.29" -sc-composer-beads = { path = "../../crates/sc-composer-beads", version = "1.5.0" } +sc-composer-beads = { path = "../../crates/sc-composer-beads", version = "1.6.0" } serde_json.workspace = true [lints] diff --git a/bindings/sc-composer-beads-python/pyproject.toml b/bindings/sc-composer-beads-python/pyproject.toml index ae24dc56..c7b5816b 100644 --- a/bindings/sc-composer-beads-python/pyproject.toml +++ b/bindings/sc-composer-beads-python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "sc-composer-beads" -version = "1.5.0" +version = "1.6.0" description = "Typed Python adapter for host-neutral Beads formula composition" requires-python = ">=3.11" license = { text = "MIT" } diff --git a/bindings/sc-sha-go/Cargo.toml b/bindings/sc-sha-go/Cargo.toml index 40473c9e..58d278f5 100644 --- a/bindings/sc-sha-go/Cargo.toml +++ b/bindings/sc-sha-go/Cargo.toml @@ -18,7 +18,7 @@ crate-type = ["staticlib", "cdylib", "rlib"] doctest = false [dependencies] -sc-sha = { path = "../../crates/sc-sha", version = "1.5.0" } +sc-sha = { path = "../../crates/sc-sha", version = "1.6.0" } thiserror.workspace = true uniffi.workspace = true diff --git a/bindings/sc-sha-python/Cargo.toml b/bindings/sc-sha-python/Cargo.toml index 60abfab1..2aaf2895 100644 --- a/bindings/sc-sha-python/Cargo.toml +++ b/bindings/sc-sha-python/Cargo.toml @@ -22,7 +22,7 @@ python-extension = ["pyo3/extension-module"] [dependencies] pyo3 = "0.29" -sc-sha = { path = "../../crates/sc-sha", version = "1.5.0" } +sc-sha = { path = "../../crates/sc-sha", version = "1.6.0" } [lints] workspace = true diff --git a/bindings/sc-sha-python/pyproject.toml b/bindings/sc-sha-python/pyproject.toml index 0e069c20..ce586965 100644 --- a/bindings/sc-sha-python/pyproject.toml +++ b/bindings/sc-sha-python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "sc-sha" -version = "1.5.0" +version = "1.6.0" description = "Python adapter for deterministic sc-sha file and composition identities" requires-python = ">=3.11" license = { text = "MIT" } diff --git a/crates/sc-compose/Cargo.toml b/crates/sc-compose/Cargo.toml index 8c388913..2eb9a36e 100644 --- a/crates/sc-compose/Cargo.toml +++ b/crates/sc-compose/Cargo.toml @@ -20,8 +20,8 @@ mimalloc = { version = "0.1" } serde.workspace = true serde_json.workspace = true serde_yaml.workspace = true -sc-composer = { path = "../sc-composer", version = "1.5.0" } -sc-composer-beads = { path = "../sc-composer-beads", version = "1.5.0" } +sc-composer = { path = "../sc-composer", version = "1.6.0" } +sc-composer-beads = { path = "../sc-composer-beads", version = "1.6.0" } sc-observability.workspace = true sc-observability-types.workspace = true time.workspace = true diff --git a/site/announcements/index.html b/site/announcements/index.html index afbf4ad3..fa97cbed 100644 --- a/site/announcements/index.html +++ b/site/announcements/index.html @@ -14,6 +14,7 @@
Press releases and release announcements for sc-compose.