diff --git a/.github/actions/poetry_setup/action.yml b/.github/actions/poetry_setup/action.yml index 68b099f0e55..86d9d66d30c 100644 --- a/.github/actions/poetry_setup/action.yml +++ b/.github/actions/poetry_setup/action.yml @@ -26,13 +26,13 @@ inputs: runs: using: composite steps: - - uses: actions/setup-python@v5 + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 name: Setup python ${{ inputs.python-version }} id: setup-python with: python-version: ${{ inputs.python-version }} - - uses: actions/cache@v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 id: cache-bin-poetry name: Cache Poetry binary - Python ${{ inputs.python-version }} env: @@ -79,7 +79,7 @@ runs: run: pipx install "poetry==$POETRY_VERSION" --python '${{ steps.setup-python.outputs.python-path }}' --verbose - name: Restore pip and poetry cached dependencies - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 env: SEGMENT_DOWNLOAD_TIMEOUT_MIN: "4" WORKDIR: ${{ inputs.working-directory == '' && '.' || inputs.working-directory }} diff --git a/.github/actions/uv_setup/action.yml b/.github/actions/uv_setup/action.yml index 1d701d74282..541cafd5b6d 100644 --- a/.github/actions/uv_setup/action.yml +++ b/.github/actions/uv_setup/action.yml @@ -27,7 +27,7 @@ runs: using: composite steps: - name: Install uv and set the python version - uses: astral-sh/setup-uv@v6 + uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6 with: version: ${{ env.UV_VERSION }} python-version: ${{ inputs.python-version }} diff --git a/.github/workflows/_compile_integration_test.yml b/.github/workflows/_compile_integration_test.yml index dc49c03da7c..d61b876111b 100644 --- a/.github/workflows/_compile_integration_test.yml +++ b/.github/workflows/_compile_integration_test.yml @@ -35,7 +35,7 @@ jobs: timeout-minutes: 20 name: 'Python ${{ inputs.python-version }}' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ inputs.python-version }} + UV' uses: "./.github/actions/uv_setup" diff --git a/.github/workflows/_integration_test.yml b/.github/workflows/_integration_test.yml index 6af79b9421a..d7cc1a372ec 100644 --- a/.github/workflows/_integration_test.yml +++ b/.github/workflows/_integration_test.yml @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-latest name: 'Python ${{ inputs.python-version }}' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ inputs.python-version }} + UV' uses: "./.github/actions/uv_setup" diff --git a/.github/workflows/_lint.yml b/.github/workflows/_lint.yml index 04af83f802a..d6d3bef3ea3 100644 --- a/.github/workflows/_lint.yml +++ b/.github/workflows/_lint.yml @@ -38,7 +38,7 @@ jobs: timeout-minutes: 20 steps: - name: '📋 Checkout Code' - uses: actions/checkout@v5 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ inputs.python-version }} + UV' uses: "./.github/actions/uv_setup" diff --git a/.github/workflows/_release.yml b/.github/workflows/_release.yml index f16e59882ff..6a0904fe6a1 100644 --- a/.github/workflows/_release.yml +++ b/.github/workflows/_release.yml @@ -49,7 +49,7 @@ jobs: version: ${{ steps.check-version.outputs.version }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: Set up Python + uv uses: "./.github/actions/uv_setup" @@ -72,7 +72,7 @@ jobs: working-directory: ${{ inputs.working-directory }} - name: Upload build - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: dist path: ${{ inputs.working-directory }}/dist/ @@ -98,7 +98,7 @@ jobs: outputs: release-body: ${{ steps.generate-release-body.outputs.release-body }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: repository: langchain-ai/langchain path: langchain @@ -199,9 +199,9 @@ jobs: id-token: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 with: name: dist path: ${{ inputs.working-directory }}/dist/ @@ -228,7 +228,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 # We explicitly *don't* set up caching here. This ensures our tests are # maximally sensitive to catching breakage. @@ -249,7 +249,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 with: name: dist path: ${{ inputs.working-directory }}/dist/ @@ -400,7 +400,7 @@ jobs: AZURE_OPENAI_LLM_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_LLM_DEPLOYMENT_NAME }} AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 # We implement this conditional as Github Actions does not have good support # for conditionally needing steps. https://github.com/actions/runner/issues/491 @@ -418,7 +418,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 if: startsWith(inputs.working-directory, 'libs/core') with: name: dist @@ -479,14 +479,14 @@ jobs: working-directory: ${{ inputs.working-directory }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: Set up Python + uv uses: "./.github/actions/uv_setup" with: python-version: ${{ env.PYTHON_VERSION }} - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 with: name: dist path: ${{ inputs.working-directory }}/dist/ @@ -519,20 +519,20 @@ jobs: working-directory: ${{ inputs.working-directory }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: Set up Python + uv uses: "./.github/actions/uv_setup" with: python-version: ${{ env.PYTHON_VERSION }} - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 with: name: dist path: ${{ inputs.working-directory }}/dist/ - name: Create Tag - uses: ncipollo/release-action@v1 + uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1 with: artifacts: "dist/*" token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml index 488b0d65b2d..b6ed0698d44 100644 --- a/.github/workflows/_test.yml +++ b/.github/workflows/_test.yml @@ -33,7 +33,7 @@ jobs: name: 'Python ${{ inputs.python-version }}' steps: - name: '📋 Checkout Code' - uses: actions/checkout@v5 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ inputs.python-version }} + UV' uses: "./.github/actions/uv_setup" diff --git a/.github/workflows/_test_doc_imports.yml b/.github/workflows/_test_doc_imports.yml index dc2c55fbd73..75efd799efb 100644 --- a/.github/workflows/_test_doc_imports.yml +++ b/.github/workflows/_test_doc_imports.yml @@ -28,7 +28,7 @@ jobs: name: '🔍 Check Doc Imports (Python ${{ inputs.python-version }})' steps: - name: '📋 Checkout Code' - uses: actions/checkout@v5 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ inputs.python-version }} + UV' uses: "./.github/actions/uv_setup" diff --git a/.github/workflows/_test_pydantic.yml b/.github/workflows/_test_pydantic.yml index 7363231fd62..e3d327451ee 100644 --- a/.github/workflows/_test_pydantic.yml +++ b/.github/workflows/_test_pydantic.yml @@ -36,7 +36,7 @@ jobs: name: 'Pydantic ~=${{ inputs.pydantic-version }}' steps: - name: '📋 Checkout Code' - uses: actions/checkout@v5 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ inputs.python-version }} + UV' uses: "./.github/actions/uv_setup" diff --git a/.github/workflows/api_doc_build.yml b/.github/workflows/api_doc_build.yml index 6dd8574bfdb..0978d150785 100644 --- a/.github/workflows/api_doc_build.yml +++ b/.github/workflows/api_doc_build.yml @@ -25,10 +25,10 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: path: langchain - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: repository: langchain-ai/langchain-api-docs-html path: langchain-api-docs-html @@ -36,7 +36,7 @@ jobs: - name: '📋 Extract Repository List with yq' id: get-unsorted-repos - uses: mikefarah/yq@master + uses: mikefarah/yq@cb9793555487aafb501e1a9d85c28b812aeadfab # master with: cmd: | # Extract repos from packages.yml that are in the langchain-ai org @@ -82,7 +82,7 @@ jobs: done - name: '🐍 Setup Python ${{ env.PYTHON_VERSION }}' - uses: actions/setup-python@v6 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 id: setup-python with: python-version: ${{ env.PYTHON_VERSION }} @@ -146,7 +146,7 @@ jobs: rm -rf ../langchain-api-docs-html/_build/ # Commit and push changes to langchain-api-docs-html repo - - uses: EndBug/add-and-commit@v9 + - uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9 with: cwd: langchain-api-docs-html message: 'Update API docs build' diff --git a/.github/workflows/check-broken-links.yml b/.github/workflows/check-broken-links.yml index 13aa17c5e06..fc0f63fc9d3 100644 --- a/.github/workflows/check-broken-links.yml +++ b/.github/workflows/check-broken-links.yml @@ -15,9 +15,9 @@ jobs: if: github.repository_owner == 'langchain-ai' || github.event_name != 'schedule' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🟢 Setup Node.js 18.x' - uses: actions/setup-node@v5 + uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5 with: node-version: 18.x cache: "yarn" diff --git a/.github/workflows/check_core_versions.yml b/.github/workflows/check_core_versions.yml index c2b7ccb5e0c..1a8f1912a9e 100644 --- a/.github/workflows/check_core_versions.yml +++ b/.github/workflows/check_core_versions.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '✅ Verify pyproject.toml & version.py Match' run: | diff --git a/.github/workflows/check_diffs.yml b/.github/workflows/check_diffs.yml index 0fb19943183..9879c823be2 100644 --- a/.github/workflows/check_diffs.yml +++ b/.github/workflows/check_diffs.yml @@ -48,14 +48,14 @@ jobs: if: ${{ !contains(github.event.pull_request.labels.*.name, 'ci-ignore') }} steps: - name: '📋 Checkout Code' - uses: actions/checkout@v5 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Setup Python 3.11' - uses: actions/setup-python@v6 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: '3.11' - name: '📂 Get Changed Files' id: files - uses: Ana06/get-changed-files@v2.3.0 + uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0 - name: '🔍 Analyze Changed Files & Generate Build Matrix' id: set-matrix run: | @@ -155,7 +155,7 @@ jobs: run: working-directory: ${{ matrix.job-configs.working-directory }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python ${{ matrix.job-configs.python-version }} + UV' uses: "./.github/actions/uv_setup" @@ -196,15 +196,15 @@ jobs: job-configs: ${{ fromJson(needs.build.outputs.codspeed) }} fail-fast: false steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 # We have to use 3.12 as 3.13 is not yet supported - name: '📦 Install UV Package Manager' - uses: astral-sh/setup-uv@v6 + uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6 with: python-version: "3.12" - - uses: actions/setup-python@v6 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: "3.12" @@ -213,7 +213,7 @@ jobs: working-directory: ${{ matrix.job-configs.working-directory }} - name: '⚡ Run Benchmarks: ${{ matrix.job-configs.working-directory }}' - uses: CodSpeedHQ/action@v4 + uses: CodSpeedHQ/action@a50965600eafa04edcd6717761f55b77e52aafbd # v4 env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} ANTHROPIC_FILES_API_IMAGE_ID: ${{ secrets.ANTHROPIC_FILES_API_IMAGE_ID }} diff --git a/.github/workflows/check_new_docs.yml b/.github/workflows/check_new_docs.yml index f026a765b06..827abe8e3e8 100644 --- a/.github/workflows/check_new_docs.yml +++ b/.github/workflows/check_new_docs.yml @@ -25,12 +25,12 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 - - uses: actions/setup-python@v6 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: '3.10' - id: files - uses: Ana06/get-changed-files@v2.3.0 + uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0 with: filter: | *.ipynb diff --git a/.github/workflows/people.yml b/.github/workflows/people.yml index 0d4b1b80909..302a35f2581 100644 --- a/.github/workflows/people.yml +++ b/.github/workflows/people.yml @@ -21,7 +21,7 @@ jobs: env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 # Ref: https://github.com/actions/runner/issues/2033 - name: '🔧 Fix Git Safe Directory in Container' run: mkdir -p /home/runner/work/_temp/_github_home && printf "[safe]\n\tdirectory = /github/workspace" > /home/runner/work/_temp/_github_home/.gitconfig diff --git a/.github/workflows/pr_labeler_file.yml b/.github/workflows/pr_labeler_file.yml index 1475606fa51..af9bf7ce594 100644 --- a/.github/workflows/pr_labeler_file.yml +++ b/.github/workflows/pr_labeler_file.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Label Pull Request - uses: actions/labeler@v6 + uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: .github/pr-file-labeler.yml diff --git a/.github/workflows/pr_lint.yml b/.github/workflows/pr_lint.yml index 56634082a5f..c7214fa8235 100644 --- a/.github/workflows/pr_lint.yml +++ b/.github/workflows/pr_lint.yml @@ -55,7 +55,7 @@ jobs: runs-on: ubuntu-latest steps: - name: '✅ Validate Conventional Commits Format' - uses: amannn/action-semantic-pull-request@v6 + uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/run_notebooks.yml b/.github/workflows/run_notebooks.yml index 3f3971658db..6a63e2aa63b 100644 --- a/.github/workflows/run_notebooks.yml +++ b/.github/workflows/run_notebooks.yml @@ -28,7 +28,7 @@ jobs: if: github.repository == 'langchain-ai/langchain' || github.event_name != 'schedule' name: '📑 Test Documentation Notebooks' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: '🐍 Set up Python + UV' uses: "./.github/actions/uv_setup" @@ -39,12 +39,12 @@ jobs: - name: '🔐 Authenticate to Google Cloud' id: 'auth' - uses: google-github-actions/auth@v3 + uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3 with: credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}' - name: '🔐 Configure AWS Credentials' - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/scheduled_test.yml b/.github/workflows/scheduled_test.yml index e44ecac6d32..63f8471ed1a 100644 --- a/.github/workflows/scheduled_test.yml +++ b/.github/workflows/scheduled_test.yml @@ -74,14 +74,14 @@ jobs: working-directory: ${{ fromJSON(needs.compute-matrix.outputs.matrix).working-directory }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: path: langchain - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: repository: langchain-ai/langchain-google path: langchain-google - - uses: actions/checkout@v5 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: repository: langchain-ai/langchain-aws path: langchain-aws @@ -112,12 +112,12 @@ jobs: - name: '🔐 Authenticate to Google Cloud' id: 'auth' - uses: google-github-actions/auth@v3 + uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3 with: credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}' - name: '🔐 Configure AWS Credentials' - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}