20 rustPlatform.buildRustPackage rec {
24 src = fetchFromGitHub {
28 hash = "sha256-7bMyboF1JG/roFgo3cusYTi7qd2a6W+u1RJHgoBXNL0=";
31 cargoHash = "sha256-nPBHIUBm4bQLuj93kE8CUfzA34uUyapVjswz9FFCiTk=";
33 cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors
34 useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping
35 ZSTD_SYS_USE_PKG_CONFIG = "1"; # disable vendored zlib
36 LIBSSH2_SYS_USE_PKG_CONFIG = "1"; # disable vendored libssh2
49 ] ++ lib.optionals stdenv.isDarwin [
56 $out/bin/jj util mangen > ./jj.1
59 installShellCompletion --cmd jj \
60 --bash <($out/bin/jj util completion bash) \
61 --fish <($out/bin/jj util completion fish) \
62 --zsh <($out/bin/jj util completion zsh)
66 # signing tests spin up an ssh-agent and do git checkouts
67 "--skip=test_ssh_signing"
71 updateScript = nix-update-script { };
73 version = testers.testVersion {
75 command = "jj --version";
81 description = "A Git-compatible DVCS that is both simple and powerful";
82 homepage = "https://github.com/martinvonz/jj";
83 changelog = "https://github.com/martinvonz/jj/blob/v${version}/CHANGELOG.md";
84 license = licenses.asl20;
85 maintainers = with maintainers; [ _0x4A6F thoughtpolice ];