Skip to content

Don't publish rainlang_test_fixtures (unblocks Package Release autopublish) - #532

Closed
thedavidmeister wants to merge 1 commit into
mainfrom
2026-06-12-testfixtures-no-publish
Closed

Don't publish rainlang_test_fixtures (unblocks Package Release autopublish)#532
thedavidmeister wants to merge 1 commit into
mainfrom
2026-06-12-testfixtures-no-publish

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

Problem

The Package Release autopublish on main has been failing at Publish to crates.io, which aborts the job before the soldeer package publishes (the reusable runs cargo → soldeer fail-fast). So rainlang soldeer releases are stuck (the registry is behind main), which blocks a downstream consumer (raindex) waiting on a new rainlang soldeer version.

Root cause: rainlang_test_fixtures cannot build standalone in cargo's tarball verification — its sol! macros read ABI JSON via ../bindings/abi/*.json (paths outside its own crate), which aren't packaged when the crate is published, so the generated types (Deployer, ERC20, Interpreter, Store, Parser) are undeclared → 28 compile errors → failed to verify package tarball.

Why publish = false is correct

rainlang_test_fixtures is a path dev-dependency of cli and eval ([workspace.dependencies.rainlang_test_fixtures] path = "crates/test_fixtures", used under [dev-dependencies]). Nothing resolves it from crates.io — published consumers of eval/cli don't pull dev-dependencies. It is test infrastructure, not a release artifact, and was only in the lockstep set by oversight (it never actually published, since it can't build standalone).

Change

  • crates/test_fixtures/Cargo.toml: publish = false.
  • .github/workflows/package-release.yaml: drop rainlang_test_fixtures from the crates: list (and correct the now-stale lockstep comment).

This lets the autopublish publish the remaining four crates and the soldeer package. No effect on local builds or tests — publish does not affect path dev-dependency usage.

🤖 Generated with Claude Code

…blish)

rainlang_test_fixtures is a path dev-dependency of cli/eval tests only — it is
never resolved from crates.io, and its sol! macros read ABI JSON from the
sibling bindings crate via ../bindings/abi paths, so it cannot build standalone
in a cargo-published tarball. It was included in the autopublish lockstep set,
so `cargo publish` failed verifying its tarball (28 sol! type-resolution
errors), and because the release job runs cargo before soldeer fail-fast, that
aborted the run before the soldeer package published.

Mark the crate publish = false and drop it from the package-release crates list
so the autopublish can publish the other four crates and the soldeer package.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@thedavidmeister thedavidmeister self-assigned this Jun 12, 2026
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@thedavidmeister, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 24 minutes and 33 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7c9b072f-77a8-4a7d-8095-8a4de9bef88f

📥 Commits

Reviewing files that changed from the base of the PR and between 44bfa2c and 9379906.

📒 Files selected for processing (2)
  • .github/workflows/package-release.yaml
  • crates/test_fixtures/Cargo.toml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-06-12-testfixtures-no-publish

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@thedavidmeister

Copy link
Copy Markdown
Contributor Author

Wrong approach — publish = false would break external consumers that depend on rainlang_test_fixtures from crates.io. Replacing with a fix that makes the crate self-contained (vendor its ABIs into the crate so the sol! macros resolve in the published tarball), keeping it published. New PR incoming.

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