about summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2020-05-29 17:05:38 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2020-05-29 17:05:38 +0200
commitc7d25a5db6beb915be4dd714821f342fab7980a2 (patch)
tree89a87c2e327f754f3af0702753db51266919baf1 /pkgs/development/tools
parente27e3ae169d4ac64856befb6bbf044f2153e337d (diff)
parent3bc5b8593be638dd9fc7d0f427eccdb2a6c8485b (diff)
downloadnixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.tar
nixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.tar.gz
nixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.tar.bz2
nixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.tar.lz
nixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.tar.xz
nixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.tar.zst
nixlib-c7d25a5db6beb915be4dd714821f342fab7980a2.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/bazel-watcher/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json506
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix (renamed from pkgs/development/tools/build-managers/bazel/bazel_2/default.nix)20
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch20
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json745
-rwxr-xr-xpkgs/development/tools/build-managers/bazel/update-srcDeps.py1
-rw-r--r--pkgs/development/tools/cmake-language-server/default.nix31
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/default.nix105
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/editable.nix54
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix43
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/lib.nix126
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix8
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix1398
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix55
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/semver.nix12
17 files changed, 1763 insertions, 1369 deletions
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index f930bb6e578f..ec985a2ae19b 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.1.3";
+  version = "2.1.4";
 
   dontConfigure = true;
   dontBuild = true;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "1b0hqc8zs6v47w9sjk40sbj1fw5x5bxg7kw9s84y6s60yr897376";
+    sha256 = "0jgwvc9flqdm88q9kknzjs125j9d3j5l5adcpngfy17ljgziy4nn";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
index 2d9b99a35f86..98675d98d576 100644
--- a/pkgs/development/tools/bazel-watcher/default.nix
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -60,7 +60,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "0ili0123xcl0mjcrn4r1r1q9d7a8a3bbh9r3zhlshl39awfm4r2d";
+    sha256 = "0i77nnbd1sd39qw4vm3n5mwkag3dskqjhzr7qs4w1arbiih45zd4";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 6b8269584bd2..d615657ebeb4 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -64,7 +64,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "1hzb84zxav68ysdwkimaaz0b9rq95k3bgifw01m644v7idabrz50";
+    sha256 = "0rfjyvw370yn4rp1f2772b2h3jbycymdw26zx38krzy5zq0iajyp";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json b/pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json
deleted file mode 100644
index 7517a8c1b958..000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json
+++ /dev/null
@@ -1,506 +0,0 @@
-{
-    "0.16.2.zip": {
-        "name": "0.16.2.zip",
-        "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
-            "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
-        ]
-    },
-    "0.28.3.tar.gz": {
-        "name": "0.28.3.tar.gz",
-        "sha256": "d8c2f20deb2f6143bac792d210db1a4872102d81529fe0ea3476c1696addd7ff",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz"
-        ]
-    },
-    "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
-        "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
-        ]
-    },
-    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
-        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip": {
-        "name": "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
-        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
-        ]
-    },
-    "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": {
-        "name": "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
-        "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
-            "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
-        ]
-    },
-    "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz": {
-        "name": "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
-        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
-        ]
-    },
-    "android_tools_pkg-0.13.tar.gz": {
-        "name": "android_tools_pkg-0.13.tar.gz",
-        "sha256": "3ca6a5e6576a9cda7c59f5fd33b1fe096725730712057c5893589ac15b019407",
-        "urls": [
-            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.13.tar.gz"
-        ]
-    },
-    "bazel_j2objc": {
-        "name": "bazel_j2objc",
-        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
-        "strip_prefix": "j2objc-2.5",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
-            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
-        ]
-    },
-    "bazel_skylib": {
-        "name": "bazel_skylib",
-        "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
-        "strip_prefix": "bazel-skylib-f83cb8dd6f5658bc574ccd873e25197055265d1c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
-        ]
-    },
-    "bazel_toolchains": {
-        "name": "bazel_toolchains",
-        "sha256": "d8c2f20deb2f6143bac792d210db1a4872102d81529fe0ea3476c1696addd7ff",
-        "strip_prefix": "bazel-toolchains-0.28.3",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz"
-        ]
-    },
-    "build_bazel_rules_nodejs": {
-        "name": "build_bazel_rules_nodejs",
-        "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
-        "strip_prefix": "rules_nodejs-0.16.2",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
-            "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
-        ]
-    },
-    "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz": {
-        "name": "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
-        ]
-    },
-    "com_google_googletest": {
-        "name": "com_google_googletest",
-        "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
-        "strip_prefix": "googletest-release-1.10.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
-            "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
-        ]
-    },
-    "coverage_output_generator-v2.1.zip": {
-        "name": "coverage_output_generator-v2.1.zip",
-        "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
-        ]
-    },
-    "desugar_jdk_libs": {
-        "name": "desugar_jdk_libs",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
-        "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz": {
-        "name": "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
-        "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
-        ]
-    },
-    "io_bazel_rules_sass": {
-        "name": "io_bazel_rules_sass",
-        "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
-        "strip_prefix": "rules_sass-8ccf4f1c351928b55d5dddf3672e3667f6978d60",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
-            "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
-        ]
-    },
-    "io_bazel_skydoc": {
-        "name": "io_bazel_skydoc",
-        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
-        "strip_prefix": "skydoc-c7bbde2950769aac9a99364b0926230060a3ce04",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
-        ]
-    },
-    "java_tools_javac11_darwin-v7.0.zip": {
-        "name": "java_tools_javac11_darwin-v7.0.zip",
-        "sha256": "373a4226906ae9ba908550da16e133c4cd1f01b8973af82b9a2eb6903cb4d645",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v7.0/java_tools_javac11_darwin-v7.0.zip"
-        ]
-    },
-    "java_tools_javac11_linux-v7.0.zip": {
-        "name": "java_tools_javac11_linux-v7.0.zip",
-        "sha256": "3ff465e82954a70f49982610dd63f6f651beaa83c707dd637870b0e41cdcd2f0",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v7.0/java_tools_javac11_linux-v7.0.zip"
-        ]
-    },
-    "java_tools_javac11_windows-v7.0.zip": {
-        "name": "java_tools_javac11_windows-v7.0.zip",
-        "sha256": "11d90a147919e74d11870cdd58c4ee5de3062c08d11b16aa72d3f3bbfa9497a0",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v7.0/java_tools_javac11_windows-v7.0.zip"
-        ]
-    },
-    "java_tools_langtools_javac10": {
-        "name": "java_tools_langtools_javac10",
-        "sha256": "0e9c9ac5ef17869de3cb8c3497c4c0d31836ef7b63efe1690506f53783adb212",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10_v2.zip"
-        ]
-    },
-    "java_tools_langtools_javac11": {
-        "name": "java_tools_langtools_javac11",
-        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
-        ]
-    },
-    "java_tools_langtools_javac12": {
-        "name": "java_tools_langtools_javac12",
-        "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
-        ]
-    },
-    "java_tools_langtools_javac9": {
-        "name": "java_tools_langtools_javac9",
-        "sha256": "d94befcfb325a9a62aebc2052e631fde2322b4df5c82a19ed260b38ba12a0ad1",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk9_v2.zip"
-        ]
-    },
-    "jdk10-server-release-1804.tar.xz": {
-        "name": "jdk10-server-release-1804.tar.xz",
-        "sha256": "b7098b7aaf6ee1ffd4a2d0371a0be26c5a5c87f6aebbe46fe9a92c90583a84be",
-        "urls": [
-            "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk10-server-release-1804.tar.xz"
-        ]
-    },
-    "jdk9-server-release-1708.tar.xz": {
-        "name": "jdk9-server-release-1708.tar.xz",
-        "sha256": "72e7843902b0395e2d30e1e9ad2a5f05f36a4bc62529828bcbc698d54aec6022",
-        "urls": [
-            "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk9-server-release-1708.tar.xz"
-        ]
-    },
-    "openjdk10_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk10_linux_archive",
-        "sha256": "b3c2d762091a615b0c1424ebbd05d75cc114da3bf4f25a0dec5c51ea7e84146f",
-        "strip_prefix": "zulu10.2+3-jdk10.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk11_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk11_linux_archive",
-        "sha256": "ddb0fd4526089cf1ce2db36282c282263f587a9e8be373fa02f511a12923cc48",
-        "strip_prefix": "zulu11.31.11-ca-jdk11.0.3-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk12_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk12_linux_archive",
-        "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
-        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk9_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk9_linux_archive",
-        "sha256": "45f2dfbee93b91b1468cf81d843fc6d9a47fef1f831c0b7ceff4f1eb6e6851c8",
-        "strip_prefix": "zulu9.0.7.1-jdk9.0.7-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk_linux": {
-        "downloaded_file_path": "zulu-linux.tar.gz",
-        "name": "openjdk_linux",
-        "sha256": "460d8a4f0c0204160b48086e341b22943c9cca471b195340e75b38ae9eb33c1c",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209950.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64": {
-        "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
-        "name": "openjdk_linux_aarch64",
-        "sha256": "23c37c0c3a8fdcbc68e96e70ff5c5c020c14db76deaae9b547849afda4586e5e",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-allmodules-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_minimal": {
-        "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
-        "name": "openjdk_linux_aarch64_minimal",
-        "sha256": "7af2583fe5ef0a781d4a9dca0c0160d42e7db1305ec1b66f98aa44c91cc875df",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-minimal-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_vanilla": {
-        "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
-        "name": "openjdk_linux_aarch64_vanilla",
-        "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
-        ]
-    },
-    "openjdk_linux_minimal": {
-        "downloaded_file_path": "zulu-linux-minimal.tar.gz",
-        "name": "openjdk_linux_minimal",
-        "sha256": "5123bc8dd21886761d1fd9ca0fb1898b3372d7243064a070ec81ca9c9d1a6791",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556011926.tar.gz"
-        ]
-    },
-    "openjdk_linux_vanilla": {
-        "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
-        "name": "openjdk_linux_vanilla",
-        "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk_macos": {
-        "downloaded_file_path": "zulu-macos.tar.gz",
-        "name": "openjdk_macos",
-        "sha256": "8fa61d85ca6f657d646fdb50cfc8634987f8f7d8a3250ed39fb7364647633252",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209951.tar.gz"
-        ]
-    },
-    "openjdk_macos_minimal": {
-        "downloaded_file_path": "zulu-macos-minimal.tar.gz",
-        "name": "openjdk_macos_minimal",
-        "sha256": "ac56e44db46fd56ac78b39b6823daed4faa74a2677ac340c7d217f863884ec0f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003114.tar.gz"
-        ]
-    },
-    "openjdk_macos_vanilla": {
-        "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
-        "name": "openjdk_macos_vanilla",
-        "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
-        ]
-    },
-    "openjdk_win": {
-        "downloaded_file_path": "zulu-win.zip",
-        "name": "openjdk_win",
-        "sha256": "e6ddb361309f8e84eb5fb5ad8b0f5cc031ba3679910139262c31efd8f7579d05",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209972.zip"
-        ]
-    },
-    "openjdk_win_minimal": {
-        "downloaded_file_path": "zulu-win-minimal.zip",
-        "name": "openjdk_win_minimal",
-        "sha256": "8e5dada6e9ebcc9ce29b4d051449bb95d3ee1e620e166da862224bbf15211f8b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003136.zip"
-        ]
-    },
-    "openjdk_win_vanilla": {
-        "downloaded_file_path": "zulu-win-vanilla.zip",
-        "name": "openjdk_win_vanilla",
-        "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
-        ]
-    },
-    "platforms": {
-        "name": "platforms",
-        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
-        "strip_prefix": "platforms-46993efdd33b73649796c5fc5c9efb193ae19d51",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
-        ]
-    },
-    "rules_cc": {
-        "name": "rules_cc",
-        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
-        "strip_prefix": "rules_cc-8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
-        ]
-    },
-    "rules_java": {
-        "name": "rules_java",
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "rules_pkg": {
-        "name": "rules_pkg",
-        "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
-        ]
-    },
-    "rules_pkg-0.2.0.tar.gz": {
-        "name": "rules_pkg-0.2.0.tar.gz",
-        "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
-        ]
-    },
-    "rules_proto": {
-        "name": "rules_proto",
-        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
-        "strip_prefix": "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
-        ]
-    },
-    "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz": {
-        "name": "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz",
-        "sha256": "57fad3602e74c79587901d6966d3b54ef32cb811829a2552163185d5064fe9b5",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz": {
-        "name": "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz",
-        "sha256": "e669c9a897413d855b550b4e39d79614392e6fb96f494e8ef99a34297d9d85d3",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip": {
-        "name": "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip",
-        "sha256": "c39e7700a8d41794d60985df5a20352435196e78ecbc6a2b30df7be8637bffd5",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip"
-        ]
-    },
-    "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz": {
-        "name": "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz",
-        "sha256": "232b1c3511f0d26e92582b7c3cc363be7ac633e371854ca2f2e9f2b50eb72a75",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz": {
-        "name": "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz",
-        "sha256": "1edf366ee821e5db8e348152fcb337b28dfd6bf0f97943c270dcc6747cedb6cb",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "zulu11.2.3-jdk11.0.1-win_x64.zip": {
-        "name": "zulu11.2.3-jdk11.0.1-win_x64.zip",
-        "sha256": "8e1e2b8347de6746f3fd1538840dd643201533ab113abc4ed93678e342d28aa3",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-win_x64.zip"
-        ]
-    },
-    "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": {
-        "name": "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz",
-        "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
-        ]
-    },
-    "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": {
-        "name": "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip",
-        "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
-        ]
-    },
-    "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": {
-        "name": "zulu11.29.3-ca-jdk11.0.2-win_x64.zip",
-        "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
-        ]
-    },
-    "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz": {
-        "name": "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz",
-        "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
-        ]
-    },
-    "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": {
-        "name": "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz",
-        "sha256": "f27cb933de4f9e7fe9a703486cf44c84bc8e9f138be0c270c9e5716a32367e87",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz": {
-        "name": "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz",
-        "sha256": "404e7058ff91f956612f47705efbee8e175a38b505fb1b52d8c1ea98718683de",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip": {
-        "name": "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip",
-        "sha256": "e738829017f107e7a7cd5069db979398ec3c3f03ef56122f89ba38e7374f63ed",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip"
-        ]
-    }
-}
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_2/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index edda48c4b992..77caa2325622 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_2/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -25,11 +25,11 @@
 }:
 
 let
