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
5 changes: 3 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ jobs:
fail-fast: false
matrix:
include:
- { python-version: "3.13", os: ubuntu-latest }
- { python-version: "3.13", os: windows-latest }
- { python-version: "3.13", os: macos-latest }
- { python-version: "3.12", os: ubuntu-latest }
- { python-version: "3.12", os: windows-latest }
- { python-version: "3.12", os: macos-latest }
- { python-version: "3.11", os: ubuntu-latest }
- { python-version: "3.10", os: ubuntu-latest }
- { python-version: "3.9", os: ubuntu-latest }
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update-instance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ jobs:
repository: "cjolowicz/${{ env.PROJECT }}"
path: ${{ env.PROJECT }}
token: ${{ secrets.X_GITHUB_TOKEN }}
- name: Set up Python 3.12
- name: Set up Python 3.13
uses: actions/setup-python@v4.5.0
with:
python-version: "3.12"
python-version: "3.13"
- name: Install cutty
working-directory: ${{ env.TEMPLATE }}
run: |
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ cookiecutter gh:cjolowicz/cookiecutter-hypermodern-python --checkout=2022.6.3
- Generate command-line reference with [sphinx-click]
- Manage project labels with [GitHub Labeler]

The template supports Python 3.9, 3.10, 3.11, and 3.12.
The template supports Python 3.9, 3.10, 3.11, 3.12, and 3.13.

