summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-01-02 12:02:01 +0000
committerGitHub <noreply@github.com>2023-01-02 12:02:01 +0000
commitccef3ab7d8762c6e5c75688dfd2d0850d9469a33 (patch)
tree249a64e917388cc956ae133390f81fc6b376d3e4
parent051d49badb03c9c6587a6e50f4fccb4d897c137f (diff)
parentf7f34e15c19aab2365c3830f5abddab72e3f7f26 (diff)
downloadnixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.tar
nixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.tar.gz
nixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.tar.bz2
nixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.tar.lz
nixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.tar.xz
nixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.tar.zst
nixpkgs-ccef3ab7d8762c6e5c75688dfd2d0850d9469a33.zip
Merge staging-next into staging
-rw-r--r--.github/workflows/update-terraform-providers.yml6
-rw-r--r--nixos/modules/services/misc/gitea.nix7
-rw-r--r--pkgs/applications/audio/qpwgraph/default.nix4
-rw-r--r--pkgs/applications/editors/lite-xl/default.nix4
-rwxr-xr-xpkgs/applications/networking/cluster/terraform-providers/update-provider2
-rw-r--r--pkgs/applications/science/electronics/dataexplorer/default.nix5
-rw-r--r--pkgs/applications/version-management/gitea/default.nix6
-rw-r--r--pkgs/data/icons/whitesur-icon-theme/default.nix2
-rw-r--r--pkgs/development/interpreters/evcxr/default.nix6
-rw-r--r--pkgs/development/libraries/tinygltf/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/domainslib/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/dscheck/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/lockfree/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/oseq/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/parany/default.nix24
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix6
-rw-r--r--pkgs/development/python-modules/cirq-google/default.nix2
-rw-r--r--pkgs/development/python-modules/google-api-core/default.nix26
-rw-r--r--pkgs/development/python-modules/google-auth-httplib2/default.nix9
-rw-r--r--pkgs/development/python-modules/google-auth/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-access-context-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-appengine-logging/default.nix9
-rw-r--r--pkgs/development/python-modules/google-cloud-asset/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-audit-log/default.nix18
-rw-r--r--pkgs/development/python-modules/google-cloud-automl/default.nix24
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix19
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix9
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix28
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix52
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-compute/default.nix9
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix17
-rw-r--r--pkgs/development/python-modules/google-cloud-core/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-datacatalog/default.nix17
-rw-r--r--pkgs/development/python-modules/google-cloud-dataproc/default.nix7
-rw-r--r--pkgs/development/python-modules/google-cloud-datastore/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix21
-rw-r--r--pkgs/development/python-modules/google-cloud-dns/default.nix23
-rw-r--r--pkgs/development/python-modules/google-cloud-error-reporting/default.nix17
-rw-r--r--pkgs/development/python-modules/google-cloud-firestore/default.nix21
-rw-r--r--pkgs/development/python-modules/google-cloud-iam-logging/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-iam/default.nix23
-rw-r--r--pkgs/development/python-modules/google-cloud-iot/default.nix19
-rw-r--r--pkgs/development/python-modules/google-cloud-kms/default.nix32
-rw-r--r--pkgs/development/python-modules/google-cloud-language/default.nix15
-rw-r--r--pkgs/development/python-modules/google-cloud-logging/default.nix24
-rw-r--r--pkgs/development/python-modules/google-cloud-monitoring/default.nix18
-rw-r--r--pkgs/development/python-modules/google-cloud-org-policy/default.nix40
-rw-r--r--pkgs/development/python-modules/google-cloud-os-config/default.nix15
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix21
-rw-r--r--pkgs/development/python-modules/google-cloud-redis/default.nix15
-rw-r--r--pkgs/development/python-modules/google-cloud-resource-manager/default.nix17
-rw-r--r--pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix17
-rw-r--r--pkgs/development/python-modules/google-cloud-securitycenter/default.nix17
-rw-r--r--pkgs/development/python-modules/google-cloud-spanner/default.nix21
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-storage/default.nix26
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-testutils/default.nix23
-rw-r--r--pkgs/development/python-modules/google-cloud-texttospeech/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-trace/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-translate/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-videointelligence/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-vision/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix15
-rw-r--r--pkgs/development/python-modules/google-resumable-media/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-relaxed/default.nix47
-rw-r--r--pkgs/development/tools/comby/default.nix4
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/networking/cadaver/configure.patch20
-rw-r--r--pkgs/tools/networking/cadaver/default.nix44
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock12
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix18
-rw-r--r--pkgs/tools/typesetting/sile/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix7
-rw-r--r--pkgs/top-level/ocaml-packages.nix8
-rw-r--r--pkgs/top-level/release-cross.nix15
80 files changed, 915 insertions, 400 deletions
diff --git a/.github/workflows/update-terraform-providers.yml b/.github/workflows/update-terraform-providers.yml
index 3a6e0ad63e5..079147f7d72 100644
--- a/.github/workflows/update-terraform-providers.yml
+++ b/.github/workflows/update-terraform-providers.yml
@@ -11,8 +11,8 @@ permissions:
 jobs:
   tf-providers:
     permissions:
-      contents: write  # for peter-evans/create-pull-request to create branch
-      pull-requests: write  # for peter-evans/create-pull-request to create a PR, for peter-evans/create-or-update-comment to create or update comment
+      contents: write # for peter-evans/create-pull-request to create branch
+      pull-requests: write # for peter-evans/create-pull-request to create a PR, for peter-evans/create-or-update-comment to create or update comment
     if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master
     runs-on: ubuntu-latest
     steps:
@@ -25,6 +25,8 @@ jobs:
         run: |
           echo "title=terraform-providers: update $(date -u +"%Y-%m-%d")" >> $GITHUB_OUTPUT
       - name: update terraform-providers
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: |
           git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
           git config user.name "github-actions[bot]"
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index ceb4c117285..00e90f5b32b 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -395,7 +395,7 @@ in
           ROOT_URL = cfg.rootUrl;
         }
         (mkIf cfg.enableUnixSocket {
-          PROTOCOL = "unix";
+          PROTOCOL = "http+unix";
           HTTP_ADDR = "/run/gitea/gitea.sock";
         })
         (mkIf (!cfg.enableUnixSocket) {
@@ -404,7 +404,6 @@ in
         })
         (mkIf cfg.lfs.enable {
           LFS_START_SERVER = true;
-          LFS_CONTENT_PATH = cfg.lfs.contentDir;
         })
 
       ];
@@ -426,6 +425,10 @@ in
       oauth2 = {
         JWT_SECRET = "#oauth2jwtsecret#";
       };
+
+      lfs = mkIf (cfg.lfs.enable) {
+        PATH = cfg.lfs.contentDir;
+      };
     };
 
     services.postgresql = optionalAttrs (usePostgresql && cfg.database.createDatabase) {
diff --git a/pkgs/applications/audio/qpwgraph/default.nix b/pkgs/applications/audio/qpwgraph/default.nix
index e9b6e76368e..3e0206a654b 100644
--- a/pkgs/applications/audio/qpwgraph/default.nix
+++ b/pkgs/applications/audio/qpwgraph/default.nix
@@ -5,14 +5,14 @@
 
 mkDerivation rec {
   pname = "qpwgraph";
-  version = "0.3.6";
+  version = "0.3.9";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "rncbc";
     repo = "qpwgraph";
     rev = "v${version}";
-    sha256 = "sha256-uN3SAmpurINV+7vw51fWdwnuW2yBxnedY6BXdwn/S2s=";
+    sha256 = "sha256-KGZ67FF3WlKwUzVV3qz1DR/7i1mXsfXVVyuNoIR9uP0=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/editors/lite-xl/default.nix b/pkgs/applications/editors/lite-xl/default.nix
index 11dd3875237..577ea527804 100644
--- a/pkgs/applications/editors/lite-xl/default.nix
+++ b/pkgs/applications/editors/lite-xl/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lite-xl";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "lite-xl";
     repo = "lite-xl";
     rev = "v${version}";
-    sha256 = "sha256-9nQFdii6SY14Cul7Ki0DUEsu75HWTCeEZtXaU6KGRiM=";
+    sha256 = "sha256-tZ9bCazs4ygNl5RKFNUtxboaMcG8a7mIz2FuiExX1d4=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/applications/networking/cluster/terraform-providers/update-provider b/pkgs/applications/networking/cluster/terraform-providers/update-provider
index 5630cbe9ed5..aaa8a44d60c 100755
--- a/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -137,7 +137,7 @@ repo="$(echo "${provider_source_url}" | cut -d '/' -f 5)"
 update_attr repo "${repo}"
 
 if [[ ${spdx} == 1 ]]; then
-  spdx="$(curl -L -s "https://api.github.com/repos/${org}/${repo}/license" | jq -r '.license.spdx_id')"
+  spdx="$(curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} "https://api.github.com/repos/${org}/${repo}/license" | jq -r '.license.spdx_id')"
   update_attr spdx "${spdx}"
 fi
 
diff --git a/pkgs/applications/science/electronics/dataexplorer/default.nix b/pkgs/applications/science/electronics/dataexplorer/default.nix
index 9d06f614870..5df312cd153 100644
--- a/pkgs/applications/science/electronics/dataexplorer/default.nix
+++ b/pkgs/applications/science/electronics/dataexplorer/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchurl
 , jdk
-, jre
 , ant
 , makeWrapper
 }:
@@ -37,11 +36,11 @@ stdenv.mkDerivation rec {
     # but it hardcodes bash shebang and does not pin the java path.
     # So we create our own wrapper, using similar cmdline args as upstream.
     mkdir -p $out/bin
-    makeWrapper ${jre}/bin/java $out/bin/DataExplorer \
+    makeWrapper ${jdk}/bin/java $out/bin/DataExplorer \
       --add-flags "-Xms64m -Xmx3092m -jar $out/share/DataExplorer/DataExplorer.jar" \
       --set SWT_GTK3 0
 
-    makeWrapper ${jre}/bin/java $out/bin/DevicePropertiesEditor \
+    makeWrapper ${jdk}/bin/java $out/bin/DevicePropertiesEditor \
       --add-flags "-Xms32m -Xmx512m -classpath $out/share/DataExplorer/DataExplorer.jar gde.ui.dialog.edit.DevicePropertiesEditor" \
       --set SWT_GTK3 0 \
       --set LIBOVERLAY_SCROLLBAR 0
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index aa394fb4527..e90213c971a 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoPackage
 , fetchurl
 , makeWrapper
@@ -14,12 +15,12 @@
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.17.4";
+  version = "1.18.0";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://dl.gitea.io/gitea/${version}/gitea-src-${version}.tar.gz";
-    sha256 = "sha256-koZEr89QhxCf2Dd/7SWiS/ZZoRIBfyu0mbxKknjXPK4=";
+    sha256 = "sha256-X0KvIB2JvSoh2MR9FcwKObQzod2GxhKeGqIKU5CKTEM=";
   };
 
   patches = [
@@ -68,5 +69,6 @@ buildGoPackage rec {
     homepage = "https://gitea.io";
     license = licenses.mit;
     maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/data/icons/whitesur-icon-theme/default.nix b/pkgs/data/icons/whitesur-icon-theme/default.nix
index 80f6b5ce24a..d665c9f2b0d 100644
--- a/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -6,6 +6,7 @@
 , jdupes
 , boldPanelIcons ? false
 , blackPanelIcons ? false
+, alternativeIcons ? false
 , themeVariants ? []
 }:
 
@@ -54,6 +55,7 @@ stdenvNoCC.mkDerivation rec {
     ./install.sh --dest $out/share/icons \
       --name WhiteSur \
       --theme ${builtins.toString themeVariants} \
+      ${lib.optionalString alternativeIcons "--alternative"} \
       ${lib.optionalString boldPanelIcons "--bold"} \
       ${lib.optionalString blackPanelIcons "--black"}
 
diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix
index 24c271ee719..eab1f90e5f3 100644
--- a/pkgs/development/interpreters/evcxr/default.nix
+++ b/pkgs/development/interpreters/evcxr/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "sha256-sdvBAmINl/3Hv9gnPVruI5lCuSu1VQ9swY0GNJrsEVk=";
+    sha256 = "sha256-gREAtCh4jerqxhwNslXIXRMLkoj0RlhbIwQXbb8LVws=";
   };
 
-  cargoSha256 = "sha256-wKoseZTAZOeT0LEHTlnO5cMpYx6sinnQkEVXCYXupAY=";
+  cargoSha256 = "sha256-xuxWOVSUJVQvSDA5xhFBjdO/ODLA4fzEnzG9p0DRF2Q=";
 
   RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
 
diff --git a/pkgs/development/libraries/tinygltf/default.nix b/pkgs/development/libraries/tinygltf/default.nix
index 0ea26ffa62a..8d8b6c4c9ed 100644
--- a/pkgs/development/libraries/tinygltf/default.nix
+++ b/pkgs/development/libraries/tinygltf/default.nix
@@ -6,14 +6,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.6.3";
+  version = "2.7.0";
   pname = "tinygltf";
 
   src = fetchFromGitHub {
     owner = "syoyo";
     repo = "tinygltf";
     rev = "v${version}";
-    sha256 = "sha256-IyezvHzgLRyc3z8HdNsQMqDEhP+Ytw0stFNak3C8lTo=";
+    sha256 = "sha256-pIymkC+LzoSPU0jnpBH07ag/04W0c9TmPeDUSYQdgx4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/ocaml-modules/domainslib/default.nix b/pkgs/development/ocaml-modules/domainslib/default.nix
new file mode 100644
index 00000000000..6db57f81c48
--- /dev/null
+++ b/pkgs/development/ocaml-modules/domainslib/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl, buildDunePackage
+, lockfree
+, mirage-clock-unix
+}:
+
+buildDunePackage rec {
+  pname = "domainslib";
+  version = "0.5.0";
+
+  duneVersion = "3";
+  minimalOCamlVersion = "5.0";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-multicore/domainslib/releases/download/v${version}/domainslib-${version}.tbz";
+    hash = "sha256-rty+9DUhTUEcN7BPl8G6Q/G/MJ6z/UAn0RPkG8hACwA=";
+  };
+
+  propagatedBuildInputs = [ lockfree ];
+
+  doCheck = true;
+  checkInputs = [ mirage-clock-unix ];
+
+  meta = {
+    homepage = "https://github.com/ocaml-multicore/domainslib";
+    description = "Nested-parallel programming";
+    license = lib.licenses.isc;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dscheck/default.nix b/pkgs/development/ocaml-modules/dscheck/default.nix
new file mode 100644
index 00000000000..0f74fb5e241
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dscheck/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchurl, buildDunePackage
+, containers
+, oseq
+}:
+
+buildDunePackage rec {
+  pname = "dscheck";
+  version = "0.1.0";
+
+  minimalOCamlVersion = "5.0";
+  duneVersion = "3";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-multicore/dscheck/releases/download/${version}/dscheck-${version}.tbz";
+    hash = "sha256-zoouFZJcUp71yeluVb1xLUIMcFv99OpkcQQCHkPTKcI=";
+  };
+
+  propagatedBuildInputs = [ containers oseq ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Traced atomics";
+    homepage = "https://github.com/ocaml-multicore/dscheck";
+    license = lib.licenses.isc;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lockfree/default.nix b/pkgs/development/ocaml-modules/lockfree/default.nix
new file mode 100644
index 00000000000..c3400d4583e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lockfree/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl, buildDunePackage
+, dscheck
+, qcheck, qcheck-alcotest
+}:
+
+buildDunePackage rec {
+  pname = "lockfree";
+  version = "0.3.0";
+
+  minimalOCamlVersion = "5.0";
+  duneVersion = "3";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-multicore/lockfree/releases/download/${version}/lockfree-${version}.tbz";
+    hash = "sha256-XdJR5ojFsA7bJ4aZ5rh10NjopE0NjfqQ9KitOLMh3Jo=";
+  };
+
+  propagatedBuildInputs = [ dscheck ];
+
+  doCheck = true;
+  checkInputs = [ qcheck qcheck-alcotest ];
+
+  meta = {
+    description = "Lock-free data structures for multicore OCaml";
+    homepage = "https://github.com/ocaml-multicore/lockfree";
+    license = lib.licenses.isc;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/oseq/default.nix b/pkgs/development/ocaml-modules/oseq/default.nix
new file mode 100644
index 00000000000..cbe02de2ef1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/oseq/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, buildDunePackage
+, seq
+, containers, qcheck
+}:
+
+buildDunePackage rec {
+  version = "0.4";
+  pname = "oseq";
+
+  src = fetchFromGitHub {
+    owner = "c-cube";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-FoCBvvPwa/dUCrgDEd0clEKAO7EcpedjaO4v+yUO874=";
+  };
+
+  propagatedBuildInputs = [ seq ];
+
+  duneVersion = "3";
+
+  doCheck = true;
+  checkInputs = [
+    containers
+    qcheck
+  ];
+
+  meta = {
+    homepage = "https://c-cube.github.io/oseq/";
+    description = "Purely functional iterators compatible with standard `seq`";
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/parany/default.nix b/pkgs/development/ocaml-modules/parany/default.nix
index 4f072391deb..f5af1616795 100644
--- a/pkgs/development/ocaml-modules/parany/default.nix
+++ b/pkgs/development/ocaml-modules/parany/default.nix
@@ -1,20 +1,32 @@
-{ lib, buildDunePackage, fetchFromGitHub, ocamlnet, cpu }:
+{ lib, buildDunePackage, fetchFromGitHub, ocaml, cpu, domainslib }:
+
+let params =
+  if lib.versionAtLeast ocaml.version "5.00" then {
+    version = "13.0.1";
+    hash = "sha256-OYa0uLsDyzjmXZgWcYUxLhqco4Kp/icfDamNe3En5JQ=";
+    propagatedBuildInputs = [ domainslib ];
+  } else {
+    version = "12.2.2";
+    hash = "sha256-woZ4XJqqoRr/7mDurXYvTbSUUcLBEylzVYBQp1BAOqc=";
+    propagatedBuildInputs = [ cpu ];
+  }
+; in
 
 buildDunePackage rec {
   pname = "parany";
-  version = "12.1.2";
+  inherit (params) version;
 
-  useDune2 = true;
-  minimumOCamlVersion = "4.03.0";
+  duneVersion = "3";
+  minimalOCamlVersion = "4.08";
 
   src = fetchFromGitHub {
     owner = "UnixJunkie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "yOeJzb2Wr6jA4efI9/fuqDCl/Tza3zxT3YjAiJmhHHg=";
+    inherit (params) hash;
   };
 
-  propagatedBuildInputs = [ ocamlnet cpu ];
+  inherit (params) propagatedBuildInputs;
 
   meta = with lib; {
     inherit (src.meta) homepage;
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index 2ac587ddff3..96a8ab9d8e5 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -12,7 +12,8 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "42";
+  version = "43";
+  format = "setuptools";
 
   disabled = pythonOlder "3.9";
 
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vScAWEjdzXSy1gktz+Tfhx13S6OeXZbwZgoS6D1BBtk=";
+    hash = "sha256-qpFQdNlw6voqccoJwPsnmbU5DtAC6zwtouUeysZ8/0M=";
   };
 
   propagatedBuildInputs = [
@@ -46,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library for communicating with Unifi Controller API";
     homepage = "https://github.com/Kane610/aiounifi";
+    changelog = "https://github.com/Kane610/aiounifi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/pkgs/development/python-modules/cirq-google/default.nix b/pkgs/development/python-modules/cirq-google/default.nix
index ebd420244e4..eeba8feebe7 100644
--- a/pkgs/development/python-modules/cirq-google/default.nix
+++ b/pkgs/development/python-modules/cirq-google/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     cirq-core
     google-api-core
     protobuf
-  ];
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     freezegun
diff --git a/pkgs/development/python-modules/google-api-core/default.nix b/pkgs/development/python-modules/google-api-core/default.nix
index c92eb490df0..9dfc1950fd6 100644
--- a/pkgs/development/python-modules/google-api-core/default.nix
+++ b/pkgs/development/python-modules/google-api-core/default.nix
@@ -4,38 +4,50 @@
 , google-auth
 , googleapis-common-protos
 , grpcio
+, grpcio-gcp
 , grpcio-status
-, protobuf
-, proto-plus
-, requests
 , mock
+, proto-plus
+, protobuf
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, requests
 }:
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "2.10.2";
+  version = "2.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-EMBvdzn+V3gfh1Izdejho6RnS/Y5LNYTGjIiGCuXEyA=";
+    hash = "sha256-S5u11aOAoL76BXOzAmUbipqJJiwXMON79CPOxRGATCI=";
   };
 
   propagatedBuildInputs = [
     googleapis-common-protos
     google-auth
-    grpcio
-    grpcio-status
     protobuf
     proto-plus
     requests
   ];
 
+  passthru.optional-dependencies = {
+    grpc = [
+      grpcio
+      grpcio-status
+    ];
+    grpcgcp = [
+      grpcio-gcp
+    ];
+    grpcio-gcp = [
+      grpcio-gcp
+    ];
+  };
+
   checkInputs = [
     mock
     pytest-asyncio
diff --git a/pkgs/development/python-modules/google-auth-httplib2/default.nix b/pkgs/development/python-modules/google-auth-httplib2/default.nix
index 0109175ab85..ee67860201d 100644
--- a/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -5,17 +5,21 @@
 , google-auth
 , httplib2
 , mock
-, pytestCheckHook
 , pytest-localserver
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-auth-httplib2";
   version = "0.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a07c39fd632becacd3f07718dfd6021bf396978f03ad3ce4321d060015cc30ac";
+    hash = "sha256-oHw5/WMr7KzT8HcY39YCG/OWl48DrTzkMh0GABXMMKw=";
   };
 
   propagatedBuildInputs = [
@@ -33,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Authentication Library: httplib2 transport";
     homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2";
+    changelog = "https://github.com/googleapis/google-auth-library-python-httplib2/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-auth/default.nix b/pkgs/development/python-modules/google-auth/default.nix
index 2a411783fff..65f2bf1516c 100644
--- a/pkgs/development/python-modules/google-auth/default.nix
+++ b/pkgs/development/python-modules/google-auth/default.nix
@@ -11,6 +11,7 @@
 , pyopenssl
 , pyu2f
 , requests
+, pythonOlder
 , aioresponses
 , asynctest
 , flask
@@ -27,11 +28,14 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "2.14.0";
+  version = "2.15.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zySBeFXYdO3i79BxqiISVEX1Vd4Whbc5qXgvz0CMKj0=";
+    sha256 = "sha256-cvEqbPyWjXVNe9qzacXFwWAyEG5S0yxt/YSE5MAabR8=";
   };
 
   propagatedBuildInputs = [
@@ -56,6 +60,9 @@ buildPythonPackage rec {
     reauth = [
       pyu2f
     ];
+    requests = [
+      requests
+    ];
   };
 
   checkInputs = [
@@ -92,7 +99,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Auth Python Library";
     longDescription = ''
-      This library simplifies using Google’s various server-to-server
+      This library simplifies using Google's various server-to-server
       authentication mechanisms to access Google APIs.
     '';
     homepage = "https://github.com/googleapis/google-auth-library-python";
diff --git a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
index 55da4e87470..b105e9cfe16 100644
--- a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , google-api-core
 , pythonOlder
+, protobuf
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     google-api-core
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   # No tests in repo
   doCheck = false;
diff --git a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
index 4dedba76ff4..8b75007f5b1 100644
--- a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
@@ -5,6 +5,7 @@
 , grpc-google-iam-v1
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -12,21 +13,22 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-appengine-logging";
-  version = "1.1.6";
+  version = "1.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-N0d/8lqqLT4IXbg0QpxchtJ4PmBOvXc4yGkvNhvHyJc=";
+    hash = "sha256-pvao522dfnRx6JJe4osRgU+q1LpBvdOTP4W9UVVZNiY=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -42,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Appengine logging client library";
     homepage = "https://github.com/googleapis/python-appengine-logging";
+    changelog = "https://github.com/googleapis/python-appengine-logging/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-asset/default.nix b/pkgs/development/python-modules/google-cloud-asset/default.nix
index 68fe9c08a74..ec5664ae905 100644
--- a/pkgs/development/python-modules/google-cloud-asset/default.nix
+++ b/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -8,6 +8,7 @@
 , google-cloud-os-config
 , google-cloud-testutils
 , libcst
+, protobuf
 , proto-plus
 , pytest-asyncio
 , pytestCheckHook
@@ -35,7 +36,14 @@ buildPythonPackage rec {
     google-cloud-os-config
     libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    libcst = [
+      libcst
+    ];
+  };
 
   checkInputs = [
     google-cloud-testutils
@@ -56,6 +64,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python Client for Google Cloud Asset API";
     homepage = "https://github.com/googleapis/python-asset";
+    changelog = "https://github.com/googleapis/python-asset/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-audit-log/default.nix b/pkgs/development/python-modules/google-cloud-audit-log/default.nix
index e1effd0ac2a..e1276718efc 100644
--- a/pkgs/development/python-modules/google-cloud-audit-log/default.nix
+++ b/pkgs/development/python-modules/google-cloud-audit-log/default.nix
@@ -1,12 +1,21 @@
-{ lib, buildPythonPackage, fetchPypi, googleapis-common-protos, protobuf }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, googleapis-common-protos
+, protobuf
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-audit-log";
   version = "0.2.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qr5VQ2ceT4qcekwOPqmoe6K6K5b5/61vqgIgmQDh8wg=";
+    hash = "sha256-qr5VQ2ceT4qcekwOPqmoe6K6K5b5/61vqgIgmQDh8wg=";
   };
 
   propagatedBuildInputs = [ googleapis-common-protos protobuf ];
@@ -14,11 +23,14 @@ buildPythonPackage rec {
   # tests are a bit wonky to setup and are not very deep either
   doCheck = false;
 
-  pythonImportsCheck = [ "google.cloud.audit" ];
+  pythonImportsCheck = [
+    "google.cloud.audit"
+  ];
 
   meta = with lib; {
     description = "Google Cloud Audit Protos";
     homepage = "https://github.com/googleapis/python-audit-log";
+    changelog = "https://github.com/googleapis/python-audit-log/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-automl/default.nix b/pkgs/development/python-modules/google-cloud-automl/default.nix
index 87ac3fe68f1..c9f5c994aae 100644
--- a/pkgs/development/python-modules/google-cloud-automl/default.nix
+++ b/pkgs/development/python-modules/google-cloud-automl/default.nix
@@ -1,15 +1,16 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
-, libcst
 , google-api-core
 , google-cloud-storage
 , google-cloud-testutils
+, libcst
+, mock
 , pandas
 , proto-plus
+, protobuf
 , pytest-asyncio
-, mock
+, pytestCheckHook
 , pythonOlder
 }:
 
@@ -27,9 +28,21 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     google-api-core
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    libcst = [
+      libcst
+    ];
+    pandas = [
+      pandas
+    ];
+    storage = [
+      google-cloud-storage
+    ];
+  };
 
   checkInputs = [
     google-cloud-storage
@@ -64,6 +77,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud AutoML API client library";
     homepage = "https://github.com/googleapis/python-automl";
+    changelog = "https://github.com/googleapis/python-automl/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index ebb6d95eb1f..3643cf69b76 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -3,37 +3,39 @@
 , fetchPypi
 , google-api-core
 , libcst
+, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
-, pytz
-, mock
+, pytestCheckHook
 , pythonOlder
+, pytz
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.7.3";
+  version = "3.8.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oPgbgaq5RQM4C2qmf36i+qXDQA9sV16abCleNkdGYC0=";
+    hash = "sha256-TR41fn/e4185RW8zkd3SY1E/jNQZuUYJr1n+TwNPHT4=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     libcst
     proto-plus
+    protobuf
     pytz
-  ];
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
@@ -44,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "BigQuery Data Transfer API client library";
     homepage = "https://github.com/googleapis/python-bigquery-datatransfer";
+    changelog = "https://github.com/googleapis/python-bigquery-datatransfer/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
index c46db49774e..926d14d5267 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
@@ -5,6 +5,7 @@
 , grpc-google-iam-v1
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -12,21 +13,22 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-logging";
-  version = "1.0.7";
+  version = "1.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-F8PP/Vs+sOVDEwIUvWnO6C4+rQvVTtWKMPnREwKEQ0I=";
+    hash = "sha256-TGK5ghwhVBN0VBMj84Jjt4gpsXQC+HKAr5yP756PbDM=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -42,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Bigquery logging client library";
     homepage = "https://github.com/googleapis/python-bigquery-logging";
+    changelog = "https://github.com/googleapis/python-bigquery-logging/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
index 766a793082c..9972918a7c2 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -1,24 +1,45 @@
 { lib
 , buildPythonPackage
+, fastavro
 , fetchPypi
 , google-api-core
 , google-auth
 , google-cloud-bigquery
+, pandas
+, protobuf
+, pyarrow
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-storage";
   version = "2.16.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5qyk97b06tuH+FEJBhd1Y1GOFYfIt7FivPjhyede9BY=";
+    hash = "sha256-5qyk97b06tuH+FEJBhd1Y1GOFYfIt7FivPjhyede9BY=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    fastavro = [
+      fastavro
+    ];
+    pandas = [
+      pandas
+    ];
+    pyarrow = [
+      pyarrow
+    ];
+  };
 
   checkInputs = [
     google-auth
@@ -26,7 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # dependency loop with google-cloud-bigquery
+  # Dependency loop with google-cloud-bigquery
   doCheck = false;
 
   preCheck = ''
@@ -42,6 +63,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "BigQuery Storage API API client library";
     homepage = "https://github.com/googleapis/python-bigquery-storage";
+    changelog = "https://github.com/googleapis/python-bigquery-storage/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index 1c71878ed0b..bc80fc531ff 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -1,58 +1,85 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pytestCheckHook
 , db-dtypes
+, fetchPypi
 , freezegun
+, google-api-core
 , google-cloud-bigquery-storage
 , google-cloud-core
 , google-cloud-datacatalog
 , google-cloud-storage
 , google-cloud-testutils
 , google-resumable-media
+, grpcio
 , ipython
 , mock
 , pandas
 , proto-plus
+, protobuf
 , psutil
 , pyarrow
 , pytest-xdist
+, pytestCheckHook
+, python-dateutil
 , pythonOlder
+, requests
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.3.5";
+  version = "3.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+7ZXmcAnVN3K7ZgfSotrAhtpzADUzZw1yh1swnLq2dE=";
+    hash = "sha256-iEaJcU2YojZN3px8Nn6CKMcRYQi7rXpjZd/eORY4mFs=";
   };
 
   propagatedBuildInputs = [
+    grpcio
+    google-api-core
     google-cloud-core
     google-cloud-bigquery-storage
     google-resumable-media
     proto-plus
-    pyarrow
-  ];
+    protobuf
+    requests
+    python-dateutil
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    bqstorage = [
+      google-cloud-bigquery-storage
+      grpcio
+      pyarrow
+    ];
+    pandas = [
+      db-dtypes
+      pandas
+      pyarrow
+    ];
+    tqdm = [
+      tqdm
+    ];
+    ipython = [
+      ipython
+    ];
+  };
 
   checkInputs = [
-    db-dtypes
     freezegun
     google-cloud-testutils
-    ipython
     mock
-    pandas
     psutil
     google-cloud-datacatalog
     google-cloud-storage
     pytestCheckHook
     pytest-xdist
-  ];
+  ] ++ passthru.optional-dependencies.pandas
+  ++ passthru.optional-dependencies.ipython;
 
   # prevent google directory from shadowing google imports
   preCheck = ''
@@ -83,10 +110,12 @@ buildPythonPackage rec {
     "test__initiate_resumable_upload_mtls"
     "test__initiate_resumable_upload_with_retry"
     "test_table_clones"
+    "test_context_with_default_connection"
+    "test_context_with_custom_connection"
   ];
 
   disabledTestPaths = [
-    # requires credentials
+    # Tests require credentials
     "tests/system/test_query.py"
     "tests/system/test_job_retry.py"
     "tests/system/test_pandas.py"
@@ -100,6 +129,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google BigQuery API client library";
     homepage = "https://github.com/googleapis/python-bigquery";
+    changelog = "https://github.com/googleapis/python-bigquery/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index 7e8f98ce51e..ecf9162ce8e 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -3,10 +3,12 @@
 , fetchPypi
 , google-api-core
 , google-cloud-core
+, grpcio
 , grpc-google-iam-v1
 , libcst
 , mock
 , proto-plus
+, protobuf
 , pytestCheckHook
 , pythonOlder
 }:
@@ -27,11 +29,18 @@ buildPythonPackage rec {
     google-api-core
     google-cloud-core
     grpc-google-iam-v1
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    libcst = [
+      libcst
+    ];
+  };
 
   checkInputs = [
+    grpcio
     mock
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/google-cloud-compute/default.nix b/pkgs/development/python-modules/google-cloud-compute/default.nix
index f51cac5d8a5..e1041f2811c 100644
--- a/pkgs/development/python-modules/google-cloud-compute/default.nix
+++ b/pkgs/development/python-modules/google-cloud-compute/default.nix
@@ -12,19 +12,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-compute";
-  version = "1.5.2";
+  version = "1.8.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-D0pIR1vQEt/7aIxMo0uDlxvt+fwS2DxCurU/lxMHAjo=";
+    hash = "sha256-pnhXkYSXph7aIZJoI3tXTNIUkH44S22QDIGXUl9ceFU=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     proto-plus
     protobuf
-  ];
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -48,6 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "API Client library for Google Cloud Compute";
     homepage = "https://github.com/googleapis/python-compute";
+    changelog = "https://github.com/googleapis/python-compute/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ jpetrucciani ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index 260079e5817..eab497f2d7b 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -2,42 +2,42 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, grpc-google-iam-v1
 , libcst
 , mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.13.0";
+  version = "2.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Rq4DuCbXX4DSIr01AFYo0O4+wQv4B5yzrrX9a2ecAFI=";
+    hash = "sha256-r/AmdcXIChEqp3AvO2xU2lsM3pqmn/Tmv8/cQJ+kuCE=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    grpc-google-iam-v1
     libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   disabledTests = [
-    # requires credentials
+    # Test requires credentials
     "test_list_clusters"
   ];
 
@@ -50,6 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Container Engine API client library";
     homepage = "https://github.com/googleapis/python-container";
+    changelog = "https://github.com/googleapis/python-container/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-core/default.nix b/pkgs/development/python-modules/google-cloud-core/default.nix
index bc72ce50103..910528bbcaf 100644
--- a/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -1,34 +1,55 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , google-api-core
+, google-auth
+, grpcio
 , mock
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
   version = "2.3.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uVKe5wR/2NS/SiGC3mGRVCQN8X++YOrTmQeMGuFSr5o=";
+    hash = "sha256-uVKe5wR/2NS/SiGC3mGRVCQN8X++YOrTmQeMGuFSr5o=";
   };
 
-  propagatedBuildInputs = [ google-api-core ];
+  propagatedBuildInputs = [
+    google-auth
+    google-api-core
+  ];
+
+  passthru.optional-dependencies = {
+    grpc = [
+      grpcio
+    ];
+  };
 
-  checkInputs = [ mock pytestCheckHook ];
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.grpc;
 
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  pythonImportsCheck = [ "google.cloud" ];
+  pythonImportsCheck = [
+    "google.cloud"
+  ];
 
   meta = with lib; {
     description = "API Client library for Google Cloud: Core Helpers";
     homepage = "https://github.com/googleapis/python-cloud-core";
+    changelog = "https://github.com/googleapis/python-cloud-core/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
index 297847f6f3a..a21a09458b5 100644
--- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
@@ -1,39 +1,41 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, libcst
 , google-api-core
 , grpc-google-iam-v1
+, libcst
+, mock
 , proto-plus
+, protobuf
 , pytest-asyncio
 , pytestCheckHook
-, mock
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-datacatalog";
-  version = "3.9.3";
+  version = "3.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JgGs4lqOruHohIy6GaUGSHr0vd+lFsI5u4PVZwt7tdo=";
+    hash = "sha256-5j8daEVqDEQKHU/XbZ9U6qp0Aaye0KUzJMyj9fiJtRs=";
   };
 
   propagatedBuildInputs = [
-    libcst
     google-api-core
     grpc-google-iam-v1
+    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
+    mock
     pytest-asyncio
     pytestCheckHook
-    mock
   ];
 
   pythonImportsCheck = [
@@ -43,6 +45,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Data Catalog API API client library";
     homepage = "https://github.com/googleapis/python-datacatalog";
+    changelog = "https://github.com/googleapis/python-datacatalog/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
index 7e75978a351..7d11b2b3c1c 100644
--- a/pkgs/development/python-modules/google-cloud-dataproc/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -5,6 +5,7 @@
 , mock
 , libcst
 , proto-plus
+, protobuf
 , pytestCheckHook
 , pytest-asyncio
 , pythonOlder
@@ -26,7 +27,8 @@ buildPythonPackage rec {
     google-api-core
     libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -35,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires credentials
+    # Test requires credentials
     "test_list_clusters"
   ];
 
@@ -47,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Dataproc API client library";
     homepage = "https://github.com/googleapis/python-dataproc";
+    changelog = "https://github.com/googleapis/python-dataproc/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-datastore/default.nix b/pkgs/development/python-modules/google-cloud-datastore/default.nix
index a950f09050c..72b9d4efb80 100644
--- a/pkgs/development/python-modules/google-cloud-datastore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datastore/default.nix
@@ -3,12 +3,13 @@
 , fetchPypi
 , google-api-core
 , google-cloud-core
+, google-cloud-testutils
 , libcst
-, proto-plus
 , mock
-, pytestCheckHook
+, proto-plus
+, protobuf
 , pytest-asyncio
-, google-cloud-testutils
+, pytestCheckHook
 , pythonOlder
 }:
 
@@ -28,7 +29,8 @@ buildPythonPackage rec {
     google-api-core
     google-cloud-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   passthru.optional-dependencies = {
     libcst = [
@@ -66,6 +68,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Datastore API client library";
     homepage = "https://github.com/googleapis/python-datastore";
+    changelog = "https://github.com/googleapis/python-datastore/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index 331b6d8adb7..dfa8c22c5cb 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -3,33 +3,31 @@
 , fetchPypi
 , google-api-core
 , google-cloud-testutils
-, libcst
+, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
-, pytz
-, mock
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.9.2";
+  version = "3.10.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yoiHO4/dhFDGZJB+WiouyBtbTQWIecwaIvR+qw8MGBU=";
+    hash = "sha256-0/bTCi1BhTrM8VJLuFZ9gZc0uwZqpAhcwoPt25flvkI=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    libcst
     proto-plus
-    pytz
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     google-cloud-testutils
@@ -39,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires credentials
+    # Test requires credentials
     "test_inspect_content"
   ];
 
@@ -51,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud Data Loss Prevention (DLP) API API client library";
     homepage = "https://github.com/googleapis/python-dlp";
+    changelog = "https://github.com/googleapis/python-dlp/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-dns/default.nix b/pkgs/development/python-modules/google-cloud-dns/default.nix
index 00bedca7c4c..f95995aec56 100644
--- a/pkgs/development/python-modules/google-cloud-dns/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dns/default.nix
@@ -3,22 +3,32 @@
 , fetchPypi
 , google-api-core
 , google-cloud-core
-, pytestCheckHook
 , mock
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-dns";
   version = "0.34.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RPpi7pPFHGxXIWBY2S0qkRa3E6SocanRajqDuZ4wwfk=";
+    hash = "sha256-RPpi7pPFHGxXIWBY2S0qkRa3E6SocanRajqDuZ4wwfk=";
   };
 
-  propagatedBuildInputs = [ google-api-core google-cloud-core ];
+  propagatedBuildInputs = [
+    google-api-core
+    google-cloud-core
+  ];
 
-  checkInputs = [ mock pytestCheckHook ];
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   preCheck = ''
     # don#t shadow python imports
@@ -30,11 +40,14 @@ buildPythonPackage rec {
     "test_quota"
   ];
 
-  pythonImportsCheck = [ "google.cloud.dns" ];
+  pythonImportsCheck = [
+    "google.cloud.dns"
+  ];
 
   meta = with lib; {
     description = "Google Cloud DNS API client library";
     homepage = "https://github.com/googleapis/python-dns";
+    changelog = "https://github.com/googleapis/python-dns/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index 5ec7903b9e2..8a7b7eaf6af 100644
--- a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -1,33 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
+, google-api-core
 , google-cloud-logging
 , google-cloud-testutils
-, libcst
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "1.6.3";
+  version = "1.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7QR4NS98MtJ8aMLC+qQeTrK1Rv5kw6XlZhSKbatrZFY=";
+    hash = "sha256-biI1dbn7lpD1KUGkOV5NMLJlYxZTfH+zW6i65fbJWko=";
   };
 
   propagatedBuildInputs = [
+    google-api-core
     google-cloud-logging
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     google-cloud-testutils
@@ -37,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # require credentials
+    # Tests require credentials
     "test_report_error_event"
     "test_report_exception"
   ];
@@ -50,6 +52,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Stackdriver Error Reporting API client library";
     homepage = "https://github.com/googleapis/python-error-reporting";
+    changelog = "https://github.com/googleapis/python-error-reporting/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-firestore/default.nix b/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 5abd123f8f1..dfd31c499bb 100644
--- a/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -1,37 +1,43 @@
 { lib
+, aiounittest
 , buildPythonPackage
 , fetchPypi
-, aiounittest
 , google-api-core
-, google-cloud-testutils
 , google-cloud-core
+, google-cloud-testutils
 , mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.7.2";
+  version = "2.7.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-yGB6dLcRxEuqPYGEbpOI5DInos/1ILWmzeXN+ck/W+g=";
+    hash = "sha256-rH2aIst5XHEq93FXxlfDreROIWnM8pmq2UOOg9T2kjU=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     google-cloud-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     aiounittest
     google-cloud-testutils
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   preCheck = ''
@@ -60,6 +66,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Firestore API client library";
     homepage = "https://github.com/googleapis/python-firestore";
+    changelog = "https://github.com/googleapis/python-firestore/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-iam-logging/default.nix b/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
index 601d213892e..4bf47d5a82b 100644
--- a/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
@@ -5,6 +5,7 @@
 , grpc-google-iam-v1
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -12,21 +13,22 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-iam-logging";
-  version = "1.0.6";
+  version = "1.1.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XiuEki6bNKZ8CzfcBBjnDbAh2yEADZohpP991OTf2DI=";
+    hash = "sha256-q+R8l14wD0PNxP1xKwZcXlbyln3uwoscAsOvletuetg=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -42,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "IAM Service Logging client library";
     homepage = "https://github.com/googleapis/python-iam-logging";
+    changelog = "https://github.com/googleapis/python-iam-logging/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-iam/default.nix b/pkgs/development/python-modules/google-cloud-iam/default.nix
index 21ca4ff099f..b415a5015e6 100644
--- a/pkgs/development/python-modules/google-cloud-iam/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iam/default.nix
@@ -1,28 +1,38 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
-, pythonOlder
 , google-api-core
 , libcst
 , mock
 , proto-plus
 , pytest-asyncio
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-iam";
-  version = "2.9.0";
+  version = "2.10.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/FPuPDJC+AuRNCtKv7pFrpsOlopPFEV/KggDWulRU8A=";
+    hash = "sha256-8q/Am7x5LFN9Uaw37QdUdwL19J1FgxRKjRL0Vrc+1TI=";
   };
 
-  propagatedBuildInputs = [ google-api-core libcst proto-plus ];
+  propagatedBuildInputs = [
+    google-api-core
+    libcst
+    proto-plus
+  ] ++ google-api-core.optional-dependencies.grpc;
 
-  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+  checkInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "google.cloud.iam_credentials"
@@ -32,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "IAM Service Account Credentials API client library";
     homepage = "https://github.com/googleapis/python-iam";
+    changelog = "https://github.com/googleapis/python-iam/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ austinbutler SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-iot/default.nix b/pkgs/development/python-modules/google-cloud-iot/default.nix
index bd902197416..4cbfcbe4242 100644
--- a/pkgs/development/python-modules/google-cloud-iot/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iot/default.nix
@@ -1,39 +1,41 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, grpc-google-iam-v1
 , google-api-core
+, grpc-google-iam-v1
 , libcst
+, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
-, mock
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-iot";
-  version = "2.6.4";
+  version = "2.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-d3RRVqgetOS3sAT6UkV5DB/NZMjeZd5tBtd9ME8Wvs4=";
+    hash = "sha256-vV5emuGcFwUctnPNRW1NSFej599Lc6rFSKAlaaCatZw=";
   };
 
   propagatedBuildInputs = [
-    grpc-google-iam-v1
     google-api-core
+    grpc-google-iam-v1
     libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   disabledTests = [
@@ -49,6 +51,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud IoT API API client library";
     homepage = "https://github.com/googleapis/python-iot";
+    changelog = "https://github.com/googleapis/python-iot/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-kms/default.nix b/pkgs/development/python-modules/google-cloud-kms/default.nix
index 0173f38c184..0f99cf3433c 100644
--- a/pkgs/development/python-modules/google-cloud-kms/default.nix
+++ b/pkgs/development/python-modules/google-cloud-kms/default.nix
@@ -1,30 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
-, grpc-google-iam-v1
 , google-api-core
-, libcst
+, grpc-google-iam-v1
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "2.12.3";
+  version = "2.13.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ooWxYH4B8HY9ybWj0GQqUnfiFXzLCqyXGGZsocV9Od0=";
+    hash = "sha256-0nOQnibi1T0JW9NQaKSrNCnfB5EgsnNYMVCEiUsPRdU=";
   };
 
-  propagatedBuildInputs = [ grpc-google-iam-v1 google-api-core libcst proto-plus ];
+  propagatedBuildInputs = [
+    grpc-google-iam-v1
+    google-api-core
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
-  checkInputs = [ mock pytestCheckHook pytest-asyncio ];
+  checkInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
   # Disable tests that need credentials
-  disabledTests = [ "test_list_global_key_rings" ];
+  disabledTests = [
+    "test_list_global_key_rings"
+  ];
 
   pythonImportsCheck = [
     "google.cloud.kms"
@@ -34,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud Key Management Service (KMS) API API client library";
     homepage = "https://github.com/googleapis/python-kms";
+    changelog = "https://github.com/googleapis/python-kms/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-language/default.nix b/pkgs/development/python-modules/google-cloud-language/default.nix
index 84b2c14ee70..21db9ecf9df 100644
--- a/pkgs/development/python-modules/google-cloud-language/default.nix
+++ b/pkgs/development/python-modules/google-cloud-language/default.nix
@@ -2,34 +2,32 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, libcst
-, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-language";
-  version = "2.6.1";
+  version = "2.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KAZmikDsTmNarRo9fxrTR5EtGfSYm1i4rP1iX8pa6Zo=";
+    hash = "sha256-2BVkbQt6y9WGLjFBCt4pXPtGcmcsF8FxThOUIu7CgR8=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
-    mock
     pytestCheckHook
     pytest-asyncio
   ];
@@ -43,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Natural Language API client library";
     homepage = "https://github.com/googleapis/python-language";
+    changelog = "https://github.com/googleapis/python-language/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-logging/default.nix b/pkgs/development/python-modules/google-cloud-logging/default.nix
index 2fb93c8a73d..7a6e2cfcaf2 100644
--- a/pkgs/development/python-modules/google-cloud-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -1,32 +1,34 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , django
+, fetchPypi
 , flask
 , google-api-core
 , google-cloud-appengine-logging
 , google-cloud-audit-log
 , google-cloud-core
 , google-cloud-testutils
+, grpc-google-iam-v1
 , mock
 , pandas
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 , rich
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "3.3.1";
+  version = "3.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bxFBWi6cx7TeeofMP59XVRX9aDpCP2N5lAkUpWYW1wU=";
+    hash = "sha256-zeD1n625F0aHRiUrr0sR6gD21obvAhORg+r5IfOu5rQ=";
   };
 
   propagatedBuildInputs = [
@@ -34,8 +36,10 @@ buildPythonPackage rec {
     google-cloud-appengine-logging
     google-cloud-audit-log
     google-cloud-core
+    grpc-google-iam-v1
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     django
@@ -56,10 +60,16 @@ buildPythonPackage rec {
   preCheck = ''
     # prevent google directory from shadowing google imports
     rm -r google
-    # requires credentials
-    rm tests/system/test_system.py tests/unit/test__gapic.py
   '';
 
+  disabledTestPaths = [
+    # Tests require credentials
+    "tests/system/test_system.py"
+    "tests/unit/test__gapic.py"
+    # Exclude performance tests
+    "tests/performance/test_performance.py"
+  ];
+
   pythonImportsCheck = [
     "google.cloud.logging"
     "google.cloud.logging_v2"
diff --git a/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
index 935d82a410a..f4e381ace9d 100644
--- a/pkgs/development/python-modules/google-cloud-monitoring/default.nix
+++ b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -3,12 +3,12 @@
 , fetchPypi
 , google-api-core
 , google-cloud-testutils
-, libcst
+, mock
 , proto-plus
 , pandas
 , pytestCheckHook
 , pytest-asyncio
-, mock
+, protobuf
 , pythonOlder
 }:
 
@@ -25,18 +25,23 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    libcst
     google-api-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    pandas = [
+      pandas
+    ];
+  };
 
   checkInputs = [
     google-cloud-testutils
     mock
-    pandas
     pytestCheckHook
     pytest-asyncio
-  ];
+  ] ++ passthru.optional-dependencies.pandas;
 
   disabledTests = [
     # requires credentials
@@ -51,6 +56,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Stackdriver Monitoring API client library";
     homepage = "https://github.com/googleapis/python-monitoring";
+    changelog = "https://github.com/googleapis/python-monitoring/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index 8c3f2f683e7..8f708fc6521 100644
--- a/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -1,26 +1,50 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, google-api-core, mock, proto-plus, protobuf, pytest-asyncio }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, proto-plus
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-org-policy";
-  version = "1.4.1";
+  version = "1.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KYZvlpPqGy0zGDSZF3y6MsFZyb9M+88HGYp4NpPCiSY=";
+    hash = "sha256-fA8O/pdUNgY3dwj17D7aoHUjzaXpMmL3w0TU6A6gqHo=";
   };
 
-  propagatedBuildInputs = [ google-api-core proto-plus ];
+  propagatedBuildInputs = [
+    google-api-core
+    proto-plus
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
-  # prevent google directory from shadowing google imports
+  # Prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
-  checkInputs = [ mock protobuf pytest-asyncio pytestCheckHook ];
-  pythonImportsCheck = [ "google.cloud.orgpolicy" ];
+
+  pythonImportsCheck = [
+    "google.cloud.orgpolicy"
+  ];
 
   meta = with lib; {
-    description = "Protobufs for Google Cloud Organization Policy.";
+    description = "Protobufs for Google Cloud Organization Policy";
     homepage = "https://github.com/googleapis/python-org-policy";
+    changelog = "https://github.com/googleapis/python-org-policy/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ austinbutler SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-os-config/default.nix b/pkgs/development/python-modules/google-cloud-os-config/default.nix
index 18f7dafae7a..d6733d4d931 100644
--- a/pkgs/development/python-modules/google-cloud-os-config/default.nix
+++ b/pkgs/development/python-modules/google-cloud-os-config/default.nix
@@ -2,8 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, libcst
-, mock
+, protobuf
 , proto-plus
 , pytestCheckHook
 , pytest-asyncio
@@ -12,26 +11,25 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-os-config";
-  version = "1.12.4";
+  version = "1.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SmzCo/nh6FbTt+7lw4XAyF5gwDHQCOz8Nbl05/AkDfY=";
+    hash = "sha256-CHAiHhXjrLMz7On7Gm5H4fIY3Sq8R2whsI9+D9xXDIM=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
-    mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
@@ -46,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud OS Config API client library";
     homepage = "https://github.com/googleapis/python-os-config";
+    changelog = "https://github.com/googleapis/python-os-config/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 29ddb250139..83e17cd096b 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -1,15 +1,16 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , google-api-core
 , google-cloud-testutils
 , grpc-google-iam-v1
+, grpcio
 , grpcio-status
 , libcst
-, mock
 , proto-plus
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
@@ -26,16 +27,23 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    grpc-google-iam-v1
     google-api-core
+    grpc-google-iam-v1
+    grpcio
     grpcio-status
     libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    libcst = [
+      libcst
+    ];
+  };
 
   checkInputs = [
     google-cloud-testutils
-    mock
     pytestCheckHook
     pytest-asyncio
   ];
@@ -56,7 +64,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google Cloud Pub/Sub API client library";
-    homepage = "https://pypi.org/project/google-cloud-pubsub";
+    homepage = "https://github.com/googleapis/python-pubsub";
+    changelog = "https://github.com/googleapis/python-pubsub/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-redis/default.nix b/pkgs/development/python-modules/google-cloud-redis/default.nix
index 96b20dcc260..96589bece70 100644
--- a/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -2,34 +2,32 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, libcst
-, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "2.9.3";
+  version = "2.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-81RPV8GaSU0jpYTyjFWxakpbuBz994eA7I/wyTxmg8Y=";
+    hash = "sha256-byppjhrBLentcRwMSbuaf3L7wU+rkP2Z92j2zzEPdY0=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
-    mock
     pytestCheckHook
     pytest-asyncio
   ];
@@ -43,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Memorystore for Redis API client library";
     homepage = "https://github.com/googleapis/python-redis";
+    changelog = "https://github.com/googleapis/python-redis/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
index 7291702a83d..2237a468f00 100644
--- a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -1,25 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
-, google-cloud-core
 , google-api-core
+, google-cloud-core
 , grpc-google-iam-v1
 , proto-plus
-, mock
+, protobuf
+, pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "1.6.3";
+  version = "1.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bPipp05loDhXiWlnx5MHt1gFx1Kt47xBIk5hZ3dLyck=";
+    hash = "sha256-n66Yl3xSGJNxyn2LJVGO8fuXtCKFHLRcCeoWhvxCCok=";
   };
 
   propagatedBuildInputs = [
@@ -27,10 +28,11 @@ buildPythonPackage rec {
     google-cloud-core
     grpc-google-iam-v1
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
-    mock
+    pytest-asyncio
     pytestCheckHook
   ];
 
@@ -47,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Resource Manager API client library";
     homepage = "https://github.com/googleapis/python-resource-manager";
+    changelog = "https://github.com/googleapis/python-resource-manager/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
index 3b435ac5ada..15e80892d9c 100644
--- a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -5,34 +5,49 @@
 , google-cloud-core
 , mock
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
   version = "0.33.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MPmyvm2FSrUzb1y5i4xl5Cqea6sxixLoZ7V1hxNi7hw=";
+    hash = "sha256-MPmyvm2FSrUzb1y5i4xl5Cqea6sxixLoZ7V1hxNi7hw=";
   };
 
-  propagatedBuildInputs = [ google-api-core google-cloud-core ];
+  propagatedBuildInputs = [
+    google-api-core
+    google-cloud-core
+  ];
 
-  checkInputs = [ mock pytestCheckHook ];
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   # Client tests require credentials
-  disabledTests = [ "client_options" ];
+  disabledTests = [
+    "client_options"
+  ];
 
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  pythonImportsCheck = [ "google.cloud.runtimeconfig" ];
+  pythonImportsCheck = [
+    "google.cloud.runtimeconfig"
+  ];
 
   meta = with lib; {
     description = "Google Cloud RuntimeConfig API client library";
-    homepage = "https://pypi.org/project/google-cloud-runtimeconfig";
+    homepage = "https://github.com/googleapis/python-runtimeconfig";
+    changelog = "https://github.com/googleapis/python-runtimeconfig/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index f8a0e4053d8..1c2bc12ae37 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -3,37 +3,35 @@
 , fetchPypi
 , google-api-core
 , grpc-google-iam-v1
-, libcst
-, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.12.6";
+  version = "2.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-equimX9D+MOzWQPvxUw4moAvOYU7qB6B4RkPCTQg7PY=";
+    hash = "sha256-1BBOEdkh0jVBHtSVEnOsXtaCPF/GuXB90FCZeOmue9I=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
-    mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
@@ -45,6 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Secret Manager API API client library";
     homepage = "https://github.com/googleapis/python-secret-manager";
+    changelog = "https://github.com/googleapis/python-secret-manager/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ siriobalmelli SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index bdf3aca4653..504c86e4992 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -1,37 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, grpc-google-iam-v1
 , google-api-core
-, libcst
-, mock
+, grpc-google-iam-v1
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.16.2";
+  version = "1.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DU+0gpnWqmtm5nkLoHbEq5k3pnybsEag+aKEp7+HFmo=";
+    hash = "sha256-wkq0/LEgEQokKzREpOkprKZUK/paP8CgS51anLTy5Dk=";
   };
 
   propagatedBuildInputs = [
     grpc-google-iam-v1
     google-api-core
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
-    mock
     pytestCheckHook
     pytest-asyncio
   ];
@@ -46,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud Security Command Center API API client library";
     homepage = "https://github.com/googleapis/python-securitycenter";
+    changelog = "https://github.com/googleapis/python-securitycenter/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-spanner/default.nix b/pkgs/development/python-modules/google-cloud-spanner/default.nix
index e5e32526a1c..0efc0a07d9f 100644
--- a/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -1,16 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, grpc-google-iam-v1
+, google-api-core
 , google-cloud-core
 , google-cloud-testutils
+, grpc-google-iam-v1
 , libcst
 , mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
-, sqlparse
+, pytestCheckHook
 , pythonOlder
+, sqlparse
 }:
 
 buildPythonPackage rec {
@@ -26,18 +28,25 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
+    google-api-core
     google-cloud-core
     grpc-google-iam-v1
-    libcst
     proto-plus
+    protobuf
     sqlparse
-  ];
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    libcst = [
+      libcst
+    ];
+  };
 
   checkInputs = [
     google-cloud-testutils
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index a0e68cdff34..0bc05828dd1 100644
--- a/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -2,11 +2,11 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, libcst
 , mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 , setuptools
 }:
