Skip to content

Introduce a Cargo workspace so both crates build and lint together #4

Description

@priscaenoch

Problem

explorer and ticket are separate crates with no shared root workspace (ticket/Cargo.toml even declares its own empty [workspace]). Consequently cargo build, cargo test, cargo clippy, and cargo fmt must be run separately per crate, build-and-deploy.sh iterates directories manually, and there is no shared lockfile or lint configuration. This makes CI and local development more error-prone.

What needs to be done

  • Add a root Cargo.toml defining a workspace with explorer and ticket as members (removing the standalone [workspace] from ticket/Cargo.toml).
  • Verify per-crate [profile.release] settings are preserved at the workspace level where required for Soroban (e.g. panic = "abort", overflow-checks, lto).
  • Confirm wasm32-unknown-unknown builds still produce the same artifacts, and update build-and-deploy.sh to use workspace-aware commands.

Files

  • new root Cargo.toml
  • explorer/Cargo.toml, ticket/Cargo.toml
  • build-and-deploy.sh

Acceptance deliverables

  • cargo build/test/clippy/fmt run across both crates from the repository root.
  • wasm artifacts are unchanged and still deploy successfully.

Tests to pass

  • cargo test at the workspace root runs both crates' tests.
  • The release wasm build for both crates succeeds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions