Skip to content

Commit 73b3e07

Browse files
authored
Merge branch 'main' into aimlapi-inventory-section
2 parents b23bf3d + f8ed349 commit 73b3e07

72 files changed

Lines changed: 3025 additions & 615 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/utils/deepset_sync.py

Lines changed: 0 additions & 191 deletions
This file was deleted.

.github/utils/validate_version.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import re
2+
import requests
3+
4+
# * integrations/<INTEGRATION_FOLDER_NAME>-v1.0.0
5+
INTEGRATION_VERSION_REGEX = r"integrations/([a-zA-Z-]+)-v([0-9]\.[0-9]+\.[0-9]+)"
6+
7+
8+
def validate_version_number(tag: str):
9+
"""
10+
Verify that a release version number follows semantic versioning rules by checking the latest version on PyPI.
11+
"""
12+
13+
matches = re.match(INTEGRATION_VERSION_REGEX, tag)
14+
if not matches or len(matches.groups()) != 2:
15+
raise ValueError(f"Invalid tag: {tag}")
16+
17+
integration_name, version_to_release = matches.groups()
18+
print(f"Integration name: {integration_name}")
19+
print(f"Integration version to release: {version_to_release}")
20+
21+
integration_package = f"{integration_name}-haystack"
22+
print(f"Integration PyPi package: {integration_package}")
23+
24+
# connect to PyPi and check the latest version
25+
try:
26+
response = requests.get(f"https://pypi.org/pypi/{integration_package}/json")
27+
response.raise_for_status()
28+
latest_version = response.json()["info"]["version"]
29+
print(f"Latest version on PyPI: {latest_version}")
30+
except requests.exceptions.HTTPError as e:
31+
if e.response.status_code == 404 and version_to_release in ["0.0.1", "0.1.0", "1.0.0"]:
32+
print("Package not found on PyPI. Assuming this is the first release and skipping version check.")
33+
return
34+
raise e
35+
36+
x, y, z = [int(i) for i in latest_version.split(".")]
37+
38+
acceptable_new_versions = [
39+
f"{x}.{y}.{z + 1}",
40+
f"{x}.{y + 1}.0",
41+
f"{x + 1}.0.0",
42+
]
43+
if version_to_release not in acceptable_new_versions:
44+
msg = (
45+
f"Invalid version to release: {version_to_release}. Acceptable new versions are: {acceptable_new_versions}"
46+
)
47+
raise ValueError(msg)
48+
print("The version to release is acceptable.")
49+
50+
51+
if __name__ == "__main__":
52+
import argparse
53+
54+
parser = argparse.ArgumentParser()
55+
parser.add_argument("--tag", help="Git tag in format 'integrations/<name>-v<version>'", required=True, type=str)
56+
args = parser.parse_args()
57+
58+
validate_version_number(args.tag)

.github/workflows/CI_pypi_release.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ jobs:
2424
token: ${{ secrets.HAYSTACK_BOT_TOKEN }}
2525
fetch-depth: 0
2626

27-
- name: Install Hatch
28-
run: pip install hatch
27+
- name: Install dependencies
28+
run: pip install hatch requests
29+
30+
- name: Validate version number
31+
run: python .github/utils/validate_version.py --tag ${{ github.ref_name }}
2932

3033
- name: Get project folder
3134
id: pathfinder

.github/workflows/amazon_bedrock.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ jobs:
7373
# Do not authenticate on PRs from forks and on PRs created by dependabot
7474
- name: AWS authentication
7575
id: aws-auth
76-
if: github.event.pull_request.head.repo.full_name == github.repository && !startsWith(github.event.pull_request.head.ref, 'dependabot/')
77-
uses: aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838
76+
if: github.event_name == 'schedule' || (github.event.pull_request.head.repo.full_name == github.repository && !startsWith(github.event.pull_request.head.ref, 'dependabot/'))
77+
uses: aws-actions/configure-aws-credentials@00943011d9042930efac3dcd3a170e4273319bc8
7878
with:
7979
aws-region: ${{ env.AWS_REGION }}
8080
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}

.github/workflows/llama_stack.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- name: Install and run Ollama Server as inference provider (needed for Llama Stack Server)
4040
uses: nick-fields/retry@v3
4141
with:
42-
timeout_minutes: 2
42+
timeout_minutes: 4
4343
max_attempts: 3
4444
command: |
4545
curl -fsSL https://ollama.com/install.sh | sh

.github/workflows/ollama.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
- name: Install and run Ollama
4343
uses: nick-fields/retry@v3
4444
with:
45-
timeout_minutes: 2
45+
timeout_minutes: 4
4646
max_attempts: 3
4747
command: |
4848
curl -fsSL https://ollama.com/install.sh | sh

.github/workflows/together_ai.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
fail-fast: false
3333
matrix:
3434
os: [ubuntu-latest, windows-latest, macos-latest]
35-
python-version: ["3.10", "3.13"]
35+
python-version: ["3.9", "3.13"]
3636

3737
steps:
3838
- name: Support longpaths
@@ -50,11 +50,11 @@ jobs:
5050
- name: Install Hatch
5151
run: pip install --upgrade hatch
5252
- name: Lint
53-
if: matrix.python-version == '3.10' && runner.os == 'Linux'
53+
if: matrix.python-version == '3.9' && runner.os == 'Linux'
5454
run: hatch run fmt-check && hatch run test:types
5555

5656
- name: Generate docs
57-
if: matrix.python-version == '3.10' && runner.os == 'Linux'
57+
if: matrix.python-version == '3.9' && runner.os == 'Linux'
5858
run: hatch run docs
5959

6060
- name: Run tests

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Please check out our [Contribution Guidelines](CONTRIBUTING.md) for all the deta
6060
| [ragas-haystack](integrations/ragas/) | Evaluator | [![PyPI - Version](https://img.shields.io/pypi/v/ragas-haystack.svg)](https://pypi.org/project/ragas-haystack) | [![Test / ragas](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/ragas.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/ragas.yml) |
6161
| [snowflake-haystack](integrations/snowflake/) | Retriever | [![PyPI - Version](https://img.shields.io/pypi/v/snowflake-haystack.svg)](https://pypi.org/project/snowflake-haystack) | [![Test / snowflake](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/snowflake.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/snowflake.yml) |
6262
| [stackit-haystack](integrations/stackit/) | Embedder, Generator | [![PyPI - Version](https://img.shields.io/pypi/v/stackit-haystack.svg)](https://pypi.org/project/stackit-haystack) | [![Test / stackit](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/stackit.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/stackit.yml) |
63-
| [together-ai-haystack](integrations/together_ai/) | Generator | [![PyPI - Version](https://img.shields.io/pypi/v/together-ai-haystack.svg)](https://pypi.org/project/together-ai-haystack) | [![Test / together_ai](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/together_ai.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/together_ai.yml) |
63+
| [togetherai-haystack](integrations/together_ai/) | Generator | [![PyPI - Version](https://img.shields.io/pypi/v/togetherai-haystack.svg)](https://pypi.org/project/togetherai-haystack) | [![Test / together_ai](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/together_ai.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/together_ai.yml) |
6464
| [unstructured-fileconverter-haystack](integrations/unstructured/) | File converter | [![PyPI - Version](https://img.shields.io/pypi/v/unstructured-fileconverter-haystack.svg)](https://pypi.org/project/unstructured-fileconverter-haystack) | [![Test / unstructured](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/unstructured.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/unstructured.yml) |
6565
| [watsonx-haystack](integrations/watsonx/) | Embedder, Generator | [![PyPI - Version](https://img.shields.io/pypi/v/watsonx-haystack.svg?color=orange)](https://pypi.org/project/watsonx-haystack) | [![Test / watsonx](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/watsonx.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/watsonx.yml) | |
6666
| [weaviate-haystack](integrations/weaviate/) | Document Store | [![PyPI - Version](https://img.shields.io/pypi/v/weaviate-haystack.svg)](https://pypi.org/project/weaviate-haystack) | [![Test / weaviate](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/weaviate.yml/badge.svg)](https://github.com/deepset-ai/haystack-core-integrations/actions/workflows/weaviate.yml) |

integrations/aimlapi/README.md

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# AIMLAPI-haystack
1+
# aimlapi-haystack
22

33
[![PyPI - Version](https://img.shields.io/pypi/v/aimlapi-haystack.svg)](https://pypi.org/project/aimlapi-haystack)
44
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aimlapi-haystack.svg)](https://pypi.org/project/aimlapi-haystack)
@@ -8,23 +8,6 @@
88

99
---
1010

11-
## Installation
12-
13-
```bash
14-
pip install aimlapi-haystack
15-
```
16-
17-
## Usage
18-
19-
```python
20-
from haystack_integrations.components.generators.aimlapi import AIMLAPIChatGenerator
21-
from haystack.dataclasses import ChatMessage
22-
23-
generator = AIMLAPIChatGenerator(model="openai/gpt-5-chat-latest")
24-
result = generator.run([ChatMessage.from_user("What's the capital of France?")])
25-
print(result["replies"][0].content)
26-
```
27-
2811
## Contributing
2912

3013
Refer to the general [Contribution Guidelines](https://github.com/deepset-ai/haystack-core-integrations/blob/main/CONTRIBUTING.md).

integrations/azure_ai_search/CHANGELOG.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
# Changelog
22

3+
## [integrations/azure_ai_search-v2.3.1] - 2025-10-10
4+
5+
### 🐛 Bug Fixes
6+
7+
- Azure AI Search - do not use Azure private types and simplify deserialization (#2372)
8+
9+
10+
### 🧹 Chores
11+
12+
- Standardize readmes - part 1 (#2202)
13+
314
## [integrations/azure_ai_search-v2.3.0] - 2025-06-27
415

516
### 🚀 Features
617

7-
- Allow the @search metadata returned by AI Search to be populated in the Document.meta (#1907)
8-
- Update the Document.score with @search.score
9-
- Introduced a new param `include_search_metadata`
18+
- Allow the scores returned by AI Search to be populated in the Document.meta (#1907)
1019

1120

1221
## [integrations/azure_ai_search-v2.2.0] - 2025-06-27

0 commit comments

Comments
 (0)