Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/typecheck/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ runs:
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
python-version: '3.15'

- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.14"]
python-version: ["3.15"]

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down Expand Up @@ -111,7 +111,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.14']
python-version: ['3.15']

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down Expand Up @@ -144,7 +144,7 @@ jobs:
uv run -- coverage report -m --sort=Miss --skip-covered --skip-empty

tests-wsl:
name: Tests WSL (3.14)
name: Tests WSL (3.15)
runs-on: windows-latest

steps:
Expand Down Expand Up @@ -175,14 +175,14 @@ jobs:
shell: wsl-bash {0}
run: |
export PATH="$HOME/.local/bin:$PATH"
env PYTHONPATH=/usr/local/lib/python3.14/site-packages pip install --upgrade --break-system-packages --prefix=/usr uv
env PYTHONPATH=/usr/local/lib/python3.15/site-packages pip install --upgrade --break-system-packages --prefix=/usr uv

- name: Install dependencies
shell: wsl-bash {0}
run: |
export PATH="$HOME/.local/bin:$PATH"
cd /root/mycli
uv sync --extra dev,llm,dataframe --python 3.14
uv sync --extra dev,llm,dataframe --python 3.15

- name: Start MySQL in WSL
shell: wsl-bash {0}
Expand Down Expand Up @@ -210,11 +210,11 @@ jobs:
run: |
export PATH="$HOME/.local/bin:$PATH"
cd /root/mycli
uv run --python 3.14 -- coverage run -m pytest
uv run --python 3.14 -- coverage report -m --sort=Miss --skip-covered --skip-empty
uv run --python 3.15 -- coverage run -m pytest
uv run --python 3.15 -- coverage report -m --sort=Miss --skip-covered --skip-empty

test-no-extras:
name: Tests Without Extras (3.14)
name: Tests Without Extras (3.15)
runs-on: ubuntu-26.04

steps:
Expand All @@ -227,14 +227,14 @@ jobs:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
python-version: '3.15'

- name: Start MySQL
run: |
sudo systemctl start mysql

- name: Install dependencies
run: uv sync --extra dev -p python3.14
run: uv sync --extra dev --python python3.15

- name: Wait for MySQL connection
run: |
Expand All @@ -248,7 +248,7 @@ jobs:
PYTEST_HOST: 127.0.0.1
TERM: xterm
run: |
./.venv/bin/tox -e py3.14
./.venv/bin/tox -e py3.15

docker-x86-build:
name: Build x86 Docker Image
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ jobs:
sudo systemctl start mysql

- name: Install dependencies
run: uv sync --extra dev,llm,dataframe -p ${{ matrix.python-version }}
run: uv sync --extra dev,llm,dataframe --python ${{ matrix.python-version }}

- name: Wait for MySQL connection
run: |
Expand All @@ -88,7 +88,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.14"]
python-version: ["3.15"]

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand All @@ -111,7 +111,7 @@ jobs:
brew services start mysql

- name: Install dependencies
run: uv sync --extra dev,llm,dataframe -p ${{ matrix.python-version }}
run: uv sync --extra dev,llm,dataframe --python ${{ matrix.python-version }}

- name: Wait for MySQL connection
run: |
Expand Down Expand Up @@ -139,7 +139,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.14']
python-version: ['3.15']

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand All @@ -155,7 +155,7 @@ jobs:

- name: Install dependencies
shell: cmd
run: uv sync --extra dev,llm,dataframe -p ${{ matrix.python-version }}
run: uv sync --extra dev,llm,dataframe --python ${{ matrix.python-version }}

- name: Set up MySQL
uses: shogo82148/actions-setup-mysql@1d4ebc60ba1227dd13fc7e6ba845bd3997928d75 # v1.54.2
Expand Down Expand Up @@ -204,14 +204,14 @@ jobs:
shell: wsl-bash {0}
run: |
export PATH="$HOME/.local/bin:$PATH"
env PYTHONPATH=/usr/local/lib/python3.14/site-packages pip install --upgrade --break-system-packages --prefix=/usr uv
env PYTHONPATH=/usr/local/lib/python3.15/site-packages pip install --upgrade --break-system-packages --prefix=/usr uv

