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 runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ["3.10", "3.11", "3.12"] python-version: ["3.10", "3.11", "3.12", "3.13"]
steps: steps:
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}

View file

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

View file

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

View file

@ -15,7 +15,7 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
strategy: strategy:
matrix: matrix:
python-version: ["3.10", "3.11", "3.12"] python-version: ["3.10", "3.11", "3.12", "3.13"]
defaults: defaults:
run: run:
shell: pwsh # Use PowerShell for all run steps 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. 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 python -m venv /path/to/venv
@ -155,7 +155,7 @@ The built documentation will be available in the `aider/website/_site` directory
### Python Compatibility ### 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 ### 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: 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 - `.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. 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 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 Also see the
[docs on other methods for installing pipx itself](https://pipx.pypa.io/stable/installation/). [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. 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 ```bash
python -m pip install -U --upgrade-strategy only-if-needed aider-chat 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. 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. 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.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python", "Programming Language :: Python",
"Topic :: Software Development", "Topic :: Software Development",
] ]
requires-python = ">=3.10,<3.13" requires-python = ">=3.10,<3.14"
dynamic = ["dependencies", "optional-dependencies", "version"] dynamic = ["dependencies", "optional-dependencies", "version"]
[project.urls] [project.urls]

View file

@ -154,10 +154,6 @@ h11==0.16.0
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# httpcore # httpcore
hf-xet==1.1.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
httpcore==1.0.9 httpcore==1.0.9
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
@ -172,7 +168,7 @@ httpx==0.28.1
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# litellm # litellm
# openai # openai
huggingface-hub==0.31.1 huggingface-hub==0.31.2
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# tokenizers # tokenizers
@ -213,7 +209,7 @@ jsonschema-specifications==2025.4.1
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# jsonschema # jsonschema
litellm==1.68.1 litellm==1.69.2
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# -r requirements/requirements.in # -r requirements/requirements.in
@ -250,7 +246,7 @@ networkx==3.4.2
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# -r requirements/requirements.in # -r requirements/requirements.in
numpy==1.26.4 numpy==2.2.5
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# scipy # scipy
@ -485,14 +481,12 @@ tree-sitter-yaml==0.7.0
typing-extensions==4.13.2 typing-extensions==4.13.2
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# anyio
# beautifulsoup4 # beautifulsoup4
# google-generativeai # google-generativeai
# huggingface-hub # huggingface-hub
# openai # openai
# pydantic # pydantic
# pydantic-core # pydantic-core
# referencing
# typing-inspection # typing-inspection
typing-inspection==0.4.0 typing-inspection==0.4.0
# via # via
@ -524,5 +518,7 @@ zipp==3.21.0
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# importlib-metadata # importlib-metadata
tree-sitter==0.23.2; python_version < "3.10" tree-sitter>=0.24.0
tree-sitter==0.24.0; python_version >= "3.10"
# 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 # llama-index-core
aiosignal==1.3.2 aiosignal==1.3.2
# via aiohttp # via aiohttp
aiosqlite==0.21.0
# via llama-index-core
altair==5.5.0 altair==5.5.0
# via streamlit # via streamlit
annotated-types==0.7.0 annotated-types==0.7.0
@ -103,7 +105,7 @@ filetype==1.2.0
# via llama-index-core # via llama-index-core
flake8==7.2.0 flake8==7.2.0
# via -r requirements/requirements.in # via -r requirements/requirements.in
fonttools==4.57.0 fonttools==4.58.0
# via matplotlib # via matplotlib
frozenlist==1.6.0 frozenlist==1.6.0
# via # via
@ -142,7 +144,7 @@ google-auth==2.40.1
# google-generativeai # google-generativeai
google-auth-httplib2==0.2.0 google-auth-httplib2==0.2.0
# via google-api-python-client # via google-api-python-client
google-cloud-bigquery==3.31.0 google-cloud-bigquery==3.32.0
# via -r requirements/requirements-dev.in # via -r requirements/requirements-dev.in
google-cloud-core==2.4.3 google-cloud-core==2.4.3
# via google-cloud-bigquery # via google-cloud-bigquery
@ -172,8 +174,6 @@ grpcio-status==1.71.0
# via google-api-core # via google-api-core
h11==0.16.0 h11==0.16.0
# via httpcore # via httpcore
hf-xet==1.1.0
# via huggingface-hub
httpcore==1.0.9 httpcore==1.0.9
# via httpx # via httpx
httplib2==0.22.0 httplib2==0.22.0
@ -185,7 +185,7 @@ httpx==0.28.1
# litellm # litellm
# llama-index-core # llama-index-core
# openai # openai
huggingface-hub[inference]==0.31.1 huggingface-hub[inference]==0.31.2
# via # via
# llama-index-embeddings-huggingface # llama-index-embeddings-huggingface
# sentence-transformers # sentence-transformers
@ -233,13 +233,13 @@ jsonschema-specifications==2025.4.1
# via jsonschema # via jsonschema
kiwisolver==1.4.8 kiwisolver==1.4.8
# via matplotlib # via matplotlib
litellm==1.68.1 litellm==1.69.2
# via -r requirements/requirements.in # via -r requirements/requirements.in
llama-index-core==0.12.26 llama-index-core==0.12.35
# via # via
# -r requirements/requirements-help.in # -r requirements/requirements-help.in
# llama-index-embeddings-huggingface # llama-index-embeddings-huggingface
llama-index-embeddings-huggingface==0.5.3 llama-index-embeddings-huggingface==0.5.4
# via -r requirements/requirements-help.in # via -r requirements/requirements-help.in
lox==0.13.0 lox==0.13.0
# via -r requirements/requirements-dev.in # via -r requirements/requirements-dev.in
@ -269,7 +269,7 @@ multiprocess==0.70.18
# via pathos # via pathos
mypy-extensions==1.1.0 mypy-extensions==1.1.0
# via typing-inspect # via typing-inspect
narwhals==1.38.2 narwhals==1.39.0
# via altair # via altair
nest-asyncio==1.6.0 nest-asyncio==1.6.0
# via llama-index-core # via llama-index-core
@ -282,7 +282,7 @@ nltk==3.9.1
# via llama-index-core # via llama-index-core
nodeenv==1.9.1 nodeenv==1.9.1
# via pre-commit # via pre-commit
numpy==1.26.4 numpy==2.2.5
# via # via
# -r requirements/requirements-help.in # -r requirements/requirements-help.in
# contourpy # contourpy
@ -482,8 +482,10 @@ semver==3.0.4
# via -r requirements/requirements-dev.in # via -r requirements/requirements-dev.in
sentence-transformers==4.1.0 sentence-transformers==4.1.0
# via llama-index-embeddings-huggingface # via llama-index-embeddings-huggingface
setuptools==80.3.1 setuptools==80.4.0
# via pip-tools # via
# pip-tools
# torch
shellingham==1.5.4 shellingham==1.5.4
# via typer # via typer
shtab==1.7.2 shtab==1.7.2
@ -507,9 +509,9 @@ soundfile==0.13.1
# via -r requirements/requirements.in # via -r requirements/requirements.in
soupsieve==2.7 soupsieve==2.7
# via beautifulsoup4 # via beautifulsoup4
sqlalchemy[asyncio]==2.0.40 sqlalchemy[asyncio]==2.0.41
# via llama-index-core # via llama-index-core
streamlit==1.45.0 streamlit==1.45.1
# via -r requirements/requirements-browser.in # via -r requirements/requirements-browser.in
sympy==1.14.0 sympy==1.14.0
# via torch # via torch
@ -529,7 +531,7 @@ tokenizers==0.21.1
# transformers # transformers
toml==0.10.2 toml==0.10.2
# via streamlit # via streamlit
torch==2.2.2 torch==2.7.0
# via # via
# -r requirements/requirements-help.in # -r requirements/requirements-help.in
# sentence-transformers # sentence-transformers
@ -556,12 +558,12 @@ tree-sitter-language-pack==0.7.3
# via grep-ast # via grep-ast
tree-sitter-yaml==0.7.0 tree-sitter-yaml==0.7.0
# via tree-sitter-language-pack # via tree-sitter-language-pack
typer==0.15.3 typer==0.15.4
# via -r requirements/requirements-dev.in # via -r requirements/requirements-dev.in
typing-extensions==4.13.2 typing-extensions==4.13.2
# via # via
# aiosqlite
# altair # altair
# anyio
# beautifulsoup4 # beautifulsoup4
# google-generativeai # google-generativeai
# huggingface-hub # huggingface-hub
@ -570,7 +572,6 @@ typing-extensions==4.13.2
# pydantic # pydantic
# pydantic-core # pydantic-core
# pyee # pyee
# referencing
# sentence-transformers # sentence-transformers
# sqlalchemy # sqlalchemy
# streamlit # 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 # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# jinja2 # jinja2
narwhals==1.38.2 narwhals==1.39.0
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# altair # altair
numpy==1.26.4 numpy==2.2.5
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# pandas # pandas
@ -123,7 +123,7 @@ smmap==5.0.2
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# gitdb # gitdb
streamlit==1.45.0 streamlit==1.45.1
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# -r requirements/requirements-browser.in # -r requirements/requirements-browser.in
@ -143,7 +143,6 @@ typing-extensions==4.13.2
# via # via
# -c requirements/common-constraints.txt # -c requirements/common-constraints.txt
# altair # altair
# referencing
# streamlit # streamlit
tzdata==2025.2 tzdata==2025.2
# via # via

View file

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

View file

@ -1,11 +1,11 @@
llama-index-embeddings-huggingface llama-index-embeddings-huggingface
# Because sentence-transformers doesn't like >=2 # sentence-transformers 4 requires numpy 2 (indirectly through scipy 1.14 which dropped Python 3.9 support)
numpy<2 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 # 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 # Some llama-index-core versions > 0.12.26 broke test_help in GitHub Actions on Windows and Ubuntu
llama-index-core==0.12.26 llama-index-core>=0.12.31

View file

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

View file

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

View file

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