| name | update-jj |
| description | Updates the jj-lib and jj-cli dependencies. Use when asked to update the jj version. |
GG (this project) depends on multiple crates from the JJ project. `gg` is primarily an alternative to `jj-cli`, so it uses a lot of `jj-lib` code; however, it also uses `jj-cli` directly in a few cases
Updating crate versions
- Modify Cargo.toml to update both
jj-lib and jj-cli to the required version. This will either be a published version like version = "0.37.0" or a branch name like git = "https://github.com/jj-vcs/jj.git", branch = "main".
- Run
cargo update, which will update Cargo.lock.
- Use /cargo-dedupe to match other dependencies' versions.
Fixing breaking changes
It's likely that jj API changes will require modifications to gg code. Make any necessary modifications, maintaining gg's current behaviour.
For examples of how to use modified jj APIs, consult the source code at https://github.com/jj-vcs/jj - the jj-cli code (cli/ directory) often makes use of jj-lib code (lib/ directory) in similar ways to gg.
Verifying the update
- Run
cargo check - there should be no warnings or errors.
- Run
cargo test - all tests should pass.
- If API changes have affected message structs in src/messages, use
cargo gen to regenerate Typescript types and then npm run check to verify them.