Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / tools / ruff / default.nix
blob94f70251e504c9293e79edb54f1144846816ef8d
1 { lib
2 , rustPlatform
3 , fetchFromGitHub
4 , installShellFiles
5 , stdenv
6 , darwin
7 , rust-jemalloc-sys
8   # tests
9 , ruff-lsp
12 rustPlatform.buildRustPackage rec {
13   pname = "ruff";
14   version = "0.1.6";
16   src = fetchFromGitHub {
17     owner = "astral-sh";
18     repo = "ruff";
19     rev = "refs/tags/v${version}";
20     hash = "sha256-EX1tXe8KlwjrohzgzKDeJP0PjfKw8+lnQ7eg9PAUAfQ=";
21   };
23   cargoHash = "sha256-ueWSBYXcdaxagjFjxfsImulOs0zVVqGHmfXp4pQLaMM=";
25   nativeBuildInputs = [
26     installShellFiles
27   ];
29   buildInputs = [
30     rust-jemalloc-sys
31   ] ++ lib.optionals stdenv.isDarwin [
32     darwin.apple_sdk.frameworks.CoreServices
33   ];
35   cargoBuildFlags = [ "--package=ruff_cli" ];
36   cargoTestFlags = cargoBuildFlags;
38   # tests expect no colors
39   preCheck = ''
40     export NO_COLOR=1
41   '';
43   postInstall = ''
44     installShellCompletion --cmd ruff \
45       --bash <($out/bin/ruff generate-shell-completion bash) \
46       --fish <($out/bin/ruff generate-shell-completion fish) \
47       --zsh <($out/bin/ruff generate-shell-completion zsh)
48   '';
50   passthru.tests = {
51     inherit ruff-lsp;
52   };
54   meta = with lib; {
55     description = "An extremely fast Python linter";
56     homepage = "https://github.com/astral-sh/ruff";
57     changelog = "https://github.com/astral-sh/ruff/releases/tag/v${version}";
58     license = licenses.mit;
59     mainProgram = "ruff";
60     maintainers = with maintainers; [ figsoda ];
61   };