Skip to content
Open
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/workflows/build-distributions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ defaults:
shell: bash

env:
DIST_URL: "https://github.com/indygreg/python-build-standalone/releases/download"
DIST_URL: "https://github.com/astral-sh/python-build-standalone/releases/download"
DIST_VERSION: "20240415"
DIST_PYTHON_VERSION: "3.12.3"
PYTHONDONTWRITEBYTECODE: "1"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -115,7 +115,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']

steps:
- uses: actions/checkout@v4
Expand Down
12 changes: 12 additions & 0 deletions docs/history/hatch.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ All notable changes to Hatch will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.15.0](https://github.com/pypa/hatch/releases/tag/hatch-v1.15.0) - 2025-10-15 ## {: #hatch-v1.15.0 }

***Changed:***

- Drop support for Python 3.8

***Added:***

- Support Python 3.14
- Upgrade default CPython distributions to 20251014
- Upgrade default PyPy distributions to 7.3.20

## Unreleased

***Changed:***
Expand Down
4 changes: 2 additions & 2 deletions docs/how-to/environment/select-installer.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ tool = ["uv", "pip"]
[tool.hatch.envs.example.overrides]
matrix.tool.installer = { value = "{matrix:tool}" }
matrix.tool.scripts = [
{ key = "pip", value = "{env:HATCH_UV} pip {args}", if = ["uv"] },
{ key = "pip", value = '"{env:HATCH_UV}" pip {args}', if = ["uv"] },
]
```

Another common use case is to expose UV to all [test environments](../../config/internal/testing.md). In this case, you often wouldn't want to modify the `scripts` mapping directly but rather add an [extra script](../../config/environment/overview.md#extra-scripts):

```toml config-example
[tool.hatch.envs.hatch-test.extra-scripts]
pip = "{env:HATCH_UV} pip {args}"
pip = '"{env:HATCH_UV}" pip {args}'
```
4 changes: 3 additions & 1 deletion docs/plugins/environment/virtual.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,9 @@ The following options are recognized for internal Python resolution.
| `3.11` |
| `3.12` |
| `3.13` |
| `3.14` |

The source of distributions is the [python-build-standalone](https://github.com/indygreg/python-build-standalone) project.
The source of distributions is the [python-build-standalone](https://github.com/astral-sh/python-build-standalone) project.

Some distributions have [variants](https://gregoryszorc.com/docs/python-build-standalone/main/running.html) that may be configured with environment variables. Options may be combined.

Expand All @@ -86,6 +87,7 @@ Some distributions have [variants](https://gregoryszorc.com/docs/python-build-st
| `pypy2.7` |
| `pypy3.9` |
| `pypy3.10` |
| `pypy3.11` |

The source of distributions is the [PyPy](https://www.pypy.org) project.

Expand Down
20 changes: 12 additions & 8 deletions docs/tutorials/python/manage.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ $ hatch python show
┏━━━━━━┳━━━━━━━━━┓
┃ Name ┃ Version ┃
┡━━━━━━╇━━━━━━━━━┩
│ 3.12 │ 3.12.7
│ 3.12 │ 3.12.8
└──────┴─────────┘
Available
┏━━━━━━━━━━┳━━━━━━━━━┓
Expand All @@ -80,19 +80,23 @@ $ hatch python show
├──────────┼─────────┤
│ 3.8 │ 3.8.20 │
├──────────┼─────────┤
│ 3.9 │ 3.9.20
│ 3.9 │ 3.9.24
├──────────┼─────────┤
│ 3.10 │ 3.10.15
│ 3.10 │ 3.10.16
├──────────┼─────────┤
│ 3.11 │ 3.11.10
│ 3.11 │ 3.11.14
├──────────┼─────────┤
│ 3.13 │ 3.13.0
│ 3.13 │ 3.13.9
├──────────┼─────────┤
pypy2.7 │ 7.3.15
3.14 │ 3.14.0
├──────────┼─────────┤
pypy3.9 │ 7.3.15
pypy2.7 │ 7.3.20
├──────────┼─────────┤
│ pypy3.10 │ 7.3.15 │
│ pypy3.9 │ 7.3.16 │
├──────────┼─────────┤
│ pypy3.10 │ 7.3.19 │
├──────────┼─────────┤
│ pypy3.11 │ 7.3.20 │
└──────────┴─────────┘
```

Expand Down
4 changes: 2 additions & 2 deletions hatch.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ post-install-commands = [
extra-args = ["--dist", "worksteal"]

[envs.hatch-test.extra-scripts]
pip = "{env:HATCH_UV} pip {args}"
pip = '"{env:HATCH_UV}" pip {args}'

[envs.coverage]
detached = true
Expand Down Expand Up @@ -118,7 +118,7 @@ update-hatch = [
]
update-distributions = "python scripts/update_distributions.py"
update-ruff = [
"{env:HATCH_UV} pip install --upgrade ruff",
'"{env:HATCH_UV}" pip install --upgrade ruff',
"python scripts/update_ruff.py",
]

Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Build Tools",
Expand Down
2 changes: 1 addition & 1 deletion release/unix/make_scripts_portable.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
def main():
interpreter = Path(sys.executable).resolve()

# https://github.com/indygreg/python-build-standalone/blob/20240415/cpython-unix/build-cpython.sh#L812-L813
# https://github.com/astral-sh/python-build-standalone/blob/20240415/cpython-unix/build-cpython.sh#L812-L813
portable_shebang = b'#!/bin/sh\n"exec" "$(dirname $0)/%s" "$0" "$@"\n' % interpreter.name.encode()

scripts_dir = Path(sysconfig.get_path("scripts"))
Expand Down
2 changes: 1 addition & 1 deletion src/hatch/env/internal/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ def get_default_config() -> dict[str, Any]:
"cov-combine": "coverage combine",
"cov-report": "coverage report",
},
"matrix": [{"python": ["3.13", "3.12", "3.11", "3.10", "3.9", "3.8"]}],
"matrix": [{"python": ["3.14", "3.13", "3.12", "3.11", "3.10", "3.9"]}],
}
Loading