Skip to content

Conversation

@cooperlees
Copy link
Collaborator

@cooperlees cooperlees commented Oct 22, 2025

Description

  • State in pyproject that we somewhat work in 3.14
  • Enable py314 tox
  • Add base testing action so we don't regress

Note: We don't support some 3.14 grammar/parsing still

Test:

  • Install in 3.14 and format something
MacBookPro:black cooper$ python3 -V
Python 3.14.0
MacBookPro:black cooper$ python3 -m venv --upgrade-deps /tmp/tb
t/mp/MacBookPro:black cooper$ /tmp/tb/bin/pip install -e .
...
MacBookPro:black cooper$ time /tmp/tb/bin/black ../bandersnatch/ ../flake8-bugbear/
All done! ✨ 🍰 ✨
134 files left unchanged.

real    0m0.189s
user    0m0.159s
sys    0m0.036s
  • Run linting/tests:
  • /tmp/tb/bin/tox -e py314
  • /tmp/tb/bin/pre-commit run -a
    • TODO: flake8 + mypy still do not pass in 3.14
    • Let's do in dedicated PR later

Checklist - did you ...

  • Implement any code style changes under the --preview style, following the
    stability policy?
  • Add an entry in CHANGES.md if necessary?
  • Add / update tests if necessary?
  • Add new / update outdated documentation?

- State in pyproject that we somewhat work in 3.14
- Enable py314 tox
- Add base testing action so we don't regress

**Note:** We don't support some 3.14 grammar/parsing still

Test:
- Install in 3.14 and format something
```
MacBookPro:black cooper$ python3 -V
Python 3.14.0
MacBookPro:black cooper$ python3 -m venv --upgrade-deps /tmp/tb
t/mp/MacBookPro:black cooper$ /tmp/tb/bin/pip install -e .
...
MacBookPro:black cooper$ time /tmp/tb/bin/black ../bandersnatch/ ../flake8-bugbear/
All done! ✨ 🍰 ✨
134 files left unchanged.

real    0m0.189s
user    0m0.159s
sys    0m0.036s
```
- Run linting/tests:
- `/tmp/tb/bin/tox -e py314`
- `/tmp/tb/bin/pre-commit run -a`
  - TODO: flake8 + mypy still do not pass in 3.14
  - Let's do in dedicated PR later
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to take this out until we have what we think is all parsing support ...

@github-actions
Copy link

diff-shades reports zero changes comparing this PR (f2ca52e) to main (27a3085).


What is this? | Workflow run | diff-shades documentation

@cooperlees cooperlees marked this pull request as ready for review October 22, 2025 03:01
@cooperlees cooperlees requested a review from Copilot October 22, 2025 16:33
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds initial support for Python 3.14 to the project's CI/CD infrastructure and package metadata, though full grammar/parsing support is not yet complete.

Key changes:

  • Added Python 3.14 to the test matrix in CI workflows and tox configuration
  • Declared Python 3.14 compatibility in the package classifiers
  • Documented the changes in CHANGES.md

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
tox.ini Added py314 to the list of test environments
pyproject.toml Added Python 3.14 classifier to declare compatibility
CHANGES.md Documented the addition of Python 3.14 support in two separate entries
.github/workflows/test.yml Added Python 3.14 to the CI test matrix

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@cooperlees cooperlees merged commit 6122359 into main Oct 22, 2025
30 checks passed
@cooperlees cooperlees deleted the 3_14 branch October 22, 2025 18:17
luketainton pushed a commit to luketainton/roboluke-tasks that referenced this pull request Nov 10, 2025
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/black/25.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.9.0/25.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)

[Compare Source](psf/black@25.9.0...25.11.0)

##### Highlights

