This release introduces the new 2025 stable style (#4558), stabilizing
the following changes:
Normalize casing of Unicode escape characters in strings to lowercase (#2916)
Fix inconsistencies in whether certain strings are detected as docstrings (#4095)
Consistently add trailing commas to typed function parameters (#4164)
Remove redundant parentheses in if guards for case blocks (#4214)
Add parentheses to if clauses in case blocks when the line is too long (#4269)
Whitespace before # fmt: skip comments is no longer normalized (#4146)
Fix line length computation for certain expressions that involve the power operator (#4154)
Check if there is a newline before the terminating quotes of a docstring (#4185)
Fix type annotation spacing between * and more complex type variable tuple (#4440)
The following changes were not in any previous release:
Remove parentheses around sole list items (#4312)
Generic function definitions are now formatted more elegantly: parameters are
split over multiple lines first instead of type parameter definitions (#4553)
Stable style
Fix formatting cells in IPython notebooks with magic methods and starting or trailing
empty lines (#4484)
Fix crash when formatting with statements containing tuple generators/unpacking
(#4538)
Preview style
Fix/remove string merging changing f-string quotes on f-strings with internal quotes
(#4498)
Collapse multiple empty lines after an import into one (#4489)
Prevent string_processing and wrap_long_dict_values_in_parens from removing
parentheses around long dictionary values (#4377)
Move wrap_long_dict_values_in_parens from the unstable to preview style (#4561)
Packaging
Store license identifier inside the License-Expression metadata field, see PEP 639. (#4479)
Performance
Speed up the is_fstring_start function in Black's tokenizer (#4541)
Integrations
If using stdin with --stdin-filename set to a force excluded path, stdin won't be
formatted. (#4539)
The check for valid files to add should be filename, not self.files
Refactor and improve test structure for file modifications. 8b52174
Consolidated and restructured tests for modify_files into classes for better organization and clarity. Fixed an issue where empty file configurations were not properly ignored and enhanced filtering logic in configuration handling.
Replace list[str] with List[str] for Python 3.8+ compatibility. 6fb977c
Updated all instances of list[str] with the generic List[str] from the typing module to maintain compatibility with older Python versions (3.8 and earlier). This ensures consistent type annotations across the codebase.
This PR contains the following updates:
| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | dev | major | `^24.0.0` -> `^25.0.0` | |
| [bump-my-version](https://github.com/callowayproject/bump-my-version) | dev | major | `^0.33.0` -> `^1.0.0` | `1.1.1` (+1) |
| [isort](https://github.com/PyCQA/isort) ([changelog](https://github.com/PyCQA/isort/releases)) | dev | major | `^5.12.0` -> `^6.0.0` | |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2510)
[Compare Source](https://github.com/psf/black/compare/24.10.0...25.1.0)
##### Highlights
This release introduces the new 2025 stable style ([#​4558](https://github.com/psf/black/issues/4558)), stabilizing
the following changes:
- Normalize casing of Unicode escape characters in strings to lowercase ([#​2916](https://github.com/psf/black/issues/2916))
- Fix inconsistencies in whether certain strings are detected as docstrings ([#​4095](https://github.com/psf/black/issues/4095))
- Consistently add trailing commas to typed function parameters ([#​4164](https://github.com/psf/black/issues/4164))
- Remove redundant parentheses in if guards for case blocks ([#​4214](https://github.com/psf/black/issues/4214))
- Add parentheses to if clauses in case blocks when the line is too long ([#​4269](https://github.com/psf/black/issues/4269))
- Whitespace before `# fmt: skip` comments is no longer normalized ([#​4146](https://github.com/psf/black/issues/4146))
- Fix line length computation for certain expressions that involve the power operator ([#​4154](https://github.com/psf/black/issues/4154))
- Check if there is a newline before the terminating quotes of a docstring ([#​4185](https://github.com/psf/black/issues/4185))
- Fix type annotation spacing between `*` and more complex type variable tuple ([#​4440](https://github.com/psf/black/issues/4440))
The following changes were not in any previous release:
- Remove parentheses around sole list items ([#​4312](https://github.com/psf/black/issues/4312))
- Generic function definitions are now formatted more elegantly: parameters are
split over multiple lines first instead of type parameter definitions ([#​4553](https://github.com/psf/black/issues/4553))
##### Stable style
- Fix formatting cells in IPython notebooks with magic methods and starting or trailing
empty lines ([#​4484](https://github.com/psf/black/issues/4484))
- Fix crash when formatting `with` statements containing tuple generators/unpacking
([#​4538](https://github.com/psf/black/issues/4538))
##### Preview style
- Fix/remove string merging changing f-string quotes on f-strings with internal quotes
([#​4498](https://github.com/psf/black/issues/4498))
- Collapse multiple empty lines after an import into one ([#​4489](https://github.com/psf/black/issues/4489))
- Prevent `string_processing` and `wrap_long_dict_values_in_parens` from removing
parentheses around long dictionary values ([#​4377](https://github.com/psf/black/issues/4377))
- Move `wrap_long_dict_values_in_parens` from the unstable to preview style ([#​4561](https://github.com/psf/black/issues/4561))
##### Packaging
- Store license identifier inside the `License-Expression` metadata field, see
[PEP 639](https://peps.python.org/pep-0639/). ([#​4479](https://github.com/psf/black/issues/4479))
##### Performance
- Speed up the `is_fstring_start` function in Black's tokenizer ([#​4541](https://github.com/psf/black/issues/4541))
##### Integrations
- If using stdin with `--stdin-filename` set to a force excluded path, stdin won't be
formatted. ([#​4539](https://github.com/psf/black/issues/4539))
</details>
<details>
<summary>callowayproject/bump-my-version (bump-my-version)</summary>
### [`v1.0.2`](https://github.com/callowayproject/bump-my-version/blob/HEAD/CHANGELOG.md#102-2025-03-08)
[Compare Source](https://github.com/callowayproject/bump-my-version/compare/1.0.1...1.0.2)
[Compare the full difference.](https://github.com/callowayproject/bump-my-version/compare/1.0.1...1.0.2)
##### Fixes
- Fix incorrect evaluation. [3578c87](https://github.com/callowayproject/bump-my-version/commit/3578c872ef8143f11c22cb5e83765c6e69cf3eef)
The check for valid files to add should be `filename`, not `self.files`
- Refactor and improve test structure for file modifications. [8b52174](https://github.com/callowayproject/bump-my-version/commit/8b52174651e3c02daf3ba00166cd8f054498313d)
Consolidated and restructured tests for `modify_files` into classes for better organization and clarity. Fixed an issue where empty file configurations were not properly ignored and enhanced filtering logic in configuration handling.
Fixes [#​312](https://github.com/callowayproject/bump-my-version/issues/312)
##### Other
- Replace `list[str]` with `List[str]` for Python 3.8+ compatibility. [6fb977c](https://github.com/callowayproject/bump-my-version/commit/6fb977ca9144a590153e779c59c4c788efd1442f)
Updated all instances of `list[str]` with the generic `List[str]` from the `typing` module to maintain compatibility with older Python versions (3.8 and earlier). This ensures consistent type annotations across the codebase.
Fixes [#​313](https://github.com/callowayproject/bump-my-version/issues/313)
- \[pre-commit.ci] pre-commit autoupdate. [a057743](https://github.com/callowayproject/bump-my-version/commit/a0577433bd069f47d0e1eb368def4309f931a947)
**updates:** - [github.com/astral-sh/ruff-pre-commit: v0.9.7 → v0.9.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.9.7...v0.9.9)
### [`v1.0.1`](https://github.com/callowayproject/bump-my-version/blob/HEAD/CHANGELOG.md#101-2025-03-04)
[Compare Source](https://github.com/callowayproject/bump-my-version/compare/v1...1.0.1)
[Compare the full difference.](https://github.com/callowayproject/bump-my-version/compare/1.0.0...1.0.1)
##### Fixes
- Fix type hinting compatibility for 3.8. [9c2bb03](https://github.com/callowayproject/bump-my-version/commit/9c2bb03bee4c84ff97af415a47dfc57aea925c41)
Replaced `list` with `List` for type hints to ensure compatibility with earlier Python versions.
### [`v1.0.0`](https://github.com/callowayproject/bump-my-version/blob/HEAD/CHANGELOG.md#100-2025-03-02)
[Compare Source](https://github.com/callowayproject/bump-my-version/compare/0.33.0...v1)
[Compare the full difference.](https://github.com/callowayproject/bump-my-version/compare/0.33.0...1.0.0)
##### Breaking Changes
- Updated the Readme. [5a621c3](https://github.com/callowayproject/bump-my-version/commit/5a621c3ad28bb71e5e3d34fdae35769679c47f1b)
##### New
- Added breaking change parsing. [00c4e7b](https://github.com/callowayproject/bump-my-version/commit/00c4e7bcaa68040c71123d16c61aae89b525b13f)
</details>
<details>
<summary>PyCQA/isort (isort)</summary>
### [`v6.0.1`](https://github.com/PyCQA/isort/releases/tag/6.0.1)
[Compare Source](https://github.com/PyCQA/isort/compare/6.0.0...6.0.1)
#### Changes
- fix multi_line_output_modes docs ([#​2096](https://github.com/PyCQA/isort/issues/2096)) [@​xinydev](https://github.com/xinydev)
- Ruff rules PT for pytest ([#​2372](https://github.com/PyCQA/isort/issues/2372)) [@​cclauss](https://github.com/cclauss)
- Ruff rules B017, B028, and E203 ([#​2371](https://github.com/PyCQA/isort/issues/2371)) [@​cclauss](https://github.com/cclauss)
- Lint Python code with ruff ([#​2359](https://github.com/PyCQA/isort/issues/2359)) [@​cclauss](https://github.com/cclauss)
- Fix test_find_imports_in_file_error failing on Windows ([#​2369](https://github.com/PyCQA/isort/issues/2369)) [@​kobarity](https://github.com/kobarity)
- Move flake8 settings into pyproject.toml ([#​2360](https://github.com/PyCQA/isort/issues/2360)) [@​cclauss](https://github.com/cclauss)
- Upgrade to uv>=0.6.0 and enable-cache ([#​2364](https://github.com/PyCQA/isort/issues/2364)) [@​cclauss](https://github.com/cclauss)
- Apply some ruff rules ([#​2353](https://github.com/PyCQA/isort/issues/2353)) [@​cclauss](https://github.com/cclauss)
#### :beetle: Fixes
- Add OSError handling in find_imports_in_file ([#​2331](https://github.com/PyCQA/isort/issues/2331)) [@​kobarity](https://github.com/kobarity)
- Link GH as changelog ([#​2354](https://github.com/PyCQA/isort/issues/2354)) [@​staticdev](https://github.com/staticdev)
#### :construction_worker: Continuous Integration
- Remove Safety ([#​2373](https://github.com/PyCQA/isort/issues/2373)) [@​staticdev](https://github.com/staticdev)
### [`v6.0.0`](https://github.com/PyCQA/isort/releases/tag/6.0.0)
[Compare Source](https://github.com/PyCQA/isort/compare/5.13.2...6.0.0)
#### Changes
#### :boom: Breaking Changes
- Remove support for Python 3.8 ([#​2327](https://github.com/PyCQA/isort/issues/2327)) [@​DanielNoord](https://github.com/DanielNoord)
#### :rocket: Features
- Python 3.13 support ([#​2306](https://github.com/PyCQA/isort/issues/2306)) [@​mayty](https://github.com/mayty)
- Updates round 3 ([#​2334](https://github.com/PyCQA/isort/issues/2334)) [@​matthewhughes934](https://github.com/matthewhughes934)
- Speed up exists_case_sensitive calls ([#​2264](https://github.com/PyCQA/isort/issues/2264)) [@​correctmost](https://github.com/correctmost)
- nit: Fix deprecation message link ([#​2220](https://github.com/PyCQA/isort/issues/2220)) [@​syou6162](https://github.com/syou6162)
- Ensure that split_on_trailing_comma works with `as` imports ([#​2340](https://github.com/PyCQA/isort/issues/2340)) [@​DanielNoord](https://github.com/DanielNoord)
- Black profile: enable magic comma ([#​2236](https://github.com/PyCQA/isort/issues/2236)) [@​MrMino](https://github.com/MrMino)
- Fix google style test ([#​2336](https://github.com/PyCQA/isort/issues/2336)) [@​DanielNoord](https://github.com/DanielNoord)
- Update line_length and single_line_exclusions in google profile ([#​2149](https://github.com/PyCQA/isort/issues/2149)) [@​jagapiou](https://github.com/jagapiou)
- Updates round 2 ([#​2329](https://github.com/PyCQA/isort/issues/2329)) [@​matthewhughes934](https://github.com/matthewhughes934)
- Dependency updates round 1 ([#​2325](https://github.com/PyCQA/isort/issues/2325)) [@​matthewhughes934](https://github.com/matthewhughes934)
- Run `pre-commit autoupdate` ([#​2321](https://github.com/PyCQA/isort/issues/2321)) [@​kurtmckee](https://github.com/kurtmckee)
#### :beetle: Fixes
- Allow `--diff` to be used with `--jobs` ([#​2302](https://github.com/PyCQA/isort/issues/2302)) [@​mnakama](https://github.com/mnakama)
- `wemake` has 80 chars hard limit, not 79 ([#​2241](https://github.com/PyCQA/isort/issues/2241)) [@​sobolevn](https://github.com/sobolevn)
- Fix errors on `main` ([#​2320](https://github.com/PyCQA/isort/issues/2320)) [@​DanielNoord](https://github.com/DanielNoord)
- Fixed syntax error ([#​2289](https://github.com/PyCQA/isort/issues/2289)) [@​Sergio-prog](https://github.com/Sergio-prog)
- fix: typo ([#​2298](https://github.com/PyCQA/isort/issues/2298)) [@​Rotzbua](https://github.com/Rotzbua)
- Fix `sort_reexports` code mangling ([#​2283](https://github.com/PyCQA/isort/issues/2283)) [@​Helveg](https://github.com/Helveg)
- fix: correct group by package tokenization ([#​2136](https://github.com/PyCQA/isort/issues/2136)) [@​glasnt](https://github.com/glasnt)
- Fix isort-action usage documentation ([#​2297](https://github.com/PyCQA/isort/issues/2297)) [@​jamescurtin](https://github.com/jamescurtin)
- Fix CDN for Ace ([#​2127](https://github.com/PyCQA/isort/issues/2127)) [@​abitrolly](https://github.com/abitrolly)
- Fix help text ([#​2229](https://github.com/PyCQA/isort/issues/2229)) [@​stweil](https://github.com/stweil)
- docs: fix spelling mistake ([#​2249](https://github.com/PyCQA/isort/issues/2249)) [@​cachho](https://github.com/cachho)
#### :construction_worker: Continuous Integration
- UV replacement of Poetry ([#​2349](https://github.com/PyCQA/isort/issues/2349)) [@​staticdev](https://github.com/staticdev)
- Make actions happy ([#​2311](https://github.com/PyCQA/isort/issues/2311)) [@​matthewhughes934](https://github.com/matthewhughes934)
- Fix GitHub Actions badges ([#​2326](https://github.com/PyCQA/isort/issues/2326)) [@​hugovk](https://github.com/hugovk)
- Eliminate `actions/cache@v2` usage ([#​2322](https://github.com/PyCQA/isort/issues/2322)) [@​kurtmckee](https://github.com/kurtmckee)
- feat: add dependabot for GH action update ([#​2300](https://github.com/PyCQA/isort/issues/2300)) [@​Rotzbua](https://github.com/Rotzbua)
- Update stage names for `pre-commit` ([#​2296](https://github.com/PyCQA/isort/issues/2296)) [@​matthewhughes934](https://github.com/matthewhughes934)
#### :package: Dependencies
- Bump `poetry` to `2.0.1` ([#​2341](https://github.com/PyCQA/isort/issues/2341)) [@​DanielNoord](https://github.com/DanielNoord)
- Fix misc unsafe dependencies ([#​2345](https://github.com/PyCQA/isort/issues/2345)) [@​staticdev](https://github.com/staticdev)
- Bump the github-actions group across 1 directory with 5 updates ([#​2324](https://github.com/PyCQA/isort/issues/2324)) @​[dependabot\[bot\]](https://github.com/apps/dependabot)
- Bump gitpython from 3.1.40 to 3.1.41 ([#​2223](https://github.com/PyCQA/isort/issues/2223)) @​[dependabot\[bot\]](https://github.com/apps/dependabot)
- Bump jinja2 from 3.1.2 to 3.1.3 ([#​2224](https://github.com/PyCQA/isort/issues/2224)) @​[dependabot\[bot\]](https://github.com/apps/dependabot)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTMuMiIsInVwZGF0ZWRJblZlciI6IjM5LjIxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
^24.0.0->^25.0.0^0.33.0->^1.0.01.1.1(+1)^5.12.0->^6.0.0Release Notes
psf/black (black)
v25.1.0Compare Source
Highlights
This release introduces the new 2025 stable style (#4558), stabilizing
the following changes:
# fmt: skipcomments is no longer normalized (#4146)*and more complex type variable tuple (#4440)The following changes were not in any previous release:
split over multiple lines first instead of type parameter definitions (#4553)
Stable style
empty lines (#4484)
withstatements containing tuple generators/unpacking(#4538)
Preview style
(#4498)
string_processingandwrap_long_dict_values_in_parensfrom removingparentheses around long dictionary values (#4377)
wrap_long_dict_values_in_parensfrom the unstable to preview style (#4561)Packaging
License-Expressionmetadata field, seePEP 639. (#4479)
Performance
is_fstring_startfunction in Black's tokenizer (#4541)Integrations
--stdin-filenameset to a force excluded path, stdin won't beformatted. (#4539)
callowayproject/bump-my-version (bump-my-version)
v1.0.2Compare Source
Compare the full difference.
Fixes
Fix incorrect evaluation. 3578c87
The check for valid files to add should be
filename, notself.filesRefactor and improve test structure for file modifications. 8b52174
Consolidated and restructured tests for
modify_filesinto classes for better organization and clarity. Fixed an issue where empty file configurations were not properly ignored and enhanced filtering logic in configuration handling.Fixes #312
Other
Replace
list[str]withList[str]for Python 3.8+ compatibility. 6fb977cUpdated all instances of
list[str]with the genericList[str]from thetypingmodule to maintain compatibility with older Python versions (3.8 and earlier). This ensures consistent type annotations across the codebase.Fixes #313
[pre-commit.ci] pre-commit autoupdate. a057743
updates: - github.com/astral-sh/ruff-pre-commit: v0.9.7 → v0.9.9
v1.0.1Compare Source
Compare the full difference.
Fixes
Fix type hinting compatibility for 3.8. 9c2bb03
Replaced
listwithListfor type hints to ensure compatibility with earlier Python versions.v1.0.0Compare Source
Compare the full difference.
Breaking Changes
New
PyCQA/isort (isort)
v6.0.1Compare Source
Changes
🪲 Fixes
👷 Continuous Integration
v6.0.0Compare Source
Changes
💥 Breaking Changes
🚀 Features
asimports (#2340) @DanielNoordpre-commit autoupdate(#2321) @kurtmckee🪲 Fixes
--diffto be used with--jobs(#2302) @mnakamawemakehas 80 chars hard limit, not 79 (#2241) @sobolevnmain(#2320) @DanielNoordsort_reexportscode mangling (#2283) @Helveg👷 Continuous Integration
actions/cache@v2usage (#2322) @kurtmckeepre-commit(#2296) @matthewhughes934📦 Dependencies
poetryto2.0.1(#2341) @DanielNoordConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
de306a01e5to48536c910348536c9103to99edf04456