-  version = "2.1.0";
+  version = "3.2.0";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "0ijz9lxralyw18r5ra2h79jnafk5521ncr3knaip74cqa28csw9k";
+    sha256 = "1ylbfdcb6rhnc3sr292c6shl754i0h0i050f4gr4bppn6sa15v24";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -49,12 +49,12 @@ let
       srcs.io_bazel_rules_sass
       srcs.platforms
       (if stdenv.hostPlatform.isDarwin
-       then srcs."java_tools_javac11_darwin-v7.0.zip"
-       else srcs."java_tools_javac11_linux-v7.0.zip")
+       then srcs."java_tools_javac11_darwin-v8.0.zip"
+       else srcs."java_tools_javac11_linux-v8.0.zip")
       srcs."coverage_output_generator-v2.1.zip"
       srcs.build_bazel_rules_nodejs
-      srcs."android_tools_pkg-0.13.tar.gz"
-      srcs."0.28.3.tar.gz"
+      srcs."android_tools_pkg-0.16.0.tar.gz"
+      srcs."3.1.0.tar.gz"
       srcs.rules_pkg
       srcs.rules_cc
       srcs.rules_java
@@ -111,7 +111,7 @@ let
   remote_java_tools = stdenv.mkDerivation {
     name = "remote_java_tools_${system}";
 
-    src = srcDepsSet."java_tools_javac11_${system}-v7.0.zip";
+    src = srcDepsSet."java_tools_javac11_${system}-v8.0.zip";
 
     nativeBuildInputs = [ autoPatchelfHook unzip ];
     buildInputs = [ gcc-unwrapped ];
@@ -157,6 +157,8 @@ stdenv.mkDerivation rec {
   sourceRoot = ".";
 
   patches = [
+    ./python-shebang.patch
+
     # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
     # This is breaking the build of any C target. This patch removes the last
     # argument if it's found to be an empty string.
@@ -383,6 +385,10 @@ stdenv.mkDerivation rec {
       sed -i 's|/sbin/md5|md5sum|' \
         src/BUILD
 
+      # replace initial value of pythonShebang variable in BazelPythonSemantics.java
+      substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \
+        --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
+
       # substituteInPlace is rather slow, so prefilter the files with grep
       grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
         # If you add more replacements here, you must change the grep above!
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch b/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch
new file mode 100644
index 000000000000..75547264fcc8
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch
@@ -0,0 +1,20 @@
+--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java	2020-05-25 14:46:01.608403087 +0200
++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java	2020-05-25 14:50:52.881398320 +0200
+@@ -238,14 +238,15 @@
+         // TODO(#8685): Remove this special-case handling as part of making the proper shebang a
+         // property of the Python toolchain configuration.
+         String pythonExecutableName = OS.getCurrent() == OS.OPENBSD ? "python3" : "python";
++        String pythonShebang = "#!/usr/bin/env " + pythonExecutableName;
+         ruleContext.registerAction(
+             new SpawnAction.Builder()
+                 .addInput(zipFile)
+                 .addOutput(executable)
+                 .setShellCommand(
+                     shExecutable,
+-                    "echo '#!/usr/bin/env "
+-                        + pythonExecutableName
++                    "echo '"
++                        + pythonShebang
+                         + "' | cat - "
+                         + zipFile.getExecPathString()
+                         + " > "
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json b/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
new file mode 100644
index 000000000000..786a31c9bb31
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
@@ -0,0 +1,745 @@
+{
+    "1.25.0.zip": {
+        "name": "1.25.0.zip",
+        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
+            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
+        ]
+    },
+    "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz": {
+        "name": "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+        "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+            "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
+        ]
+    },
+    "3.1.0.tar.gz": {
+        "name": "3.1.0.tar.gz",
+        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/3.1.0.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
+        ]
+    },
+    "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
+        "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+        ]
+    },
+    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
+        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+        ]
+    },
+    "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip": {
+        "name": "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
+        ]
+    },
+    "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz": {
+        "name": "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+        ]
+    },
+    "android_tools_for_testing": {
+        "name": "android_tools_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e2cbd43a9d23aa32197c29d689a7e017f205acb07053f5dd584f500a1a9d4361",
+        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.16.0.tar.gz"
+    },
+    "android_tools_pkg-0.16.0.tar.gz": {
+        "name": "android_tools_pkg-0.16.0.tar.gz",
+        "sha256": "e2cbd43a9d23aa32197c29d689a7e017f205acb07053f5dd584f500a1a9d4361",
+        "urls": [
+            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.16.0.tar.gz"
+        ]
+    },
+    "bazel_j2objc": {
+        "name": "bazel_j2objc",
+        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
+        "strip_prefix": "j2objc-2.5",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
+            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
+        ]
+    },
+    "bazel_skylib": {
+        "name": "bazel_skylib",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
+        "strip_prefix": "bazel-skylib-2d4c9528e0f453b5950eeaeac11d8d09f5a504d4",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+            "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
+        ]
+    },
+    "bazel_toolchains": {
+        "name": "bazel_toolchains",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+        "strip_prefix": "bazel-toolchains-3.1.0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/3.1.0.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
+        ]
+    },
+    "build_bazel_rules_nodejs": {
+        "name": "build_bazel_rules_nodejs",
+        "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz",
+            "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
+        ]
+    },
+    "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz": {
+        "name": "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
+        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
+            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
+        ]
+    },
+    "com_google_googletest": {
+        "name": "com_google_googletest",
+        "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
+        "strip_prefix": "googletest-release-1.10.0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
+            "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
+        ]
+    },
+    "com_google_protobuf": {
+        "name": "com_google_protobuf",
+        "patch_args": [
+            "-p1"
+        ],
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "patches": [
+            "//third_party/protobuf:3.11.3.patch"
+        ],
+        "sha256": "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
+        "strip_prefix": "protobuf-3.11.3",
+        "urls": [
+            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz",
+            "https://github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz"
+        ]
+    },
+    "coverage_output_generator-v2.1.zip": {
+        "name": "coverage_output_generator-v2.1.zip",
+        "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
+        ]
+    },
+    "desugar_jdk_libs": {
+        "name": "desugar_jdk_libs",
+        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+        "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+        ]
+    },
+    "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
+        "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+        ]
+    },
+    "io_bazel_rules_sass": {
+        "name": "io_bazel_rules_sass",
+        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
+        "strip_prefix": "rules_sass-1.25.0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
+            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
+        ]
+    },
+    "io_bazel_skydoc": {
+        "name": "io_bazel_skydoc",
+        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
+        "strip_prefix": "skydoc-c7bbde2950769aac9a99364b0926230060a3ce04",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
+            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
+        ]
+    },
+    "java_tools_javac11_darwin-v8.0.zip": {
+        "name": "java_tools_javac11_darwin-v8.0.zip",
+        "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip"
+        ]
+    },
+    "java_tools_javac11_linux-v8.0.zip": {
+        "name": "java_tools_javac11_linux-v8.0.zip",
+        "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip"
+        ]
+    },
+    "java_tools_javac11_windows-v8.0.zip": {
+        "name": "java_tools_javac11_windows-v8.0.zip",
+        "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip"
+        ]
+    },
+    "java_tools_langtools_javac11": {
+        "name": "java_tools_langtools_javac11",
+        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
+        ]
+    },
+    "java_tools_langtools_javac12": {
+        "name": "java_tools_langtools_javac12",
+        "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
+        ]
+    },
+    "openjdk11_darwin_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_darwin_archive",
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "openjdk11_linux_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_linux_archive",
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "openjdk11_windows_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_windows_archive",
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "openjdk12_darwin_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk12_darwin_archive",
+        "sha256": "67ca9d285056132ebb19fa237a14affda52132142e1171fe1c20e18974b3b8a5",
+        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-macosx_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-macosx_x64.tar.gz"
+        ]
+    },
+    "openjdk12_linux_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk12_linux_archive",
+        "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
+        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
+        ]
+    },
+    "openjdk12_windows_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk12_windows_archive",
+        "sha256": "cf28404c23c3aa1115363ba6e796c30580a768e1d7d6681a7d053e516008e00d",
+        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-win_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-win_x64.zip"
+        ]
+    },
+    "openjdk_linux": {
+        "downloaded_file_path": "zulu-linux.tar.gz",
+        "name": "openjdk_linux",
+        "sha256": "65bfe4e0ffa74a680ee4410db46b17e30cd9397b664a92a886599fe1f3530969",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-linux_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689070.tar.gz"
+        ]
+    },
+    "openjdk_linux_aarch64": {
+        "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
+        "name": "openjdk_linux_aarch64",
+        "sha256": "6b245793087300db3ee82ab0d165614f193a73a60f2f011e347756c1e6ca5bac",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
+        ]
+    },
+    "openjdk_linux_aarch64_minimal": {
+        "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
+        "name": "openjdk_linux_aarch64_minimal",
+        "sha256": "06f6520a877704c77614bcfc4f846cc7cbcbf5eaad149bf7f19f4f16e285c9de",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
+        ]
+    },
+    "openjdk_linux_aarch64_vanilla": {
+        "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
+        "name": "openjdk_linux_aarch64_vanilla",
+        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+        ]
+    },
+    "openjdk_linux_minimal": {
+        "downloaded_file_path": "zulu-linux-minimal.tar.gz",
+        "name": "openjdk_linux_minimal",
+        "sha256": "91f7d52f695c681d4e21499b4319d548aadef249a6b3053e306308992e1e29ae",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz"
+        ]
+    },
+    "openjdk_linux_vanilla": {
+        "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
+        "name": "openjdk_linux_vanilla",
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "openjdk_macos": {
+        "downloaded_file_path": "zulu-macos.tar.gz",
+        "name": "openjdk_macos",
+        "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz"
+        ]
+    },
+    "openjdk_macos_minimal": {
+        "downloaded_file_path": "zulu-macos-minimal.tar.gz",
+        "name": "openjdk_macos_minimal",
+        "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz"
+        ]
+    },
+    "openjdk_macos_vanilla": {
+        "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
+        "name": "openjdk_macos_vanilla",
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "openjdk_win": {
+        "downloaded_file_path": "zulu-win.zip",
+        "name": "openjdk_win",
+        "sha256": "8e1604b3a27dcf639bc6d1a73103f1211848139e4cceb081d0a74a99e1e6f995",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
+        ]
+    },
+    "openjdk_win_minimal": {
+        "downloaded_file_path": "zulu-win-minimal.zip",
+        "name": "openjdk_win_minimal",
+        "sha256": "b90a713c9c2d9ea23cad44d2c2dfcc9af22faba9bde55dedc1c3bb9f556ac1ae",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
+        ]
+    },
+    "openjdk_win_vanilla": {
+        "downloaded_file_path": "zulu-win-vanilla.zip",
+        "name": "openjdk_win_vanilla",
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "platforms": {
+        "name": "platforms",
+        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
+        "strip_prefix": "platforms-46993efdd33b73649796c5fc5c9efb193ae19d51",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+        ]
+    },
+    "remote_coverage_tools_for_testing": {
+        "name": "remote_coverage_tools_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
+        ]
+    },
+    "remote_java_tools_darwin_for_testing": {
+        "name": "remote_java_tools_darwin_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_darwin-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac11_test_darwin": {
+        "name": "remote_java_tools_javac11_test_darwin",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac11_test_linux": {
+        "name": "remote_java_tools_javac11_test_linux",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac11_test_windows": {
+        "name": "remote_java_tools_javac11_test_windows",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac12_test_darwin": {
+        "name": "remote_java_tools_javac12_test_darwin",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "54df966e7583bafe659e39b4103a4ce934201d969de638d071ada07d8e0c1a3a",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_darwin-v3.0.zip"
+        ]
+    },
+    "remote_java_tools_javac12_test_linux": {
+        "name": "remote_java_tools_javac12_test_linux",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "3997ee9a57b095748f1c0d084839fab2fbc72504aeb7b37b1f71c31738d330e3",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_linux-v3.0.zip"
+        ]
+    },
+    "remote_java_tools_javac12_test_windows": {
+        "name": "remote_java_tools_javac12_test_windows",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "cfad1718dad1fed12816748eed27ab30b9ea1268c8ce9940acf3b5b7d82d483d",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_windows-v3.0.zip"
+        ]
+    },
+    "remote_java_tools_linux_for_testing": {
+        "name": "remote_java_tools_linux_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_linux-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_windows_for_testing": {
+        "name": "remote_java_tools_windows_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_windows-v8.0.zip"
+        ]
+    },
+    "remotejdk11_linux_aarch64_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_linux_aarch64_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+        "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+        ]
+    },
+    "remotejdk11_linux_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_linux_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "remotejdk11_macos_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_macos_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "remotejdk11_win_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_win_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "rules_cc": {
+        "name": "rules_cc",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
+        "strip_prefix": "rules_cc-8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
+        ]
+    },
+    "rules_java": {
+        "name": "rules_java",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+        ]
+    },
+    "rules_nodejs-1.3.0.tar.gz": {
+        "name": "rules_nodejs-1.3.0.tar.gz",
+        "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz",
+            "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
+        ]
+    },
+    "rules_pkg": {
+        "name": "rules_pkg",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
+            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
+        ]
+    },
+    "rules_pkg-0.2.4.tar.gz": {
+        "name": "rules_pkg-0.2.4.tar.gz",
+        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
+            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
+        ]
+    },
+    "rules_proto": {
+        "name": "rules_proto",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+        "strip_prefix": "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+        ]
+    },
+    "v3.11.3.tar.gz": {
+        "name": "v3.11.3.tar.gz",
+        "sha256": "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
+        "urls": [
+            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz",
+            "https://github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz"
+        ]
+    },
+    "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz": {
+        "name": "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz": {
+        "name": "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz",
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "zulu11.37.17-ca-jdk11.0.6-win_x64.zip": {
+        "name": "zulu11.37.17-ca-jdk11.0.6-win_x64.zip",
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz": {
+        "name": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz",
+        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+        ]
+    }
+}
diff --git a/pkgs/development/tools/build-managers/bazel/update-srcDeps.py b/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
index 504a227b9582..e57dc05bb72a 100755
--- a/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
+++ b/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
@@ -45,6 +45,7 @@ def rules_pkg_dependencies(*args, **kw): pass
 def winsdk_configure(*args, **kw): pass
 def register_local_rc_exe_toolchains(*args, **kw): pass
 def register_toolchains(*args, **kw): pass
+def debian_deps(): pass
 
 # execute the WORKSPACE like it was python code in this module,
 # using all the function stubs from above.
diff --git a/pkgs/development/tools/cmake-language-server/default.nix b/pkgs/development/tools/cmake-language-server/default.nix
new file mode 100644
index 000000000000..943655b881c2
--- /dev/null
+++ b/pkgs/development/tools/cmake-language-server/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub
+, poetry, pygls, pyparsing
+, cmake, pytest, pytest-datadir
+}:
+
+buildPythonApplication rec {
+  pname = "cmake-language-server";
+  version = "0.1.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "regen100";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09rijjksx07inbwxjinrsqihkxb011l2glysasmwpkhy0rmmhbcm";
+  };
+
+  nativeBuildInputs = [ poetry ];
+  propagatedBuildInputs = [ pygls pyparsing ];
+
+  checkInputs = [ cmake pytest pytest-datadir ];
+  dontUseCmakeConfigure = true;
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/regen100/cmake-language-server";
+    description = "CMake LSP Implementation";
+    license = licenses.mit;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index a7fb382c7553..eecad922d4e8 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -69,28 +69,28 @@ let
       baseOverlay = self: super:
         let
           getDep = depName: self.${depName};
-          lockPkgs = builtins.listToAttrs
-            (
-              builtins.map
-                (
-                  pkgMeta: rec {
-                    name = moduleName pkgMeta.name;
-                    value = self.mkPoetryDep
-                      (
-                        pkgMeta // {
-                          inherit pwd preferWheels;
-                          source = pkgMeta.source or null;
-                          files = lockFiles.${name};
-                          pythonPackages = self;
-                          sourceSpec = pyProject.tool.poetry.dependencies.${name} or pyProject.tool.poetry.dev-dependencies.${name};
-                        }
-                      );
-                  }
-                ) compatible
-            );
+          lockPkgs = builtins.listToAttrs (
+            builtins.map
+              (
+                pkgMeta: rec {
+                  name = moduleName pkgMeta.name;
+                  value = self.mkPoetryDep (
+                    pkgMeta // {
+                      inherit pwd preferWheels;
+                      source = pkgMeta.source or null;
+                      files = lockFiles.${name};
+                      pythonPackages = self;
+                      sourceSpec = pyProject.tool.poetry.dependencies.${name} or pyProject.tool.poetry.dev-dependencies.${name} or { };
+                    }
+                  );
+                }
+              )
+              compatible
+          );
         in
         lockPkgs;