- name: Install dependencies
shell: wsl-bash {0}
run: |
export PATH="$HOME/.local/bin:$PATH"
cd /root/mycli
uv sync --extra dev,llm,dataframe --python 3.14
uv sync --extra dev,llm,dataframe --python 3.15

- name: Start MySQL in WSL
shell: wsl-bash {0}
Expand Down Expand Up @@ -239,8 +239,8 @@ jobs:
run: |
export PATH="$HOME/.local/bin:$PATH"
cd /root/mycli
uv run --python 3.14 -- coverage run -m pytest
uv run --python 3.14 -- coverage report -m --sort=Miss --skip-covered --skip-empty
uv run --python 3.15 -- coverage run -m pytest
uv run --python 3.15 -- coverage report -m --sort=Miss --skip-covered --skip-empty

build:
runs-on: ubuntu-26.04
Expand All @@ -255,10 +255,10 @@ jobs:
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
python-version: '3.15'

- name: Install dependencies
run: uv sync --extra llm,dataframe -p 3.14
run: uv sync --extra llm,dataframe --python 3.15

- name: Build
run: uv build
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ To run the full test suite, execute `env -u PYTHONPATH uv run -- tox`.

#### Python Compatibility

Use Python features available from Python 3.11 through Python 3.14.
Use Python features available from Python 3.11 through Python 3.15.
Compatibility with Python 3.9 is not needed. Compatibility with Python
3.10 is not needed.

Expand Down
2 changes: 2 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Internal
* Remove temporary dependency settings in `pyproject.toml`.
* Upgrade `sqlglot` to v30.23.0.
* Add Python 3.15 to CI.
* Switch to Python 3.15 by default in CI.
* Switch to Python 3.15 in Dockerfile.


v2.29.4 (2026/10/11)
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.14
FROM python:3.15

ENV DEBIAN_FRONTEND=noninteractive

Expand Down
6 changes: 3 additions & 3 deletions mycli_test/pytests/test_special_db_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ def test_ping_command_registration() -> None:
def test_status_uses_global_queries_decodes_bytes_and_formats_stats(monkeypatch) -> None:
monkeypatch.setattr(db_commands, '__version__', '9.9.9')
monkeypatch.setattr(db_commands.platform, 'python_implementation', lambda: 'CPython')
monkeypatch.setattr(db_commands.platform, 'python_version', lambda: '3.14.0')
monkeypatch.setattr(db_commands.platform, 'python_version', lambda: '3.15.0')
monkeypatch.setattr(db_commands.io_commands, 'is_pager_enabled', lambda: True)
monkeypatch.setattr(db_commands, 'get_ssl_cipher', lambda cur: 'TLS_AES_256_GCM_SHA384')
monkeypatch.setattr(db_commands, 'get_ssl_version', lambda cur: 'TLSv1.3')
Expand Down Expand Up @@ -273,7 +273,7 @@ def test_status_uses_global_queries_decodes_bytes_and_formats_stats(monkeypatch)

result = status(cursor)[0]

assert 'mycli 9.9.9 running on CPython 3.14.0' in result.preamble
assert 'mycli 9.9.9 running on CPython 3.15.0' in result.preamble
assert ('Connection id:', 42) in result.rows
assert ('Current database:', 'test_db') in result.rows
assert ('Current user:', 'test_user') in result.rows
Expand Down Expand Up @@ -349,7 +349,7 @@ def test_status_uses_system_default_pager_when_enabled_without_env(monkeypatch)
monkeypatch.setattr(db_commands.io_commands, 'is_pager_enabled', lambda: True)
monkeypatch.setattr(db_commands, 'get_ssl_version', lambda cur: 'TLS')
monkeypatch.setattr(db_commands.platform, 'python_implementation', lambda: 'CPython')
monkeypatch.setattr(db_commands.platform, 'python_version', lambda: '3.14.0')
monkeypatch.setattr(db_commands.platform, 'python_version', lambda: '3.15.0')
monkeypatch.delenv('PAGER', raising=False)

cursor = FakeCursor(
Expand Down
Loading