Split cargo ci subcommands into packages - #5687
Draft
clockwork-labs-bot wants to merge 36 commits into
Draft
Conversation
clockwork-labs-bot
requested review from
bfops,
cloutiertyler,
jdetter and
joshua-spacetime
as code owners
August 7, 2026 16:02
bfops
marked this pull request as draft
August 7, 2026 16:18
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
…rgo-ci-merge-5687 # Conflicts: # tools/ci/README.md # tools/ci/src/main.rs
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
Signed-off-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
7 tasks
bfops
reviewed
Aug 9, 2026
| .collect()) | ||
| fn run_smoketests(args: &[String]) -> Result<()> { | ||
| let mut args = args.to_vec(); | ||
| if args.first().is_some_and(|arg| arg.starts_with("--test-")) { |
Collaborator
There was a problem hiding this comment.
why is this special case needed?
Contributor
Author
There was a problem hiding this comment.
This preserves the existing workflow invocation cargo ci smoketests -- --test-threads=1. Root clap consumes the user-facing --, but the split ci-smoketests binary still needs a child -- before test-runner flags so clap does not treat --test-threads as a smoketest option. I left the forwarding behavior in place and fixed the docs generator in c1e9dbd32 so smoketest help now comes from the actual split binary.
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
bfops
reviewed
Aug 9, 2026
… of github.com:clockworklabs/SpacetimeDB into bot/split-public-cargo-ci
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.
Description of Changes
Splits the public
cargo citool into the same trampoline-style layout as SpacetimeDBPrivate#3631.The root
tools/cipackage is now a thin dispatcher that shells out to one package per top-level command undertools/ci/commands/:testlintwasm-bindingsdllssmoketestskeynote-benchupdate-flowcli-docsself-docsglobal-json-policypublish-checkstypescript-testversion-upgrade-checkdocsother-workflowsThis keeps command dependencies scoped to the packages that actually need them while preserving the existing
cargo ci <command>entry point.Also moves the existing smoketest, keynote bench, CLA assistant, and CODEOWNERS code into the corresponding command packages, adds
tools/ci/commonfor shared repo-root helpers, updates CODEOWNERS paths, and regeneratestools/ci/README.md.API and ABI breaking changes
N/A
Expected complexity level and risk
3
This is mostly mechanical, but it touches CI command routing and workspace membership. The main risk is preserving argument forwarding behavior for existing workflow invocations.
Testing
PATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo metadata --no-deps --format-version 1PATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo fmt --all -- --checkPATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo check -p ci -p ci-common -p ci-test -p ci-lint -p ci-wasm-bindings -p ci-dlls -p ci-smoketests -p ci-keynote-bench -p ci-update-flow -p ci-cli-docs -p ci-self-docs -p ci-global-json-policy -p ci-publish-checks -p ci-typescript-test -p ci-version-upgrade-check -p ci-docs-build -p ci-other-workflowsPATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo run -p ci -- --helpPATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo run -p ci -- smoketests --helpPATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo run -p ci -- other-workflows --helpPATH=/Users/clockworklabs/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin:$PATH cargo run -p ci -- self-docs --checkgit diff --check