-      overlays = builtins.map getFunctorFn
+      overlays = builtins.map
+        getFunctorFn
         (
           [
             (
@@ -127,6 +127,8 @@ let
     };
 
   /* Returns a package with a python interpreter and all packages specified in the poetry.lock lock file.
+     In editablePackageSources you can pass a mapping from package name to source directory to have
+     those packages available in the resulting environment, whose source changes are immediately available.
 
      Example:
        poetry2nix.mkPoetryEnv { poetrylock = ./poetry.lock; python = python3; }
@@ -139,18 +141,31 @@ let
     , pwd ? projectDir
     , python ? pkgs.python3
     , preferWheels ? false
+      # Example: { my-app = ./src; }
+    , editablePackageSources ? { }
     }:
     let
-      py = mkPoetryPackages
-        (
-          {
-            inherit pyproject poetrylock overrides python pwd preferWheels;
-          }
-        );
+      py = mkPoetryPackages (
+        {
+          inherit pyproject poetrylock overrides python pwd preferWheels;
+        }
+      );
+
+      editablePackage = import ./editable.nix {
+        inherit pkgs lib poetryLib editablePackageSources;
+        inherit (py) pyProject python;
+      };
+
     in
-    py.python.withPackages (_: py.poetryPackages);
+    py.python.withPackages (_: py.poetryPackages ++ lib.optional (editablePackageSources != { }) editablePackage);
 
-  /* Creates a Python application from pyproject.toml and poetry.lock */
+  /* Creates a Python application from pyproject.toml and poetry.lock
+
+     The result also contains a .dependencyEnv attribute which is a python
+     environment of all dependencies and this apps modules. This is useful if
+     you rely on dependencies to invoke your modules for deployment: e.g. this
+     allows `gunicorn my-module:app`.
+  */
   mkPoetryApplication =
     { projectDir ? null
     , src ? poetryLib.cleanPythonSources { src = projectDir; }
@@ -194,17 +209,17 @@ let
               pkg = py.pkgs."${dep}";
               constraints = deps.${dep}.python or "";
               isCompat = compat constraints;
-            in if isCompat then pkg else null
-          ) depAttrs;
+            in
+            if isCompat then pkg else null
+          )
+          depAttrs;
       getInputs = attr: attrs.${attr} or [ ];
       mkInput = attr: extraInputs: getInputs attr ++ extraInputs;
       buildSystemPkgs = poetryLib.getBuildSystemPkgs {
         inherit pyProject;
         pythonPackages = py.pkgs;
       };
-    in
-    py.pkgs.buildPythonApplication
-      (
+      app = py.pkgs.buildPythonPackage (
         passedAttrs // {
           pname = moduleName pyProject.tool.poetry.name;
           version = pyProject.tool.poetry.version;
@@ -212,6 +227,10 @@ let
           inherit src;
 
           format = "pyproject";
+          # Like buildPythonApplication, but without the toPythonModule part
+          # Meaning this ends up looking like an application but it also
+          # provides python modules
+          namePrefix = "";
 
           buildInputs = mkInput "buildInputs" buildSystemPkgs;
           propagatedBuildInputs = mkInput "propagatedBuildInputs" (getDeps "dependencies") ++ ([ py.pkgs.setuptools ]);
@@ -220,16 +239,30 @@ let
 
           passthru = {
             python = py;
+            dependencyEnv = (
+              lib.makeOverridable ({ app, ... }@attrs:
+                let
+                  args = builtins.removeAttrs attrs [ "app" ] // {
+                    extraLibs = [ app ];
+                  };
+                in
+                py.buildEnv.override args)
+            ) { inherit app; };
           };
 
-          meta = meta // {
-            inherit (pyProject.tool.poetry) description homepage;
+          meta = lib.optionalAttrs (lib.hasAttr "description" pyProject.tool.poetry) {
+            inherit (pyProject.tool.poetry) description;
+          } // lib.optionalAttrs (lib.hasAttr "homepage" pyProject.tool.poetry) {
+            inherit (pyProject.tool.poetry) homepage;
+          } // {
             inherit (py.meta) platforms;
             license = getLicenseBySpdxId (pyProject.tool.poetry.license or "unknown");
-          };
+          } // meta;
 
         }
       );
+    in
+    app;
 
   /* Poetry2nix CLI used to supplement SHA-256 hashes for git dependencies  */
   cli = import ./cli.nix { inherit pkgs lib version; };
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix b/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix
new file mode 100644
index 000000000000..8b0d933e445f
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix
@@ -0,0 +1,54 @@
+{ pkgs
+, lib
+, poetryLib
+, pyProject
+, python
+, editablePackageSources
+}:
+let
+  name = poetryLib.moduleName pyProject.tool.poetry.name;
+
+  # Just enough standard PKG-INFO fields for an editable installation
+  pkgInfoFields = {
+    Metadata-Version = "2.1";
+    Name = name;
+    # While the pyproject.toml could contain arbitrary version strings, for
+    # simplicity we just use the same one for PKG-INFO, even though that
+    # should follow follow PEP 440: https://www.python.org/dev/peps/pep-0345/#version
+    # This is how poetry transforms it: https://github.com/python-poetry/poetry/blob/6cd3645d889f47c10425961661b8193b23f0ed79/poetry/version/version.py
+    Version = pyProject.tool.poetry.version;
+    Summary = pyProject.tool.poetry.description;
+  };
+
+  pkgInfoFile = builtins.toFile "${name}-PKG-INFO"
+    (lib.concatStringsSep "\n" (lib.mapAttrsToList (key: value: "${key}: ${value}") pkgInfoFields));
+
+  entryPointsFile = builtins.toFile "${name}-entry_points.txt"
+    (lib.generators.toINI { } pyProject.tool.poetry.plugins);
+
+  # A python package that contains simple .egg-info and .pth files for an editable installation
+  editablePackage = python.pkgs.toPythonModule (pkgs.runCommandNoCC "${name}-editable"
+    { } ''
+    mkdir -p "$out/${python.sitePackages}"
+    cd "$out/${python.sitePackages}"
+
+    # See https://docs.python.org/3.8/library/site.html for info on such .pth files
+    # These add another site package path for each line
+    touch poetry2nix-editable.pth
+    ${lib.concatMapStringsSep "\n" (src: ''
+      echo "${toString src}" >> poetry2nix-editable.pth
+    '')
+      (lib.attrValues editablePackageSources)}
+
+    # Create a very simple egg so pkg_resources can find this package
+    # See https://setuptools.readthedocs.io/en/latest/formats.html for more info on the egg format
+    mkdir "${name}.egg-info"
+    cd "${name}.egg-info"
+    ln -s ${pkgInfoFile} PKG-INFO
+    ${lib.optionalString (pyProject.tool.poetry ? plugins) ''
+      ln -s ${entryPointsFile} entry_points.txt
+    ''}
+  ''
+  );
+in
+editablePackage
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
index ae5867b83372..001a3d09c6b9 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
@@ -14,36 +14,39 @@ in
   removePathDependenciesHook = callPackage
     (
       {}:
-      makeSetupHook {
-        name = "remove-path-dependencies.sh";
-        deps = [ ];
-        substitutions = {
-          inherit pythonInterpreter;
-          yj = "${yj}/bin/yj";
-          pyprojectPatchScript = "${./pyproject-without-path.py}";
-        };
-      } ./remove-path-dependencies.sh
+      makeSetupHook
+        {
+          name = "remove-path-dependencies.sh";
+          deps = [ ];
+          substitutions = {
+            inherit pythonInterpreter;
+            yj = "${yj}/bin/yj";
+            pyprojectPatchScript = "${./pyproject-without-path.py}";
+          };
+        } ./remove-path-dependencies.sh
     ) { };
 
   pipBuildHook = callPackage
     (
       { pip, wheel }:
-      makeSetupHook {
-        name = "pip-build-hook.sh";
-        deps = [ pip wheel ];
-        substitutions = {
-          inherit pythonInterpreter pythonSitePackages;
-        };
-      } ./pip-build-hook.sh
+      makeSetupHook
+        {
+          name = "pip-build-hook.sh";
+          deps = [ pip wheel ];
+          substitutions = {
+            inherit pythonInterpreter pythonSitePackages;
+          };
+        } ./pip-build-hook.sh
     ) { };
 
   poetry2nixFixupHook = callPackage
     (
       {}:
-      makeSetupHook {
-        name = "fixup-hook.sh";
-        deps = [ ];
-      } ./fixup-hook.sh
+      makeSetupHook
+        {
+          name = "fixup-hook.sh";
+          deps = [ ];
+        } ./fixup-hook.sh
     ) { };
 
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index ed47837ee439..39233929abb9 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -20,7 +20,7 @@ let
       minor = l: lib.elemAt l 1;
       joinVersion = v: lib.concatStringsSep "." v;
     in
-    joinVersion ( if major pyVer == major ver && minor pyVer == minor ver then ver else pyVer);
+    joinVersion (if major pyVer == major ver && minor pyVer == minor ver then ver else pyVer);
 
   # Compare a semver expression with a version
   isCompatible = version:
@@ -45,28 +45,27 @@ let
           state = operators."${operator}" acc.state (satisfiesSemver version v);
         };
       initial = { operator = "&&"; state = true; };
