# Ensures version numbers in pyproject.toml and version.py stay in sync. # # (Prevents releases with mismatched version numbers) name: "🔍 Check Version Equality" on: pull_request: paths: - "libs/core/pyproject.toml" - "libs/core/langchain_core/version.py" - "libs/partners/anthropic/pyproject.toml" - "libs/partners/anthropic/langchain_anthropic/_version.py" permissions: contents: read jobs: check_version_equality: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: "✅ Verify pyproject.toml & version.py Match" run: | # Check core versions CORE_PYPROJECT_VERSION=$(grep -Po '(?<=^version = ")[^"]*' libs/core/pyproject.toml) CORE_VERSION_PY_VERSION=$(grep -Po '(?<=^VERSION = ")[^"]*' libs/core/langchain_core/version.py) # Compare core versions if [ "$CORE_PYPROJECT_VERSION" != "$CORE_VERSION_PY_VERSION" ]; then echo "langchain-core versions in pyproject.toml and version.py do not match!" echo "pyproject.toml version: $CORE_PYPROJECT_VERSION" echo "version.py version: $CORE_VERSION_PY_VERSION" exit 1 else echo "Core versions match: $CORE_PYPROJECT_VERSION" fi # Check langchain_v1 versions LANGCHAIN_PYPROJECT_VERSION=$(grep -Po '(?<=^version = ")[^"]*' libs/langchain_v1/pyproject.toml) LANGCHAIN_INIT_PY_VERSION=$(grep -Po '(?<=^__version__ = ")[^"]*' libs/langchain_v1/langchain/__init__.py) # Compare langchain_v1 versions if [ "$LANGCHAIN_PYPROJECT_VERSION" != "$LANGCHAIN_INIT_PY_VERSION" ]; then echo "langchain_v1 versions in pyproject.toml and __init__.py do not match!" echo "pyproject.toml version: $LANGCHAIN_PYPROJECT_VERSION" echo "version.py version: $LANGCHAIN_INIT_PY_VERSION" exit 1 else echo "Langchain v1 versions match: $LANGCHAIN_PYPROJECT_VERSION" fi # Check langchain-anthropic versions ANTHROPIC_PYPROJECT_VERSION=$(grep -Po '(?<=^version = ")[^"]*' libs/partners/anthropic/pyproject.toml) ANTHROPIC_VERSION_PY_VERSION=$(grep -Po '(?<=^__version__ = ")[^"]*' libs/partners/anthropic/langchain_anthropic/_version.py) # Compare langchain-anthropic versions if [ "$ANTHROPIC_PYPROJECT_VERSION" != "$ANTHROPIC_VERSION_PY_VERSION" ]; then echo "langchain-anthropic versions in pyproject.toml and _version.py do not match!" echo "pyproject.toml version: $ANTHROPIC_PYPROJECT_VERSION" echo "_version.py version: $ANTHROPIC_VERSION_PY_VERSION" exit 1 else echo "Langchain-anthropic versions match: $ANTHROPIC_PYPROJECT_VERSION" fi