@@ -24,16 +24,16 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    libcst
     google-api-core
     proto-plus
+    protobuf
     setuptools
-  ];
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   disabledTestPaths = [
@@ -51,6 +51,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Speech API client library";
     homepage = "https://github.com/googleapis/python-speech";
+    changelog = "https://github.com/googleapis/python-speech/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-storage/default.nix b/pkgs/development/python-modules/google-cloud-storage/default.nix
index 84f489a220b..541997fb72f 100644
--- a/pkgs/development/python-modules/google-cloud-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -1,35 +1,44 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , google-auth
-, google-cloud-iam
 , google-cloud-core
+, google-cloud-iam
 , google-cloud-kms
 , google-cloud-testutils
 , google-resumable-media
 , mock
+, protobuf
+, pytestCheckHook
 , pythonOlder
+, requests
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "2.5.0";
+  version = "2.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OC80uR3iIS48LntA7AedJ+4uPbuumbdbG82MYwY84jU=";
+    hash = "sha256-GsLVjS1pPLE0HrxIZZo1J753jZ4tiYlpeidGAlko/xc=";
   };
 
   propagatedBuildInputs = [
     google-auth
     google-cloud-core
     google-resumable-media
+    requests
   ];
 
+  passthru.optional-dependencies = {
+    protobuf = [
+      protobuf
+    ];
+  };
+
   checkInputs = [
     google-cloud-iam
     google-cloud-kms
@@ -38,7 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # disable tests which require credentials and network access
+  # Disable tests which require credentials and network access
   disabledTests = [
     "create"
     "download"
@@ -51,6 +60,7 @@ buildPythonPackage rec {
     "test_list_buckets"
     "test_open"
     "test_anonymous_client_access_to_public_bucket"
+    "test_ctor_w_custom_endpoint_use_auth"
   ];
 
   disabledTestPaths = [
@@ -59,6 +69,7 @@ buildPythonPackage rec {
     "tests/system/test_bucket.py"
     "tests/system/test_fileio.py"
     "tests/system/test_kms_integration.py"
+    "tests/unit/test_transfer_manager.py"
   ];
 
   preCheck = ''
@@ -69,11 +80,14 @@ buildPythonPackage rec {
     rm tests/conformance/test_conformance.py
   '';
 
-  pythonImportsCheck = [ "google.cloud.storage" ];
+  pythonImportsCheck = [
+    "google.cloud.storage"
+  ];
 
   meta = with lib; {
     description = "Google Cloud Storage API client library";
     homepage = "https://github.com/googleapis/python-storage";
+    changelog = "https://github.com/googleapis/python-storage/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index 8bbaa96f51c..4e8a51cedde 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -3,9 +3,9 @@
 , fetchPypi
 , google-api-core
 , grpc-google-iam-v1
-, libcst
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -13,22 +13,22 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.10.4";
+  version = "2.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZQ9PQ75yWEEQNyfqO8EyJ66euqL5na2q1TiIgxz8HXA=";
+    hash = "sha256-TC2uDnD95NUx1LLLLotZK9tJd6JWZa4MjipcE6k07Mo=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires credentials
+    # Test requires credentials
     "test_list_queues"
   ];
 
@@ -51,6 +51,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud Tasks API API client library";
     homepage = "https://github.com/googleapis/python-tasks";
+    changelog = "https://github.com/googleapis/python-tasks/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-testutils/default.nix b/pkgs/development/python-modules/google-cloud-testutils/default.nix
index c2bd3f0a146..10a2826c5da 100644
--- a/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -1,24 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, click, google-auth, packaging, six }:
+{ lib
+, buildPythonPackage
+, click
+, fetchPypi
+, google-auth
+, packaging
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
   version = "1.3.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-bRjvNNmvsBy0sR4C0DoC/n7A9ez6AfXUJrXZiHKkz0g=";
   };
 
-  propagatedBuildInputs = [ click google-auth packaging six ];
+  propagatedBuildInputs = [
+    click
+    google-auth
+    packaging
+  ];
 
   # does not contain tests
   doCheck = false;
 
-  pythonImportsCheck = [ "test_utils" ];
+  pythonImportsCheck = [
+    "test_utils"
+  ];
 
   meta = with lib; {
     description = "System test utilities for google-cloud-python";
     homepage = "https://github.com/googleapis/python-test-utils";
+    changelog  ="https://github.com/googleapis/python-test-utils/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 6920239879f..dc808df9df7 100644
--- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -1,32 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , google-api-core
-, libcst
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.12.3";
+  version = "2.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gnSl/W0mTv6It//+xV5ti0Rd6io1Gh4yxd0arrbEPtQ=";
+    hash = "sha256-jpDwERTLRmS1mO2O2OboZa6AAUh3k/Dyg77TCVTqLok=";
   };
 
   propagatedBuildInputs = [
-    libcst
     google-api-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -49,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Text-to-Speech API client library";
     homepage = "https://github.com/googleapis/python-texttospeech";
+    changelog = "https://github.com/googleapis/python-texttospeech/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-trace/default.nix b/pkgs/development/python-modules/google-cloud-trace/default.nix
index 0bfe7189c86..4cc58aa6706 100644
--- a/pkgs/development/python-modules/google-cloud-trace/default.nix
+++ b/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -2,32 +2,32 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, google-cloud-core
 , google-cloud-testutils
 , mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "1.7.3";
+  version = "1.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HFntFmPn3FPhCrB+nnJlBD9zqG2jDsP2naEl2IxhRqE=";
+    hash = "sha256-dKywvDNcvDOULHREKcHWIBVVBBzrttICX+VgcborJVI=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    google-cloud-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     google-cloud-testutils
@@ -51,6 +51,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud Trace API client library";
     homepage = "https://github.com/googleapis/python-trace";
+    changelog = "https://github.com/googleapis/python-trace/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-translate/default.nix b/pkgs/development/python-modules/google-cloud-translate/default.nix
index 295eb13a240..7041f9bf436 100644
--- a/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -1,35 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , google-api-core
 , google-cloud-core
 , google-cloud-testutils
-, libcst
 , mock
 , proto-plus
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "3.8.4";
+  version = "3.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cptSFyAByZRZ7Dr93skVPeCvUoh0/PMACp3dmOEQfuc=";
+    hash = "sha256-XPfN+IN5gc5KQEXPeaYF5gIlHPxmDoe90RKFqNG6eF8=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     google-cloud-core
-    libcst
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     google-cloud-testutils
@@ -53,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Translation API client library";
     homepage = "https://github.com/googleapis/python-translate";
+    changelog = "https://github.com/googleapis/python-translate/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index 0c0d579f7da..51115b4f006 100644
--- a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -1,31 +1,33 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, mock
 , google-api-core
 , google-cloud-testutils
+, mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "2.8.3";
+  version = "2.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pB7exeGYpFT4nf3YuIhoI+bqG6YYEP6oWs0tohkOIbw=";
+    hash = "sha256-gd0cJX6XHwQguNJ7jFDUVwQg9eNk0ZUL4VH5L+3K+Lw=";
   };
 
   propagatedBuildInputs = [
     google-api-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     google-cloud-testutils
@@ -51,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Video Intelligence API client library";
     homepage = "https://github.com/googleapis/python-videointelligence";
+    changelog = "https://github.com/googleapis/python-videointelligence/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-vision/default.nix b/pkgs/development/python-modules/google-cloud-vision/default.nix
index b29dd1cff41..86a83155f56 100644
--- a/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -2,31 +2,31 @@
 , buildPythonPackage
 , fetchPypi
 , google-api-core
-, libcst
 , mock
 , proto-plus
-, pytestCheckHook
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "3.1.4";
+  version = "3.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1nqU9Sr+tWPK3l5r7UiFD0wA3+UmYcHFT4ta2bdRL+U=";
+    hash = "sha256-SZQxkx57cY+8q4Mg880jT8TlYcfwLz4KEpHiyOb2Ujc=";
   };
 
   propagatedBuildInputs = [
-    libcst
     google-api-core
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Cloud Vision API API client library";
     homepage = "https://github.com/googleapis/python-vision";
+    changelog = "https://github.com/googleapis/python-vision/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index d35944777fb..024a637ce8c 100644
--- a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -1,34 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , google-api-core
-, libcst
 , mock
-, protobuf
 , proto-plus
+, protobuf
 , pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.9.2";
+  version = "1.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fUnoV5I9kMwC9zUdsHit6MbIYFV+3E+GT76vwEmzNNs=";
+    hash = "sha256-93ijizxgVFxXzj8IzxrgzzXTQKl7UH3egvL41HVk5is=";
   };
 
   propagatedBuildInputs = [
     google-api-core
-    libcst
-    protobuf
     proto-plus
-  ];
+    protobuf
+  ] ++ google-api-core.optional-dependencies.grpc;
 
   checkInputs = [
     mock
@@ -44,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Google Cloud Web Security Scanner API client library";
     homepage = "https://github.com/googleapis/python-websecurityscanner";
+    changelog = "https://github.com/googleapis/python-websecurityscanner/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/google-resumable-media/default.nix b/pkgs/development/python-modules/google-resumable-media/default.nix
index 0820ac217f1..b5e4de424b0 100644
--- a/pkgs/development/python-modules/google-resumable-media/default.nix
+++ b/pkgs/development/python-modules/google-resumable-media/default.nix
@@ -1,27 +1,49 @@
 { lib
+, aiohttp
 , buildPythonPackage
 , fetchPypi
 , google-auth
 , google-cloud-testutils
 , google-crc32c
 , mock
-, pytestCheckHook
 , pytest-asyncio
+, pytestCheckHook
+, pythonOlder
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
   version = "2.4.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jVUYUC+SuezISsRneb1PCWlOyzujij58pzeobRXLyh8=";
+    hash = "sha256-jVUYUC+SuezISsRneb1PCWlOyzujij58pzeobRXLyh8=";
   };
 
-  propagatedBuildInputs = [ google-auth google-crc32c requests ];
+  propagatedBuildInputs = [
+    google-auth
+    google-crc32c
+  ];
+
+  passthru.optional-dependencies = {
+    requests = [
+      requests
+    ];
+    aiohttp = [
+      aiohttp
+    ];
+  };
 
-  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+  checkInputs = [
+    google-cloud-testutils
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.requests;
 
   preCheck = ''
     # prevent shadowing imports
@@ -40,6 +62,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Utilities for Google Media Downloads and Resumable Uploads";
     homepage = "https://github.com/GoogleCloudPlatform/google-resumable-media-python";
+    changelog = "https://github.com/googleapis/google-resumable-media-python/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/pytest-relaxed/default.nix b/pkgs/development/python-modules/pytest-relaxed/default.nix
index 13838eb326c..46a95c725d4 100644
--- a/pkgs/development/python-modules/pytest-relaxed/default.nix
+++ b/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -1,44 +1,53 @@
 { lib
 , buildPythonPackage
+, decorator
 , fetchPypi
+, invocations
+, invoke
 , pytest
-, six
-, decorator
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "1.1.5";
   pname = "pytest-relaxed";
+  version = "2.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e39a7e5b14e14dfff0de0ad720dfffa740c128d599ab14cfac13f4deb34164a6";
+    hash = "sha256-Szc8x1Rmb/YPVCWmnLQUZCwqEc56RsjOBmpzjkCSyjk=";
   };
 
-  # newer decorator versions are incompatible and cause the test suite to fail
-  # but only a few utility functions are used from this package which means it has no actual impact on test execution in paramiko and Fabric
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "decorator>=4,<5" "decorator>=4" \
-      --replace "pytest>=3,<5" "pytest>=3"
-  '';
+  buildInputs = [
+    pytest
+  ];
 
-  buildInputs = [ pytest ];
+  propagatedBuildInputs = [
+    decorator
+  ];
 
-  propagatedBuildInputs = [ six decorator ];
+  checkInputs = [
+    invocations
+    invoke
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [
+    "tests"
+  ];
 
-  # lots of assertion errors mainly around decorator
-  doCheck = false;
+  pythonImportsCheck = [
+    "pytest_relaxed"
+  ];
 
   meta = with lib; {
     homepage = "https://pytest-relaxed.readthedocs.io/";
     description = "Relaxed test discovery/organization for pytest";
+    changelog = "https://github.com/bitprophet/pytest-relaxed/blob/${version}/docs/changelog.rst";
     license = licenses.bsd0;
-    maintainers = [ maintainers.costrouc ];
-    # see https://github.com/bitprophet/pytest-relaxed/issues/12
-    broken = true;
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/tools/comby/default.nix b/pkgs/development/tools/comby/default.nix
index d97287ab579..f77acfffa9b 100644
--- a/pkgs/development/tools/comby/default.nix
+++ b/pkgs/development/tools/comby/default.nix
@@ -15,8 +15,8 @@ let
     ocamlPackages.buildDunePackage rec {
       inherit pname preBuild;
       version = "1.8.1";
-      useDune2 = true;
-      minimumOcamlVersion = "4.08.1";
+      duneVersion = "3";
+      minimalOcamlVersion = "4.08.1";
       doCheck = true;
 
       src = fetchFromGitHub {
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 9200dd91749..14e62fa0612 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -5,17 +5,17 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0lEKXCQ7os6hyqEuugNI8ogZiqJZq58VGafEKrcmV3I=";
+    sha256 = "sha256-5yAfF/iRAbCJFXEcdhg7vqiMTpw7NNixFaQU93uSv6I=";
   };
   # hash missmatch on across linux and darwin
   proxyVendor = true;
-  vendorSha256 = "sha256-cl6EShtXhe72fbKIMbma9pEGLPBVSNZMiHWi94BbkMM=";
+  vendorSha256 = "sha256-9oG6xJ0D6SulN6ErC/F5Ycmly4wp+GCF8lftu+xoagE=";
 
   excludedPackages = "misc";
 
diff --git a/pkgs/tools/networking/cadaver/configure.patch b/pkgs/tools/networking/cadaver/configure.patch
deleted file mode 100644
index b618099b371..00000000000
--- a/pkgs/tools/networking/cadaver/configure.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/configure.orig
-+++ b/configure
-@@ -9595,7 +9595,7 @@ fi
- $as_echo "$ne_cv_lib_neon" >&6; }
-     if test "$ne_cv_lib_neon" = "yes"; then
-        ne_cv_lib_neonver=no
--       for v in 27 28 29; do
-+       for v in 27 28 29 30 31; do
-           case $ne_libver in
-           0.$v.*) ne_cv_lib_neonver=yes ;;
-           esac
-@@ -10328,7 +10328,7 @@ fi
- $as_echo "$ne_cv_lib_neon" >&6; }
-     if test "$ne_cv_lib_neon" = "yes"; then
-        ne_cv_lib_neonver=no
--       for v in 27 28 29; do
-+       for v in 27 28 29 30 31; do
-           case $ne_libver in
-           0.$v.*) ne_cv_lib_neonver=yes ;;
-           esac
diff --git a/pkgs/tools/networking/cadaver/default.nix b/pkgs/tools/networking/cadaver/default.nix
index e8c57e529cf..d94c89371b1 100644
--- a/pkgs/tools/networking/cadaver/default.nix
+++ b/pkgs/tools/networking/cadaver/default.nix
@@ -1,35 +1,41 @@
-{ lib, stdenv, fetchurl, fetchpatch, neon, pkg-config, readline, zlib, openssl }:
+{ lib
+, stdenv
+, fetchurl
+, neon
+, pkg-config
+, zlib
+, openssl
+}:
 
 stdenv.mkDerivation rec {
   pname = "cadaver";
-  version = "0.23.3";
+  version = "0.24";
 
   src = fetchurl {
-    url = "http://www.webdav.org/cadaver/cadaver-${version}.tar.gz";
-    sha256 = "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x";
+    url = "https://notroj.github.io/cadaver/cadaver-${version}.tar.gz";
+    hash = "sha256-Rs/y8+vTLNMoNoEspHvMdTU/wr51fwk9qIwN2PEP1fY=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk/disable-sslv2.patch?h=packages/cadaver";
-      name = "disable-sslv2.patch";
-      sha256 = "1qx65hv584wdarks51yhd3y38g54affkphm5wz27xiz4nhmbssrr";
-    })
-    # Cadaver also works with newer versions of neon than stated
-    # in the configure script
-    ./configure.patch
+  configureFlags = [
+    "--with-ssl"
   ];
 
-  configureFlags = [ "--with-ssl" "--with-readline" ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ neon readline zlib openssl ];
+  buildInputs = [
+    neon
+    openssl
+    zlib
+  ];
 
   meta = with lib; {
     description = "A command-line WebDAV client";
-    homepage    = "http://www.webdav.org/cadaver";
+    homepage = "https://notroj.github.io/cadaver/";
+    changelog = "https://github.com/notroj/cadaver/blob/${version}/NEWS";
     maintainers = with maintainers; [ ianwookim ];
-    license     = licenses.gpl2;
-    platforms   = with platforms; linux ++ freebsd ++ openbsd;
+    license = licenses.gpl2Plus;
+    platforms = with platforms; linux ++ freebsd ++ openbsd;
   };
 }
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 44bc53c3758..af741dbed21 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.32"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.33"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 0b6562f2742..d68346b54c3 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 70f696d7322148eba2fca49c5219dcb9a0133c6e
-  ref: refs/tags/6.2.32
+  revision: c2aca5f1d6a798c3c595ef6953172def7bf532d5
+  ref: refs/tags/6.2.33
   specs:
-    metasploit-framework (6.2.32)
+    metasploit-framework (6.2.33)
       actionpack (~> 6.0)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -128,7 +128,7 @@ GEM
     arel-helpers (2.14.0)
       activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.2.0)
-    aws-partitions (1.684.0)
+    aws-partitions (1.686.0)
     aws-sdk-core (3.168.4)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.651.0)