-    in if expr == "" then true else (builtins.foldl' combine initial tokens).state;
+    in
+    if expr == "" then true else (builtins.foldl' combine initial tokens).state;
   fromTOML = builtins.fromTOML or
     (
-      toml: builtins.fromJSON
-        (
-          builtins.readFile
-            (
-              pkgs.runCommand "from-toml"
-                {
-                  inherit toml;
-                  allowSubstitutes = false;
-                  preferLocalBuild = true;
-                }
-                ''
-                  ${pkgs.remarshal}/bin/remarshal \
-                    -if toml \
-                    -i <(echo "$toml") \
-                    -of json \
-                    -o $out
-                ''
-            )
+      toml: builtins.fromJSON (
+        builtins.readFile (
+          pkgs.runCommand "from-toml"
+            {
+              inherit toml;
+              allowSubstitutes = false;
+              preferLocalBuild = true;
+            }
+            ''
+              ${pkgs.remarshal}/bin/remarshal \
+                -if toml \
+                -i <(echo "$toml") \
+                -of json \
+                -o $out
+            ''
         )
+      )
     );
   readTOML = path: fromTOML (builtins.readFile path);
 
@@ -88,11 +87,10 @@ let
   #   file: filename including extension
   #   hash: SRI hash
   #   kind: Language implementation and version tag
-  predictURLFromPypi = lib.makeOverridable
-    (
-      { pname, file, hash, kind }:
-      "https://files.pythonhosted.org/packages/${kind}/${lib.toLower (builtins.substring 0 1 file)}/${pname}/${file}"
-    );
+  predictURLFromPypi = lib.makeOverridable (
+    { pname, file, hash, kind }:
+    "https://files.pythonhosted.org/packages/${kind}/${lib.toLower (builtins.substring 0 1 file)}/${pname}/${file}"
+  );
 
 
   # Fetch the wheels from the PyPI index.
@@ -102,36 +100,35 @@ let
   #   file: filename including extension
   #   hash: SRI hash
   #   kind: Language implementation and version tag
-  fetchWheelFromPypi = lib.makeOverridable
-    (
-      { pname, file, hash, kind, curlOpts ? "" }:
-      let
-        version = builtins.elemAt (builtins.split "-" file) 2;
-      in
-      (pkgs.stdenvNoCC.mkDerivation {
-        name = file;
-        nativeBuildInputs = [
-          pkgs.curl
-          pkgs.jq
-        ];
-        isWheel = true;
-        system = "builtin";
-
-        preferLocalBuild = true;
-        impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
-          "NIX_CURL_FLAGS"
-        ];
-
-        predictedURL = predictURLFromPypi { inherit pname file hash kind; };
-        inherit pname file version curlOpts;
-
-        builder = ./fetch-wheel.sh;
-
-        outputHashMode = "flat";
-        outputHashAlgo = "sha256";
-        outputHash = hash;
-      })
-    );
+  fetchWheelFromPypi = lib.makeOverridable (
+    { pname, file, hash, kind, curlOpts ? "" }:
+    let
+      version = builtins.elemAt (builtins.split "-" file) 2;
+    in
+    (pkgs.stdenvNoCC.mkDerivation {
+      name = file;
+      nativeBuildInputs = [
+        pkgs.curl
+        pkgs.jq
+      ];
+      isWheel = true;
+      system = "builtin";
+
+      preferLocalBuild = true;
+      impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
+        "NIX_CURL_FLAGS"
+      ];
+
+      predictedURL = predictURLFromPypi { inherit pname file hash kind; };
+      inherit pname file version curlOpts;
+
+      builder = ./fetch-wheel.sh;
+
+      outputHashMode = "flat";
+      outputHashAlgo = "sha256";
+      outputHash = hash;
+    })
+  );
 
   # Fetch the artifacts from the PyPI index. Since we get all
   # info we need from the lock file we don't use nixpkgs' fetchPyPi
@@ -143,16 +140,15 @@ let
   #   file: filename including extension
   #   hash: SRI hash
   #   kind: Language implementation and version tag https://www.python.org/dev/peps/pep-0427/#file-name-convention
-  fetchFromPypi = lib.makeOverridable
-    (
-      { pname, file, hash, kind }:
-      if lib.strings.hasSuffix "whl" file then fetchWheelFromPypi { inherit pname file hash kind; }
-      else
-        pkgs.fetchurl {
-          url = predictURLFromPypi { inherit pname file hash kind; };
-          inherit hash;
-        }
-    );
+  fetchFromPypi = lib.makeOverridable (
+    { pname, file, hash, kind }:
+    if lib.strings.hasSuffix "whl" file then fetchWheelFromPypi { inherit pname file hash kind; }
+    else
+      pkgs.fetchurl {
+        url = predictURLFromPypi { inherit pname file hash kind; };
+        inherit hash;
+      }
+  );
   getBuildSystemPkgs =
     { pythonPackages
     , pyProject
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
index 2467dad31e1a..20175f6bade4 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -58,7 +58,7 @@ pythonPackages.callPackage
           binaryDist = selectWheel fileCandidates;
           sourceDist = builtins.filter isSdist fileCandidates;
           eggs = builtins.filter isEgg fileCandidates;
-          entries = ( if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
+          entries = (if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
           lockFileEntry = builtins.head entries;
           _isEgg = isEgg lockFileEntry;
         in
@@ -111,7 +111,8 @@ pythonPackages.callPackage
       propagatedBuildInputs =
         let
           compat = isCompatible (poetryLib.getPythonVersion python);
-          deps = lib.filterAttrs (n: v: v)
+          deps = lib.filterAttrs
+            (n: v: v)
             (
               lib.mapAttrs
                 (
@@ -120,7 +121,8 @@ pythonPackages.callPackage
                       constraints = v.python or "";
                     in
                     compat constraints
-                ) dependencies
+                )
+                dependencies
             );
           depAttrs = lib.attrNames deps;
         in
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index d18e6b8293f3..ccb8d9342f63 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -6,520 +6,536 @@
 self: super:
 
 {
-  astroid = super.astroid.overridePythonAttrs
-    (
-      old: rec {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  astroid = super.astroid.overridePythonAttrs (
+    old: rec {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  av = super.av.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [
-          pkgs.pkgconfig
-        ];
-        buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
-      }
-    );
+  av = super.av.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        pkgs.pkgconfig
+      ];
+      buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
+    }
+  );
 
-  bcrypt = super.bcrypt.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.libffi ];
-      }
-    );
+  bcrypt = super.bcrypt.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.libffi ];
+    }
+  );
 
   cffi =
     # cffi is bundled with pypy
     if self.python.implementation == "pypy" then null else (
-      super.cffi.overridePythonAttrs
-        (
-          old: {
-            buildInputs = old.buildInputs ++ [ pkgs.libffi ];
-          }
-        )
-    );
-
-  cftime = super.cftime.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.cython
-        ];
-      }
+      super.cffi.overridePythonAttrs (
+        old: {
+          buildInputs = old.buildInputs ++ [ pkgs.libffi ];
+        }
+      )
     );
 
-  configparser = super.configparser.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.toml
-        ];
+  cftime = super.cftime.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cython
+      ];
+    }
+  );
 
-        postPatch = ''
-          substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
-        '';
-      }
-    );
+  configparser = super.configparser.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.toml
+      ];
 
-  cryptography = super.cryptography.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.openssl ];
-      }
-    );
+      postPatch = ''
+        substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
+      '';
+    }
+  );
 
-  django = (
-    super.django.overridePythonAttrs
-      (
-        old: {
-          propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ])
-            ++ [ pkgs.gettext ];
-        }
-      )
+  cryptography = super.cryptography.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+    }
   );
 
-  django-bakery = super.django-bakery.overridePythonAttrs
-    (
+  django = (
+    super.django.overridePythonAttrs (
       old: {
-        configurePhase = ''
-          if ! test -e LICENSE; then
-            touch LICENSE
-          fi
-        '' + (old.configurePhase or "");
+        propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ])
+          ++ [ pkgs.gettext ];
       }
-    );
+    )
+  );
 
-  dlib = super.dlib.overridePythonAttrs
-    (
-      old: {
-        # Parallel building enabled
-        inherit (pkgs.python.pkgs.dlib) patches;
+  django-bakery = super.django-bakery.overridePythonAttrs (
+    old: {
+      configurePhase = ''
+        if ! test -e LICENSE; then
+          touch LICENSE
+        fi
+      '' + (old.configurePhase or "");
+    }
+  );
 
-        enableParallelBuilding = true;
-        dontUseCmakeConfigure = true;
+  dlib = super.dlib.overridePythonAttrs (
+    old: {
+      # Parallel building enabled
+      inherit (pkgs.python.pkgs.dlib) patches;
 
-        nativeBuildInputs = old.nativeBuildInputs ++ pkgs.dlib.nativeBuildInputs;
-        buildInputs = old.buildInputs ++ pkgs.dlib.buildInputs;
-      }
-    );
+      enableParallelBuilding = true;
+      dontUseCmakeConfigure = true;
+
+      nativeBuildInputs = old.nativeBuildInputs ++ pkgs.dlib.nativeBuildInputs;
+      buildInputs = old.buildInputs ++ pkgs.dlib.buildInputs;
+    }
+  );
 
   # Environment markers are not always included (depending on how a dep was defined)
   enum34 = if self.pythonAtLeast "3.4" then null else super.enum34;
 
-  faker = super.faker.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  faker = super.faker.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  fancycompleter = super.fancycompleter.overridePythonAttrs
-    (
-      old: {
-        postPatch = ''
-          substituteInPlace setup.py \
-            --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \
-            --replace 'versioning="devcommit"' 'version="${old.version}"'
-        '';
-      }
-    );
+  fancycompleter = super.fancycompleter.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        substituteInPlace setup.py \
+          --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \
+          --replace 'versioning="devcommit"' 'version="${old.version}"'
+      '';
+    }
+  );
 
-  fastparquet = super.fastparquet.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-      }
-    );
+  fastparquet = super.fastparquet.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+    }
+  );
 
-  grandalf = super.grandalf.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  grandalf = super.grandalf.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  h5py = super.h5py.overridePythonAttrs
-    (
-      old:
-      if old.format != "wheel" then rec {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        buildInputs = old.buildInputs ++ [ pkgs.hdf5 self.pkgconfig self.cython ];
-        configure_flags = "--hdf5=${pkgs.hdf5}";
-        postConfigure = ''
-          ${self.python.executable} setup.py configure ${configure_flags}
-        '';
-      } else old
-    );
+  h5py = super.h5py.overridePythonAttrs (
+    old:
+    if old.format != "wheel" then rec {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      buildInputs = old.buildInputs ++ [ pkgs.hdf5 self.pkgconfig self.cython ];
+      configure_flags = "--hdf5=${pkgs.hdf5}";
+      postConfigure = ''
+        ${self.python.executable} setup.py configure ${configure_flags}
+      '';
+    } else old
+  );
 
-  horovod = super.horovod.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.openmpi ];
-      }
-    );
+  horovod = super.horovod.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.openmpi ];
+    }
+  );
+
+  imagecodecs = super.imagecodecs.overridePythonAttrs (
+    old: {
+      patchPhase = ''
+        substituteInPlace setup.py \
+          --replace "/usr/include/openjpeg-2.3" \
+                    "${pkgs.openjpeg.dev}/include/openjpeg-2.3"
+        substituteInPlace setup.py \
+          --replace "/usr/include/jxrlib" \
+                    "$out/include/libjxr"
+        substituteInPlace imagecodecs/_zopfli.c \
+          --replace '"zopfli/zopfli.h"' \
+                    '<zopfli.h>'
+        substituteInPlace imagecodecs/_zopfli.c \
+          --replace '"zopfli/zlib_container.h"' \
+                    '<zlib_container.h>'
+        substituteInPlace imagecodecs/_zopfli.c \
+          --replace '"zopfli/gzip_container.h"' \
+                    '<gzip_container.h>'
+      '';
+
+      preBuild = ''
+        mkdir -p $out/include/libjxr
+        ln -s ${pkgs.jxrlib}/include/libjxr/**/* $out/include/libjxr
+
+      '';
+
+      buildInputs = old.buildInputs ++ [
+        # Commented out packages are declared required, but not actually
+        # needed to build. They are not yet packaged for nixpkgs.
+        # bitshuffle
+        pkgs.brotli
+        # brunsli
+        pkgs.bzip2
+        pkgs.c-blosc
+        # charls
+        pkgs.giflib
+        pkgs.jxrlib
+        pkgs.lcms
+        pkgs.libaec
+        pkgs.libaec
+        pkgs.libjpeg_turbo
+        # liblzf
+        # liblzma
+        pkgs.libpng
+        pkgs.libtiff
+        pkgs.libwebp
+        pkgs.lz4
+        pkgs.openjpeg
+        pkgs.snappy
+        # zfp
+        pkgs.zopfli
+        pkgs.zstd
+        pkgs.zlib
+      ];
+    }
+  );
 
   # importlib-metadata has an incomplete dependency specification
-  importlib-metadata = super.importlib-metadata.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
-      }
-    );
+  importlib-metadata = super.importlib-metadata.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
+    }
+  );
 
-  isort = super.isort.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
-      }
-    );
+  isort = super.isort.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+    }
+  );
 
-  jupyter = super.jupyter.overridePythonAttrs
-    (
-      old: rec {
-        # jupyter is a meta-package. Everything relevant comes from the
-        # dependencies. It does however have a jupyter.py file that conflicts
-        # with jupyter-core so this meta solves this conflict.
-        meta.priority = 100;
-      }
-    );
+  jupyter = super.jupyter.overridePythonAttrs (
+    old: rec {
+      # jupyter is a meta-package. Everything relevant comes from the
+      # dependencies. It does however have a jupyter.py file that conflicts
+      # with jupyter-core so this meta solves this conflict.
+      meta.priority = 100;
+    }
+  );
 
-  kiwisolver = super.kiwisolver.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          # cppy is at the time of writing not in nixpkgs
-          (self.cppy or null)
-        ];
-      }
-    );
+  kiwisolver = super.kiwisolver.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        # cppy is at the time of writing not in nixpkgs
+        (self.cppy or null)
+      ];
+    }
+  );
 
