From d9ee9f069265548dc138acfd7595ec2be6d00dee Mon Sep 17 00:00:00 2001 From: Stefan Steiner Date: Mon, 1 Jun 2026 23:28:25 -0700 Subject: [PATCH] fix(release): publish hyperdb-compile-check before hyperdb-api-derive hyperdb-api-derive has an optional dep on hyperdb-compile-check. During `cargo publish` of hyperdb-api-derive, cargo packages the crate and verifies all dependencies (including optional ones) exist on crates.io. Previously hyperdb-compile-check was published *after* hyperdb-api-derive, so the packaging step failed with: no matching package named `hyperdb-compile-check` found location searched: crates.io index Move hyperdb-compile-check to publish after hyperdb-api (which it depends on) but before hyperdb-api-derive (which depends on it). The publish() helper's 'already exists' guard means re-running skips already-published crates safely. --- .github/workflows/release.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8e2040..1447c77 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -228,14 +228,21 @@ jobs: # on the index when hyperdb-api builds). # - hyperdb-compile-check: depends on hyperdb-api; outside the # workspace (avoids dep cycle) but published in lockstep. - # Uses --manifest-path since it's not a workspace member. + # Must come BEFORE hyperdb-api-derive (which optionally + # depends on it — cargo verifies the dep on crates.io during + # packaging). Uses --manifest-path since it's not a workspace + # member. + # - hyperdb-api-derive: optional dep on hyperdb-compile-check; + # must come after both hyperdb-api and hyperdb-compile-check. # - hyperdb-mcp, hyperdb-bootstrap, sea-query-hyperdb: depend # on hyperdb-api / hyperdb-api-core; publish last. publish hyperdb-api-salesforce - publish hyperdb-api-derive publish hyperdb-api-core publish hyperdb-api - # hyperdb-compile-check is not a workspace member; publish via manifest path + # hyperdb-compile-check depends on hyperdb-api; publish before + # hyperdb-api-derive (which optionally depends on it — cargo + # verifies the dep exists on crates.io during packaging). + # Outside the workspace; publish via manifest path. echo "::group::Publishing hyperdb-compile-check" if ! cargo publish --manifest-path hyperdb-compile-check/Cargo.toml 2>&1 | tee /tmp/publish_out; then if grep -q "already exists on" /tmp/publish_out; then @@ -247,6 +254,7 @@ jobs: fi echo "::endgroup::" sleep 45 + publish hyperdb-api-derive publish hyperdb-mcp publish hyperdb-bootstrap publish sea-query-hyperdb