[autodoc]: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html
[bandit]: https://github.com/PyCQA/bandit
Expand Down
1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"https://github.com/cjolowicz/cookiecutter-hypermodern-python/releases/tag/",
"https://cookiecutter-hypermodern-python.readthedocs.io",
"https://badgen.net/badge/status/alpha/d8624d",
"https://www.gnu.org/software/bash/"
]
myst_enable_extensions = [
"colon_fence",
Expand Down
54 changes: 28 additions & 26 deletions docs/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ python -VV
py -VV
```

Both of these commands should display the latest Python version, 3.12.
Both of these commands should display the latest Python version, 3.13.

For local testing with multiple Python versions,
repeat these steps for the latest bugfix releases of Python 3.9+,
Expand Down Expand Up @@ -137,21 +137,22 @@ Install the Python build dependencies for your platform,
using one of the commands listed in the [official instructions][pyenv wiki].

Install the latest point release of every supported Python version.
This project template supports Python 3.9, 3.10, 3.11, and 3.12.
This project template supports Python 3.9, 3.10, 3.11, 3.12, and 3.13.

```console
$ pyenv install 3.9.13
$ pyenv install 3.10.11
$ pyenv install 3.11.8
$ pyenv install 3.12.2
$ pyenv install 3.12.10
$ pyenv install 3.13.3
```

After creating your project (see [below](creating-a-project)),
you can make these Python versions accessible in the project directory,
using the following command:

```console
$ pyenv local 3.12.2 3.11.8 3.10.11 3.9.13
$ pyenv local 3.13.3 3.12.10 3.11.8 3.10.11 3.9.13
```

The first version listed is the one used when you type plain `python`.
Expand Down Expand Up @@ -980,10 +981,11 @@ $ poetry env use 3.9
$ poetry env use 3.10
$ poetry env use 3.11
$ poetry env use 3.12
$ poetry env use 3.13
```

Only one Poetry environment can be active at any time.
Note that `3.12` comes last,
Note that `3.13` comes last,
to ensure that the current Python release is the active environment.
Install your package with `poetry install` into each environment after creating it.

Expand Down Expand Up @@ -1156,7 +1158,7 @@ For example, the following may be more practical during development
(this will only run tests and type checks, on the current Python release):

```console
$ nox -p 3.12 -rs tests mypy
$ nox -p 3.13 -rs tests mypy
```

Many sessions accept additional options after `--` separator.
Expand All @@ -1182,39 +1184,39 @@ The following table gives an overview of the available Nox sessions:
- Default
- - [coverage](the-coverage-session)
- Report coverage with [Coverage.py]
- `3.12`
- `3.13`
- (✓)
- - [docs](the-docs-session)
- Build and serve [Sphinx] documentation
- `3.12`
- `3.13`
-
- - [docs-build](the-docs-build-session)
- Build [Sphinx] documentation
- `3.12`
- `3.13`
- ✓
- - [mypy](the-mypy-session)
- Type-check with [mypy]
- `3.9` … `3.12`
- `3.9` … `3.13`
- ✓
- - [pre-commit](the-pre-commit-session)
- Lint with [pre-commit]
- `3.12`
- `3.13`
- ✓
- - [safety](the-safety-session)
- Scan dependencies with [Safety]
- `3.12`
- `3.13`
- ✓
- - [tests](the-tests-session)
- Run tests with [pytest]
- `3.9` … `3.12`
- `3.9` … `3.13`
- ✓
- - [typeguard](the-typeguard-session)
- Type-check with [Typeguard]
- `3.12`
- `3.13`
- ✓
- - [xdoctest](the-xdoctest-session)
- Run examples with [xdoctest]
- `3.9` … `3.12`
- `3.9` … `3.13`
- ✓

:::
Expand Down Expand Up @@ -1274,7 +1276,7 @@ For example, the following command runs mypy
using the current stable release of Python:

```console
$ nox --session=mypy --python=3.12
$ nox --session=mypy --python=3.13
```

Use the separator `--` to pass additional options and arguments to `mypy`.
Expand Down Expand Up @@ -1348,7 +1350,7 @@ For example, the following command runs the test suite
using the current stable release of Python:

```console
$ nox --session=tests --python=3.12
$ nox --session=tests --python=3.13
```

Use the separator `--` to pass additional options to `pytest`.
Expand Down Expand Up @@ -1475,7 +1477,7 @@ For example, the following command runs the examples
using the current stable release of Python:

```console
$ nox --session=xdoctest --python=3.12
$ nox --session=xdoctest --python=3.13
```

By default, the Nox session uses the `all` subcommand to run all examples.
Expand Down Expand Up @@ -2269,28 +2271,28 @@ as shown in the table below:
- Python versions
- - [pre-commit](the-pre-commit-session)
- Ubuntu
- 3.12
- 3.13
- - [safety](the-safety-session)
- Ubuntu
- 3.12
- 3.13
- - [mypy](the-mypy-session)
- Ubuntu
- 3.12, 3.11, 3.10, 3.9
- 3.13, 3.12, 3.11, 3.10, 3.9
- - [tests](the-tests-session)
- Ubuntu
- 3.12, 3.11, 3.10, 3.9
- 3.13, 3.12, 3.11, 3.10, 3.9
- - [tests](the-tests-session)
- Windows
- 3.12
- 3.13
- - [tests](the-tests-session)
- macOS
- 3.12
- 3.13
- - [coverage](the-coverage-session)
- Ubuntu
- 3.12
- 3.13
- - [docs-build](the-docs-build-session)
- Ubuntu
- 3.12
- 3.13

:::

Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ $ pipx inject nox nox-poetry

[pipx] is preferred, but you can also install with `pip install --user`.

It is recommended to set up Python 3.9, 3.10, 3.11, and 3.12 using [pyenv].
It is recommended to set up Python 3.9, 3.10, 3.11, 3.12, and 3.13 using [pyenv].

## Creating a project

Expand Down
2 changes: 1 addition & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from nox.sessions import Session


python_versions = ["3.12", "3.11", "3.10", "3.9"]
python_versions = ["3.13", "3.12", "3.11", "3.10", "3.9"]

nox.options.sessions = ["docs"]
owner, repository = "56kyle", "cookiecutter-hypermodern-python"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
python-version: "3.13"

- name: Upgrade pip
run: |
Expand Down
18 changes: 10 additions & 8 deletions {{cookiecutter.project_name}}/.github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,23 @@ jobs:
fail-fast: false
matrix:
include:
- { python: "3.12", os: "ubuntu-latest", session: "pre-commit" }
- { python: "3.12", os: "ubuntu-latest", session: "safety" }
- { python: "3.13", os: "ubuntu-latest", session: "pre-commit" }
- { python: "3.13", os: "ubuntu-latest", session: "safety" }
- { python: "3.13", os: "ubuntu-latest", session: "mypy" }
- { python: "3.12", os: "ubuntu-latest", session: "mypy" }
- { python: "3.11", os: "ubuntu-latest", session: "mypy" }
- { python: "3.10", os: "ubuntu-latest", session: "mypy" }
- { python: "3.9", os: "ubuntu-latest", session: "mypy" }
- { python: "3.13", os: "ubuntu-latest", session: "tests" }
- { python: "3.12", os: "ubuntu-latest", session: "tests" }
- { python: "3.11", os: "ubuntu-latest", session: "tests" }
- { python: "3.10", os: "ubuntu-latest", session: "tests" }
- { python: "3.9", os: "ubuntu-latest", session: "tests" }
- { python: "3.12", os: "windows-latest", session: "tests" }
- { python: "3.12", os: "macos-latest", session: "tests" }
- { python: "3.12", os: "ubuntu-latest", session: "typeguard" }
- { python: "3.12", os: "ubuntu-latest", session: "xdoctest" }
- { python: "3.12", os: "ubuntu-latest", session: "docs-build" }
- { python: "3.13", os: "windows-latest", session: "tests" }
- { python: "3.13", os: "macos-latest", session: "tests" }
- { python: "3.13", os: "ubuntu-latest", session: "typeguard" }
- { python: "3.13", os: "ubuntu-latest", session: "xdoctest" }
- { python: "3.13", os: "ubuntu-latest", session: "docs-build" }

env:
NOXSESSION: ${{"{{"}} matrix.session {{"}}"}}
Expand Down Expand Up @@ -122,7 +124,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4.6.1
with:
python-version: "3.12"
python-version: "3.13"

- name: Upgrade pip
run: |
Expand Down
2 changes: 1 addition & 1 deletion {{cookiecutter.project_name}}/.readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: 2
build:
os: ubuntu-20.04
tools:
python: "3.12"
python: "3.13"
sphinx:
configuration: docs/conf.py
formats: all
Expand Down
2 changes: 1 addition & 1 deletion {{cookiecutter.project_name}}/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@


package = "{{cookiecutter.package_name}}"
python_versions = ["3.12", "3.11", "3.10", "3.9"]
python_versions = ["3.13", "3.12", "3.11", "3.10", "3.9"]
nox.needs_version = ">= 2021.6.6"
nox.options.sessions = (
"pre-commit",
Expand Down
Loading
Loading