-  lap = super.lap.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          self.numpy
-        ];
-      }
-    );
+  lap = super.lap.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        self.numpy
+      ];
+    }
+  );
 
-  llvmlite = super.llvmlite.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
+  llvmlite = super.llvmlite.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
 
-        # Disable static linking
-        # https://github.com/numba/llvmlite/issues/93
-        postPatch = ''
-          substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
+      # Disable static linking
+      # https://github.com/numba/llvmlite/issues/93
+      postPatch = ''
+        substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
 
-          substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
-        '';
+        substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
+      '';
 
-        # Set directory containing llvm-config binary
-        preConfigure = ''
-          export LLVM_CONFIG=${pkgs.llvm}/bin/llvm-config
-        '';
+      # Set directory containing llvm-config binary
+      preConfigure = ''
+        export LLVM_CONFIG=${pkgs.llvm}/bin/llvm-config
+      '';
 
-        __impureHostDeps = pkgs.stdenv.lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
+      __impureHostDeps = pkgs.stdenv.lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
 
-        passthru = old.passthru // { llvm = pkgs.llvm; };
-      }
-    );
+      passthru = old.passthru // { llvm = pkgs.llvm; };
+    }
+  );
 
-  lockfile = super.lockfile.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
-      }
-    );
+  lockfile = super.lockfile.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
+    }
+  );
 
-  lxml = super.lxml.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
-        buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
-      }
-    );
+  lxml = super.lxml.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
+      buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
+    }
+  );
 
-  markupsafe = super.markupsafe.overridePythonAttrs
-    (
-      old: {
-        src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; };
-      }
-    );
+  markupsafe = super.markupsafe.overridePythonAttrs (
+    old: {
+      src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; };
+    }
+  );
 
-  matplotlib = super.matplotlib.overridePythonAttrs
-    (
-      old:
-      let
-        enableGhostscript = old.passthru.enableGhostscript or false;
-        enableGtk3 = old.passthru.enableTk or false;
-        enableQt = old.passthru.enableQt or false;
-        enableTk = old.passthru.enableTk or false;
+  matplotlib = super.matplotlib.overridePythonAttrs (
+    old:
+    let
+      enableGhostscript = old.passthru.enableGhostscript or false;
+      enableGtk3 = old.passthru.enableTk or false;
+      enableQt = old.passthru.enableQt or false;
+      enableTk = old.passthru.enableTk or false;
 
-        inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
-      in
-      {
-        NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1";
+      inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+    in
+    {
+      NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1";
 
-        XDG_RUNTIME_DIR = "/tmp";
+      XDG_RUNTIME_DIR = "/tmp";
 
-        buildInputs = old.buildInputs
-          ++ lib.optional enableGhostscript pkgs.ghostscript
-          ++ lib.optional stdenv.isDarwin [ Cocoa ];
+      buildInputs = old.buildInputs
+        ++ lib.optional enableGhostscript pkgs.ghostscript
+        ++ lib.optional stdenv.isDarwin [ Cocoa ];
 
-        nativeBuildInputs = old.nativeBuildInputs ++ [
-          pkgs.pkgconfig
-        ];
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        pkgs.pkgconfig
+      ];
 
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          pkgs.libpng
-          pkgs.freetype
-        ]
-          ++ stdenv.lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ]
-          ++ stdenv.lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ]
-          ++ stdenv.lib.optionals enableQt [ self.pyqt5 ]
-        ;
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        pkgs.libpng
+        pkgs.freetype
+      ]
+        ++ stdenv.lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ]
+        ++ stdenv.lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ]
+        ++ stdenv.lib.optionals enableQt [ self.pyqt5 ]
+      ;
 
-        inherit (super.matplotlib) patches;
-      }
-    );
+      inherit (super.matplotlib) patches;
+    }
+  );
 
   # Calls Cargo at build time for source builds and is really tricky to package
   maturin = super.maturin.override {
     preferWheel = true;
   };
 
-  mccabe = super.mccabe.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
-
-  netcdf4 = super.netcdf4.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.cython
-        ];
-
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          pkgs.zlib
-          pkgs.netcdf
-          pkgs.hdf5
-          pkgs.curl
-          pkgs.libjpeg
-        ];
+  mccabe = super.mccabe.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-        # Variables used to configure the build process
-        USE_NCCONFIG = "0";
-        HDF5_DIR = lib.getDev pkgs.hdf5;
-        NETCDF4_DIR = pkgs.netcdf;
-        CURL_DIR = pkgs.curl.dev;
-        JPEG_DIR = pkgs.libjpeg.dev;
-      }
-    );
+  netcdf4 = super.netcdf4.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cython
+      ];
+
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        pkgs.zlib
+        pkgs.netcdf
+        pkgs.hdf5
+        pkgs.curl
+        pkgs.libjpeg
+      ];
+
+      # Variables used to configure the build process
+      USE_NCCONFIG = "0";
+      HDF5_DIR = lib.getDev pkgs.hdf5;
+      NETCDF4_DIR = pkgs.netcdf;
+      CURL_DIR = pkgs.curl.dev;
+      JPEG_DIR = pkgs.libjpeg.dev;
+    }
+  );
 
-  numpy = super.numpy.overridePythonAttrs
-    (
-      old:
-      let
-        blas = old.passthru.args.blas or pkgs.openblasCompat;
-        blasImplementation = lib.nameFromURL blas.name "-";
-        cfg = pkgs.writeTextFile {
-          name = "site.cfg";
-          text = (
-            lib.generators.toINI { } {
-              ${blasImplementation} = {
-                include_dirs = "${blas}/include";
-                library_dirs = "${blas}/lib";
-              } // lib.optionalAttrs (blasImplementation == "mkl") {
-                mkl_libs = "mkl_rt";
-                lapack_libs = "";
-              };
-            }
-          );
-        };
-      in
-      {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
-        buildInputs = old.buildInputs ++ [ blas self.cython ];
-        enableParallelBuilding = true;
-        preBuild = ''
-          ln -s ${cfg} site.cfg
-        '';
-        passthru = old.passthru // {
-          blas = blas;
-          inherit blasImplementation cfg;
-        };
-      }
-    );
+  numpy = super.numpy.overridePythonAttrs (
+    old:
+    let
+      blas = old.passthru.args.blas or pkgs.openblasCompat;
+      blasImplementation = lib.nameFromURL blas.name "-";
+      cfg = pkgs.writeTextFile {
+        name = "site.cfg";
+        text = (
+          lib.generators.toINI
+            { } {
+            ${blasImplementation} = {
+              include_dirs = "${blas}/include";
+              library_dirs = "${blas}/lib";
+            } // lib.optionalAttrs (blasImplementation == "mkl") {
+              mkl_libs = "mkl_rt";
+              lapack_libs = "";
+            };
+          }
+        );
+      };
+    in
+    {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
+      buildInputs = old.buildInputs ++ [ blas self.cython ];
+      enableParallelBuilding = true;
+      preBuild = ''
+        ln -s ${cfg} site.cfg
+      '';
+      passthru = old.passthru // {
+        blas = blas;
+        inherit blasImplementation cfg;
+      };
+    }
+  );
 
-  openexr = super.openexr.overridePythonAttrs
-    (
-      old: rec {
-        buildInputs = old.buildInputs ++ [ pkgs.openexr pkgs.ilmbase ];
-        NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ];
-      }
-    );
+  openexr = super.openexr.overridePythonAttrs (
+    old: rec {
+      buildInputs = old.buildInputs ++ [ pkgs.openexr pkgs.ilmbase ];
+      NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ];
+    }
+  );
 
-  peewee = super.peewee.overridePythonAttrs
-    (
-      old:
-      let
-        withPostgres = old.passthru.withPostgres or false;
-        withMysql = old.passthru.withMysql or false;
-      in
-      {
-        buildInputs = old.buildInputs ++ [ self.cython pkgs.sqlite ];
-        propagatedBuildInputs = old.propagatedBuildInputs
-          ++ lib.optional withPostgres self.psycopg2
-          ++ lib.optional withMysql self.mysql-connector;
-      }
-    );
+  peewee = super.peewee.overridePythonAttrs (
+    old:
+    let
+      withPostgres = old.passthru.withPostgres or false;
+      withMysql = old.passthru.withMysql or false;
+    in
+    {
+      buildInputs = old.buildInputs ++ [ self.cython pkgs.sqlite ];
+      propagatedBuildInputs = old.propagatedBuildInputs
+        ++ lib.optional withPostgres self.psycopg2
+        ++ lib.optional withMysql self.mysql-connector;
+    }
+  );
 
-  pillow = super.pillow.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = [ pkgs.pkgconfig ] ++ old.nativeBuildInputs;
-        buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ old.buildInputs;
-      }
-    );
+  pillow = super.pillow.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = [ pkgs.pkgconfig ] ++ old.nativeBuildInputs;
+      buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ old.buildInputs;
+    }
+  );
 
-  psycopg2 = super.psycopg2.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
-      }
-    );
+  psycopg2 = super.psycopg2.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+    }
+  );
 
-  psycopg2-binary = super.psycopg2-binary.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
-      }
-    );
+  psycopg2-binary = super.psycopg2-binary.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+    }
+  );
 
   pyarrow =
-    if lib.versionAtLeast super.pyarrow.version "0.16.0" then super.pyarrow.overridePythonAttrs
-      (
-        old:
-        let
-          parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
-          _arrow-cpp = pkgs.arrow-cpp.override { inherit (self) python; };
-          ARROW_HOME = _arrow-cpp;
-          arrowCppVersion = parseMinor pkgs.arrow-cpp;
-          pyArrowVersion = parseMinor super.pyarrow;
-          errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})";
-        in
-        if arrowCppVersion != pyArrowVersion then throw errorMessage else {
-
-          nativeBuildInputs = old.nativeBuildInputs ++ [
-            self.cython
-            pkgs.pkgconfig
-            pkgs.cmake
-          ];
-
-          preBuild = ''
-            export PYARROW_PARALLEL=$NIX_BUILD_CORES
-          '';
-
-          PARQUET_HOME = _arrow-cpp;
-          inherit ARROW_HOME;
-
-          buildInputs = old.buildInputs ++ [
-            pkgs.arrow-cpp
-          ];
-
-          PYARROW_BUILD_TYPE = "release";
-          PYARROW_WITH_PARQUET = true;
-          PYARROW_CMAKE_OPTIONS = [
-            "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
+    if lib.versionAtLeast super.pyarrow.version "0.16.0" then super.pyarrow.overridePythonAttrs (
+      old:
+      let
+        parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
+        _arrow-cpp = pkgs.arrow-cpp.override { inherit (self) python; };
+        ARROW_HOME = _arrow-cpp;
+        arrowCppVersion = parseMinor pkgs.arrow-cpp;
+        pyArrowVersion = parseMinor super.pyarrow;
+        errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})";
+      in
+      if arrowCppVersion != pyArrowVersion then throw errorMessage else {
 
-            # This doesn't use setup hook to call cmake so we need to workaround #54606
-            # ourselves
-            "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
-          ];
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          self.cython
+          pkgs.pkgconfig
+          pkgs.cmake
+        ];
 