@@ -249,7 +249,7 @@ GEM
     metasploit_payloads-mettle (1.0.20)
     method_source (1.0.0)
     mini_portile2 (2.8.1)
-    minitest (5.16.3)
+    minitest (5.17.0)
     mqtt (0.5.0)
     msgpack (1.6.0)
     multi_json (1.15.0)
@@ -290,7 +290,7 @@ GEM
     puma (6.0.1)
       nio4r (~> 2.0)
     racc (1.6.2)
-    rack (2.2.4)
+    rack (2.2.5)
     rack-protection (3.0.5)
       rack
     rack-test (2.0.2)
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 59954f48939..5241622aa0e 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.2.32";
+  version = "6.2.33";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-uadIhrmrvdxzp4PchPHOy9beODME0hhgNqEqGqxyAZ8=";
+    sha256 = "sha256-b7MBY+rQxDlXBJumtA7Kqm2yXDP8hEVaCfo8ydreWoY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 31123befc2d..1dbe5352f05 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16jpljblpy5drx2fj8nwsw41mmwp7xkadhrigp4rsiny4lb80qg8";
+      sha256 = "07gdradgxbkr5vjnc4gxcm01sahidx6yqc9fr8a8i1z4ivydzhz9";
       type = "gem";
     };
-    version = "1.684.0";
+    version = "1.686.0";
   };
   aws-sdk-core = {
     groups = ["default"];
@@ -604,12 +604,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "70f696d7322148eba2fca49c5219dcb9a0133c6e";
-      sha256 = "17q1fan1lam16rh1ilh46cwdxmnbrvqq9p43lxrxrgdbp634i9xr";
+      rev = "c2aca5f1d6a798c3c595ef6953172def7bf532d5";
+      sha256 = "11jsvvdcjg7s15d4b17w6dfb4vdar87b99lv0ibkki6hx9ih3cvg";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.2.32";
+    version = "6.2.33";
   };
   metasploit-model = {
     groups = ["default"];
@@ -676,10 +676,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0516ypqlx0mlcfn5xh7qppxqc3xndn1fnadxawa8wld5dkcimy30";
+      sha256 = "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0";
       type = "gem";
     };
