-
Notifications
You must be signed in to change notification settings - Fork 12
Introduce a Cargo workspace so both crates build and lint together #4
Copy link
Copy link
Closed
Labels
ADVANCESubstantial, cross-cutting work spanning more than five files. Not a minor fix.Substantial, cross-cutting work spanning more than five files. Not a minor fix.GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignCampaign: Third CampaignenhancementNew feature or requestNew feature or request
Description
Activity
Metadata
Metadata
Assignees
Labels
ADVANCESubstantial, cross-cutting work spanning more than five files. Not a minor fix.Substantial, cross-cutting work spanning more than five files. Not a minor fix.GrantFox OSSIssue tracked in GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignCampaign: Third CampaignenhancementNew feature or requestNew feature or request
Problem
explorerandticketare separate crates with no shared root workspace (ticket/Cargo.tomleven declares its own empty[workspace]). Consequentlycargo build,cargo test,cargo clippy, andcargo fmtmust be run separately per crate,build-and-deploy.shiterates directories manually, and there is no shared lockfile or lint configuration. Introducing a workspace is a cross-cutting change touching both crate manifests, a new root manifest, the lockfile, the build/deploy script, and CI.What needs to be done
Cargo.tomldefining a workspace withexplorerandticketas members, and remove the standalone[workspace]fromticket/Cargo.toml.[profile.release]settings required for Soroban (for examplepanic = "abort",overflow-checks,lto) at the workspace level where needed, and confirm each crate still builds the same wasm artifact.build-and-deploy.shto use workspace-aware commands rather than iterating directories.build/test/clippy/fmt.wasm32-unknown-unknownbuild for both crates is unchanged and still deploys after the documentedwasm-optstep.Files
Cargo.tomlexplorer/Cargo.tomlticket/Cargo.tomlCargo.lockbuild-and-deploy.sh.github/workflows/ci.ymlREADME.mdAcceptance deliverables
cargo build/test/clippy/fmtrun across both crates from the repository root.Tests to pass
cargo testat the workspace root runs both crates' tests.