From 1791347c19a1c5277fc7a466fb07cb0fc2850529 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Mon, 24 Mar 2025 16:12:51 -0700 Subject: [PATCH] python3Packages.langchain*: fix bulk update script --- .../python-modules/langchain-core/default.nix | 11 ++--- .../python-modules/langchain-core/update.sh | 46 +++++++++++++++++++ .../langchain-tests/default.nix | 8 +--- .../python-modules/langchain/default.nix | 4 +- 4 files changed, 53 insertions(+), 16 deletions(-) create mode 100755 pkgs/development/python-modules/langchain-core/update.sh diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix index 411e0ed3b329..bf00fa2feba1 100644 --- a/pkgs/development/python-modules/langchain-core/default.nix +++ b/pkgs/development/python-modules/langchain-core/default.nix @@ -28,9 +28,6 @@ pytest-xdist, pytestCheckHook, syrupy, - - # passthru - nix-update-script, }: buildPythonPackage rec { @@ -95,11 +92,9 @@ buildPythonPackage rec { doCheck = true; }); - updateScript = nix-update-script { - extraArgs = [ - "--version-regex" - "^langchain-core==([0-9.]+)$" - ]; + updateScript = { + command = [./update.sh ]; + supportedFeatures = [ "commit"]; }; }; diff --git a/pkgs/development/python-modules/langchain-core/update.sh b/pkgs/development/python-modules/langchain-core/update.sh new file mode 100755 index 000000000000..5568df95e43b --- /dev/null +++ b/pkgs/development/python-modules/langchain-core/update.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p common-updater-scripts jq + +set -euo pipefail + +declare -ar packages=( + langchain + langchain-azure-dynamic-sessions + langchain-chroma + langchain-community + langchain-core + langchain-groq + langchain-huggingface + langchain-mongodb + langchain-ollama + langchain-openai + langchain-tests + langchain-text-splitters +) + +tags=$(git ls-remote --tags --refs "https://github.com/langchain-ai/langchain" | cut --delimiter=/ --field=3-) + +# Will be printed as JSON at the end to list what needs updating +updates="" + +for package in ${packages[@]} +do + pyPackage="python3Packages.$package" + oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion $pyPackage" | tr -d '"')" + newVersion=$(echo "$tags" | grep -Po "(?<=$package==)\d+\.\d+\.\d+$" | sort --version-sort --reverse | head -1 ) + if [[ "$newVersion" != "$oldVersion" ]]; then + update-source-version $pyPackage "$newVersion" + updates+="{ + \"attrPath\": \"$pyPackage\", + \"oldVersion\": \"$oldVersion\", + \"newVersion\": \"$newVersion\", + \"files\": [ + \"$PWD/pkgs/development/python-modules/${package}/default.nix\" + ] +}," + fi +done +# Remove trailing comma +updates=${updates%,} +# Print the updates in JSON format +echo "[ $updates ]" diff --git a/pkgs/development/python-modules/langchain-tests/default.nix b/pkgs/development/python-modules/langchain-tests/default.nix index b4f9ee35cca7..d10262e35bd1 100644 --- a/pkgs/development/python-modules/langchain-tests/default.nix +++ b/pkgs/development/python-modules/langchain-tests/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - nix-update-script, # build-system pdm-backend, @@ -62,11 +61,8 @@ buildPythonPackage rec { pytestCheckHook ]; - passthru.updateScript = nix-update-script { - extraArgs = [ - "--version-regex" - "^langchain-tests==([0-9.]+)$" - ]; + passthru = { + inherit (langchain-core) updateScript; }; meta = { diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix index d9a8c52f5e07..92a4c7d67001 100644 --- a/pkgs/development/python-modules/langchain/default.nix +++ b/pkgs/development/python-modules/langchain/default.nix @@ -41,14 +41,14 @@ buildPythonPackage rec { pname = "langchain"; - version = "0.3.20"; + version = "0.3.21"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain==${version}"; - hash = "sha256-N209wUGdlHkOZynhSSE+ZHylL7cK+8H3PfZIG/wvMd0="; + hash = "sha256-Up/pH2TxLPiPO49oIa2ZlNeH3TyN9sZSlNsqOIRmlxc="; }; sourceRoot = "${src.name}/libs/langchain";