-    version = "5.16.3";
+    version = "5.17.0";
   };
   mqtt = {
     groups = ["default"];
@@ -947,10 +947,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0axc6w0rs4yj0pksfll1hjgw1k6a5q0xi2lckh91knfb72v348pa";
+      sha256 = "14xjykbmngjhb4p02b7yghf0gqgqjfpi6i028x9g6q6xs782ci3j";
       type = "gem";
     };
-    version = "2.2.4";
+    version = "2.2.5";
   };
   rack-protection = {
     groups = ["default"];
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index a07b46c3a3b..e1a75976cfb 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, gnumake42
 , darwin
 , fetchurl
 , makeWrapper
@@ -44,11 +43,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.14.5";
+  version = "0.14.7";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "01wf0rihksk2ldxgci5vzl3j575vnp6wgk12yd28mwzxkss6n39g";
+    sha256 = "01sx4368bws47989zdahhksgy5jgc1qw4hhvpib4qcz3fs6xpx9j";
   };
 
   configureFlags = [
@@ -60,7 +59,6 @@ stdenv.mkDerivation rec {
     gitMinimal
     pkg-config
     makeWrapper
-    gnumake42
   ];
   buildInputs = [
     luaEnv
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ff3d20d7df9..dbd868b60f2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4815,6 +4815,8 @@ with pkgs;
 
   jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa CoreAudio MediaPlayer;
+    # Disable pipewire to avoid segfault, see https://github.com/jellyfin/jellyfin-media-player/issues/341
+    mpv = wrapMpv (mpv-unwrapped.override { pipewireSupport = false; }) {};
   };
 
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
@@ -36395,7 +36397,10 @@ with pkgs;
 
   csxcad = callPackage ../applications/science/electronics/csxcad { };
 
-  dataexplorer = callPackage ../applications/science/electronics/dataexplorer { };
+  dataexplorer = callPackage ../applications/science/electronics/dataexplorer {
+    # executable fails at startup for jdk > 17
+    jdk = jdk17;
+  };
 
   diylc = callPackage ../applications/science/electronics/diylc { };
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 0f9762d8157..1ac15512d76 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -328,8 +328,12 @@ let
 
     domain-name = callPackage ../development/ocaml-modules/domain-name { };
 
+    domainslib = callPackage ../development/ocaml-modules/domainslib { };
+
     dose3 = callPackage ../development/ocaml-modules/dose3 { };
 
+    dscheck = callPackage ../development/ocaml-modules/dscheck { };
+
     dssi = callPackage ../development/ocaml-modules/dssi { };
 
     dtoa = callPackage ../development/ocaml-modules/dtoa { };
@@ -737,6 +741,8 @@ let
 
     lo = callPackage ../development/ocaml-modules/lo { };
 
+    lockfree = callPackage ../development/ocaml-modules/lockfree { };
+
     logs = callPackage ../development/ocaml-modules/logs { };
 
     lru = callPackage ../development/ocaml-modules/lru { };
@@ -1116,6 +1122,8 @@ let
 
     ordering = callPackage ../development/ocaml-modules/ordering { };
 
+    oseq = callPackage ../development/ocaml-modules/oseq { };
+
     otfm = callPackage ../development/ocaml-modules/otfm { };
 
     otoml = callPackage ../development/ocaml-modules/otoml { };
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index 93e36360bf9..ccca912db79 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -84,6 +84,17 @@ let
     buildPackages.binutils = nativePlatforms;
     mpg123 = nativePlatforms;
   };
+
+  # Enabled-but-unsupported platforms for which nix is known to build.
+  # We provide Hydra-built `nixStatic` for these platforms.  This
+  # allows users to bootstrap their own system without either (a)
+  # trusting binaries from a non-Hydra source or (b) having to fight
+  # with their host distribution's versions of nix's numerous
+  # build dependencies.
+  nixCrossStatic = {
+    nixStatic = nativePlatforms;
+  };
+
 in
 
 {
@@ -226,4 +237,8 @@ in
     # attribute, so there is no way to detect this -- we must add it
     # as a special case.
     (builtins.removeAttrs tools ["bootstrapTools"]);
+
+  # Cross-built nixStatic for platforms for enabled-but-unsupported platforms
+  mips64el-nixCrossStatic = mapTestOnCross lib.systems.examples.mips64el-linux-gnuabi64 nixCrossStatic;
+  powerpc64le-nixCrossStatic = mapTestOnCross lib.systems.examples.powernv nixCrossStatic;
 }