about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-07-09 12:30:28 +0000
committerAlyssa Ross <hi@alyssa.is>2021-07-23 09:11:31 +0000
commit55cc63c079f49e81d695a25bc2f5b3902f2bd290 (patch)
treee705335d97f50b927c76ccb4a3fbde9fab8372b9 /nixpkgs/pkgs/development/tools
parentc26eb6f74d9393127a21eee7a9620a920769f613 (diff)
parent87807e64a5ef5206b745a40af118c7be8db73681 (diff)
downloadnixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.tar
nixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.tar.gz
nixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.tar.bz2
nixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.tar.lz
nixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.tar.xz
nixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.tar.zst
nixlib-55cc63c079f49e81d695a25bc2f5b3902f2bd290.zip
Merge commit '87807e64a5ef5206b745a40af118c7be8db73681'
Diffstat (limited to 'nixpkgs/pkgs/development/tools')
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/smatch/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/apksigcopier/default.nix61
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/unconditional-ksh-test.patch12
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/boot/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/conan/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/detect-secrets/default.nix39
-rw-r--r--nixpkgs/pkgs/development/tools/dprint/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/eclipse-mat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ecpdap/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/elkhound/default.nix50
-rw-r--r--nixpkgs/pkgs/development/tools/esbuild/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/fission/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/flawfinder/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/go-task/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gops/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/jbang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/just/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/3.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/mbed-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/binutils/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccls/wrapper2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/global/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rolespec/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/2.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/open-policy-agent/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json8
-rw-r--r--nixpkgs/pkgs/development/tools/pgtop/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/pscale/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/remarshal/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch673
-rw-r--r--nixpkgs/pkgs/development/tools/skopeo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/tapview/default.nix32
-rw-r--r--nixpkgs/pkgs/development/tools/tapview/dont_check_echo.patch44
-rw-r--r--nixpkgs/pkgs/development/tools/unity3d/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/vala-language-server/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/wp-cli/default.nix6
71 files changed, 567 insertions, 879 deletions
diff --git a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index 66f2db280685..ebbfa619fed3 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tarpaulin";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "xd009642";
     repo = "tarpaulin";
     rev = version;
-    sha256 = "1z104cd3wg718x1d89znppx4h6f0c6icgmpcllyrd0d19lb71a2b";
+    sha256 = "sha256-j5VLxtu8Xg1fwDYWYJXGFUkfpgauG/5NauSniSZ7G2w=";
   };
 
   nativeBuildInputs = [
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   ];
   buildInputs = [ openssl ];
 
-  cargoSha256 = "1hpi9aifn3g19yqkb58lphyw8cbsqllhg5dzbqx15hcfvrb7ip4k";
+  cargoSha256 = "sha256-1lFGczzcN4QPsIpEVQiSmNS7L+9rlSfxi+gopt2E7Ec=";
   #checkFlags = [ "--test-threads" "1" ];
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
index 25d61d2393e5..df3c42b4718f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.5.5";
+  version = "2.5.7";
 
   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 = "sha256-M5O2NEGIVPWYKl11yxMMVreEtDO1VqcMkiGGrjNmk3A=";
