Please use conventional commits. PRs must also be titled in the same format.
This is so that release-plz can properly categorize things in CHANGELOG.md.
Requirements:
- Nix (or Lix)
- direnv (optional)
- nix-direnv (optional)
If you choose to use direnv, all you need to to is direnv allow. Otherwise, nix develop or your preferred way to activate .#devShells.default.
Optionally, you may choose to read from our Cachix cache.
URL: https://jj-gh.cachix.org
Public Key: jj-gh.cachix.org-1:N1uFBMDd9znlhDa68BRqLSXYzXXJ2+WHVuwxpGxCtDo=
I also recommend setting the following repo configs for jj:
[aliases]
pr = ["util", "exec", "--", "nix", "run", ".#", "--", "pr"]
[fix.tools.treefmt]
command = ["treefmt", "--quiet", "--stdin", "$path"]
patterns = ["glob:'**/*'"]Requirements:
Run rustup toolchain install in the project to download and install the Rust toolchain.
The GitHub GraphQL SDL is vendored at src/gh/github.graphql. To refresh it from
GitHub's public docs endpoint, run from the repo root:
nix run .#fetch-schema
# or, without nix:
python3 tools/fetch-schema.pyThe script also strips description docstrings so the file stays under jj's 1MiB snapshot limit. A weekly workflow does the same and opens a PR on drift.
# if you use nix, you can use these to take advantage
# of nix caches and cachix
nix build # build the CLI
nix run .# -- pr help # run the CLI
nix flake check # run all checks
treefmt # format all files
# if you use nix, these will be wrapped and use nix
# build caches
cargo nextest run # run tests (or `cargo nt` alias)
cargo clippy --all-targets # run clippy lints
cargo check --all-targets # run checks
cargo run -- pr help # run the CLI