Skip to content

chore(release): fix circular dev-dep publish ordering for hyperdb-api/-derive#101

Merged
StefanSteiner merged 1 commit into
tableau:mainfrom
StefanSteiner:fix-publish-order-2
Jun 2, 2026
Merged

chore(release): fix circular dev-dep publish ordering for hyperdb-api/-derive#101
StefanSteiner merged 1 commit into
tableau:mainfrom
StefanSteiner:fix-publish-order-2

Conversation

@StefanSteiner
Copy link
Copy Markdown
Contributor

cargo publish verifies ALL dependencies (including dev-deps) against the crates.io index during packaging. This created an unresolvable circular chain for v0.4.0:

hyperdb-api (dev: hyperdb-api-derive =0.4.0)
→ hyperdb-api-derive (optional: hyperdb-compile-check =0.4.0)
→ hyperdb-compile-check (runtime: hyperdb-api =0.4.0)
→ hyperdb-api (dev: hyperdb-api-derive =0.4.0) [circular]

No ordering of publishes can break this cycle when all three use version pins, because each requires another to already be on crates.io.

Fix: remove the version constraint from the two cross-circular dev-deps:

  • hyperdb-api/[dev-dependencies]: hyperdb-api-derive path-only (no version)
  • hyperdb-api-derive/[dev-dependencies]: hyperdb-api path-only (no version)

Path-only deps are resolved locally; cargo does not check the registry for them during cargo publish. This breaks the circular registry resolution.

Also corrects the publish order in release.yml:
hyperdb-api-salesforce → hyperdb-api-core → hyperdb-api-derive
→ hyperdb-api → hyperdb-compile-check → hyperdb-mcp → ...

…/-derive

cargo publish verifies ALL dependencies (including dev-deps) against the
crates.io index during packaging. This created an unresolvable circular
chain for v0.4.0:

  hyperdb-api (dev: hyperdb-api-derive =0.4.0)
  → hyperdb-api-derive (optional: hyperdb-compile-check =0.4.0)
  → hyperdb-compile-check (runtime: hyperdb-api =0.4.0)
  → hyperdb-api (dev: hyperdb-api-derive =0.4.0)  [circular]

No ordering of publishes can break this cycle when all three use version
pins, because each requires another to already be on crates.io.

Fix: remove the version constraint from the two cross-circular dev-deps:
- hyperdb-api/[dev-dependencies]: hyperdb-api-derive path-only (no version)
- hyperdb-api-derive/[dev-dependencies]: hyperdb-api path-only (no version)

Path-only deps are resolved locally; cargo does not check the registry for
them during cargo publish. This breaks the circular registry resolution.

Also corrects the publish order in release.yml:
  hyperdb-api-salesforce → hyperdb-api-core → hyperdb-api-derive
  → hyperdb-api → hyperdb-compile-check → hyperdb-mcp → ...
@StefanSteiner StefanSteiner merged commit 2e5e1d3 into tableau:main Jun 2, 2026
11 checks passed
@StefanSteiner StefanSteiner deleted the fix-publish-order-2 branch June 4, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant