Repository navigation
Conversation
|
Thanks for the contribution! We reviewed this PR while merging the open queue and couldn't merge it yet. Here's what needs fixing:
This branch also has merge conflicts with |
… guard - Restore the root Cargo.toml (it had been deleted) and reconcile the workspace: add the missing fuzz members (freeze/migrate/vault) and extend default-members so a plain root cargo test covers every non-fuzz contract. - Add scripts/check-workspace-members.sh, which fails closed when a contracts/*/Cargo.toml is not listed in the root members array, and call it from the Test and Build (release) jobs instead of a script that did not exist. Closes CalloraOrg#1194
4670820 to
dd3d02c
Compare
|
@greatest0fallt1me Thanks for the review — I've fixed the branch and rebased it onto the latest Root
The CI step that called a non-existent script now works. I added Why the two red checks should recover: One honest caveat: Files changed: |
Adding contracts/freeze/fuzz and contracts/migrate/fuzz to the workspace `members` list brings their targets into `cargo fmt --all`'s scope. Both were unformatted, so the reconciliation introduced new rustfmt failures on top of the repository's existing ones. Run rustfmt over the two targets.
|
@greatest0fallt1me The branch is updated (commit
One note for transparency: |
Overview
Reconciles the root workspace manifest with the contract crates actually present on disk.
contracts/refundandcontracts/emergencywere missing frommembers,contracts/vaultwas listed twice, and several non-fuzz crates were excluded fromdefault-members, so a plaincargo testat the root silently skipped them. A CI guard is added so acontracts/*/Cargo.tomlthat is not a workspace member fails the build.Related Issue
Closes #1194
Changes
🧩 Workspace manifest
Cargo.tomlmembers(
contracts/freeze/fuzz,contracts/migrate/fuzz,contracts/vault/fuzz),matching the seven fuzz crates already listed.
refundandemergencywere already present in this revision and no duplicate
vaultentry remains.default-membersto cover every non-fuzz contract crate(
admin,allowlist,errors,fee,recipient,tests, plus thepreviously listed ones), so root
cargo testexercises every contractcrate while fuzz targets stay opt-in.
🔒 CI guard
scripts/check-workspace-members.sh— enumeratescontracts/*/Cargo.tomland fails closed when one is absent from the rootmemberslist..github/workflows/ci.yml— runs the guard in theTestandBuild (release)jobs.🎨 Formatting
contracts/freeze/fuzz/targets/main.rs,contracts/migrate/fuzz/targets/main.rs— bringing these two crates into
membersalso brings their targets intocargo fmt --all's scope; both were unformatted, so they are formatted here.They were the only new files the reconciliation added to the fmt scope.
Verification Results
membersvaultentryscripts/check-workspace-members.sh, wired intoTestandBuild (release)cargo testat root runs every contract cratedefault-memberscovers all 30 non-fuzz cratesNote on the current red checks
Test,Build (release)andEvent shape vs schemaare red onmainas well,for reasons unrelated to this diff (rustfmt drift in crates already in the
workspace,
E0599compile errors incheckpoint/vault, and event-topic docsdrift). This diff adds no new failures:
cargo fmt --all --checkon thisbranch reports the same set as
main.Security and Failure Modes
The membership check fails closed: any
contracts/*/Cargo.tomlnot present inmembersaborts CI rather than being silently skipped. No safeguards or validation were weakened; fuzz crates remain excluded fromdefault-membersby design to avoid requiring fuzz toolchains for a plaincargo test.