python3Packages.langchain*: switch to gitUpdater and use ${src.tag} (#415983)

This commit is contained in:
Gaétan Lepage
2025-06-13 18:30:18 +02:00
committed by GitHub
20 changed files with 109 additions and 187 deletions
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -16,6 +15,9 @@
langchain-tests,
pytest-asyncio,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -58,15 +60,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_anthropic" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-anthropic==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-anthropic==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain-anthropic/releases/tag/langchain-anthropic==${version}";
changelog = "https://github.com/langchain-ai/langchain-anthropic/releases/tag/${src.tag}";
description = "Build LangChain applications with Anthropic";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/anthropic";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
poetry-core,
@@ -17,6 +16,9 @@
langchain-tests,
pytest-asyncio,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -68,15 +70,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_aws" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-aws==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-aws==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain-aws/releases/tag/v${version}";
changelog = "https://github.com/langchain-ai/langchain-aws/releases/tag/${src.tag}";
description = "Build LangChain application on AWS";
homepage = "https://github.com/langchain-ai/langchain-aws/";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
poetry-core,
@@ -24,6 +23,9 @@
responses,
syrupy,
toml,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -72,17 +74,14 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_azure_dynamic_sessions" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^langchain-azure-dynamic-sessions==([0-9.]+)$"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-azure-dynamic-sessions==";
};
meta = {
description = "Integration package connecting Azure Container Apps dynamic sessions and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/azure-dynamic-sessions";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-azure-dynamic-sessions==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
natsukium
@@ -2,14 +2,22 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
# dependencies
chromadb,
langchain-core,
langchain-tests,
numpy,
pdm-backend,
# tests
langchain-tests,
pytestCheckHook,
pytest-asyncio,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -56,15 +64,12 @@ buildPythonPackage rec {
"test_chroma_update_document"
];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-chroma==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-chroma==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-chroma==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Integration package connecting Chroma and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/chroma";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -36,6 +35,9 @@
responses,
syrupy,
toml,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -121,17 +123,14 @@ buildPythonPackage rec {
"tests/unit_tests/document_loaders/test_gitbook.py"
];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"libs/community/v([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "libs/community/v";
};
meta = {
description = "Community contributed LangChain integrations";
homepage = "https://github.com/langchain-ai/langchain-community";
changelog = "https://github.com/langchain-ai/langchain-community/releases/tag/libs%2Fcommunity%2fv${version}";
changelog = "https://github.com/langchain-ai/langchain-community/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
natsukium
@@ -31,7 +31,7 @@
syrupy,
# passthru
nix-update-script,
gitUpdater,
}:
buildPythonPackage rec {
@@ -88,11 +88,8 @@ buildPythonPackage rec {
doCheck = true;
});
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-core==([0-9.]+)"
];
updateScript = gitUpdater {
rev-prefix = "langchain-core==";
};
};
@@ -140,7 +137,7 @@ buildPythonPackage rec {
meta = {
description = "Building applications with LLMs through composability";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/core";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
natsukium
@@ -1,52 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts jq
set -euo pipefail
declare -ar packages=(
langchain
langchain-anthropic
langchain-azure-dynamic-sessions
langchain-chroma
langchain-community
langchain-core
langchain-deepseek
langchain-fireworks
langchain-groq
langchain-huggingface
langchain-mistralai
langchain-mongodb
langchain-ollama
langchain-openai
langchain-perplexity
langchain-tests
langchain-text-splitters
langchain-xai
)
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 ]"
@@ -5,7 +5,6 @@
# build-system
pdm-backend,
poetry-core,
# dependencies
langchain-core,
@@ -18,7 +17,7 @@
syrupy,
# passthru
nix-update-script,
gitUpdater,
}:
buildPythonPackage rec {
@@ -61,15 +60,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_deepseek" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-deepseek==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-deepseek==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-deepseek==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Integration package connecting DeepSeek and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/deepseek";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -18,6 +17,9 @@
langchain-tests,
pytest-asyncio,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -60,15 +62,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_fireworks" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-fireworks==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-fireworks==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-fireworks==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Build LangChain applications with Fireworks";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/fireworks";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -14,6 +13,9 @@
# tests
langchain-tests,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -52,15 +54,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_groq" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^langchain-groq==([0-9.]+)$"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-groq==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-groq==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Integration package connecting Groq and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/groq";
license = lib.licenses.mit;
@@ -28,7 +28,7 @@
toml,
# passthru
nix-update-script,
gitUpdater,
}:
buildPythonPackage rec {
@@ -80,15 +80,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_huggingface" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-huggingface==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-huggingface==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-huggingface==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "An integration package connecting Huggingface related classes and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/huggingface";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -18,6 +17,9 @@
langchain-tests,
pytest-asyncio,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -60,15 +62,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_mistralai" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-mistralai==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
pname = "langchain-mistralai==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain-mistralai/releases/tag/langchain-mistralai==${version}";
changelog = "https://github.com/langchain-ai/langchain-mistralai/releases/tag/${src.tag}";
description = "Build LangChain applications with mistralai";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/mistralai";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
poetry-core,
@@ -19,6 +18,9 @@
pytestCheckHook,
pytest-mock,
syrupy,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -64,15 +66,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_mongodb" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^langchain-mongodb==([0-9.]+)$"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-mongodb==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-mongodb==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Integration package connecting MongoDB and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/mongodb";
license = lib.licenses.mit;
@@ -17,7 +17,7 @@
syrupy,
# passthru
nix-update-script,
gitUpdater,
}:
buildPythonPackage rec {
@@ -60,15 +60,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_ollama" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-ollama==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-ollama==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-ollama==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Integration package connecting Ollama and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/ollama";
license = lib.licenses.mit;
@@ -26,7 +26,7 @@
toml,
# passthru
nix-update-script,
gitUpdater,
}:
buildPythonPackage rec {
@@ -99,15 +99,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_openai" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-openai==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-openai==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-openai==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "Integration package connecting OpenAI and LangChain";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/openai";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -17,6 +16,9 @@
pytest-cov,
pytest-mock,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -58,15 +60,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_perplexity" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-perplexity==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-perplexity==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain-perplexity/releases/tag/langchain-perplexity==${version}";
changelog = "https://github.com/langchain-ai/langchain-perplexity/releases/tag/${src.tag}";
description = "Build LangChain applications with Perplexity";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/perplexity";
license = lib.licenses.mit;
@@ -25,7 +25,7 @@
pytestCheckHook,
# passthru
nix-update-script,
gitUpdater,
}:
buildPythonPackage rec {
@@ -72,11 +72,8 @@ buildPythonPackage rec {
pytestCheckHook
];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-tests==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-tests==";
};
meta = {
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -14,6 +13,9 @@
httpx,
pytest-asyncio,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -50,15 +52,12 @@ buildPythonPackage rec {
pytestFlagsArray = [ "tests/unit_tests" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^langchain-test-splitters==([0-9.]+)$"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-text-splitters==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain/releases/tag/langchain-text-splitters==${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
description = "LangChain utilities for splitting into chunks a wide variety of text documents";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/text-splitters";
license = lib.licenses.mit;
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
pdm-backend,
@@ -18,6 +17,9 @@
pytest-asyncio,
pytest-mock,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -60,15 +62,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain_xai" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain-xai==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain-xai==";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain-xai/releases/tag/langchain-xai==${version}";
changelog = "https://github.com/langchain-ai/langchain-xai/releases/tag/${src.tag}";
description = "Build LangChain applications with X AI";
homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/xai";
license = lib.licenses.mit;
@@ -3,7 +3,6 @@
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
nix-update-script,
# build-system
pdm-backend,
@@ -38,6 +37,9 @@
responses,
syrupy,
toml,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
@@ -141,17 +143,14 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langchain" ];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"langchain==([0-9.]+)"
];
passthru.updateScript = gitUpdater {
rev-prefix = "langchain==";
};
meta = {
description = "Building applications with LLMs through composability";
homepage = "https://github.com/langchain-ai/langchain";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
natsukium