-          dontUseCmakeConfigure = true;
-        }
-      ) else super.pyarrow.overridePythonAttrs
-      (
-        old: {
-          nativeBuildInputs = old.nativeBuildInputs ++ [
-            self.cython
-          ];
-        }
-      );
+        preBuild = ''
+          export PYARROW_PARALLEL=$NIX_BUILD_CORES
+        '';
 
-  pycairo =
-    (
-      drv: (
-        drv.overridePythonAttrs
-          (
-            _: {
-              format = "other";
-            }
-          )
-      ).overridePythonAttrs
-        (
-          old: {
+        PARQUET_HOME = _arrow-cpp;
+        inherit ARROW_HOME;
 
-            nativeBuildInputs = old.nativeBuildInputs ++ [
-              pkgs.meson
-              pkgs.ninja
-              pkgs.pkgconfig
-            ];
+        buildInputs = old.buildInputs ++ [
+          pkgs.arrow-cpp
+        ];
 
-            propagatedBuildInputs = old.propagatedBuildInputs ++ [
-              pkgs.cairo
-              pkgs.xlibsWrapper
-            ];
+        PYARROW_BUILD_TYPE = "release";
+        PYARROW_WITH_PARQUET = true;
+        PYARROW_CMAKE_OPTIONS = [
+          "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
 
-            mesonFlags = [ "-Dpython=${ if self.isPy3k then "python3" else "python"}" ];
-          }
-        )
-    ) super.pycairo;
+          # This doesn't use setup hook to call cmake so we need to workaround #54606
+          # ourselves
+          "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
+        ];
 
-  pycocotools = super.pycocotools.overridePythonAttrs
-    (
+        dontUseCmakeConfigure = true;
+      }
+    ) else super.pyarrow.overridePythonAttrs (
       old: {
-        buildInputs = old.buildInputs ++ [
+        nativeBuildInputs = old.nativeBuildInputs ++ [
           self.cython
-          self.numpy
         ];
       }
     );
 
-  pygobject = super.pygobject.overridePythonAttrs
-    (
+  pycairo = (
+    drv: (
+      drv.overridePythonAttrs (
+        _: {
+          format = "other";
+        }
+      )
+    ).overridePythonAttrs (
       old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        buildInputs = old.buildInputs ++ [ pkgs.glib pkgs.gobject-introspection ];
-      }
-    );
 
-  pylint = super.pylint.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          pkgs.meson
+          pkgs.ninja
+          pkgs.pkgconfig
+        ];
 
-  pyopenssl = super.pyopenssl.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+        propagatedBuildInputs = old.propagatedBuildInputs ++ [
+          pkgs.cairo
+          pkgs.xlibsWrapper
+        ];
+
+        mesonFlags = [ "-Dpython=${if self.isPy3k then "python3" else "python"}" ];
       }
-    );
+    )
+  )
+    super.pycairo;
+
+  pycocotools = super.pycocotools.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cython
+        self.numpy
+      ];
+    }
+  );
+
+  pygobject = super.pygobject.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      buildInputs = old.buildInputs ++ [ pkgs.glib pkgs.gobject-introspection ];
+    }
+  );
+
+  pylint = super.pylint.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
+
+  pyopenssl = super.pyopenssl.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+    }
+  );
 
   pyqt5 =
     let
@@ -529,318 +545,302 @@ self: super:
       withWebKit = drv.passthru.args.withWebKit or false;
       withWebSockets = drv.passthru.args.withWebSockets or false;
     in
