<!-- Changes that affect Black's stable style -->
+- Fix comments getting removed from inside parenthesized strings (#3909)
+
### Preview style
<!-- Changes that affect Black's preview style -->
+- Long type hints are now wrapped in parentheses and properly indented when split across
+ multiple lines (#3899)
+- Magic trailing commas are now respected in return types. (#3916)
+- Require one empty line after module-level docstrings. (#3932)
+
### Configuration
<!-- Changes to how Black can be configured -->
+- Fix cache versioning logic when `BLACK_CACHE_DIR` is set (#3937)
+
### Packaging
<!-- Changes to how Black is packaged, such as dependency requirements -->
<!-- Changes to Black's terminal output and error messages -->
+- Black no longer attempts to provide special errors for attempting to format Python 2
+ code (#3933)
+- Black will more consistently print stacktraces on internal errors in verbose mode
+ (#3938)
+
### _Blackd_
<!-- Changes to blackd -->
<!-- For example, Docker, GitHub Actions, pre-commit, editors -->
+- The action output displayed in the job summary is now wrapped in Markdown (#3914)
+
### Documentation
<!-- Major changes to documentation and policies. Small docs changes
don't need a changelog entry. -->
+## 23.9.1
+
+Due to various issues, the previous release (23.9.0) did not include compiled mypyc
+wheels, which make Black significantly faster. These issues have now been fixed, and
+this release should come with compiled wheels once again.
+
+There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12
+wheels in a future release as soon as the mypyc bug is fixed.
+
+### Packaging
+
+- Upgrade to mypy 1.5.1 (#3864)
+
+### Performance
+
+- Store raw tuples instead of NamedTuples in Black's cache, improving performance and
+ decreasing the size of the cache (#3877)
+
+## 23.9.0
+
+### Preview style
+
+- More concise formatting for dummy implementations (#3796)
+- In stub files, add a blank line between a statement with a body (e.g an
+ `if sys.version_info > (3, x):`) and a function definition on the same level (#3862)
+- Fix a bug whereby spaces were removed from walrus operators within subscript(#3823)
+
+### Configuration
+
+- Black now applies exclusion and ignore logic before resolving symlinks (#3846)
+
+### Performance
+
+- Avoid importing `IPython` if notebook cells do not contain magics (#3782)
+- Improve caching by comparing file hashes as fallback for mtime and size (#3821)
+
+### _Blackd_
+
+- Fix an issue in `blackd` with single character input (#3558)
+
+### Integrations
+
+- Black now has an
+ [official pre-commit mirror](https://github.com/psf/black-pre-commit-mirror). Swapping
+ `https://github.com/psf/black` to `https://github.com/psf/black-pre-commit-mirror` in
+ your `.pre-commit-config.yaml` will make Black about 2x faster (#3828)
+- The `.black.env` folder specified by `ENV_PATH` will now be removed on the completion
+ of the GitHub Action (#3759)
+
## 23.7.0
### Highlights