fix(contracts): drop title_badge from the workspace to unbreak Contracts CI - #1186
Merged
Merged
Conversation
…cts CI Contracts CI (and the Soroban deploy workflow) run cargo from inside contracts/, which resolves contracts/Cargo.toml's own workspace rather than the root one. That workspace's title_badge member pins soroban-sdk = "0.10.1", a version that no longer exists on crates.io (every other contract here uses 21.0.0), so dependency resolution has failed outright for every push and PR for weeks — `cargo test` and `cargo build --release --target wasm32-unknown-unknown` never got past "failed to select a version for the requirement `soroban-sdk = "^0.10.1"`". Bumping the version isn't enough on its own: title_badge's source (lib.rs, storage.rs) is independently corrupted — mismatched braces, a stray "Erro::" typo for "Error::", `Ok()` instead of `Ok(())`, malformed turbofish generics, and a revoke() branch that references an undefined `admin` variable. It needs a rewrite against the current SDK, not a mechanical fix, so it's excluded from the workspace with a comment explaining why (the deploy workflow's title_badge-specific post-deploy step becomes a no-op, since no title_badge.wasm is produced anymore). Cargo.lock is regenerated: dependency resolution had never succeeded long enough to update it for gasless_relayer, model_attestation, referral_splitter, and sponsorship_escrow, so those gained real lock entries here for the first time. Verified locally: `cargo test` (85 passed, plus one flaky snapshot-write failure that passes in isolation and is very likely a WSL-mounted-drive I/O artifact, not a real bug) and `cargo build --release --target wasm32-unknown-unknown` both succeed from contracts/, matching CI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Contracts CI and the Soroban deploy workflow both run cargo from inside
contracts/, which resolvescontracts/Cargo.toml's own workspace (a superset of the rootCargo.tomlworkspace). That workspace includestitle_badge, which pinssoroban-sdk = "0.10.1"— a version no longer on crates.io (every other contract here uses21.0.0). This has brokencargo testandcargo build --release --target wasm32-unknown-unknownfromcontracts/for every push/PR for weeks:Fix
Excluded
title_badgefromcontracts/Cargo.toml's members. A version bump alone wouldn't have been enough —title_badge's source (lib.rs,storage.rs) is independently corrupted (mismatched braces, anErro::typo,Ok()instead ofOk(()), malformed turbofish generics, an undefinedadminreference inrevoke()). It needs a rewrite against the current SDK, not a mechanical fix, so it's left out with a comment explaining why. The deploy workflow'stitle_badge-specific post-deploy step becomes a no-op since notitle_badge.wasmis produced.Cargo.lockis regenerated — dependency resolution had never succeeded long enough to lockgasless_relayer,model_attestation,referral_splitter, orsponsorship_escrow, so those gained real entries for the first time.Verified locally (matching CI exactly)
cargo testfromcontracts/: 85 passed. One flaky failure (test_reentrancy_guard_payout_tournament, a snapshot-file writeInput/output error) that passes in isolation — very likely a WSL-mounted-drive I/O artifact from my local testing, not a real bug; worth watching on the actual Linux CI runner.cargo build --release --target wasm32-unknown-unknownfromcontracts/: succeeds.