Skip to content

Commit 848c277

Browse files
authored
Merge branch 'main' into supply-chain-hardening
2 parents eaf6cfa + 519b92f commit 848c277

180 files changed

Lines changed: 17162 additions & 915 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/labeler.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# Integrations
2+
integration:alloydb:
3+
- changed-files:
4+
- any-glob-to-any-file: "integrations/alloydb/**/*"
5+
- any-glob-to-any-file: ".github/workflows/alloydb.yml"
6+
27
integration:aimlapi:
38
- changed-files:
49
- any-glob-to-any-file: "integrations/aimlapi/**/*"
@@ -29,6 +34,11 @@ integration:astra:
2934
- any-glob-to-any-file: "integrations/astra/**/*"
3035
- any-glob-to-any-file: ".github/workflows/astra.yml"
3136

37+
integration:brave:
38+
- changed-files:
39+
- any-glob-to-any-file: "integrations/brave/**/*"
40+
- any-glob-to-any-file: ".github/workflows/brave.yml"
41+
3242
integration:azure-ai-search:
3343
- changed-files:
3444
- any-glob-to-any-file: "integrations/azure_ai_search/**/*"
@@ -69,11 +79,21 @@ integration:docling:
6979
- any-glob-to-any-file: "integrations/docling/**/*"
7080
- any-glob-to-any-file: ".github/workflows/docling.yml"
7181

82+
integration:docling-serve:
83+
- changed-files:
84+
- any-glob-to-any-file: "integrations/docling_serve/**/*"
85+
- any-glob-to-any-file: ".github/workflows/docling_serve.yml"
86+
7287
integration:dspy:
7388
- changed-files:
7489
- any-glob-to-any-file: "integrations/dspy/**/*"
7590
- any-glob-to-any-file: ".github/workflows/dspy.yml"
7691

92+
integration:e2b:
93+
- changed-files:
94+
- any-glob-to-any-file: "integrations/e2b/**/*"
95+
- any-glob-to-any-file: ".github/workflows/e2b.yml"
96+
7797
integration:elasticsearch:
7898
- changed-files:
7999
- any-glob-to-any-file: "integrations/elasticsearch/**/*"
@@ -84,6 +104,12 @@ integration:faiss:
84104
- any-glob-to-any-file: "integrations/faiss/**/*"
85105
- any-glob-to-any-file: ".github/workflows/faiss.yml"
86106

107+
108+
integration:falkordb:
109+
- changed-files:
110+
- any-glob-to-any-file: "integrations/falkordb/**/*"
111+
- any-glob-to-any-file: ".github/workflows/falkordb.yml"
112+
87113
integration:fastembed:
88114
- changed-files:
89115
- any-glob-to-any-file: "integrations/fastembed/**/*"
@@ -207,6 +233,11 @@ integration:paddleocr:
207233
- any-glob-to-any-file: "integrations/paddleocr/**/*"
208234
- any-glob-to-any-file: ".github/workflows/paddleocr.yml"
209235

236+
integration:perplexity:
237+
- changed-files:
238+
- any-glob-to-any-file: "integrations/perplexity/**/*"
239+
- any-glob-to-any-file: ".github/workflows/perplexity.yml"
240+
210241
integration:pgvector:
211242
- changed-files:
212243
- any-glob-to-any-file: "integrations/pgvector/**/*"

.github/utils/validate_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# * integrations/<INTEGRATION_FOLDER_NAME>-v1.0.0
55
# * integrations/<INTEGRATION_FOLDER_NAME>-v1.0.0.post0 (for post-releases)
6-
INTEGRATION_VERSION_REGEX = r"integrations/([a-zA-Z_]+)-v([0-9]+\.[0-9]+\.[0-9]+(?:\.post[0-9]+)?)"
6+
INTEGRATION_VERSION_REGEX = r"integrations/([a-zA-Z0-9_]+)-v([0-9]+\.[0-9]+\.[0-9]+(?:\.post[0-9]+)?)"
77

88

99
def validate_version_number(tag: str):

.github/workflows/CI_coverage_comment.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
- "Test / anthropic"
1010
- "Test / arcadedb"
1111
- "Test / astra"
12+
- "Test / brave"
1213
- "Test / azure_ai_search"
1314
- "Test / azure_doc_intelligence"
1415
- "Test / chonkie"
@@ -17,9 +18,12 @@ on:
1718
- "Test / cometapi"
1819
- "Test / db2"
1920
- "Test / deepeval"
21+
- "Test / docling_serve"
2022
- "Test / dspy"
23+
- "Test / e2b"
2124
- "Test / elasticsearch"
2225
- "Test / faiss"
26+
- "Test / falkordb"
2327
- "Test / fastembed"
2428
- "Test / firecrawl"
2529
- "Test / github"
@@ -43,6 +47,7 @@ on:
4347
- "Test / opensearch"
4448
- "Test / optimum"
4549
- "Test / paddleocr"
50+
- "Test / perplexity"
4651
- "Test / pgvector"
4752
- "Test / pinecone"
4853
- "Test / presidio"

.github/workflows/CI_labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ jobs:
1010
triage:
1111
runs-on: ubuntu-slim
1212
steps:
13-
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
13+
- uses: actions/labeler@f27b608878404679385c85cfa523b85ccb86e213 # v6.1.0
1414
with:
1515
repo-token: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/CI_license_compliance.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@ name: Core / License Compliance
33
on:
44
pull_request:
55
paths:
6-
- "integrations/**/pyproject.toml"
7-
- ".github/workflows/CI_license_compliance.yml"
6+
- "integrations/**/pyproject.toml"
7+
- ".github/workflows/CI_license_compliance.yml"
88
# Since we test PRs, there is no need to run the workflow at each
99
# merge on `main`. Let's use a cron job instead.
1010
schedule:
1111
- cron: "0 0 * * *" # every day at midnight
1212

1313
env:
1414
PYTHON_VERSION: "3.10"
15-
EXCLUDE_PACKAGES: "(?i)^(azure-identity|fastembed|ragas|tqdm|psycopg|mistralai|pgvector).*"
15+
EXCLUDE_PACKAGES: "(?i)^(azure-identity|azure-search-documents|fastembed|tqdm|psycopg|mistralai|pgvector).*"
1616

1717
# Exclusions must be explicitly motivated
1818
#
1919
# - azure-identity is MIT but the license is not available on PyPI
20+
# - azure-search-documents is MIT but the license is not available on PyPI
2021
# - fastembed is Apache 2.0 but the license on PyPI is unclear ("Other/Proprietary License (Apache License)")
21-
# - ragas is Apache 2.0 but the license is not available on PyPI
2222
# - mistralai is Apache 2.0 but the license is not available on PyPI
2323
# - pgvector is MIT but the license is not available on PyPI
2424

.github/workflows/CI_project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
name: Add new issues to project for triage
1111
runs-on: ubuntu-slim
1212
steps:
13-
- uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2
13+
- uses: actions/add-to-project@5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd # v2.0.0
1414
with:
1515
project-url: https://github.com/orgs/deepset-ai/projects/5
1616
github-token: ${{ secrets.GH_PROJECT_PAT }}

.github/workflows/alloydb.yml

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
# This workflow comes from https://github.com/ofek/hatch-mypyc
2+
# https://github.com/ofek/hatch-mypyc/blob/5a198c0ba8660494d02716cfc9d79ce4adfb1442/.github/workflows/test.yml
3+
name: Test / alloydb
4+
5+
on:
6+
schedule:
7+
- cron: "0 0 * * *"
8+
pull_request:
9+
paths:
10+
- "integrations/alloydb/**"
11+
- "!integrations/alloydb/*.md"
12+
- ".github/workflows/alloydb.yml"
13+
push:
14+
branches:
15+
- main
16+
paths:
17+
- "integrations/alloydb/**"
18+
- "!integrations/alloydb/*.md"
19+
- ".github/workflows/alloydb.yml"
20+
21+
defaults:
22+
run:
23+
working-directory: integrations/alloydb
24+
25+
concurrency:
26+
group: alloydb-${{ github.head_ref || github.sha }}
27+
cancel-in-progress: true
28+
29+
env:
30+
PYTHONUNBUFFERED: "1"
31+
FORCE_COLOR: "1"
32+
TEST_MATRIX_OS: '["ubuntu-latest", "windows-latest", "macos-latest"]'
33+
TEST_MATRIX_PYTHON: '["3.10", "3.14"]'
34+
35+
jobs:
36+
compute-test-matrix:
37+
runs-on: ubuntu-slim
38+
defaults:
39+
run:
40+
working-directory: .
41+
outputs:
42+
os: ${{ steps.set.outputs.os }}
43+
python-version: ${{ steps.set.outputs.python-version }}
44+
steps:
45+
- id: set
46+
run: |
47+
echo 'os=${{ github.event_name == 'push' && '["ubuntu-latest"]' || env.TEST_MATRIX_OS }}' >> "$GITHUB_OUTPUT"
48+
echo 'python-version=${{ github.event_name == 'push' && '["3.10"]' || env.TEST_MATRIX_PYTHON }}' >> "$GITHUB_OUTPUT"
49+
50+
run:
51+
name: Python ${{ matrix.python-version }} on ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }}
52+
needs: compute-test-matrix
53+
permissions:
54+
contents: write
55+
pull-requests: write
56+
runs-on: ${{ matrix.os }}
57+
strategy:
58+
fail-fast: false
59+
max-parallel: 1
60+
matrix:
61+
os: ${{ fromJSON(needs.compute-test-matrix.outputs.os) }}
62+
python-version: ${{ fromJSON(needs.compute-test-matrix.outputs.python-version) }}
63+
64+
steps:
65+
- name: Support longpaths
66+
if: matrix.os == 'windows-latest'
67+
working-directory: .
68+
run: git config --system core.longpaths true
69+
70+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
71+
72+
- name: Set up Python ${{ matrix.python-version }}
73+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
74+
with:
75+
python-version: ${{ matrix.python-version }}
76+
77+
- name: Install Hatch
78+
run: pip install --upgrade hatch
79+
80+
- name: Lint
81+
if: matrix.python-version == '3.10' && runner.os == 'Linux'
82+
run: hatch run fmt-check && hatch run test:types
83+
84+
- name: Run unit tests
85+
run: hatch run test:unit-cov-retry
86+
87+
# On PR: posts coverage comment (directly on same-repo PRs; via artifact for fork PRs). On push to main: stores coverage baseline on data branch.
88+
- name: Store unit tests coverage
89+
id: coverage_comment
90+
if: matrix.python-version == '3.10' && runner.os == 'Linux' && github.event_name != 'schedule'
91+
uses: py-cov-action/python-coverage-comment-action@63f52f4fbbffada6e8dee8ec432de7e01df9ba79 # v3.41
92+
with:
93+
GITHUB_TOKEN: ${{ github.token }}
94+
COVERAGE_PATH: integrations/alloydb
95+
SUBPROJECT_ID: alloydb
96+
MINIMUM_GREEN: 90
97+
MINIMUM_ORANGE: 60
98+
99+
- name: Upload coverage comment to be posted
100+
if: matrix.python-version == '3.10' && runner.os == 'Linux' && github.event_name == 'pull_request' && steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
101+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
102+
with:
103+
name: coverage-comment-alloydb
104+
path: python-coverage-comment-action-alloydb.txt
105+
106+
- name: Run integration tests
107+
if: env.ALLOYDB_INSTANCE_URI != ''
108+
env:
109+
ALLOYDB_INSTANCE_URI: ${{ secrets.ALLOYDB_INSTANCE_URI }}
110+
ALLOYDB_USER: ${{ secrets.ALLOYDB_USER }}
111+
ALLOYDB_PASSWORD: ${{ secrets.ALLOYDB_PASSWORD }}
112+
run: hatch run test:integration-cov-append-retry
113+
114+
- name: Store combined coverage
115+
if: github.event_name == 'push' && env.ALLOYDB_INSTANCE_URI != ''
116+
env:
117+
ALLOYDB_INSTANCE_URI: ${{ secrets.ALLOYDB_INSTANCE_URI }}
118+
uses: py-cov-action/python-coverage-comment-action@63f52f4fbbffada6e8dee8ec432de7e01df9ba79 # v3.41
119+
with:
120+
GITHUB_TOKEN: ${{ github.token }}
121+
COVERAGE_PATH: integrations/alloydb
122+
SUBPROJECT_ID: alloydb-combined
123+
MINIMUM_GREEN: 90
124+
MINIMUM_ORANGE: 60
125+
126+
- name: Run unit tests with lowest direct dependencies
127+
if: github.event_name != 'push'
128+
run: |
129+
hatch run uv pip compile pyproject.toml --resolution lowest-direct --output-file requirements_lowest_direct.txt
130+
hatch -e test env run -- uv pip install -r requirements_lowest_direct.txt
131+
hatch run test:unit
132+
133+
- name: Nightly - run unit tests with Haystack main branch
134+
if: github.event_name == 'schedule'
135+
run: |
136+
hatch env prune
137+
hatch -e test env run -- uv pip install git+https://github.com/deepset-ai/haystack.git@main
138+
hatch run test:unit
139+
140+
notify-slack-on-failure:
141+
needs: run
142+
if: failure() && github.event_name == 'schedule'
143+
runs-on: ubuntu-slim
144+
steps:
145+
- uses: deepset-ai/notify-slack-action@3cda73b77a148f16f703274198e7771340cf862b # v1
146+
with:
147+
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL_NOTIFICATIONS }}

.github/workflows/amazon_bedrock.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ jobs:
119119
- name: AWS authentication
120120
id: aws-auth
121121
if: github.event_name == 'schedule' || (github.event.pull_request.head.repo.full_name == github.repository && !startsWith(github.event.pull_request.head.ref, 'dependabot/'))
122-
uses: aws-actions/configure-aws-credentials@ec61189d14ec14c8efccab744f656cffd0e33f37
122+
uses: aws-actions/configure-aws-credentials@d979d5b3a71173a29b74b5b88418bfda9437d885
123123
with:
124124
aws-region: ${{ env.AWS_REGION }}
125125
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}

0 commit comments

Comments
 (0)