-    super.pyqt5.overridePythonAttrs
-      (
-        old: {
-          format = "other";
+    super.pyqt5.overridePythonAttrs (
+      old: {
+        format = "other";
 
-          nativeBuildInputs = old.nativeBuildInputs ++ [
-            pkgs.pkgconfig
-            pkgs.qt5.qmake
-            pkgs.xorg.lndir
-            pkgs.qt5.qtbase
-            pkgs.qt5.qtsvg
-            pkgs.qt5.qtdeclarative
-            pkgs.qt5.qtwebchannel
-            # self.pyqt5-sip
-            self.sip
-          ]
-            ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
-            ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia
-            ++ lib.optional withWebKit pkgs.qt5.qtwebkit
-            ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
-          ;
-
-          buildInputs = old.buildInputs ++ [
-            pkgs.dbus
-            pkgs.qt5.qtbase
-            pkgs.qt5.qtsvg
-            pkgs.qt5.qtdeclarative
-            self.sip
-          ]
-            ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
-            ++ lib.optional withWebKit pkgs.qt5.qtwebkit
-            ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
-          ;
-
-          # Fix dbus mainloop
-          patches = pkgs.python3.pkgs.pyqt5.patches or [ ];
-
-          configurePhase = ''
-            runHook preConfigure
-
-            export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
-
-            mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
-            ${self.python.executable} configure.py  -w \
-              --confirm-license \
-              --no-qml-plugin \
-              --bindir=$out/bin \
-              --destdir=$out/${self.python.sitePackages} \
-              --stubsdir=$out/${self.python.sitePackages}/PyQt5 \
-              --sipdir=$out/share/sip/PyQt5 \
-              --designer-plugindir=$out/plugins/designer
-
-            runHook postConfigure
-          '';
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          pkgs.pkgconfig
+          pkgs.qt5.qmake
+          pkgs.xorg.lndir
+          pkgs.qt5.qtbase
+          pkgs.qt5.qtsvg
+          pkgs.qt5.qtdeclarative
+          pkgs.qt5.qtwebchannel
+          # self.pyqt5-sip
+          self.sip
+        ]
+          ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
+          ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia
+          ++ lib.optional withWebKit pkgs.qt5.qtwebkit
+          ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
+        ;
 
-          postInstall = ''
-            ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
-            for i in $out/bin/*; do
-              wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
-            done
-
-            # Let's make it a namespace package
-            cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
-            from pkgutil import extend_path
-            __path__ = extend_path(__path__, __name__)
-            EOF
-          '';
+        buildInputs = old.buildInputs ++ [
+          pkgs.dbus
+          pkgs.qt5.qtbase
+          pkgs.qt5.qtsvg
+          pkgs.qt5.qtdeclarative
+          self.sip
+        ]
+          ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
+          ++ lib.optional withWebKit pkgs.qt5.qtwebkit
+          ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
+        ;
 
-          installCheckPhase =
-            let
-              modules = [
-                "PyQt5"
-                "PyQt5.QtCore"
-                "PyQt5.QtQml"
-                "PyQt5.QtWidgets"
-                "PyQt5.QtGui"
-              ]
-              ++ lib.optional withWebSockets "PyQt5.QtWebSockets"
-              ++ lib.optional withWebKit "PyQt5.QtWebKit"
-              ++ lib.optional withMultimedia "PyQt5.QtMultimedia"
-              ++ lib.optional withConnectivity "PyQt5.QtConnectivity"
-              ;
-              imports = lib.concatMapStrings (module: "import ${module};") modules;
-            in
-            ''
-              echo "Checking whether modules can be imported..."
-              ${self.python.interpreter} -c "${imports}"
-            '';
+        # Fix dbus mainloop
+        patches = pkgs.python3.pkgs.pyqt5.patches or [ ];
 
-          doCheck = true;
+        configurePhase = ''
+          runHook preConfigure
 
-          enableParallelBuilding = true;
-        }
-      );
+          export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
+
+          mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
+          ${self.python.executable} configure.py  -w \
+            --confirm-license \
+            --no-qml-plugin \
+            --bindir=$out/bin \
+            --destdir=$out/${self.python.sitePackages} \
+            --stubsdir=$out/${self.python.sitePackages}/PyQt5 \
+            --sipdir=$out/share/sip/PyQt5 \
+            --designer-plugindir=$out/plugins/designer
+
+          runHook postConfigure
+        '';
 
-  pytest-datadir = super.pytest-datadir.overridePythonAttrs
-    (
-      old: {
         postInstall = ''
-          rm -f $out/LICENSE
+          ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
+          for i in $out/bin/*; do
+            wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
+          done
+
+          # Let's make it a namespace package
+          cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
+          from pkgutil import extend_path
+          __path__ = extend_path(__path__, __name__)
+          EOF
         '';
-      }
-    );
 
-  pytest = super.pytest.overridePythonAttrs
-    (
-      old: {
-        doCheck = false;
+        installCheckPhase =
+          let
+            modules = [
+              "PyQt5"
+              "PyQt5.QtCore"
+              "PyQt5.QtQml"
+              "PyQt5.QtWidgets"
+              "PyQt5.QtGui"
+            ]
+            ++ lib.optional withWebSockets "PyQt5.QtWebSockets"
+            ++ lib.optional withWebKit "PyQt5.QtWebKit"
+            ++ lib.optional withMultimedia "PyQt5.QtMultimedia"
+            ++ lib.optional withConnectivity "PyQt5.QtConnectivity"
+            ;
+            imports = lib.concatMapStrings (module: "import ${module};") modules;
+          in
+          ''
+            echo "Checking whether modules can be imported..."
+            ${self.python.interpreter} -c "${imports}"
+          '';
+
+        doCheck = true;
+
+        enableParallelBuilding = true;
       }
     );
 
+  pytest-datadir = super.pytest-datadir.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm -f $out/LICENSE
+      '';
+    }
+  );
+
+  pytest = super.pytest.overridePythonAttrs (
+    old: {
+      doCheck = false;
+    }
+  );
+
   pytest-runner = super.pytest-runner or super.pytestrunner;
 
-  python-jose = super.python-jose.overridePythonAttrs
-    (
-      old: {
-        postPath = ''
-          substituteInPlace setup.py --replace "'pytest-runner'," ""
-          substituteInPlace setup.py --replace "'pytest-runner'" ""
-        '';
-      }
-    );
+  python-jose = super.python-jose.overridePythonAttrs (
+    old: {
+      postPath = ''
+        substituteInPlace setup.py --replace "'pytest-runner'," ""
+        substituteInPlace setup.py --replace "'pytest-runner'" ""
+      '';
+    }
+  );
 
-  python-prctl = super.python-prctl.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          pkgs.libcap
-        ];
-      }
-    );
+  python-prctl = super.python-prctl.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        pkgs.libcap
+      ];
+    }
+  );
 
-  pyzmq = super.pyzmq.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.zeromq ];
-      }
-    );
+  pyzmq = super.pyzmq.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.zeromq ];
+    }
+  );
 
-  rockset = super.rockset.overridePythonAttrs
-    (
-      old: rec {
-        postPatch = ''
-          cp ./setup_rockset.py ./setup.py
-        '';
-      }
-    );
+  rockset = super.rockset.overridePythonAttrs (
+    old: rec {
+      postPatch = ''
+        cp ./setup_rockset.py ./setup.py
+      '';
+    }
+  );
 
-  scaleapi = super.scaleapi.overridePythonAttrs
-    (
-      old: {
-        postPatch = ''
-          substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true
-        '';
-      }
-    );
+  scaleapi = super.scaleapi.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true
+      '';
+    }
+  );
 
-  pandas = super.pandas.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ self.cython ];
-      }
-    );
+  pandas = super.pandas.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ self.cython ];
+    }
+  );
+
+  panel = super.panel.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.nodejs ];
+    }
+  );
 
   # Pybind11 is an undeclared dependency of scipy that we need to pick from nixpkgs
   # Make it not fail with infinite recursion
-  pybind11 = super.pybind11.overridePythonAttrs
-    (
-      old: {
-        cmakeFlags = (old.cmakeFlags or [ ]) ++ [
-          "-DPYBIND11_TEST=off"
-        ];
-        doCheck = false; # Circular test dependency
-      }
-    );
+  pybind11 = super.pybind11.overridePythonAttrs (
+    old: {
+      cmakeFlags = (old.cmakeFlags or [ ]) ++ [
+        "-DPYBIND11_TEST=off"
+      ];
+      doCheck = false; # Circular test dependency
+    }
+  );
 
-  scipy = super.scipy.overridePythonAttrs
-    (
-      old:
-      if old.format != "wheel" then {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pybind11 ];
-        setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
-        enableParallelBuilding = true;
-        buildInputs = old.buildInputs ++ [ self.numpy.blas ];
-        preConfigure = ''
-          sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
-          export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
-        '';
-        preBuild = ''
-          ln -s ${self.numpy.cfg} site.cfg
-        '';
-      } else old
-    );
+  scipy = super.scipy.overridePythonAttrs (
+    old:
+    if old.format != "wheel" then {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pybind11 ];
+      setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
+      enableParallelBuilding = true;
+      buildInputs = old.buildInputs ++ [ self.numpy.blas ];
+      preConfigure = ''
+        sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
+        export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
+      '';
+      preBuild = ''
+        ln -s ${self.numpy.cfg} site.cfg
+      '';
+    } else old
+  );
 
-  scikit-learn = super.scikit-learn.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          pkgs.gfortran
-          pkgs.glibcLocales
-        ] ++ lib.optionals stdenv.cc.isClang [
-          pkgs.llvmPackages.openmp
-        ];
+  scikit-learn = super.scikit-learn.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        pkgs.gfortran
+        pkgs.glibcLocales
+      ] ++ lib.optionals stdenv.cc.isClang [
+        pkgs.llvmPackages.openmp
+      ];
 
-        nativeBuildInputs = old.nativeBuildInputs ++ [
-          self.cython
-        ];
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        self.cython
+      ];
 
-        enableParallelBuilding = true;
-      }
-    );
+      enableParallelBuilding = true;
+    }
+  );
 
-  shapely = super.shapely.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
-        inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH;
-      }
-    );
+  shapely = super.shapely.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
+      inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH;
+    }
+  );
 
   shellingham =
     if lib.versionAtLeast super.shellingham.version "1.3.2" then (
-      super.shellingham.overridePythonAttrs
-        (
-          old: {
-            format = "pyproject";
-          }
-        )
+      super.shellingham.overridePythonAttrs (
+        old: {
+          format = "pyproject";
+        }
+      )
     ) else super.shellingham;
 
-  tables = super.tables.overridePythonAttrs
-    (
-      old: {
-        HDF5_DIR = "${pkgs.hdf5}";
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        propagatedBuildInputs = old.nativeBuildInputs ++ [ pkgs.hdf5 self.numpy self.numexpr ];
-      }
-    );
+  tables = super.tables.overridePythonAttrs (
+    old: {
+      HDF5_DIR = "${pkgs.hdf5}";
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      propagatedBuildInputs = old.nativeBuildInputs ++ [ pkgs.hdf5 self.numpy self.numexpr ];
+    }
+  );
 
-  tensorpack = super.tensorpack.overridePythonAttrs
-    (
-      old: {
-        postPatch = ''
-          substituteInPlace setup.cfg --replace "# will call find_packages()" ""
-        '';
-      }
-    );
+  tensorpack = super.tensorpack.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        substituteInPlace setup.cfg --replace "# will call find_packages()" ""
+      '';
+    }
+  );
 
-  urwidtrees = super.urwidtrees.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          self.urwid
-        ];
-      }
-    );
+  urwidtrees = super.urwidtrees.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        self.urwid
+      ];
+    }
+  );
 
-  vose-alias-method = super.vose-alias-method.overridePythonAttrs
-    (
-      old: {
-        postInstall = ''
-          rm -f $out/LICENSE
-        '';
-      }
-    );
+  vose-alias-method = super.vose-alias-method.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm -f $out/LICENSE
+      '';
+    }
+  );
 
-  uvloop = super.uvloop.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
-          pkgs.darwin.apple_sdk.frameworks.ApplicationServices
-          pkgs.darwin.apple_sdk.frameworks.CoreServices
-        ];
-      }
-    );
+  uvloop = super.uvloop.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
+        pkgs.darwin.apple_sdk.frameworks.ApplicationServices
+        pkgs.darwin.apple_sdk.frameworks.CoreServices
+      ];
+    }
+  );
 
   # Stop infinite recursion by using bootstrapped pkg from nixpkgs
   wheel = (
     pkgs.python3.pkgs.override {
       python = self.python;
     }
-  ).wheel.overridePythonAttrs
-    (
-      old:
-      if old.format == "other" then old else {
-        inherit (super.wheel) pname name version src;
-      }
-    );
+  ).wheel.overridePythonAttrs (
+    old:
+    if old.format == "other" then old else {
+      inherit (super.wheel) pname name version src;
+    }
+  );
 
   zipp =
     (
       if lib.versionAtLeast super.zipp.version "2.0.0" then (
-        super.zipp.overridePythonAttrs
-          (
-            old: {
-              prePatch = ''
-                substituteInPlace setup.py --replace \
-                'setuptools.setup()' \
-                'setuptools.setup(version="${super.zipp.version}")'
-              '';
-            }
-          )
+        super.zipp.overridePythonAttrs (
+          old: {
+            prePatch = ''
+              substituteInPlace setup.py --replace \
+              'setuptools.setup()' \
+              'setuptools.setup(version="${super.zipp.version}")'
+            '';
+          }
+        )
       ) else super.zipp
-    ).overridePythonAttrs
-      (
-        old: {
-          propagatedBuildInputs = old.propagatedBuildInputs ++ [
-            self.toml
-          ];
-        }
-      );
+    ).overridePythonAttrs (
+      old: {
+        propagatedBuildInputs = old.propagatedBuildInputs ++ [
+          self.toml
+        ];
+      }
+    );
 
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
index 773e0a60e093..fad0b782c4be 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
@@ -37,14 +37,17 @@ let
   # Make a tree out of expression groups (parens)
   findSubExpressions = expr:
     let
-      acc = builtins.foldl' findSubExpressionsFun {
-        exprs = [ ];
-        expr = expr;
-        pos = 0;
-        openP = 0;
-        exprPos = 0;
-        startPos = 0;
-      } (lib.stringToCharacters expr);
+      acc = builtins.foldl'
+        findSubExpressionsFun
+        {
+          exprs = [ ];
+          expr = expr;
+          pos = 0;
+          openP = 0;
+          exprPos = 0;
+          startPos = 0;
+        }
+        (lib.stringToCharacters expr);
       tailExpr = (substr acc.exprPos acc.pos expr);
       tailExprs = if tailExpr != "" then [ tailExpr ] else [ ];
     in
@@ -53,7 +56,7 @@ let
     let
       splitCond = (
         s: builtins.map
-          (x: stripStr ( if builtins.typeOf x == "list" then (builtins.elemAt x 0) else x))
+          (x: stripStr (if builtins.typeOf x == "list" then (builtins.elemAt x 0) else x))
           (builtins.split " (and|or) " (s + " "))
       );
       mapfn = expr: (
@@ -71,8 +74,9 @@ let
     in
     builtins.foldl'
       (
-        acc: v: acc ++ ( if builtins.typeOf v == "string" then parse v else [ (parseExpressions v) ])
-      ) [ ] exprs;
+        acc: v: acc ++ (if builtins.typeOf v == "string" then parse v else [ (parseExpressions v) ])
+      ) [ ]
+      exprs;
 
   # Transform individual expressions to structured expressions
   # This function also performs variable substitution, replacing environment markers with their explicit values
@@ -159,10 +163,9 @@ let
           let
             parts = builtins.splitVersion c;
             pruned = lib.take ((builtins.length parts) - 1) parts;
-            upper = builtins.toString
-              (
-                (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
-              );
+            upper = builtins.toString (
+              (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
+            );
             upperConstraint = builtins.concatStringsSep "." (ireplace (builtins.length pruned - 1) upper pruned);
           in
           op.">=" v c && op."<" v upperConstraint;
@@ -207,10 +210,13 @@ let
           ) else throw "Unsupported type"
         ) else if builtins.typeOf v == "list" then (
           let
-            ret = builtins.foldl' reduceExpressionsFun {
-              value = true;
-              cond = "and";
-            } v;
+            ret = builtins.foldl'
+              reduceExpressionsFun
+              {
+                value = true;
+                cond = "and";
+              }
+              v;
           in
           acc // {
             value = cond."${acc.cond}" acc.value ret.value;
@@ -219,10 +225,13 @@ let
       );
     in
     (
-      builtins.foldl' reduceExpressionsFun {
-        value = true;
-        cond = "and";
-      } exprs
+      builtins.foldl'
+        reduceExpressionsFun
+        {
+          value = true;
+          cond = "and";
+        }
+        exprs
     ).value;
 in
 e: builtins.foldl' (acc: v: v acc) e [
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix b/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
index e86b1d3ac660..bf001392e6af 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
@@ -39,10 +39,9 @@ let
           # Prune constraint
           parts = builtins.splitVersion c;
           pruned = lib.take ((builtins.length parts) - 1) parts;
-          upper = builtins.toString
-            (
-              (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
-            );
+          upper = builtins.toString (
+            (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
+          );
           upperConstraint = builtins.concatStringsSep "." (ireplace (builtins.length pruned - 1) upper pruned);
         in
         operators.">=" v c && operators."<" v upperConstraint;
@@ -69,7 +68,7 @@ let
         op = elemAt mPre 0;
         v = elemAt mPre 1;
       }
-        # Infix operators are range matches
+      # Infix operators are range matches
       else if mIn != null then {
         op = elemAt mIn 1;
         v = {
@@ -82,6 +81,7 @@ let
   satisfiesSemver = version: constraint:
     let
       inherit (parseConstraint constraint) op v;
-    in if constraint == "*" then true else operators."${op}" version v;
+    in
+    if constraint == "*" then true else operators."${op}" version v;
 in
 { inherit satisfiesSemver; }