- Enable base 3.14 support ([#&#8203;4804](psf/black#4804))
- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#&#8203;4805](psf/black#4805))

##### Stable style

- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#&#8203;4811](psf/black#4811))
- Comments containing fmt directives now preserve their exact formatting instead of
  being normalized ([#&#8203;4811](psf/black#4811))

##### Preview style

- Move `multiline_string_handling` from `--unstable` to `--preview` ([#&#8203;4760](psf/black#4760))
- Fix bug where module docstrings would be treated as normal strings if preceded by
  comments ([#&#8203;4764](psf/black#4764))
- Fix bug where python 3.12 generics syntax split line happens weirdly ([#&#8203;4777](psf/black#4777))
- Standardize type comments to form `# type: <value>` ([#&#8203;4645](psf/black#4645))
- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound
  statements with semicolon-separated bodies ([#&#8203;4800](psf/black#4800))

##### Configuration

- Add `no_cache` option to control caching behavior. ([#&#8203;4803](psf/black#4803))

##### Packaging

- Releases now include arm64 Linux binaries ([#&#8203;4773](psf/black#4773))

##### Output

- Write unchanged content to stdout when excluding formatting from stdin using pipes
  ([#&#8203;4610](psf/black#4610))

##### *Blackd*

- Implemented BlackDClient. This simple python client allows to easily send formatting
  requests to blackd ([#&#8203;4774](psf/black#4774))

##### Integrations

- Enable 3.14 base CI ([#&#8203;4804](psf/black#4804))
- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only
  "stability" format when using pyproject.toml ([#&#8203;4770](psf/black#4770))
- Improve error message for vim plugin users. It now handles independently vim version
- Vim: Warn on unsupported Vim and Python versions independently ([#&#8203;4772](psf/black#4772))
- Vim: Print the import paths when importing black fails ([#&#8203;4675](psf/black#4675))
- Vim: Fix handling of virtualenvs that have a different Python version ([#&#8203;4675](psf/black#4675))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->

Reviewed-on: https://git.tainton.uk/repos/roboluke/pulls/393
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
luketainton pushed a commit to luketainton/epage that referenced this pull request Nov 10, 2025
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/black/25.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.9.0/25.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)

[Compare Source](psf/black@25.9.0...25.11.0)

##### Highlights

- Enable base 3.14 support ([#&#8203;4804](psf/black#4804))
- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#&#8203;4805](psf/black#4805))

##### Stable style

- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#&#8203;4811](psf/black#4811))
- Comments containing fmt directives now preserve their exact formatting instead of
  being normalized ([#&#8203;4811](psf/black#4811))

##### Preview style

- Move `multiline_string_handling` from `--unstable` to `--preview` ([#&#8203;4760](psf/black#4760))
- Fix bug where module docstrings would be treated as normal strings if preceded by
  comments ([#&#8203;4764](psf/black#4764))
- Fix bug where python 3.12 generics syntax split line happens weirdly ([#&#8203;4777](psf/black#4777))
- Standardize type comments to form `# type: <value>` ([#&#8203;4645](psf/black#4645))
- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound
  statements with semicolon-separated bodies ([#&#8203;4800](psf/black#4800))

##### Configuration

- Add `no_cache` option to control caching behavior. ([#&#8203;4803](psf/black#4803))

##### Packaging

- Releases now include arm64 Linux binaries ([#&#8203;4773](psf/black#4773))

##### Output

- Write unchanged content to stdout when excluding formatting from stdin using pipes
  ([#&#8203;4610](psf/black#4610))

##### *Blackd*

- Implemented BlackDClient. This simple python client allows to easily send formatting
  requests to blackd ([#&#8203;4774](psf/black#4774))

##### Integrations

- Enable 3.14 base CI ([#&#8203;4804](psf/black#4804))
- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only
  "stability" format when using pyproject.toml ([#&#8203;4770](psf/black#4770))
- Improve error message for vim plugin users. It now handles independently vim version
- Vim: Warn on unsupported Vim and Python versions independently ([#&#8203;4772](psf/black#4772))
- Vim: Print the import paths when importing black fails ([#&#8203;4675](psf/black#4675))
- Vim: Fix handling of virtualenvs that have a different Python version ([#&#8203;4675](psf/black#4675))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->

Reviewed-on: https://git.tainton.uk/repos/epage/pulls/176
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants