Guna Palanivel 9952940ba7
chore!: drop Python 3.9 support due to EOL (#10244)
* feat!: drop Python 3.9 support due to EOL

Remove Python 3.9 support following its end-of-life in October 2025.
Minimum required version is now Python 3.10.

BREAKING CHANGE: Python 3.10 or later is now required

Changes:
- Update pyproject.toml requires-python to >=3.10
- Remove Python 3.9 from pyproject.toml classifiers
- Update CI workflows to test Python 3.10 as minimum
- Update mypy python_version to 3.10
- Migrate TypeAlias from typing_extensions to typing stdlib
- Remove blis version pin (only needed for Python 3.9)
- Update CONTRIBUTING.md Python version requirements
- Add release note documenting breaking change

Closes #9854

* small fixes

* update relnote

---------

Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
2025-12-16 19:00:00 +01:00

61 lines
1.8 KiB
YAML

# If you change this name also do it in ci_metrics.yml
name: end-to-end
on:
workflow_dispatch: # Activate this workflow manually
schedule:
- cron: "0 0 * * *"
pull_request:
types:
- opened
- reopened
- synchronize
paths:
- "e2e/**/*.py"
- ".github/workflows/e2e.yml"
env:
PYTHON_VERSION: "3.10"
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
HATCH_VERSION: "1.14.2"
# we use HF_TOKEN instead of HF_API_TOKEN to work around a Hugging Face bug
# see https://github.com/deepset-ai/haystack/issues/9552
HF_TOKEN: ${{ secrets.HUGGINGFACE_API_KEY }}
jobs:
run:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "${{ env.PYTHON_VERSION }}"
- name: Install Hatch
run: pip install hatch==${{ env.HATCH_VERSION }}
- name: Run tests
run: hatch run e2e:test
- name: Send event to Datadog
if: failure() && github.event_name == 'schedule'
uses: masci/datadog@v1
with:
api-key: ${{ secrets.CORE_DATADOG_API_KEY }}
api-url: https://api.datadoghq.eu
events: |
- title: "${{ github.workflow }} workflow"
text: "Job ${{ github.job }} in branch ${{ github.ref_name }}"
alert_type: "error"
source_type_name: "Github"
host: ${{ github.repository_owner }}
tags:
- "project:${{ github.repository }}"
- "job:${{ github.job }}"
- "run_id:${{ github.run_id }}"
- "workflow:${{ github.workflow }}"
- "branch:${{ github.ref_name }}"
- "url:https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"