It is very painful to find an swc regression in the CLI after releasing all the crates. It would be good to mitigate this occurrence and automate crate updating. This would be a deno script similar to the release scripts.
Here's my current thoughts...
Assumptions
All repos exist as sibling directories of each other.
Phase 1 - Setup
Ensure all repos are on main or switch to it if no local changes. Error if there are local changes.
Update the local main to the latest upstream remote main.
Bump swc versions to the latest version in both dprint-swc-ecma-ast-view and deno_ast.
Update all repos to refer to local versions of each other.
Phase 2 - Cargo Build
Run cargo build in each repo.
At this point, any breaking changes between repos can be resolved.
Phase 3 - Testing
Prompt to run cargo test in each repo (based on dependency tree) until a confirmation is given.
Once a confirmation is given run cargo test in the remainding repos.
At this point, any testing issues can be manually resolved.
Phase 4 - Accepting Changes—Open PRs
A prompt will be given asking to bump each repo's major, minor, or patch.
Reverts all the local path changes.
Updates all the versions in every repo, creates a branch, commits, and pushes a branch for every repo.
At this point, the developer would have to manually open PRs for each branch one after the other based on dependency order, which is still somewhat painful, but not as bad.
It is very painful to find an swc regression in the CLI after releasing all the crates. It would be good to mitigate this occurrence and automate crate updating. This would be a deno script similar to the release scripts.
Here's my current thoughts...
Assumptions
Phase 1 - Setup
Phase 2 - Cargo Build
cargo build
in each repo.At this point, any breaking changes between repos can be resolved.
Phase 3 - Testing
cargo test
in each repo (based on dependency tree) until a confirmation is given.cargo test
in the remainding repos.At this point, any testing issues can be manually resolved.
Phase 4 - Accepting Changes—Open PRs
At this point, the developer would have to manually open PRs for each branch one after the other based on dependency order, which is still somewhat painful, but not as bad.