This commit is contained in:
Rene Leonhardt 2025-05-14 20:41:13 +02:00 committed by GitHub
commit 31c2b51256
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 80 additions and 74 deletions

View file

@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- name: Set up Python ${{ matrix.python-version }}

View file

@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- name: Check out repository

View file

@ -25,7 +25,7 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- name: Check out repository
@ -49,4 +49,3 @@ jobs:
AIDER_ANALYTICS: false
run: |
pytest

View file

@ -15,7 +15,7 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
defaults:
run:
shell: pwsh # Use PowerShell for all run steps

View file

@ -50,7 +50,7 @@ cd aider
It is recommended to create a virtual environment outside of the repository to keep your development environment isolated.
#### Using `venv` (Python 3.9 and later)
#### Using `venv` (Python 3.10 and later)
```
python -m venv /path/to/venv
@ -155,7 +155,7 @@ The built documentation will be available in the `aider/website/_site` directory
### Python Compatibility
Aider supports Python versions 3.9, 3.10, 3.11, and 3.12. When contributing code, ensure compatibility with these supported Python versions.
Aider supports Python versions 3.10, 3.11, 3.12, and 3.13. When contributing code, ensure compatibility with these supported Python versions.
### Code Style
@ -188,7 +188,7 @@ pytest tests/basic/test_coder.py::TestCoder::test_specific_case
The project uses GitHub Actions for continuous integration. The testing workflows are defined in the following files:
- `.github/workflows/ubuntu-tests.yml`: Runs tests on Ubuntu for Python versions 3.9 through 3.12.
- `.github/workflows/ubuntu-tests.yml`: Runs tests on Ubuntu for Python versions 3.10 through 3.13.
- `.github/workflows/windows-tests.yml`: Runs that on Windows
These workflows are triggered on push and pull request events to the `main` branch, ignoring changes to the `aider/website/**` and `README.md` files.

View file

@ -75,7 +75,7 @@ python -m pip install pipx # If you need to install pipx
pipx install aider-chat
```
You can use pipx to install aider with python versions 3.9-3.12.
You can use pipx to install aider with python versions 3.10-3.13.
Also see the
[docs on other methods for installing pipx itself](https://pipx.pypa.io/stable/installation/).
@ -93,7 +93,7 @@ using a
to keep aider's dependencies separated.
You can use pip to install aider with python versions 3.9-3.12.
You can use pip to install aider with python versions 3.10-3.13.
```bash
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
@ -112,4 +112,3 @@ they often install aider with incorrect dependencies.
There are some [optional install steps](/docs/install/optional.html) you could consider.
See the [usage instructions](https://aider.chat/docs/usage.html) to start coding with aider.

View file

@ -12,10 +12,11 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python",
"Topic :: Software Development",
]
requires-python = ">=3.10,<3.13"
requires-python = ">=3.10,<3.14"
dynamic = ["dependencies", "optional-dependencies", "version"]
[project.urls]

View file

@ -154,10 +154,6 @@ h11==0.16.0
# via
# -c requirements/common-constraints.txt
# httpcore
hf-xet==1.1.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
httpcore==1.0.9
# via
# -c requirements/common-constraints.txt
@ -172,7 +168,7 @@ httpx==0.28.1
# -c requirements/common-constraints.txt
# litellm
# openai
huggingface-hub==0.31.1
huggingface-hub==0.31.2
# via
# -c requirements/common-constraints.txt
# tokenizers
@ -213,7 +209,7 @@ jsonschema-specifications==2025.4.1
# via
# -c requirements/common-constraints.txt
# jsonschema
litellm==1.68.1
litellm==1.69.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
@ -250,7 +246,7 @@ networkx==3.4.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
numpy==1.26.4
numpy==2.2.5
# via
# -c requirements/common-constraints.txt
# scipy
@ -485,14 +481,12 @@ tree-sitter-yaml==0.7.0
typing-extensions==4.13.2
# via
# -c requirements/common-constraints.txt
# anyio
# beautifulsoup4
# google-generativeai
# huggingface-hub
# openai
# pydantic
# pydantic-core
# referencing
# typing-inspection
typing-inspection==0.4.0
# via
@ -524,5 +518,7 @@ zipp==3.21.0
# -c requirements/common-constraints.txt
# importlib-metadata
tree-sitter==0.23.2; python_version < "3.10"
tree-sitter==0.24.0; python_version >= "3.10"
tree-sitter>=0.24.0
# Remove if Python 3.13 support https://github.com/jiaaro/pydub/pull/816 gets released
audioop-lts>=0.2.1; python_version >= "3.13"

View file

@ -9,6 +9,8 @@ aiohttp==3.11.18
# llama-index-core
aiosignal==1.3.2
# via aiohttp
aiosqlite==0.21.0
# via llama-index-core
altair==5.5.0
# via streamlit
annotated-types==0.7.0
@ -103,7 +105,7 @@ filetype==1.2.0
# via llama-index-core
flake8==7.2.0
# via -r requirements/requirements.in
fonttools==4.57.0
fonttools==4.58.0
# via matplotlib
frozenlist==1.6.0
# via
@ -142,7 +144,7 @@ google-auth==2.40.1
# google-generativeai
google-auth-httplib2==0.2.0
# via google-api-python-client
google-cloud-bigquery==3.31.0
google-cloud-bigquery==3.32.0
# via -r requirements/requirements-dev.in
google-cloud-core==2.4.3
# via google-cloud-bigquery
@ -172,8 +174,6 @@ grpcio-status==1.71.0
# via google-api-core
h11==0.16.0
# via httpcore
hf-xet==1.1.0
# via huggingface-hub
httpcore==1.0.9
# via httpx
httplib2==0.22.0
@ -185,7 +185,7 @@ httpx==0.28.1
# litellm
# llama-index-core
# openai
huggingface-hub[inference]==0.31.1
huggingface-hub[inference]==0.31.2
# via
# llama-index-embeddings-huggingface
# sentence-transformers
@ -233,13 +233,13 @@ jsonschema-specifications==2025.4.1
# via jsonschema
kiwisolver==1.4.8
# via matplotlib
litellm==1.68.1
litellm==1.69.2
# via -r requirements/requirements.in
llama-index-core==0.12.26
llama-index-core==0.12.35
# via
# -r requirements/requirements-help.in
# llama-index-embeddings-huggingface
llama-index-embeddings-huggingface==0.5.3
llama-index-embeddings-huggingface==0.5.4
# via -r requirements/requirements-help.in
lox==0.13.0
# via -r requirements/requirements-dev.in
@ -269,7 +269,7 @@ multiprocess==0.70.18
# via pathos
mypy-extensions==1.1.0
# via typing-inspect
narwhals==1.38.2
narwhals==1.39.0
# via altair
nest-asyncio==1.6.0
# via llama-index-core
@ -282,7 +282,7 @@ nltk==3.9.1
# via llama-index-core
nodeenv==1.9.1
# via pre-commit
numpy==1.26.4
numpy==2.2.5
# via
# -r requirements/requirements-help.in
# contourpy
@ -482,8 +482,10 @@ semver==3.0.4
# via -r requirements/requirements-dev.in
sentence-transformers==4.1.0
# via llama-index-embeddings-huggingface
setuptools==80.3.1
# via pip-tools
setuptools==80.4.0
# via
# pip-tools
# torch
shellingham==1.5.4
# via typer
shtab==1.7.2
@ -507,9 +509,9 @@ soundfile==0.13.1
# via -r requirements/requirements.in
soupsieve==2.7
# via beautifulsoup4
sqlalchemy[asyncio]==2.0.40
sqlalchemy[asyncio]==2.0.41
# via llama-index-core
streamlit==1.45.0
streamlit==1.45.1
# via -r requirements/requirements-browser.in
sympy==1.14.0
# via torch
@ -529,7 +531,7 @@ tokenizers==0.21.1
# transformers
toml==0.10.2
# via streamlit
torch==2.2.2
torch==2.7.0
# via
# -r requirements/requirements-help.in
# sentence-transformers
@ -556,12 +558,12 @@ tree-sitter-language-pack==0.7.3
# via grep-ast
tree-sitter-yaml==0.7.0
# via tree-sitter-language-pack
typer==0.15.3
typer==0.15.4
# via -r requirements/requirements-dev.in
typing-extensions==4.13.2
# via
# aiosqlite
# altair
# anyio
# beautifulsoup4
# google-generativeai
# huggingface-hub
@ -570,7 +572,6 @@ typing-extensions==4.13.2
# pydantic
# pydantic-core
# pyee
# referencing
# sentence-transformers
# sqlalchemy
# streamlit

2
requirements/pydub.in Normal file
View file

@ -0,0 +1,2 @@
# Remove if Python 3.13 support https://github.com/jiaaro/pydub/pull/816 gets released
audioop-lts>=0.2.1; python_version >= "3.13"

View file

@ -58,11 +58,11 @@ markupsafe==3.0.2
# via
# -c requirements/common-constraints.txt
# jinja2
narwhals==1.38.2
narwhals==1.39.0
# via
# -c requirements/common-constraints.txt
# altair
numpy==1.26.4
numpy==2.2.5
# via
# -c requirements/common-constraints.txt
# pandas
@ -123,7 +123,7 @@ smmap==5.0.2
# via
# -c requirements/common-constraints.txt
# gitdb
streamlit==1.45.0
streamlit==1.45.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-browser.in
@ -143,7 +143,6 @@ typing-extensions==4.13.2
# via
# -c requirements/common-constraints.txt
# altair
# referencing
# streamlit
tzdata==2025.2
# via

View file

@ -54,7 +54,7 @@ filelock==3.18.0
# via
# -c requirements/common-constraints.txt
# virtualenv
fonttools==4.57.0
fonttools==4.58.0
# via
# -c requirements/common-constraints.txt
# matplotlib
@ -69,7 +69,7 @@ google-auth==2.40.1
# google-api-core
# google-cloud-bigquery
# google-cloud-core
google-cloud-bigquery==3.31.0
google-cloud-bigquery==3.32.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
@ -143,7 +143,7 @@ nodeenv==1.9.1
# via
# -c requirements/common-constraints.txt
# pre-commit
numpy==1.26.4
numpy==2.2.5
# via
# -c requirements/common-constraints.txt
# contourpy
@ -269,7 +269,7 @@ semver==3.0.4
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
setuptools==80.3.1
setuptools==80.4.0
# via
# -c requirements/common-constraints.txt
# pip-tools
@ -281,7 +281,7 @@ six==1.17.0
# via
# -c requirements/common-constraints.txt
# python-dateutil
typer==0.15.3
typer==0.15.4
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in

View file

@ -1,11 +1,11 @@
llama-index-embeddings-huggingface
# Because sentence-transformers doesn't like >=2
numpy<2
# sentence-transformers 4 requires numpy 2 (indirectly through scipy 1.14 which dropped Python 3.9 support)
numpy>=2
# Mac x86 only supports 2.2.2
# Drop Mac x86 support
# https://discuss.pytorch.org/t/why-no-macosx-x86-64-build-after-torch-2-2-2-cp39-none-macosx-10-9-x86-64-whl/204546/2
torch==2.2.2
torch>2.2.2
# Later versions break test_help in GitHub Actions on Windows and Ubuntu
llama-index-core==0.12.26
# Some llama-index-core versions > 0.12.26 broke test_help in GitHub Actions on Windows and Ubuntu
llama-index-core>=0.12.31

View file

@ -13,6 +13,10 @@ aiosignal==1.3.2
# via
# -c requirements/common-constraints.txt
# aiohttp
aiosqlite==0.21.0
# via
# -c requirements/common-constraints.txt
# llama-index-core
annotated-types==0.7.0
# via
# -c requirements/common-constraints.txt
@ -93,10 +97,6 @@ h11==0.16.0
# via
# -c requirements/common-constraints.txt
# httpcore
hf-xet==1.1.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
httpcore==1.0.9
# via
# -c requirements/common-constraints.txt
@ -105,7 +105,7 @@ httpx==0.28.1
# via
# -c requirements/common-constraints.txt
# llama-index-core
huggingface-hub[inference]==0.31.1
huggingface-hub[inference]==0.31.2
# via
# -c requirements/common-constraints.txt
# llama-index-embeddings-huggingface
@ -129,12 +129,12 @@ joblib==1.5.0
# -c requirements/common-constraints.txt
# nltk
# scikit-learn
llama-index-core==0.12.26
llama-index-core==0.12.35
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
# llama-index-embeddings-huggingface
llama-index-embeddings-huggingface==0.5.3
llama-index-embeddings-huggingface==0.5.4
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
@ -172,7 +172,7 @@ nltk==3.9.1
# via
# -c requirements/common-constraints.txt
# llama-index-core
numpy==1.26.4
numpy==2.2.5
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
@ -245,11 +245,15 @@ sentence-transformers==4.1.0
# via
# -c requirements/common-constraints.txt
# llama-index-embeddings-huggingface
setuptools==80.4.0
# via
# -c requirements/common-constraints.txt
# torch
sniffio==1.3.1
# via
# -c requirements/common-constraints.txt
# anyio
sqlalchemy[asyncio]==2.0.40
sqlalchemy[asyncio]==2.0.41
# via
# -c requirements/common-constraints.txt
# llama-index-core
@ -273,7 +277,7 @@ tokenizers==0.21.1
# via
# -c requirements/common-constraints.txt
# transformers
torch==2.2.2
torch==2.7.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
@ -293,7 +297,7 @@ transformers==4.51.3
typing-extensions==4.13.2
# via
# -c requirements/common-constraints.txt
# anyio
# aiosqlite
# huggingface-hub
# llama-index-core
# pydantic

View file

@ -1,3 +1 @@
tree-sitter==0.23.2; python_version < "3.10"
tree-sitter==0.24.0; python_version >= "3.10"
tree-sitter>=0.24.0

View file

@ -6,8 +6,11 @@ set -e
# Add verbosity flag to see more details about dependency resolution
VERBOSITY="-v" # Use -v for less detail, -vvv for even more detail
# Attention: uv doesn't update to minor releases when output-file exists!
# First compile the common constraints of the full requirement suite
# to make sure that all versions are mutually consistent across files
rm requirements/common-constraints.txt
uv pip compile \
$VERBOSITY \
--no-strip-extras \
@ -17,6 +20,7 @@ uv pip compile \
$1
# Compile the base requirements
rm tmp.requirements.txt
uv pip compile \
$VERBOSITY \
--no-strip-extras \
@ -25,14 +29,17 @@ uv pip compile \
requirements/requirements.in \
$1
grep -v ^tree-sitter= tmp.requirements.txt \
| cat - requirements/tree-sitter.in \
> requirements.txt
{
grep -v ^tree-sitter= tmp.requirements.txt
echo; cat requirements/tree-sitter.in
echo; cat requirements/pydub.in
} > requirements.txt
# Compile additional requirements files
SUFFIXES=(dev help browser playwright)
for SUFFIX in "${SUFFIXES[@]}"; do
rm requirements/requirements-${SUFFIX}.txt
uv pip compile \
$VERBOSITY \
--no-strip-extras \