+    sha256 = "sha256-dKJQv/omXT/L5dWYkveXodNNt5Q3i1WDIA9nwmo0Sfc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix b/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
index 600d0efc92ee..5e7f6a3f2d56 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-mGJPqOmz1/siAVkwDP5WXFvx3TtD5KT/klciqnaEoCo=";
+    sha256 = "sha256-s+KJpA11A4bFOXgy2eVkRMYBFwwBjU7QZgSPZ0oVKxo=";
   };
 
   buildInputs = [ pcre ] ++ lib.optionals withZ3 [ z3 ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix b/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix
index 82b644f76ae6..35098c1bcfc8 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix
@@ -1,9 +1,8 @@
-# This is a temporary copy of the default.nix in this folder, with the version updated to the current tip of rr's master branch.
-# This exists because rr has not had a release in a long time, but there have been a lot of improvements including UX.
-# Some of the UX improvements help prevent foot shooting.
-# Upstream has stated that it should be fine to use master.
-# This file, and its attribute in all-packages, can be removed once rr makes a release.
-# For further information, please see https://github.com/NixOS/nixpkgs/issues/99535 "Improve support for the rr debugger in nixos containers"
+# This is a temporary copy of the default.nix in this folder, with the version
+# updated to the current tip of rr's master branch. This exists because rr has
+# not had a release in a long time. Upstream has stated that it should be fine
+# to use master. This file, and its attribute in all-packages, can be removed
+# once rr makes a release.
 
 { callPackage, fetchFromGitHub }:
 
@@ -12,12 +11,12 @@ let
 in
 
   rr.overrideAttrs (old: {
-    version = "unstable-2020-10-04";
+    version = "unstable-2021-07-06";
 
     src = fetchFromGitHub {
       owner = "mozilla";
       repo = "rr";
-      rev = "9ff375813a740a0a6ebcdfcebc58bd61ab68c667";
-      sha256 = "0raifs6cg5ckpi2445inhy3hfhp4p89s1lkx9z17mcc2g1c1phf5";
+      rev = "0fc21a8d654dabc7fb1991d76343824cb7951ea0";
+      sha256 = "0s851rflxmvxcfw97zmplcwzhv86xmd3my78pi4c7gkj18d621i5";
     };
   })
diff --git a/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix b/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix
index 4330ec3d7426..2780c8552fc0 100644
--- a/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix
@@ -1,14 +1,12 @@
 { lib, stdenv, fetchgit, sqlite, pkg-config, perl
 , buildllvmsparse ? true
 , buildc2xml ? true
-, llvm ? null, libxml2 ? null
+, llvm, libxml2
 }:
 
-assert buildllvmsparse -> llvm != null;
-assert buildc2xml -> libxml2 != null;
-
 stdenv.mkDerivation {
-  name = "smatch-20120924";
+  pname = "smatch";
+  version = "20120924";
 
   src = fetchgit {
     url = "git://repo.or.cz/smatch.git";
@@ -17,19 +15,20 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [sqlite perl]
+  buildInputs = [ sqlite perl ]
    ++ lib.optional buildllvmsparse llvm
    ++ lib.optional buildc2xml libxml2;
 
-  preBuild =
-    '' sed -i Makefile \
-           -e "s|^PREFIX=.*|PREFIX = $out|g"
-    '';
+  preBuild = ''
+    sed -i Makefile \
+      -e "s|^PREFIX=.*|PREFIX = $out|g"
+  '';
 
-  meta = {
+  meta = with lib; {
     description = "A semantic analysis tool for C";
     homepage = "http://smatch.sourceforge.net/";
-    license = lib.licenses.free; /* OSL, see http://www.opensource.org */
-    platforms = lib.platforms.linux;
+    maintainers = with maintainers; [];
+    license = licenses.free; /* OSL, see http://www.opensource.org */
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
index 9666bf006d72..a5798c6ad560 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.29.1";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pkz8y3da7i4a3nm79a0640xjj4wfkx3dz6614c4hynqn5svji82";
+    sha256 = "0xdn8xakywms8gcacmjvx0ivv37i3vj1d41c8sjlnf1s13q3zv7k";
   };
 
-  vendorSha256 = "0k8v49sr0jmljfl4fa5pnvzd5k3pg865h201114l6cs257sdkczk";
+  vendorSha256 = "18w0wz3raysba99cxcc8pk4md9j438g4y2d2v2pk2l6qri9apscw";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix b/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
index 246f42b63999..da0e0554bf70 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,23 +2,27 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.39.16";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5We3Nk/AU5dj37vG4pvqzvNztK01PAPadQV/CgHZe8w=";
+    sha256 = "sha256-MK5cWRPGty7S4pkRZJRZF5qitoPM3im8JJW2J3yQqFo=";
   };
 
   goPackagePath = "github.com/tfsec/tfsec";
 
-  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
+  ldflags = [
+    "-w"
+    "-s"
+    "-X ${goPackagePath}/version.Version=${version}"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/tfsec/tfsec";
     description = "Static analysis powered security scanner for your terraform code";
     license = licenses.mit;
-    maintainers = [ maintainers.marsam ];
+    maintainers = with maintainers; [ marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/apksigcopier/default.nix b/nixpkgs/pkgs/development/tools/apksigcopier/default.nix
new file mode 100644
index 000000000000..972de479ee78
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/apksigcopier/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, fetchFromGitHub
+, python3
+, installShellFiles
+, bash
+, pandoc
+}:
+
+# FIXME: how to "recommend" apksigner like the Debian package?
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "apksigcopier";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "obfusk";
+    repo = "apksigcopier";
+    rev = "v${version}";
+    sha256 = "1la1ml91jvqc1zakbqfpayjbs67pi3i18bsgz3mf11rxgphd3fpk";
+  };
+
+  nativeBuildInputs = [ installShellFiles pandoc ];
+  propagatedBuildInputs = with python3.pkgs; [ click ];
+  checkInputs = with python3.pkgs; [ flake8 mypy pylint ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace /bin/bash ${bash}/bin/bash \
+      --replace 'apksigcopier --version' '${python3.interpreter} apksigcopier --version'
+  '';
+
+  postBuild = ''
+    make ${pname}.1
+  '';
+
+  checkPhase = ''
+    make test
+  '';
+
+  postInstall = ''
+    installManPage ${pname}.1
+  '';
+
+  meta = with lib; {
+    description = "Copy/extract/patch apk signatures & compare apks";
+    longDescription = ''
+      apksigcopier is a tool for copying APK signatures from a signed APK
+      to an unsigned one (in order to verify reproducible builds).  It can
+      also be used to compare two APKs with different signatures.  Its
+      command-line tool offers four operations:
+
+      * copy signatures directly from a signed to an unsigned APK
+      * extract signatures from a signed APK to a directory
+      * patch previously extracted signatures onto an unsigned APK
+      * compare two APKs with different signatures (requires apksigner)
+    '';
+    homepage = "https://github.com/obfusk/apksigcopier";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = [ maintainers.obfusk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
index a93de053c446..0d8ca351096c 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
@@ -1,21 +1,25 @@
 { lib, stdenv, fetchurl, fetchpatch
-, getopt, tzdata
+, getopt, tzdata, ksh
+, pkgsMusl # for passthru.tests
 }:
 
 stdenv.mkDerivation rec {
   pname = "bmake";
-  version = "20210420";
+  version = "20210621";
 
   src = fetchurl {
     url    = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
-    sha256 = "1ajq8v5rq3pl5y9h1hlscs83007fsyk3lhcp87z09ma370lm3ra7";
+    sha256 = "0gpzv75ibzqz1j1h0hdjgx1v7hkl3i5cb5yf6q9sfcgx0bvb55xa";
   };
 
   # Make tests work with musl
   # * Disable deptgt-delete_on_error test (alpine does this too)
+  # * Disable shell-ksh test (ksh doesn't compile with musl)
   # * Fix test failing due to different strerror(3) output for musl and glibc
   postPatch = lib.optionalString (stdenv.hostPlatform.libc == "musl") ''
-    sed -i unit-tests/Makefile -e '/deptgt-delete_on_error/d'
+    sed -i unit-tests/Makefile \
+      -e '/deptgt-delete_on_error/d' \
+      -e '/shell-ksh/d'
     substituteInPlace unit-tests/opt-chdir.exp --replace "File name" "Filename"
   '';
 
@@ -28,6 +32,8 @@ stdenv.mkDerivation rec {
     ./fix-unexport-env-test.patch
     # Fix localtime tests without global /etc/zoneinfo directory
     ./fix-localtime-test.patch
+    # Always enable ksh test since it checks in a impure location /bin/ksh
+    ./unconditional-ksh-test.patch
     # decouple tests from build phase
     (fetchpatch {
       name = "separate-tests.patch";
@@ -68,7 +74,11 @@ stdenv.mkDerivation rec {
   '';
 
   doCheck = true;
-  checkInputs = [ tzdata ];
+  checkInputs = [
+    tzdata
+  ] ++ lib.optionals (stdenv.hostPlatform.libc != "musl") [
+    ksh
+  ];
   checkPhase = ''
     runHook preCheck
 
@@ -79,6 +89,10 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
+  passthru.tests = {
+    bmakeMusl = pkgsMusl.bmake;
+  };
+
   meta = with lib; {
     description = "Portable version of NetBSD 'make'";
     homepage    = "http://www.crufty.net/help/sjg/bmake.html";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/unconditional-ksh-test.patch b/nixpkgs/pkgs/development/tools/build-managers/bmake/unconditional-ksh-test.patch
new file mode 100644
index 000000000000..117b85da16d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/unconditional-ksh-test.patch
@@ -0,0 +1,12 @@
+--- bmake/unit-tests/Makefile.orig	2021-07-04 19:13:09.068094922 +0200
++++ bmake/unit-tests/Makefile	2021-07-04 19:13:14.630080696 +0200
+@@ -295,9 +295,7 @@
+ TESTS+=		sh-single-line
+ TESTS+=		shell-csh
+ TESTS+=		shell-custom
+-.if exists(/bin/ksh)
+ TESTS+=		shell-ksh
+-.endif
+ TESTS+=		shell-sh
+ TESTS+=		suff-add-later
+ TESTS+=		suff-clear-regular
diff --git a/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix b/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
index 68a4d5f44eaa..1590906206c1 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Build tooling for Clojure";
-    homepage = "https://boot-clj.com/";
+    homepage = "https://boot-clj.github.io/";
     license = licenses.epl10;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ragge ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
index 9c3e99e23ad6..f59e74b02f4e 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
@@ -39,6 +39,22 @@ let newPython = python3.override {
         "test_ec_verify_should_return_false_if_signature_invalid"
       ];
     });
+    # conan needs jinja2<3
+    jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec {
+      version = "2.11.3";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6";
+      };
+    });
+    # old jinja2 needs old markupsafe
+    markupsafe = super.markupsafe.overridePythonAttrs (oldAttrs: rec {
+      version = "1.1.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b";
+      };
+    });
   };
 };
 
@@ -56,7 +72,7 @@ in newPython.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with newPython.pkgs; [
     bottle
     colorama
-    dateutil
+    python-dateutil
     deprecation
     distro
     fasteners
@@ -92,7 +108,8 @@ in newPython.pkgs.buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace conans/requirements.txt \
-      --replace "deprecation>=2.0, <2.1" "deprecation"
+      --replace "deprecation>=2.0, <2.1" "deprecation" \
+      --replace "six>=1.10.0,<=1.15.0" "six>=1.10.0,<=1.16.0"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
index 0013eb4e2e04..3afe88043dee 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
@@ -64,9 +64,9 @@ in rec {
   gradle_latest = gradle_7;
 
   gradle_7 = gradleGen (gradleSpec {
-    version = "7.0";
-    nativeVersion = "0.22-milestone-11";
-    sha256 = "01f3bjn8pbpni8kmxvx1dpwpf4zz04vj7cpm6025n0k188c8k2zb";
+    version = "7.1";
+    nativeVersion = "0.22-milestone-16";
+    sha256 = "0yyqksq3zza7r9ls389ha81l3s768j7dfdqiwk3846qy4wcyxsrd";
   });
 
   gradle_6_8 = gradleGen (gradleSpec {
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
index 4fbd0365af95..4682fab41db1 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchurl {
     url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "sha256-cAhcTmSPkV5z5ryuCNrpxy9/1iWvvminiVYul9c/DwM=";
+    sha256 = "sha256-vWCzjit7MPrKqEYgJfQHAkam9J9NgMObOQ/A+OQr24o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile b/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
index f2c43cc5003c..5a1dd74c5b84 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
@@ -1,4 +1,4 @@
-CFLAGS=-Os
+CFLAGS ?= -Os
 
 all: redo links
 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix b/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
index 40708b7877a9..14d33cba0395 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub }:
 stdenv.mkDerivation rec {
   pname = "redo-c";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "leahneukirchen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11wc2sgw1ssdm83cjdc6ndnp1bv5mzhbw7njw47mk7ri1ic1x51b";
+    sha256 = "sha256-oZcaBgESIaD7/SUBE7luh7axucKTEzXPVkQAQs2NCXE=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
index 16ea0dc28318..68cd3d449cad 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "CMake modules for common build tasks for the ROCm stack";
     homepage = "https://github.com/RadeonOpenCompute/rocm-cmake";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index e3828eb7f14c..ba6f0bf652e3 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.21.1";
+  version = "1.21.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "sha256-Wes52lTcv3Jb6gJeUS6fmf4Nee3qEcc3SibaTFvQ8sQ=";
+    sha256 = "sha256-9AYFC10AYbt/qHj5hfuLRxUwibizKk4n9rgtd5RBEQg=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
index b947fc1ebfe2..75fb29db8827 100644
--- a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
+++ b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.1.30";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uQj14arxDPc8/k1Cvp3T6hqjln30NFk9MzvYy8tAiJ8=";
+    sha256 = "sha256-rxWTh+iltD1kcntlu9sovwG/mQPmukYbw8V2FAFi1KE=";
   };
 
-  vendorSha256 = "sha256-pl3dLisu4Oc77kgfuteKbsZaDzrHo1wUigZEkM4081Q=";
+  vendorSha256 = "sha256-mfNbcnJ62v6tdEhOtA0P9lDoD5HmLBAtNcrv1H3/mSE=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
 
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
index 6c9cffe41b20..245aeeb4351b 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub, buildGoModule }:
 
-let version = "1.2.4";
+let version = "1.3.0";
 in buildGoModule rec {
   inherit version;
   pname = "drone-cli";
   revision = "v${version}";
 
-  vendorSha256 = "0v94rwxkbj85l3brbm792xf1rfs3vgnwpgjczwqip1gm159dpnd7";
+  vendorSha256 = "sha256-I+UBa6gqkPRXNV72iyJcCBLYShZxMtHFHSK77mhDv+U=";
 
   doCheck = false;
 
@@ -18,7 +18,7 @@ in buildGoModule rec {
     owner = "drone";
     repo = "drone-cli";
     rev = revision;
-    sha256 = "14sm5k2ifvr4g9369zqgb92vrr4rc0bxf5m52l3g8bd2s8fq8nx8";
+    sha256 = "sha256-j6drDMxvAVfQ1aCFooc9g9HhMRMlFZXGZPiuJZKBbY4=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 415b22894cbe..88156f815ab8 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -1,18 +1,28 @@
-{ lib, stdenv, fetchurl, common-updater-scripts, coreutils, git, gnused, nix
-, nixfmt, writeScript, nixosTests, jq, cacert, curl }:
+{ lib, stdenv, fetchurl, common-updater-scripts, coreutils, git, gnused, makeWrapper, nix
+, nixfmt, openjdk, writeScript, nixosTests, jq, cacert, curl }:
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.289.1";
+  version = "2.289.2";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "1wkm1y2bj245b9i51vhns9qfxc6xm44hg60vhgmswndcy5pwrybh";
+    sha256 = "0413ymfrb00ifxl8ww8nn8y4k07jhgsaxaw2h0qnfh9s6yxifpbf";
   };
 
+  nativeBuildInputs = [ makeWrapper ];
+
   buildCommand = ''
-    mkdir -p "$out/webapps"
+    mkdir -p "$out/bin" "$out/share" "$out/webapps"
+
     cp "$src" "$out/webapps/jenkins.war"
+
+    # Create the `jenkins-cli` command.
+    ${openjdk}/bin/jar -xf "$src" WEB-INF/lib/cli-${version}.jar \
+      && mv WEB-INF/lib/cli-${version}.jar "$out/share/jenkins-cli.jar"
+
+    makeWrapper "${openjdk}/bin/java" "$out/bin/jenkins-cli" \
+      --add-flags "-jar $out/share/jenkins-cli.jar"
   '';
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix b/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix
index 01f4941c8e4f..12e5c8c14abd 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "0.6.0a2";
+  version = "0.6.0";
   disabled = python3.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "13hzr0jialzi2nlvqwvff3w0h6jikqvcg0p2p4irwlisg4db8w7w";
+    sha256 = "sha256-RW3+NpKZns3Jo1b3GfTymUE74pVoJi9f0zi4j4mUGiY=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix b/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
index 45b5f185880d..9ff5c1b01b87 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, cmake
-, qtbase, qttools, sqlite }:
+, qtbase, qttools, sqlite, wrapGAppsHook }:
 
 mkDerivation rec {
   pname = "sqlitebrowser";
@@ -18,7 +18,7 @@ mkDerivation rec {
   # We *really* should get that cleaned up.
   buildInputs = [ qtbase sqlite ];
 
-  nativeBuildInputs = [ cmake qttools ];
+  nativeBuildInputs = [ cmake qttools wrapGAppsHook ];
 
   meta = with lib; {
     description = "DB Browser for SQLite";
diff --git a/nixpkgs/pkgs/development/tools/detect-secrets/default.nix b/nixpkgs/pkgs/development/tools/detect-secrets/default.nix
index f0dddf66ff40..5dc765ffe6f3 100644
--- a/nixpkgs/pkgs/development/tools/detect-secrets/default.nix
+++ b/nixpkgs/pkgs/development/tools/detect-secrets/default.nix
@@ -1,10 +1,7 @@
 { lib
 , buildPythonApplication
-, configparser
-, enum34
 , fetchFromGitHub
-, functools32
-, future
+, gibberish-detector
 , isPy27
 , mock
 , pyahocorasick
@@ -17,34 +14,54 @@
 
 buildPythonApplication rec {
   pname = "detect-secrets";
-  version = "0.14.3";
+  version = "1.1.0";
   disabled = isPy27;
 
-  # PyPI tarball doesn't ship tests
   src = fetchFromGitHub {
     owner = "Yelp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c4hxih9ljmv0d3izq5idyspk5zci26gdb6lv9klwcshwrfkvxj0";
+    sha256 = "sha256-dj0lqm9s8OKhM4OmNrmGVRc32/ZV0I9+5WcW2hvLwu0=";
   };
 
   propagatedBuildInputs = [
+    gibberish-detector
     pyyaml
+    pyahocorasick
     requests
   ];
 
   checkInputs = [
     mock
-    pyahocorasick
     pytestCheckHook
     responses
     unidiff
   ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
+
   disabledTests = [
-    "TestMain"
-    "TestPreCommitHook"
-    "TestInitializeBaseline"
+    # Tests are failing for various reasons. Needs to be adjusted with the next update
+    "test_baseline_filters_out_known_secrets"
+    "test_basic"
+    "test_does_not_modify_slim_baseline"
+    "test_handles_each_path_separately"
+    "test_handles_multiple_directories"
+    "test_load_and_output"
+    "test_make_decisions"
+    "test_modifies_baseline"
+    "test_no_files_in_git_repo"
+    "test_outputs_baseline_if_none_supplied"
+    "test_saves_to_baseline"
+    "test_scan_all_files"
+    "test_should_scan_all_files_in_directory_if_flag_is_provided"
+    "test_should_scan_specific_non_tracked_file"
+    "test_should_scan_tracked_files_in_directory"
+    "test_start_halfway"
+    "test_works_from_different_directory"
+    "TestModifiesBaselineFromVersionChange"
   ];
 
   pythonImportsCheck = [ "detect_secrets" ];
diff --git a/nixpkgs/pkgs/development/tools/dprint/default.nix b/nixpkgs/pkgs/development/tools/dprint/default.nix
new file mode 100644
index 000000000000..7ac81b236dbe
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/dprint/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchCrate, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "dprint";
+  version = "0.15.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-1DUGp+HiiY03fyZ+b8hNUBIfuQV5Z/gEcOxc/vG3YiA=";
+  };
+
+  cargoSha256 = "sha256-twFXA8A+vP1n6IFJO78fKNs+FC2ui46rj1JmJ/eq3wc=";
+
+  # Tests fail because they expect a test WASM plugin. Tests already run for
+  # every commit upstream on GitHub Actions
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Code formatting platform written in Rust";
+    longDescription = ''
+      dprint is a pluggable and configurable code formatting platform written in Rust.
+      It offers multiple WASM plugins to support various languages. It's written in
+      Rust, so it’s small, fast, and portable.
+    '';
+    changelog = "https://github.com/dprint/dprint/releases/tag/${version}";
+    homepage = "https://dprint.dev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ khushraj ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
index 608c721caf00..01146542d0cc 100644
--- a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
+++ b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
@@ -20,7 +20,7 @@
 
 with lib;
 let
-  pVersion = "1.11.0.20201202";
+  pVersion = "1.12.0.20210602";
   pVersionTriple = splitVersion pVersion;
   majorVersion = elemAt pVersionTriple 0;
   minorVersion = elemAt pVersionTriple 1;
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
-    sha256 = "sha256-HtIKcGfdjb2wovGGSxv16ud7y1cPQFBn77pkhiekAkI=";
+    sha256 = "sha256-qX4RPuZdeiEduJAEpzOi/QnbJ+kaD0PZ3WHrmGsvqHc=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/nixpkgs/pkgs/development/tools/ecpdap/default.nix b/nixpkgs/pkgs/development/tools/ecpdap/default.nix
index 3bb12c40e355..38ba9d78712e 100644
--- a/nixpkgs/pkgs/development/tools/ecpdap/default.nix
+++ b/nixpkgs/pkgs/development/tools/ecpdap/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ecpdap";
-  version = "0.1.6";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "adamgreig";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1va96hxm22a2lfy141x1sv5f5g8f6mp965an4jsff9qzi55kfv2g";
+    sha256 = "sha256-fdvpGmEy54i48H6YJ4E1LIuogimNEL8PJS5ScoW/6DM=";
   };
 
-  cargoSha256 = "1dk6x2f36c546qr415kzmqr2r4550iwdmj4chrb46p3hr64jddhd";
+  cargoSha256 = "sha256-2YARNoHVDBwGr8FE/oRlNZMX/vCPIre7OnZbr04eF/M=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/elkhound/default.nix b/nixpkgs/pkgs/development/tools/elkhound/default.nix
new file mode 100644
index 000000000000..5c29b10a6139
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/elkhound/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, bison
+, cmake
+, flex
+, perl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "elkhound";
+  version = "unstable-2020-04-13";
+
+  src = fetchFromGitHub {
+    owner = "WeiDUorg";
+    repo = pname;
+    rev = "a7eb4bb2151c00cc080613a770d37560f62a285c";
+    sha256 = "sha256-Y96OFpBNrD3vrKoEZ4KdJuI1Q4RmYANsu7H3ZzfaA6g=";
+  };
+
+  postPatch = ''
+    patchShebangs scripts
+  '';
+
+  sourceRoot = "source/src";
+
+  nativeBuildInputs = [ bison cmake flex perl ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 -t $out/bin ast/astgen elkhound/elkhound
+    for d in ast elkhound smbase; do
+      install -Dm444 -t $out/lib $d/*.a
+      install -Dm444 -t $out/include/$d $src/src/$d/*.h
+    done
+    install -Dm444 -t $out/share/doc/${pname} $src/src/elkhound/*.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A parser generator which emits GLR parsers, either in OCaml or C++";
+    homepage = "https://scottmcpeak.com/elkhound/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ peterhoeg ];
+    # possibly works on Darwin
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/esbuild/default.nix b/nixpkgs/pkgs/development/tools/esbuild/default.nix
index 22a6a59cc1bc..8b37899ef675 100644
--- a/nixpkgs/pkgs/development/tools/esbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/esbuild/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.12.9";
+  version = "0.12.14";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    sha256 = "sha256-MqwgdhgWIfYE0wO7fWQuC72tEwCVgL7qUbJlJ3APf4E=";
+    sha256 = "sha256-+qFR5XGV1LSCY8AR7gd269UcOwlL5hkvKiQEhdsqIJc=";
   };
 
   vendorSha256 = "sha256-2ABWPqhK2Cf4ipQH7XvRrd+ZscJhYPc3SV2cGT0apdg=";
diff --git a/nixpkgs/pkgs/development/tools/fission/default.nix b/nixpkgs/pkgs/development/tools/fission/default.nix
index 3045842d91f0..56d5161b49e9 100644
--- a/nixpkgs/pkgs/development/tools/fission/default.nix
+++ b/nixpkgs/pkgs/development/tools/fission/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fission";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "fission";
     repo = "fission";
     rev = version;
-    sha256 = "sha256-WCynU5+d789d584JH99jmTZSEbyco2ysuBXIC2pW1r4=";
+    sha256 = "sha256-ayVEU2Dlqun8KLP+KeI0uU4p9N4aaYLZ/IHqfA2PGrI=";
   };
 
   vendorSha256 = "sha256-V3/IFCbW3wXfNiFzucLeyFDc6SA2nE+NwO0sNEBmIYg=";
diff --git a/nixpkgs/pkgs/development/tools/flawfinder/default.nix b/nixpkgs/pkgs/development/tools/flawfinder/default.nix
index 554ca92b8c0e..36209c5d5aa4 100644
--- a/nixpkgs/pkgs/development/tools/flawfinder/default.nix
+++ b/nixpkgs/pkgs/development/tools/flawfinder/default.nix
@@ -1,30 +1,22 @@
 { lib
-, stdenv
 , fetchurl
 , installShellFiles
 , python3
 }:
 
-stdenv.mkDerivation rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "flawfinder";
-  version = "2.0.15";
+  version = "2.0.18";
 
   src = fetchurl {
     url = "https://dwheeler.com/flawfinder/flawfinder-${version}.tar.gz";
-    sha256 = "01j4szy8gwvikrfzfayfayjnc1za0jxsnxp5fsa6d06kn69wyr8a";
+    sha256 = "1hk2y13fd2a5gf42a1hk45hw6pbls715wi9k1yh3c3wyhvbyylba";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  # Project is using a combination of bash/Python for the tests
+  doCheck = false;
 
-  buildInputs = [ python3 ];
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/bin
-    cp ${pname} $out/bin
-    installManPage flawfinder.1
-    runHook postInstall
-  '';
+  pythonImportsCheck = [ "flawfinder" ];
 
   meta = with lib; {
     description = "Tool to examines C/C++ source code for security flaws";
diff --git a/nixpkgs/pkgs/development/tools/go-task/default.nix b/nixpkgs/pkgs/development/tools/go-task/default.nix
index 58a986e813e1..280e0c1e986b 100644
--- a/nixpkgs/pkgs/development/tools/go-task/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.4.3";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "v${version}";
-    sha256 = "sha256-hI6x3DOB7pP+umnEFqL0sIx+6qN74sooLdkR2pC74D8=";
+    sha256 = "sha256-oXr98guqEvE/rpRJF5NMjQYZtzbrh1F/neXYbLaCGUg=";
   };
 
   vendorSha256 = "sha256-bsVzV2M31BA7X6aq8na7v56uGYgne4OwR5kz/utmQHI=";
diff --git a/nixpkgs/pkgs/development/tools/gops/default.nix b/nixpkgs/pkgs/development/tools/gops/default.nix
index d23aa71a8abe..bc9cba9df5f7 100644
--- a/nixpkgs/pkgs/development/tools/gops/default.nix
+++ b/nixpkgs/pkgs/development/tools/gops/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gops";
-  version = "0.3.18";
+  version = "0.3.19";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "gops";
     rev = "v${version}";
-    sha256 = "0534jyravpsj73lgdmw6fns1qaqiw401jlfk04wa0as5sv09rfhy";
+    sha256 = "sha256-9QEhc0OVCrIdIY220PDn2+CjUsCF84l6QRQS0HjDEZY=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/jbang/default.nix b/nixpkgs/pkgs/development/tools/jbang/default.nix
index 1220ec90d90f..b0d2cb719533 100644
--- a/nixpkgs/pkgs/development/tools/jbang/default.nix
+++ b/nixpkgs/pkgs/development/tools/jbang/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchzip, jdk, makeWrapper, coreutils, curl }:
 
 stdenv.mkDerivation rec {
-  version = "0.71.1";
+  version = "0.72.0";
   pname = "jbang";
 
   src = fetchzip {
     url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar";
-    sha256 = "sha256-+s2Wa+5Qznqpv84VEZCMmzy0bI1mN/BknPObYqJlaYs=";
+    sha256 = "sha256-QMbkxfGJOMNTILmGYhbUdtq4zfe0Cc/IBftFdM+rT9c=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/just/default.nix b/nixpkgs/pkgs/development/tools/just/default.nix
index 8a8d4201451f..d7a2e7338592 100644
--- a/nixpkgs/pkgs/development/tools/just/default.nix
+++ b/nixpkgs/pkgs/development/tools/just/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FWJ7fSJysT5LVFio49nbN0T0b+zWwiV7NvEJlojbNKs=";
+    sha256 = "sha256-WT3r6qw/lCZy6hdfAJmoAgUqjSLPVT8fKX4DnqDnhOs=";
   };
 
-  cargoSha256 = "sha256-/VmCuHPURQTyeIumMaWVrFu18ZgVR0klpc/bO1f1w4o=";
+  cargoSha256 = "sha256-0R/9VndP/Oh5/yP7NsBC25jiCSRVNEXhbVksElLXeEc=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
diff --git a/nixpkgs/pkgs/development/tools/kustomize/3.nix b/nixpkgs/pkgs/development/tools/kustomize/3.nix
new file mode 100644
index 000000000000..aa99256faa84
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/kustomize/3.nix
@@ -0,0 +1,40 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kustomize_3";
+  version = "3.10.0";
+  # rev is the commit of the tag, mainly for kustomize version command output
+  rev = "602ad8aa98e2e17f6c9119e027a09757e63c8bec";
+
+  ldflags = let t = "sigs.k8s.io/kustomize/api/provenance"; in [
+    "-s -w"
+    "-X ${t}.version=${version}"
+    "-X ${t}.gitCommit=${rev}"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "kubernetes-sigs";
+    repo = "kustomize";
+    rev = "kustomize/v${version}";
+    sha256 = "sha256-ESIykbAKXdv8zM9be0zEJ71rBAzZby0aTg25NlCsIOM=";
+  };
+
+  doCheck = true;
+
+  # avoid finding test and development commands
+  sourceRoot = "source/kustomize";
+
+  vendorSha256 = "sha256-xLeetcmzvpILLLMhMx7oahWLxguFjG3qbYpeeWpFUlw=";
+
+  meta = with lib; {
+    description = "Customization of kubernetes YAML configurations";
+    longDescription = ''
+      kustomize lets you customize raw, template-free YAML files for
+      multiple purposes, leaving the original YAML untouched and usable
+      as is.
+    '';
+    homepage = "https://github.com/kubernetes-sigs/kustomize";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ carlosdagos vdemeester zaninime Chili-Man saschagrunert ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/kustomize/default.nix b/nixpkgs/pkgs/development/tools/kustomize/default.nix
index 489b62891b65..c2453c8ff163 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/default.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "4.1.3";
+  version = "4.2.0";
   # rev is the commit of the tag, mainly for kustomize version command output
   rev = "9e8e7a7fe99ec9fbf801463e8607928322fc5245";
 
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    sha256 = "sha256-NPWKInDHOoelWqDrUn/AlRItI4e8J6dbBxgLW078ecs=";
+    sha256 = "sha256-mFF0Yc+j292oajY1i9SApnWaQnVoHxvkGCIurKC0t4o=";
   };
 
   # TODO: Remove once https://github.com/kubernetes-sigs/kustomize/pull/3708 got merged.
@@ -26,7 +26,7 @@ buildGoModule rec {
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "sha256-6maEpEPEV436NrVnVlvWV1q6YywGVILXbxn8Z8Ku/hs=";
+  vendorSha256 = "sha256-VMvXDIrg/BkuxZVDHvpfHY/hgwQGz2kw1/hu5lhcYEE=";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
diff --git a/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix b/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
index 9c71af562137..bea8a33a43d8 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kustomize-sops";
-  version = "2.5.6";
+  version = "2.5.7";
 
   src = fetchFromGitHub {
     owner = "viaduct-ai";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UEtWEOuekFbMUJFWYdXfzbCWCz4I7vVdb9UBQbMXF/A=";
+    sha256 = "sha256-CtVFCpj6YZUAjeyRAPOkbd30Js1PSmzapB12SwKZisc=";
   };
 
   vendorSha256 = "sha256-kNJkSivSj8LMeXobKazLy9MCTtWzrBn99GmvaH+qIUU=";
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
index 53b7f208e812..56d53104a206 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
@@ -1,8 +1,9 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
+  pname = "funnelweb";
+  version = "3.20";
 
-  name = "funnelweb-${meta.version}";
   src = fetchurl {
     url = "http://www.ross.net/funnelweb/download/funnelweb_v320/funnelweb_v320_source.tar.gz";
     sha256 = "0zqhys0j9gabrd12mnk8ibblpc8dal4kbl8vnhxmdlplsdpwn4wg";
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
index c02764035161..6847aff097c8 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
@@ -57,7 +57,7 @@ lib.fix (noweb: stdenv.mkDerivation rec {
         # NOTE: substituteInPlace breaks Icon binaries, so make sure the script
         #       uses (n)awk before calling.
         if grep -q nawk "$f"; then
-            substituteInPlace "$f" --replace "nawk" "${nawk}/bin/awk"
+            substituteInPlace "$f" --replace "nawk" "${nawk}/bin/nawk"
         fi
     done
 
diff --git a/nixpkgs/pkgs/development/tools/mbed-cli/default.nix b/nixpkgs/pkgs/development/tools/mbed-cli/default.nix
index 127fa1bef863..12e7d1915477 100644
--- a/nixpkgs/pkgs/development/tools/mbed-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/mbed-cli/default.nix
@@ -28,7 +28,7 @@ buildPythonApplication rec {
     homepage = "https://github.com/ARMmbed/mbed-cli";
     description = "Arm Mbed Command Line Interface";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rvolosatovs ];
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/nixpkgs/pkgs/development/tools/misc/binutils/default.nix b/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
index 8042655a859d..a4233886a854 100644
--- a/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
        # indeed GHC will refuse to compile with a binutils suffering from it. See
        # this comment for more information:
        # https://gitlab.haskell.org/ghc/ghc/issues/4210#note_78333
-       lib.optional stdenv.targetPlatform.isAarch32 ./R_ARM_COPY.patch;
+       lib.optional (stdenv.targetPlatform.isAarch32 && stdenv.hostPlatform.system != stdenv.targetPlatform.system) ./R_ARM_COPY.patch;
 
   outputs = [ "out" "info" "man" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/ccls/wrapper b/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
index c92bc6b40d1a..294b60893a3f 100644
--- a/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
+++ b/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
@@ -4,6 +4,6 @@ printf -v extraArgs ',\"%s\"' \
   $(cat @clang@/nix-support/libc-cflags \
         @clang@/nix-support/libcxx-cxxflags) \
   ${NIX_CFLAGS_COMPILE}
-initString="--init={\"clang\":{\"extraArgs\":[${extraArgs:1}]}}"
+initString="--init={\"clang\":{\"extraArgs\":[${extraArgs:1}],\"resourceDir\":\"@clang@/resource-root\"}}"
 
 exec -a "$0" "@out@/bin/@wrapped@" "${initString}" "$@"
diff --git a/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix b/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix
index de5c1e070fdb..f48ba999d868 100644
--- a/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchgit, cmake, pcre, doxygen }:
 
 stdenv.mkDerivation rec {
-  name = "editorconfig-core-c-${meta.version}";
+  pname = "editorconfig-core-c";
+  version = "0.12.1";
 
   src = fetchgit {
     url = "https://github.com/editorconfig/editorconfig-core-c.git";
-    rev = "v${meta.version}";
+    rev = "v${version}";
     sha256 = "0awpb63ci85kal3pnlj2b54bay8igj1rbc13d8gqkvidlb51nnx4";
     fetchSubmodules = true;
-    inherit name;
   };
 
   buildInputs = [ pcre ];
@@ -31,7 +31,6 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/editorconfig/editorconfig-core-c";
     license = with licenses; [ bsd2 bsd3 ];
-    version = "0.12.1";
     maintainers = with maintainers; [ dochang ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/global/default.nix b/nixpkgs/pkgs/development/tools/misc/global/default.nix
index 739615a841c7..70ec9278ae13 100644
--- a/nixpkgs/pkgs/development/tools/misc/global/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/global/default.nix
@@ -6,11 +6,11 @@ let
   pygments = python3Packages.pygments;
 in stdenv.mkDerivation rec {
   pname = "global";
-  version = "6.6.6";
+  version = "6.6.7";
 
   src = fetchurl {
     url = "mirror://gnu/global/${pname}-${version}.tar.gz";
-    sha256 = "sha256-dYB4r/+Y1MBRxYeFx62j7Rl3+rt3+Il/9le3HMYtTV0=";
+    sha256 = "sha256-aaD3f1OCfFVoF2wdOCFm3zYedCY6BH8LMFiqLyrVijw=";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix b/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
index b26fbf75031d..7b084fae891e 100644
--- a/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
@@ -1,15 +1,14 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper }:
 
 stdenv.mkDerivation rec {
-
-  name = "rolespec-${meta.version}";
+  pname = "rolespec";
+  version = "20161104";
 
   src = fetchFromGitHub {
     owner = "nickjj";
     repo = "rolespec";
     rev = "d9ee530cd709168882059776c482fc37f46cb743";
     sha256 = "1jkidw6aqr0zfqwmcvlpi9qa140z2pxcfsd43xm5ikx6jcwjdrzl";
-    inherit name;
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -41,9 +40,7 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/nickjj/rolespec";
     license = licenses.gpl3;
-    version = "20161104";
     maintainers = [ maintainers.dochang ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
index e189c563e86e..030200e47a8c 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,19 +2,17 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.18.1";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-68Hs9kwv7GTGnYtoJh61ubaggPKbxFwz7qDwYaJ74c8=";
+    sha256 = "sha256-d/dn77pV9qxzAm6NVOM5KhFxYi2/xEK02zMl2TTB5rA=";
   };
-  vendorSha256 = "sha256-NgOpnCe0uGQVDVKYUIULqPTfvfkDtxIUQiCVwiE7nuc=";
+  vendorSha256 = "sha256-0PcMxotUEys+jGDFEEz6owbtTGAac+RwoBWEHP5ifKQ=";
 
-  preBuild = ''
-    buildFlagsArray+=("-ldflags" "-s -w -X main.version=v${version} -X main.prerelease=")
-  '';
+  ldflags = [ "-s" "-w" "-X main.version=v${version}" "-X main.prerelease=" ];
 
   preCheck = ''
     # Remove tests that requires networking
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
index 2acc7e5bdf32..3945389e8cd1 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.8.5";
+  version = "2.9.0";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "0a9n8ilsi3kyx5xqvk5s7iikk6y3pkpm5mvsn5za5ivlzf1i40br";
+    sha256 = "07m476kgagpd6kzm3jq30yfxqspr2hychah0xfqs14z82zxpq8dv";
   };
 
   buildInputs = [ ocaml findlib ];
diff --git a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
index 739a562227a8..6737f161754c 100644
--- a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.29.4";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
@@ -10,14 +10,11 @@ buildGoModule rec {
     rev = "v${version}";
     sha256 = "sha256-AjNr+t30ftF92+cEfvt8iHBDVD/SO52ojJRLAkYF9l4=";
   };
-
   vendorSha256 = null;
 
   subPackages = [ "." ];
 
-  preBuild = ''
-    buildFlagsArray+=("-ldflags" "-s -w -X github.com/open-policy-agent/opa/version.Version=${version}")
-  '';
+  ldflags = [ "-s" "-w" "-X github.com/open-policy-agent/opa/version.Version=${version}" ];
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
index 6ab1463917c8..60704fdd780b 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -28,9 +28,9 @@ let
   # 1) change all these hashes
   # 2) nix-build -A tree-sitter.updater.update-all-grammars
   # 3) run the ./result script that is output by that (it updates ./grammars)
-  version = "0.19.5";
-  sha256 = "1qmb0sva28zv6r3c3j7xs9pc8bpwwhkb9vxxndw2zbdn9wkvmbmn";
-  cargoSha256 = "0hnjik3pymb1s7frhfpfzvd6w2k3lgpsmh6milpriwxmqsmkwdzz";
+  version = "0.20.0";
+  sha256 = "0hrcisvw44fjxix09lfbrz7majaj6njbnr6c92a6a5748p2jvyng";
+  cargoSha256 = "029db3yy6nj18vxfvj0ra568a9k4x7znfj08spvzl5sxfbx6442r";
 
   src = fetchFromGitHub {
     owner = "tree-sitter";
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index 5ebc9c9a0f3c..8b8315e4abdc 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "aa429589525bb849189a0c5ddb52267ce578f988",
-  "date": "2021-06-07T18:47:38+02:00",
-  "path": "/nix/store/mclvpa5kfbl9g5ij3xjdhnqc6bqzqcj6-tree-sitter-c-sharp",
-  "sha256": "07alycp4bclr0ycn44dj2481xag0s10nwgyrdxar3j91hphd966s",
+  "rev": "3953034ee61e8639100b063092d4280e047ca9e9",
+  "date": "2021-06-21T12:18:46+02:00",
+  "path": "/nix/store/8f2bnr790zwibhyd3jqjm38zfc1md5is-tree-sitter-c-sharp",
+  "sha256": "0k6pb27f463y88bf6ym0zl4d36182y5cr3013j71h3vlg264z96c",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
index b8ca41abcf29..1e00f279d68f 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-haskell",
-  "rev": "237f4eb4417c28f643a29d795ed227246afb66f9",
-  "date": "2021-06-05T13:41:42+02:00",
-  "path": "/nix/store/wwi86c3ix0zq8czwljxxypw5w2mxnz5h-tree-sitter-haskell",
-  "sha256": "0gx6mr6yg053i5mif8i8qwkk9h57laf9riw5r24av1y7cal7sszd",
+  "rev": "a0c1adb59e390f7d839a146c57fdb33d36ed97e6",
+  "date": "2021-06-18T23:36:08+02:00",
+  "path": "/nix/store/7rl3najf8rn8ndh31vcxjz5px3r1scky-tree-sitter-haskell",
+  "sha256": "0a97w0qnj0fwy0yyg7hb9i1fyiwbyiz5mwx77aaw6md4jcsf4di8",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
index 65066c66d539..24fd79d5116c 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-javascript",
-  "rev": "45b9ce2a2588c0e6d616b0ee2a710b1fcb99c5b5",
-  "date": "2021-06-09T14:12:41-07:00",
-  "path": "/nix/store/j6r7z3m4wk6baz70qg2xn2mq3jlnyq6f-tree-sitter-javascript",
-  "sha256": "0rzpyxbh1j9l12jxyryc06f8jhbd5ci18lfb7bw2msc685b2ckcx",
+  "rev": "6de6d604c243b68f90dce14130d536c694d90dcc",
+  "date": "2021-06-29T15:54:12-07:00",
+  "path": "/nix/store/mmz8s440zplg88c0mb0w3dlg94dzgxmf-tree-sitter-javascript",
+  "sha256": "1bz8xhs7q4lp49q1id6dvz93l7vf0gxgngsbjk3x1nvw8rg171j6",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index 49b57f4d8a39..6b64a962a523 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "b065fc4ded84c30aff14c07ec6e7cf449e222b04",
-  "date": "2021-06-01T20:33:20+02:00",
-  "path": "/nix/store/czdqn2nz8pgrd64w74yskx6vl233phxn-tree-sitter-php",
-  "sha256": "1qr2byy344haqybd0zz2hazncay7zndkp4p3317ck50xrs05z086",
+  "rev": "5e89808d490d893799ebcf229130afe4cf2b0324",
+  "date": "2021-06-22T09:23:44+02:00",
+  "path": "/nix/store/5c1pn1p183czqb43a0va7whd4sz81jf1-tree-sitter-php",
+  "sha256": "1mp5kv305a4rrgh7kklifqfg3680krfsd0h76sxn4i0wxyqfgczi",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
index a96363af7139..c8142974fd43 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ruby",
-  "rev": "391269d74d20154bbd0ac9be20b35eced6920290",
-  "date": "2021-05-04T14:02:32-07:00",
-  "path": "/nix/store/hamsaml0yzi13qd61abypjwbv33rd824-tree-sitter-ruby",
-  "sha256": "0biyhydfzybz3g6hhdd0rk6yav7xsk61j8lnmpsi60vaxabdsaiv",
+  "rev": "fe6a2d634da0e16b11b5aa255cc3df568a4572fd",
+  "date": "2021-03-03T16:54:30-08:00",
+  "path": "/nix/store/ragrvqj7hm98r74v5b3fljvc47gd3nhj-tree-sitter-ruby",
+  "sha256": "0m3h4928rbs300wcb6776h9r88hi32rybbhcaf6rdympl5nzi83v",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
index b7c214cc720a..75329fc63a00 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-scala",
-  "rev": "fb23ed9a99da012d86b7a5059b9d8928607cce29",
-  "date": "2021-04-01T10:11:15-07:00",
-  "path": "/nix/store/n1wvxkz4h38770lxvwakway34ac2a8h7-tree-sitter-scala",
-  "sha256": "05g95340g4labkdvfka5cbg7pr6vzigc40y54js1b5wml0w3d8f7",
+  "rev": "bfa2a81388019d47f6a0a6a6e9c96910dec830b4",
+  "date": "2021-06-23T15:37:27-07:00",
+  "path": "/nix/store/nc5cndwzc5pzq3x64wa51bff0rl36hc8-tree-sitter-scala",
+  "sha256": "0x0lq78gjfsqi225mfvrpkl2jc6fbb378jgj04syxkm941lxc4bk",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
index b224fa54dafe..41c4fcfe734d 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/Himujjal/tree-sitter-svelte",
-  "rev": "10c113001acf9852817150acb3031a5e68d2b4cf",
-  "date": "2021-05-02T10:05:14+05:30",
-  "path": "/nix/store/mpfr56mfiizhwr4hq7h422glmdc4hg48-tree-sitter-svelte",
-  "sha256": "1n7addsnin6czm5hrbhaaqqgf0c3nz3mpcdysm2z4icgn7fjq281",
+  "rev": "c696a13a587b0595baf7998f1fb9e95c42750263",
+  "date": "2021-03-20T16:45:11+05:30",
+  "path": "/nix/store/8krdxqwpi95ljrb5jgalwgygz3aljqr8-tree-sitter-svelte",
+  "sha256": "0ckmss5gmvffm6danlsvgh6gwvrlznxsqf6i6ipkn7k5lxg1awg3",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/pgtop/default.nix b/nixpkgs/pkgs/development/tools/pgtop/default.nix
new file mode 100644
index 000000000000..03b3ef89265b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/pgtop/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, perlPackages, fetchFromGitHub, shortenPerlShebang }:
+
+perlPackages.buildPerlPackage rec {
+  pname = "pgtop";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "cosimo";
+    repo = "pgtop";
+    rev = "v${version}";
+    sha256 = "1awyl6ddfihm7dfr5y2z15r1si5cyipnlyyj3m1l19pk98s4x66l";
+  };
+
+  outputs = [ "out" ];
+
+  buildInputs = with perlPackages; [ DBI DBDPg TermReadKey JSON LWPUserAgent ];
+
+  nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/pgtop
+  '';
+
+  meta = with lib; {
+    description = "a PostgreSQL clone of `mytop', which in turn is a `top' clone for MySQL";
+    homepage = "https://github.com/cosimo/pgtop";
+    changelog = "https://github.com/cosimo/pgtop/releases/tag/v${version}";
+    maintainers = [ maintainers.hagl ];
+    license = [ licenses.gpl2Only ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
index 063da92a6ad3..79f97ddd745c 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "protoc-gen-go";
-  version = "1.27.0";
+  version = "1.27.1";
 
   src = fetchFromGitHub {
     owner = "protocolbuffers";
     repo = "protobuf-go";
     rev = "v${version}";
-    sha256 = "sha256-1L0GYXrtTYkk5eLXkfVxzbZMZKgyzSpkDaI8itb6NnA=";
+    sha256 = "sha256-wkUvMsoJP38KMD5b3Fz65R1cnpeTtDcVqgE7tNlZXys=";
   };
 
   vendorSha256 = "sha256-yb8l4ooZwqfvenlxDRg95rqiL+hmsn0weS/dPv/oD2Y=";
diff --git a/nixpkgs/pkgs/development/tools/pscale/default.nix b/nixpkgs/pkgs/development/tools/pscale/default.nix
new file mode 100644
index 000000000000..701c22471ee4
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/pscale/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "pscale";
+  version = "0.51.0";
+
+  src = fetchFromGitHub {
+    owner = "planetscale";
+    repo = "cli";
+    rev = "v${version}";
+    sha256 = "sha256-ykHwDVwL30uXeCEP4EcM8TPYqZmCDDAUUpfinpYipHE=";
+  };
+
+  vendorSha256 = "sha256-3VP2fluQLZs4nWT3O6NmCFxrqKw0/j3ASNxtbXHlZEA=";
+
+  meta = with lib; {
+    homepage = "https://www.planetscale.com/";
+    changelog = "https://github.com/planetscale/cli/releases/tag/v${version}";
+    description = "The CLI for PlanetScale Database";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pimeys ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/remarshal/default.nix b/nixpkgs/pkgs/development/tools/remarshal/default.nix
index 385db11d7ff4..67137fb1ed93 100644
--- a/nixpkgs/pkgs/development/tools/remarshal/default.nix
+++ b/nixpkgs/pkgs/development/tools/remarshal/default.nix
@@ -10,7 +10,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python3Packages; [
-    pyyaml cbor2 dateutil tomlkit u-msgpack-python
+    pyyaml cbor2 python-dateutil tomlkit u-msgpack-python
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
index c0baf9f39645..549c3d11e3ac 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-bloat";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bqzzh8vfqm7dpnb0fv4calnhsg9p3c5j06ycvg621p4zp4fydh2";
+    sha256 = "sha256-VcdZ/dKqFFQs8ItNEj407z1pWJqpHwwIsuNnsQ8KU/8=";
   };
 
-  cargoSha256 = "0f7hmwrs99qdvhn4lvs8cqva68w2y04fy3ca1xlhk7ncdmclcc4g";
+  cargoSha256 = "sha256-1TIGv0yVhkhThqZiQW9JrvFd0eouTlr8kgN/g7b4vDM=";
 
   meta = with lib; {
     description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
diff --git a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
index e68eea50ff3d..a86e531e7f67 100644
--- a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
@@ -10,18 +10,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crate2nix";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "kolloch";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dB8wa3CQFw8ckD420zpBGw4TnsLrHqXf+ff/WuhPsVM=";
+    sha256 = "sha256-JaF9/H3m4Wrc5MtXcONkOAgKVkswLVw0yZe0dBr2e4Y=";
   };
 
   sourceRoot = "source/crate2nix";
 
-  cargoSha256 = "sha256-shWhzCaH8ZttUcq82tA7T1hwNl6F1XJy7ansA5lt+Mw=";
+  cargoSha256 = "sha256-PD7R1vcb3FKd4hfpViKyvfCExJ5H1Xo2HPYden5zpxQ=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
index 07b00deb9c36..a6381576ead0 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -7,21 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2021-06-21";
-  cargoSha256 = "sha256-OpfcxBeNwXSD830Sz3o07kgIdXTbZNNVGpaPeCIGGV8=";
+  version = "2021-07-05";
+  cargoSha256 = "sha256-HmvvDHi33JAYXON98mbb+MfmJizOL4cdTbc3QDtPkZo=";
 
   src = fetchFromGitHub {
     owner = "rust-analyzer";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-nL5lSvxpOS+fw4iH/Gnl/DI86T9tUtguOy+wLGRkoeY=";
+    sha256 = "sha256-7pH38U+HMNPuO1BFP5kPTJoxGWTewRUoLrc9NXDdK2M=";
   };
 
-  patches = [
-    # We have rustc 1.52.1 in nixpkgs.
-    ./no-rust-1-53-features.patch
-  ];
-
   buildAndTestSubdir = "crates/rust-analyzer";
 
   cargoBuildFlags = lib.optional useMimalloc "--features=mimalloc";
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch
deleted file mode 100644
index 9fa54e8a9039..000000000000
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch
+++ /dev/null
@@ -1,673 +0,0 @@
-diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs
-index 43162797e..613266e07 100644
---- a/crates/hir/src/semantics.rs
-+++ b/crates/hir/src/semantics.rs
-@@ -51,14 +51,12 @@ impl PathResolution {
-             PathResolution::Def(ModuleDef::BuiltinType(builtin)) => {
-                 Some(TypeNs::BuiltinType((*builtin).into()))
-             }
--            PathResolution::Def(
--                ModuleDef::Const(_)
--                | ModuleDef::Variant(_)
--                | ModuleDef::Function(_)
--                | ModuleDef::Module(_)
--                | ModuleDef::Static(_)
--                | ModuleDef::Trait(_),
--            ) => None,
-+            PathResolution::Def(ModuleDef::Const(_))
-+            | PathResolution::Def(ModuleDef::Variant(_))
-+            | PathResolution::Def(ModuleDef::Function(_))
-+            | PathResolution::Def(ModuleDef::Module(_))
-+            | PathResolution::Def(ModuleDef::Static(_))
-+            | PathResolution::Def(ModuleDef::Trait(_)) => None,
-             PathResolution::Def(ModuleDef::TypeAlias(alias)) => {
-                 Some(TypeNs::TypeAliasId((*alias).into()))
-             }
-@@ -67,7 +65,8 @@ impl PathResolution {
-             }
-             PathResolution::TypeParam(param) => Some(TypeNs::GenericParam((*param).into())),
-             PathResolution::SelfType(impl_def) => Some(TypeNs::SelfType((*impl_def).into())),
--            PathResolution::AssocItem(AssocItem::Const(_) | AssocItem::Function(_)) => None,
-+            PathResolution::AssocItem(AssocItem::Const(_))
-+            | PathResolution::AssocItem(AssocItem::Function(_)) => None,
-             PathResolution::AssocItem(AssocItem::TypeAlias(alias)) => {
-                 Some(TypeNs::TypeAliasId((*alias).into()))
-             }
-diff --git a/crates/hir_def/src/item_tree/pretty.rs b/crates/hir_def/src/item_tree/pretty.rs
-index e63bc8232..b1e1b70d0 100644
---- a/crates/hir_def/src/item_tree/pretty.rs
-+++ b/crates/hir_def/src/item_tree/pretty.rs
-@@ -63,7 +63,7 @@ impl<'a> Printer<'a> {
-     fn blank(&mut self) {
-         let mut iter = self.buf.chars().rev().fuse();
-         match (iter.next(), iter.next()) {
--            (Some('\n'), Some('\n') | None) | (None, None) => {}
-+            (Some('\n'), Some('\n')) | (Some('\n'), None) | (None, None) => {}
-             (Some('\n'), Some(_)) => {
-                 self.buf.push('\n');
-             }
-@@ -77,7 +77,7 @@ impl<'a> Printer<'a> {
- 
-     fn whitespace(&mut self) {
-         match self.buf.chars().next_back() {
--            None | Some('\n' | ' ') => {}
-+            None | Some('\n') | Some(' ') => {}
-             _ => self.buf.push(' '),
-         }
-     }
-diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs
-index 927a7b6e8..fc2c50fb8 100644
---- a/crates/hir_def/src/nameres/collector.rs
-+++ b/crates/hir_def/src/nameres/collector.rs
-@@ -1260,7 +1260,7 @@ impl DefCollector<'_> {
-         for directive in &self.unresolved_imports {
-             if let ImportSource::Import { id: import, use_tree } = &directive.import.source {
-                 match (directive.import.path.segments().first(), &directive.import.path.kind) {
--                    (Some(krate), PathKind::Plain | PathKind::Abs) => {
-+                    (Some(krate), PathKind::Plain) | (Some(krate), PathKind::Abs) => {
-                         if diagnosed_extern_crates.contains(krate) {
-                             continue;
-                         }
-diff --git a/crates/hir_def/src/resolver.rs b/crates/hir_def/src/resolver.rs
-index 49c573087..5edd93a2a 100644
---- a/crates/hir_def/src/resolver.rs
-+++ b/crates/hir_def/src/resolver.rs
-@@ -605,7 +605,8 @@ fn to_value_ns(per_ns: PerNs) -> Option<ValueNs> {
-         ModuleDefId::ConstId(it) => ValueNs::ConstId(it),
-         ModuleDefId::StaticId(it) => ValueNs::StaticId(it),
- 
--        ModuleDefId::AdtId(AdtId::EnumId(_) | AdtId::UnionId(_))
-+        ModuleDefId::AdtId(AdtId::EnumId(_))
-+        | ModuleDefId::AdtId(AdtId::UnionId(_))
-         | ModuleDefId::TraitId(_)
-         | ModuleDefId::TypeAliasId(_)
-         | ModuleDefId::BuiltinType(_)
-diff --git a/crates/hir_def/src/visibility.rs b/crates/hir_def/src/visibility.rs
-index aeb1e7726..83500f54e 100644
---- a/crates/hir_def/src/visibility.rs
-+++ b/crates/hir_def/src/visibility.rs
-@@ -172,8 +172,9 @@ impl Visibility {
-     /// visible in unrelated modules).
-     pub(crate) fn max(self, other: Visibility, def_map: &DefMap) -> Option<Visibility> {
-         match (self, other) {
--            (Visibility::Module(_) | Visibility::Public, Visibility::Public)
--            | (Visibility::Public, Visibility::Module(_)) => Some(Visibility::Public),
-+            (Visibility::Module(_), Visibility::Public)
-+            | (Visibility::Public, Visibility::Module(_))
-+            | (Visibility::Public, Visibility::Public) => Some(Visibility::Public),
-             (Visibility::Module(mod_a), Visibility::Module(mod_b)) => {
-                 if mod_a.krate != mod_b.krate {
-                     return None;
-diff --git a/crates/hir_expand/src/hygiene.rs b/crates/hir_expand/src/hygiene.rs
-index 848522411..05c6c3fb1 100644
---- a/crates/hir_expand/src/hygiene.rs
-+++ b/crates/hir_expand/src/hygiene.rs
-@@ -146,11 +146,10 @@ impl HygieneInfo {
-                 (&self.macro_arg.1, InFile::new(loc.kind.file_id(), arg_start))
-             }
-             mbe::Origin::Def => match (&*self.macro_def, self.def_start) {
--                (
--                    TokenExpander::MacroDef { def_site_token_map, .. }
--                    | TokenExpander::MacroRules { def_site_token_map, .. },
--                    Some(tt),
--                ) => (def_site_token_map, tt),
-+                (TokenExpander::MacroDef { def_site_token_map, .. }, Some(tt))
-+                | (TokenExpander::MacroRules { def_site_token_map, .. }, Some(tt)) => {
-+                    (def_site_token_map, tt)
-+                }
-                 _ => panic!("`Origin::Def` used with non-`macro_rules!` macro"),
-             },
-         };
-diff --git a/crates/hir_expand/src/lib.rs b/crates/hir_expand/src/lib.rs
-index c31426d7c..33107aa24 100644
---- a/crates/hir_expand/src/lib.rs
-+++ b/crates/hir_expand/src/lib.rs
-@@ -368,11 +368,10 @@ impl ExpansionInfo {
-         let (token_map, tt) = match origin {
-             mbe::Origin::Call => (&self.macro_arg.1, self.arg.clone()),
-             mbe::Origin::Def => match (&*self.macro_def, self.def.as_ref()) {
--                (
--                    db::TokenExpander::MacroRules { def_site_token_map, .. }
--                    | db::TokenExpander::MacroDef { def_site_token_map, .. },
--                    Some(tt),
--                ) => (def_site_token_map, tt.as_ref().map(|tt| tt.syntax().clone())),
-+                (db::TokenExpander::MacroRules { def_site_token_map, .. }, Some(tt))
-+                | (db::TokenExpander::MacroDef { def_site_token_map, .. }, Some(tt)) => {
-+                    (def_site_token_map, tt.as_ref().map(|tt| tt.syntax().clone()))
-+                }
-                 _ => panic!("`Origin::Def` used with non-`macro_rules!` macro"),
-             },
-         };
-diff --git a/crates/hir_ty/src/consteval.rs b/crates/hir_ty/src/consteval.rs
-index ab1afce08..6f0bf8f8c 100644
---- a/crates/hir_ty/src/consteval.rs
-+++ b/crates/hir_ty/src/consteval.rs
-@@ -38,7 +38,8 @@ impl ConstExt for Const {
- // FIXME: support more than just evaluating literals
- pub fn eval_usize(expr: &Expr) -> Option<u64> {
-     match expr {
--        Expr::Literal(Literal::Uint(v, None | Some(BuiltinUint::Usize))) => (*v).try_into().ok(),
-+        Expr::Literal(Literal::Uint(v, None))
-+        | Expr::Literal(Literal::Uint(v, Some(BuiltinUint::Usize))) => (*v).try_into().ok(),
-         _ => None,
-     }
- }
-diff --git a/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs b/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs
-index e3d640a79..471cd4921 100644
---- a/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs
-+++ b/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs
-@@ -84,7 +84,10 @@ impl IntRange {
-     #[inline]
-     fn is_integral(ty: &Ty) -> bool {
-         match ty.kind(&Interner) {
--            TyKind::Scalar(Scalar::Char | Scalar::Int(_) | Scalar::Uint(_) | Scalar::Bool) => true,
-+            TyKind::Scalar(Scalar::Char)
-+            | TyKind::Scalar(Scalar::Int(_))
-+            | TyKind::Scalar(Scalar::Uint(_))
-+            | TyKind::Scalar(Scalar::Bool) => true,
-             _ => false,
-         }
-     }
-@@ -378,7 +381,7 @@ impl Constructor {
-             // Wildcards cover anything
-             (_, Wildcard) => true,
-             // The missing ctors are not covered by anything in the matrix except wildcards.
--            (Missing | Wildcard, _) => false,
-+            (Missing, _) | (Wildcard, _) => false,
- 
-             (Single, Single) => true,
-             (Variant(self_id), Variant(other_id)) => self_id == other_id,
-@@ -520,7 +523,7 @@ impl SplitWildcard {
-                 }
-             }
-             TyKind::Scalar(Scalar::Char) => unhandled(),
--            TyKind::Scalar(Scalar::Int(..) | Scalar::Uint(..)) => unhandled(),
-+            TyKind::Scalar(Scalar::Int(..)) | TyKind::Scalar(Scalar::Uint(..)) => unhandled(),
-             TyKind::Never if !cx.feature_exhaustive_patterns() && !pcx.is_top_level => {
-                 smallvec![NonExhaustive]
-             }
-diff --git a/crates/hir_ty/src/infer/coerce.rs b/crates/hir_ty/src/infer/coerce.rs
-index 7be914451..4b7f31521 100644
---- a/crates/hir_ty/src/infer/coerce.rs
-+++ b/crates/hir_ty/src/infer/coerce.rs
-@@ -47,7 +47,10 @@ impl<'a> InferenceContext<'a> {
-         // pointers to have a chance at getting a match. See
-         // https://github.com/rust-lang/rust/blob/7b805396bf46dce972692a6846ce2ad8481c5f85/src/librustc_typeck/check/coercion.rs#L877-L916
-         let sig = match (ty1.kind(&Interner), ty2.kind(&Interner)) {
--            (TyKind::FnDef(..) | TyKind::Closure(..), TyKind::FnDef(..) | TyKind::Closure(..)) => {
-+            (TyKind::FnDef(..), TyKind::FnDef(..))
-+            | (TyKind::Closure(..), TyKind::FnDef(..))
-+            | (TyKind::FnDef(..), TyKind::Closure(..))
-+            | (TyKind::Closure(..), TyKind::Closure(..)) => {
-                 // FIXME: we're ignoring safety here. To be more correct, if we have one FnDef and one Closure,
-                 // we should be coercing the closure to a fn pointer of the safety of the FnDef
-                 cov_mark::hit!(coerce_fn_reification);
-@@ -445,7 +448,8 @@ fn safe_to_unsafe_fn_ty(fn_ty: FnPointer) -> FnPointer {
- 
- fn coerce_mutabilities(from: Mutability, to: Mutability) -> Result<(), TypeError> {
-     match (from, to) {
--        (Mutability::Mut, Mutability::Mut | Mutability::Not)
-+        (Mutability::Mut, Mutability::Mut)
-+        | (Mutability::Mut, Mutability::Not)
-         | (Mutability::Not, Mutability::Not) => Ok(()),
-         (Mutability::Not, Mutability::Mut) => Err(TypeError),
-     }
-diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs
-index c3a5b979f..346e94128 100644
---- a/crates/hir_ty/src/infer/expr.rs
-+++ b/crates/hir_ty/src/infer/expr.rs
-@@ -593,11 +593,11 @@ impl<'a> InferenceContext<'a> {
-                     UnaryOp::Neg => {
-                         match inner_ty.kind(&Interner) {
-                             // Fast path for builtins
--                            TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_) | Scalar::Float(_))
--                            | TyKind::InferenceVar(
--                                _,
--                                TyVariableKind::Integer | TyVariableKind::Float,
--                            ) => inner_ty,
-+                            TyKind::Scalar(Scalar::Int(_))
-+                            | TyKind::Scalar(Scalar::Uint(_))
-+                            | TyKind::Scalar(Scalar::Float(_))
-+                            | TyKind::InferenceVar(_, TyVariableKind::Integer)
-+                            | TyKind::InferenceVar(_, TyVariableKind::Float) => inner_ty,
-                             // Otherwise we resolve via the std::ops::Neg trait
-                             _ => self
-                                 .resolve_associated_type(inner_ty, self.resolve_ops_neg_output()),
-@@ -606,7 +606,9 @@ impl<'a> InferenceContext<'a> {
-                     UnaryOp::Not => {
-                         match inner_ty.kind(&Interner) {
-                             // Fast path for builtins
--                            TyKind::Scalar(Scalar::Bool | Scalar::Int(_) | Scalar::Uint(_))
-+                            TyKind::Scalar(Scalar::Bool)
-+                            | TyKind::Scalar(Scalar::Int(_))
-+                            | TyKind::Scalar(Scalar::Uint(_))
-                             | TyKind::InferenceVar(_, TyVariableKind::Integer) => inner_ty,
-                             // Otherwise we resolve via the std::ops::Not trait
-                             _ => self
-@@ -733,7 +735,7 @@ impl<'a> InferenceContext<'a> {
-             Expr::Array(array) => {
-                 let elem_ty =
-                     match expected.to_option(&mut self.table).as_ref().map(|t| t.kind(&Interner)) {
--                        Some(TyKind::Array(st, _) | TyKind::Slice(st)) => st.clone(),
-+                        Some(TyKind::Array(st, _)) | Some(TyKind::Slice(st)) => st.clone(),
-                         _ => self.table.new_type_var(),
-                     };
- 
-diff --git a/crates/hir_ty/src/infer/pat.rs b/crates/hir_ty/src/infer/pat.rs
-index c79ed91ea..80ecd4ea9 100644
---- a/crates/hir_ty/src/infer/pat.rs
-+++ b/crates/hir_ty/src/infer/pat.rs
-@@ -297,11 +297,10 @@ fn is_non_ref_pat(body: &hir_def::body::Body, pat: PatId) -> bool {
-             Expr::Literal(Literal::String(..)) => false,
-             _ => true,
-         },
--        Pat::Bind {
--            mode: BindingAnnotation::Mutable | BindingAnnotation::Unannotated,
--            subpat: Some(subpat),
--            ..
--        } => is_non_ref_pat(body, *subpat),
-+        Pat::Bind { mode: BindingAnnotation::Mutable, subpat: Some(subpat), .. }
-+        | Pat::Bind { mode: BindingAnnotation::Unannotated, subpat: Some(subpat), .. } => {
-+            is_non_ref_pat(body, *subpat)
-+        }
-         Pat::Wild | Pat::Bind { .. } | Pat::Ref { .. } | Pat::Box { .. } | Pat::Missing => false,
-     }
- }
-diff --git a/crates/hir_ty/src/op.rs b/crates/hir_ty/src/op.rs
-index 5ef6342d5..0222de2bc 100644
---- a/crates/hir_ty/src/op.rs
-+++ b/crates/hir_ty/src/op.rs
-@@ -8,15 +8,17 @@ pub(super) fn binary_op_return_ty(op: BinaryOp, lhs_ty: Ty, rhs_ty: Ty) -> Ty {
-     match op {
-         BinaryOp::LogicOp(_) | BinaryOp::CmpOp(_) => TyKind::Scalar(Scalar::Bool).intern(&Interner),
-         BinaryOp::Assignment { .. } => TyBuilder::unit(),
--        BinaryOp::ArithOp(ArithOp::Shl | ArithOp::Shr) => {
-+        BinaryOp::ArithOp(ArithOp::Shl) | BinaryOp::ArithOp(ArithOp::Shr) => {
-             // all integer combinations are valid here
-             if matches!(
-                 lhs_ty.kind(&Interner),
--                TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_))
-+                TyKind::Scalar(Scalar::Int(_))
-+                    | TyKind::Scalar(Scalar::Uint(_))
-                     | TyKind::InferenceVar(_, TyVariableKind::Integer)
-             ) && matches!(
-                 rhs_ty.kind(&Interner),
--                TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_))
-+                TyKind::Scalar(Scalar::Int(_))
-+                    | TyKind::Scalar(Scalar::Uint(_))
-                     | TyKind::InferenceVar(_, TyVariableKind::Integer)
-             ) {
-                 lhs_ty
-@@ -30,15 +32,15 @@ pub(super) fn binary_op_return_ty(op: BinaryOp, lhs_ty: Ty, rhs_ty: Ty) -> Ty {
-             | (TyKind::Scalar(Scalar::Uint(_)), TyKind::Scalar(Scalar::Uint(_)))
-             | (TyKind::Scalar(Scalar::Float(_)), TyKind::Scalar(Scalar::Float(_))) => rhs_ty,
-             // ({int}, int) | ({int}, uint)
--            (
--                TyKind::InferenceVar(_, TyVariableKind::Integer),
--                TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_)),
--            ) => rhs_ty,
-+            (TyKind::InferenceVar(_, TyVariableKind::Integer), TyKind::Scalar(Scalar::Int(_)))
-+            | (TyKind::InferenceVar(_, TyVariableKind::Integer), TyKind::Scalar(Scalar::Uint(_))) => {
-+                rhs_ty
-+            }
-             // (int, {int}) | (uint, {int})
--            (
--                TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_)),
--                TyKind::InferenceVar(_, TyVariableKind::Integer),
--            ) => lhs_ty,
-+            (TyKind::Scalar(Scalar::Int(_)), TyKind::InferenceVar(_, TyVariableKind::Integer))
-+            | (TyKind::Scalar(Scalar::Uint(_)), TyKind::InferenceVar(_, TyVariableKind::Integer)) => {
-+                lhs_ty
-+            }
-             // ({float} | float)
-             (TyKind::InferenceVar(_, TyVariableKind::Float), TyKind::Scalar(Scalar::Float(_))) => {
-                 rhs_ty
-@@ -67,15 +69,21 @@ pub(super) fn binary_op_rhs_expectation(op: BinaryOp, lhs_ty: Ty) -> Ty {
-         BinaryOp::Assignment { op: None } => lhs_ty,
-         BinaryOp::CmpOp(CmpOp::Eq { .. }) => match lhs_ty.kind(&Interner) {
-             TyKind::Scalar(_) | TyKind::Str => lhs_ty,
--            TyKind::InferenceVar(_, TyVariableKind::Integer | TyVariableKind::Float) => lhs_ty,
-+            TyKind::InferenceVar(_, TyVariableKind::Integer)
-+            | TyKind::InferenceVar(_, TyVariableKind::Float) => lhs_ty,
-             _ => TyKind::Error.intern(&Interner),
-         },
--        BinaryOp::ArithOp(ArithOp::Shl | ArithOp::Shr) => TyKind::Error.intern(&Interner),
-+        BinaryOp::ArithOp(ArithOp::Shl) | BinaryOp::ArithOp(ArithOp::Shr) => {
-+            TyKind::Error.intern(&Interner)
-+        }
-         BinaryOp::CmpOp(CmpOp::Ord { .. })
-         | BinaryOp::Assignment { op: Some(_) }
-         | BinaryOp::ArithOp(_) => match lhs_ty.kind(&Interner) {
--            TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_) | Scalar::Float(_)) => lhs_ty,
--            TyKind::InferenceVar(_, TyVariableKind::Integer | TyVariableKind::Float) => lhs_ty,
-+            TyKind::Scalar(Scalar::Int(_))
-+            | TyKind::Scalar(Scalar::Uint(_))
-+            | TyKind::Scalar(Scalar::Float(_)) => lhs_ty,
-+            TyKind::InferenceVar(_, TyVariableKind::Integer)
-+            | TyKind::InferenceVar(_, TyVariableKind::Float) => lhs_ty,
-             _ => TyKind::Error.intern(&Interner),
-         },
-     }
-diff --git a/crates/ide/src/join_lines.rs b/crates/ide/src/join_lines.rs
-index ffa8bd182..93d3760bf 100644
---- a/crates/ide/src/join_lines.rs
-+++ b/crates/ide/src/join_lines.rs
-@@ -197,7 +197,7 @@ fn join_single_use_tree(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Opti
- }
- 
- fn is_trailing_comma(left: SyntaxKind, right: SyntaxKind) -> bool {
--    matches!((left, right), (T![,], T![')'] | T![']']))
-+    matches!((left, right), (T![,], T![')']) | (T![,], T![']']))
- }
- 
- fn compute_ws(left: SyntaxKind, right: SyntaxKind) -> &'static str {
-diff --git a/crates/ide/src/references.rs b/crates/ide/src/references.rs
-index 5808562a7..945c9b9e1 100644
---- a/crates/ide/src/references.rs
-+++ b/crates/ide/src/references.rs
-@@ -79,7 +79,8 @@ pub(crate) fn find_all_refs(
-                 });
-                 usages.references.retain(|_, it| !it.is_empty());
-             }
--            Definition::ModuleDef(hir::ModuleDef::Adt(_) | hir::ModuleDef::Variant(_)) => {
-+            Definition::ModuleDef(hir::ModuleDef::Adt(_))
-+            | Definition::ModuleDef(hir::ModuleDef::Variant(_)) => {
-                 refs.for_each(|it| {
-                     it.retain(|reference| {
-                         reference.name.as_name_ref().map_or(false, is_lit_name_ref)
-diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs
-index d44a1b45f..e186b82b7 100644
---- a/crates/ide/src/syntax_highlighting.rs
-+++ b/crates/ide/src/syntax_highlighting.rs
-@@ -294,7 +294,7 @@ fn traverse(
-                 Some(parent) => {
-                     // We only care Name and Name_ref
-                     match (token.kind(), parent.kind()) {
--                        (IDENT, NAME | NAME_REF) => parent.into(),
-+                        (IDENT, NAME) | (IDENT, NAME_REF) => parent.into(),
-                         _ => token.into(),
-                     }
-                 }
-@@ -310,7 +310,7 @@ fn traverse(
-                 Some(parent) => {
-                     // We only care Name and Name_ref
-                     match (token.kind(), parent.kind()) {
--                        (IDENT, NAME | NAME_REF) => parent.into(),
-+                        (IDENT, NAME) | (IDENT, NAME_REF) => parent.into(),
-                         _ => token.into(),
-                     }
-                 }
-diff --git a/crates/ide_assists/src/handlers/extract_function.rs b/crates/ide_assists/src/handlers/extract_function.rs
-index ac7f0959b..9b78cf4b1 100644
---- a/crates/ide_assists/src/handlers/extract_function.rs
-+++ b/crates/ide_assists/src/handlers/extract_function.rs
-@@ -1384,7 +1384,7 @@ fn fix_param_usages(ctx: &AssistContext, params: &[Param], syntax: &SyntaxNode)
-     for (param, usages) in usages_for_param {
-         for usage in usages {
-             match usage.syntax().ancestors().skip(1).find_map(ast::Expr::cast) {
--                Some(ast::Expr::MethodCallExpr(_) | ast::Expr::FieldExpr(_)) => {
-+                Some(ast::Expr::MethodCallExpr(_)) | Some(ast::Expr::FieldExpr(_)) => {
-                     // do nothing
-                 }
-                 Some(ast::Expr::RefExpr(node))
-diff --git a/crates/ide_assists/src/tests.rs b/crates/ide_assists/src/tests.rs
-index 841537c77..d9d9124b6 100644
---- a/crates/ide_assists/src/tests.rs
-+++ b/crates/ide_assists/src/tests.rs
-@@ -181,10 +181,9 @@ fn check(handler: Handler, before: &str, expected: ExpectedResult, assist_label:
-             "unresolved assist should not contain source changes"
-         ),
-         (Some(_), ExpectedResult::NotApplicable) => panic!("assist should not be applicable!"),
--        (
--            None,
--            ExpectedResult::After(_) | ExpectedResult::Target(_) | ExpectedResult::Unresolved,
--        ) => {
-+        (None, ExpectedResult::After(_))
-+        | (None, ExpectedResult::Target(_))
-+        | (None, ExpectedResult::Unresolved) => {
-             panic!("code action is not applicable")
-         }
-         (None, ExpectedResult::NotApplicable) => (),
-diff --git a/crates/ide_completion/src/completions/qualified_path.rs b/crates/ide_completion/src/completions/qualified_path.rs
-index f5dbd203b..88f4d940d 100644
---- a/crates/ide_completion/src/completions/qualified_path.rs
-+++ b/crates/ide_completion/src/completions/qualified_path.rs
-@@ -65,11 +65,9 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
-                     // Don't suggest attribute macros and derives.
-                     hir::ScopeDef::MacroDef(mac) => mac.is_fn_like(),
-                     // no values in type places
--                    hir::ScopeDef::ModuleDef(
--                        hir::ModuleDef::Function(_)
--                        | hir::ModuleDef::Variant(_)
--                        | hir::ModuleDef::Static(_),
--                    )
-+                    hir::ScopeDef::ModuleDef(hir::ModuleDef::Function(_))
-+                    | hir::ScopeDef::ModuleDef(hir::ModuleDef::Variant(_))
-+                    | hir::ScopeDef::ModuleDef(hir::ModuleDef::Static(_))
-                     | hir::ScopeDef::Local(_) => !ctx.expects_type(),
-                     // unless its a constant in a generic arg list position
-                     hir::ScopeDef::ModuleDef(hir::ModuleDef::Const(_)) => {
-@@ -83,13 +81,9 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
-                 }
-             }
-         }
--        hir::PathResolution::Def(
--            def
--            @
--            (hir::ModuleDef::Adt(_)
--            | hir::ModuleDef::TypeAlias(_)
--            | hir::ModuleDef::BuiltinType(_)),
--        ) => {
-+        hir::PathResolution::Def(def @ hir::ModuleDef::Adt(_))
-+        | hir::PathResolution::Def(def @ hir::ModuleDef::TypeAlias(_))
-+        | hir::PathResolution::Def(def @ hir::ModuleDef::BuiltinType(_)) => {
-             if let hir::ModuleDef::Adt(hir::Adt::Enum(e)) = def {
-                 add_enum_variants(acc, ctx, e);
-             }
-diff --git a/crates/ide_completion/src/completions/unqualified_path.rs b/crates/ide_completion/src/completions/unqualified_path.rs
-index 81c4fb305..8ea5a2d5b 100644
---- a/crates/ide_completion/src/completions/unqualified_path.rs
-+++ b/crates/ide_completion/src/completions/unqualified_path.rs
-@@ -74,11 +74,9 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC
-             // Don't suggest attribute macros and derives.
-             ScopeDef::MacroDef(mac) => mac.is_fn_like(),
-             // no values in type places
--            ScopeDef::ModuleDef(
--                hir::ModuleDef::Function(_)
--                | hir::ModuleDef::Variant(_)
--                | hir::ModuleDef::Static(_),
--            )
-+            ScopeDef::ModuleDef(hir::ModuleDef::Function(_))
-+            | ScopeDef::ModuleDef(hir::ModuleDef::Variant(_))
-+            | ScopeDef::ModuleDef(hir::ModuleDef::Static(_))
-             | ScopeDef::Local(_) => !ctx.expects_type(),
-             // unless its a constant in a generic arg list position
-             ScopeDef::ModuleDef(hir::ModuleDef::Const(_))
-diff --git a/crates/ide_completion/src/context.rs b/crates/ide_completion/src/context.rs
-index 7b76600df..09eb953fd 100644
---- a/crates/ide_completion/src/context.rs
-+++ b/crates/ide_completion/src/context.rs
-@@ -242,23 +242,24 @@ impl<'a> CompletionContext<'a> {
-     }
- 
-     pub(crate) fn expects_assoc_item(&self) -> bool {
--        matches!(self.completion_location, Some(ImmediateLocation::Trait | ImmediateLocation::Impl))
-+        matches!(
-+            self.completion_location,
-+            Some(ImmediateLocation::Trait) | Some(ImmediateLocation::Impl)
-+        )
-     }
- 
-     pub(crate) fn has_dot_receiver(&self) -> bool {
-         matches!(
-             &self.completion_location,
--            Some(ImmediateLocation::FieldAccess { receiver, .. } | ImmediateLocation::MethodCall { receiver,.. })
-+            Some(ImmediateLocation::FieldAccess { receiver, .. }) | Some(ImmediateLocation::MethodCall { receiver,.. })
-                 if receiver.is_some()
-         )
-     }
- 
-     pub(crate) fn dot_receiver(&self) -> Option<&ast::Expr> {
-         match &self.completion_location {
--            Some(
--                ImmediateLocation::MethodCall { receiver, .. }
--                | ImmediateLocation::FieldAccess { receiver, .. },
--            ) => receiver.as_ref(),
-+            Some(ImmediateLocation::MethodCall { receiver, .. })
-+            | Some(ImmediateLocation::FieldAccess { receiver, .. }) => receiver.as_ref(),
-             _ => None,
-         }
-     }
-@@ -282,7 +283,7 @@ impl<'a> CompletionContext<'a> {
-     pub(crate) fn expects_ident_pat_or_ref_expr(&self) -> bool {
-         matches!(
-             self.completion_location,
--            Some(ImmediateLocation::IdentPat | ImmediateLocation::RefExpr)
-+            Some(ImmediateLocation::IdentPat) | Some(ImmediateLocation::RefExpr)
-         )
-     }
- 
-@@ -293,14 +294,14 @@ impl<'a> CompletionContext<'a> {
-     pub(crate) fn in_use_tree(&self) -> bool {
-         matches!(
-             self.completion_location,
--            Some(ImmediateLocation::Use | ImmediateLocation::UseTree)
-+            Some(ImmediateLocation::Use) | Some(ImmediateLocation::UseTree)
-         )
-     }
- 
-     pub(crate) fn has_impl_or_trait_prev_sibling(&self) -> bool {
-         matches!(
-             self.prev_sibling,
--            Some(ImmediatePrevSibling::ImplDefType | ImmediatePrevSibling::TraitDefName)
-+            Some(ImmediatePrevSibling::ImplDefType) | Some(ImmediatePrevSibling::TraitDefName)
-         )
-     }
- 
-@@ -321,16 +322,14 @@ impl<'a> CompletionContext<'a> {
-             || self.previous_token_is(T![unsafe])
-             || matches!(
-                 self.prev_sibling,
--                Some(ImmediatePrevSibling::Attribute | ImmediatePrevSibling::Visibility)
-+                Some(ImmediatePrevSibling::Attribute) | Some(ImmediatePrevSibling::Visibility)
-             )
-             || matches!(
-                 self.completion_location,
--                Some(
--                    ImmediateLocation::Attribute(_)
--                        | ImmediateLocation::ModDeclaration(_)
--                        | ImmediateLocation::RecordPat(_)
--                        | ImmediateLocation::RecordExpr(_)
--                )
-+                Some(ImmediateLocation::Attribute(_))
-+                    | Some(ImmediateLocation::ModDeclaration(_))
-+                    | Some(ImmediateLocation::RecordPat(_))
-+                    | Some(ImmediateLocation::RecordExpr(_))
-             )
-     }
- 
-@@ -704,8 +703,8 @@ fn path_or_use_tree_qualifier(path: &ast::Path) -> Option<(ast::Path, bool)> {
- 
- fn has_ref(token: &SyntaxToken) -> bool {
-     let mut token = token.clone();
--    for skip in [WHITESPACE, IDENT, T![mut]] {
--        if token.kind() == skip {
-+    for skip in &[WHITESPACE, IDENT, T![mut]] {
-+        if token.kind() == *skip {
-             token = match token.prev_token() {
-                 Some(it) => it,
-                 None => return false,
-diff --git a/crates/ide_completion/src/render/builder_ext.rs b/crates/ide_completion/src/render/builder_ext.rs
-index 33d3a5ee1..749dfc665 100644
---- a/crates/ide_completion/src/render/builder_ext.rs
-+++ b/crates/ide_completion/src/render/builder_ext.rs
-@@ -32,7 +32,7 @@ impl Builder {
-             cov_mark::hit!(no_parens_in_use_item);
-             return false;
-         }
--        if matches!(ctx.path_call_kind(), Some(CallKind::Expr | CallKind::Pat))
-+        if matches!(ctx.path_call_kind(), Some(CallKind::Expr) | Some(CallKind::Pat))
-             | matches!(
-                 ctx.completion_location,
-                 Some(ImmediateLocation::MethodCall { has_parens: true, .. })
-diff --git a/crates/mbe/src/expander/matcher.rs b/crates/mbe/src/expander/matcher.rs
-index b4f2fe9a4..c2a9a38c9 100644
---- a/crates/mbe/src/expander/matcher.rs
-+++ b/crates/mbe/src/expander/matcher.rs
-@@ -804,17 +804,33 @@ impl<'a> TtIter<'a> {
-         };
- 
-         match (punct.char, second, third) {
--            ('.', '.', Some('.' | '=')) | ('<', '<', Some('=')) | ('>', '>', Some('=')) => {
-+            ('.', '.', Some('.'))
-+            | ('.', '.', Some('='))
-+            | ('<', '<', Some('='))
-+            | ('>', '>', Some('=')) => {
-                 let tt2 = self.next().unwrap().clone();
-                 let tt3 = self.next().unwrap().clone();
-                 Ok(tt::Subtree { delimiter: None, token_trees: vec![tt, tt2, tt3] }.into())
-             }
--            ('-' | '!' | '*' | '/' | '&' | '%' | '^' | '+' | '<' | '=' | '>' | '|', '=', _)
--            | ('-' | '=' | '>', '>', _)
-+            ('-', '=', _)
-+            | ('-', '>', _)
-             | (':', ':', _)
-+            | ('!', '=', _)
-             | ('.', '.', _)
-+            | ('*', '=', _)
-+            | ('/', '=', _)
-             | ('&', '&', _)
-+            | ('&', '=', _)
-+            | ('%', '=', _)
-+            | ('^', '=', _)
-+            | ('+', '=', _)
-             | ('<', '<', _)
-+            | ('<', '=', _)
-+            | ('=', '=', _)
-+            | ('=', '>', _)
-+            | ('>', '=', _)
-+            | ('>', '>', _)
-+            | ('|', '=', _)
-             | ('|', '|', _) => {
-                 let tt2 = self.next().unwrap().clone();
-                 Ok(tt::Subtree { delimiter: None, token_trees: vec![tt, tt2] }.into())
-diff --git a/crates/parser/src/grammar/params.rs b/crates/parser/src/grammar/params.rs
-index 5a78675fb..e0c1d3b3a 100644
---- a/crates/parser/src/grammar/params.rs
-+++ b/crates/parser/src/grammar/params.rs
-@@ -184,7 +184,8 @@ fn opt_self_param(p: &mut Parser, m: Marker) -> Result<(), Marker> {
-         if !matches!(
-             (p.current(), la1, la2, la3),
-             (T![&], T![self], _, _)
--                | (T![&], T![mut] | LIFETIME_IDENT, T![self], _)
-+                | (T![&], LIFETIME_IDENT, T![self], _)
-+                | (T![&], T![mut], T![self], _)
-                 | (T![&], LIFETIME_IDENT, T![mut], T![self])
-         ) {
-             return Err(m);
-diff --git a/crates/vfs/src/vfs_path.rs b/crates/vfs/src/vfs_path.rs
-index ef2d7657a..2b3d7fd84 100644
---- a/crates/vfs/src/vfs_path.rs
-+++ b/crates/vfs/src/vfs_path.rs
-@@ -389,7 +389,7 @@ impl VirtualPath {
- 
-             match (file_stem, extension) {
-                 (None, None) => None,
--                (None | Some(""), Some(_)) => Some((file_name, None)),
-+                (None, Some(_)) | (Some(""), Some(_)) => Some((file_name, None)),
-                 (Some(file_stem), extension) => Some((file_stem, extension)),
-             }
-         }
-diff --git a/xtask/src/install.rs b/xtask/src/install.rs
-index 64ab12b42..7e2dccdfe 100644
---- a/xtask/src/install.rs
-+++ b/xtask/src/install.rs
-@@ -8,7 +8,7 @@ use xshell::{cmd, pushd};
- use crate::flags;
- 
- // Latest stable, feel free to send a PR if this lags behind.
--const REQUIRED_RUST_VERSION: u32 = 53;
-+const REQUIRED_RUST_VERSION: u32 = 52;
- 
- impl flags::Install {
-     pub(crate) fn run(self) -> Result<()> {
diff --git a/nixpkgs/pkgs/development/tools/skopeo/default.nix b/nixpkgs/pkgs/development/tools/skopeo/default.nix
index 2af1d5e2a074..ed704b0639a0 100644
--- a/nixpkgs/pkgs/development/tools/skopeo/default.nix
+++ b/nixpkgs/pkgs/development/tools/skopeo/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "sha256-ZHEujkl+GUk5WjgDWdbJwOIKuOqJnIpGnvD1SsrHuhI=";
+    sha256 = "sha256-ARNsNt5xpXn4ifnnRdmkhJAJq98ri3+oAF+Uov+byI0=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/development/tools/tapview/default.nix b/nixpkgs/pkgs/development/tools/tapview/default.nix
new file mode 100644
index 000000000000..966df4bed65e
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/tapview/default.nix
@@ -0,0 +1,32 @@
+{ asciidoctor
+, fetchFromGitLab
+, lib
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tapview";
+  version = "1.1";
+
+  nativeBuildInputs = [ asciidoctor ];
+
+  src = fetchFromGitLab {
+    owner = "esr";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-inrxICNglZU/tup+YnHaDiVss32K2OXht/7f8lOZI4g=";
+  };
+
+  # Remove unecessary `echo` checks: `/bin/echo` fails, and `echo -n` works as expected.
+  patches = [ ./dont_check_echo.patch ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  meta = with lib; {
+    description = "A minimalist pure consumer for TAP (Test Anything Protocol)";
+    homepage = "https://gitlab.com/esr/tapview";
+    license = licenses.bsd2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pamplemousse ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/tapview/dont_check_echo.patch b/nixpkgs/pkgs/development/tools/tapview/dont_check_echo.patch
new file mode 100644
index 000000000000..3b12adb84c57
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/tapview/dont_check_echo.patch
@@ -0,0 +1,44 @@
+diff --git a/tapview b/tapview
+index ad6a33a66d1..4cf9545d42f 100644
+--- a/tapview
++++ b/tapview
+@@ -13,21 +13,6 @@
+ #
+ # This is version 1.1
+ # A newer version may be available at https://gitlab.com/esr/tapview
+-#
+-# POSIX allows but does not mandate that -n suppresses emission of a
+-# trailing newline in echo. Thus, some shell builtin echos don't do
+-# that.  Cope gracefully.
+-# shellcheck disable=SC2039
+-if [ "$(echo -n "a"; echo "b")" != "ab" ]
+-then
+-    ECHO="echo"
+-elif [ "$(/bin/echo -n "a"; /bin/echo "b")" = "ab" ]
+-then
+-    ECHO="/bin/echo"
+-else
+-    echo "tapview: bailing out, your echo lacks -n support."
+-    exit 3
+-fi
+ 
+ OK="."
+ FAIL="F"
+@@ -37,7 +22,7 @@ TODO_OK="u"
+ 
+ ship_char() {
+     # shellcheck disable=SC2039
+-    "${ECHO}" -n "$1"
++    echo -n "$1"
+ }
+ 
+ ship_line() {
+@@ -155,7 +140,7 @@ do
+     fi
+ done
+ 
+-/bin/echo ""
++echo ""
+ 
+ if [ -z "$expect" ]
+ then
diff --git a/nixpkgs/pkgs/development/tools/unity3d/default.nix b/nixpkgs/pkgs/development/tools/unity3d/default.nix
index 9333864c69b9..5470c45b138a 100644
--- a/nixpkgs/pkgs/development/tools/unity3d/default.nix
+++ b/nixpkgs/pkgs/development/tools/unity3d/default.nix
@@ -30,7 +30,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://beta.unity3d.com/download/6e9a27477296/LinuxEditorInstaller/Unity.tar.xz";
-    sha1 = "083imikkrgha5w9sihjvv1m74naxm5yv";
+    sha256 = "10gppnqacs1qzahj077nkcgbfz2lryd0dxnfcmvyc64xpxnj9nlk";
   };
 
   nosuidLib = ./unity-nosuid.c;
diff --git a/nixpkgs/pkgs/development/tools/vala-language-server/default.nix b/nixpkgs/pkgs/development/tools/vala-language-server/default.nix
index 7a5ab2ae4190..1d211e55ad87 100644
--- a/nixpkgs/pkgs/development/tools/vala-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/vala-language-server/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vala-language-server";
-  version = "0.48.2";
+  version = "0.48.3";
 
   src = fetchFromGitHub {
-    owner = "benwaffle";
+    owner = "Prince781";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vtb2l4su+zuwGbS9F+Sv0tDInQMH4Uw6GjT+s7fHIio=";
+    sha256 = "sha256-MhVwK4RtEAJcwcJe71ganCaXQHa9jzxyknzc9kJi274=";
   };
 
   passthru = {
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Code Intelligence for Vala & Genie";
-    homepage = "https://github.com/benwaffle/vala-language-server";
+    homepage = "https://github.com/Prince781/vala-language-server";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ andreasfelix ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/wp-cli/default.nix b/nixpkgs/pkgs/development/tools/wp-cli/default.nix
index 901435bb631f..8d8b1a004d5e 100644
--- a/nixpkgs/pkgs/development/tools/wp-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/wp-cli/default.nix
@@ -1,10 +1,10 @@
 { stdenv, lib, fetchurl, writeText, php, makeWrapper }:
 let
-  version = "2.4.0";
+  version = "2.5.0";
 
   completion = fetchurl {
     url = "https://raw.githubusercontent.com/wp-cli/wp-cli/v${version}/utils/wp-completion.bash";
-    sha256 = "15d330x6d3fizrm6ckzmdknqg6wjlx5fr87bmkbd5s6a1ihs0g24";
+    sha256 = "sha256-RDygYQzK6NLWrOug7EqnkpuH7Wz1T2Zq/tGNZjoYo5U=";
   };
 
   ini = writeText "php.ini" ''
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${pname}-${version}.phar";
-    sha256 = "0h5mjxrw4z3648v4wb4pvapz2a1mlmbszgggg4b7bvrrxn3cr78k";
+    sha256 = "sha256-vghT6fRD84SFZgcIcdNE6K2B6x4V0V3PkyS0p14nJ4k=";
   };
 
   nativeBuildInputs = [ makeWrapper ];