-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare changelog for 1.15 release #18583
Changes from 2 commits
ae6e77c
9ab9840
a914298
3aba2f6
ccc56a0
057569d
739b57b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,18 @@ | |
|
||
## Next release | ||
|
||
... | ||
|
||
## Mypy 1.15 (unreleased) | ||
|
||
We’ve just uploaded mypy 1.15 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)). | ||
Mypy is a static type checker for Python. This release includes new features and bug fixes. | ||
You can install it as follows: | ||
|
||
python3 -m pip install -U mypy | ||
|
||
You can read the full documentation for this release on [Read the Docs](http://mypy.readthedocs.io). | ||
|
||
### Performance improvements | ||
|
||
Mypy may be 5-30% faster. This improvement comes largely from tuning the performance of the | ||
|
@@ -68,6 +80,111 @@ Support for this will be dropped in the first half of 2025! | |
|
||
Contributed by Marc Mueller (PR [17492](https://github.com/python/mypy/pull/17492)). | ||
|
||
### Mypyc Improvements | ||
|
||
* Fix `__init__` for classes with `@attr.s(slots=True)` (Advait Dixit, PR [18447](https://github.com/python/mypy/pull/18447)) | ||
* Report error for nested class instead of crashing (Valentin Stanciu, PR [18460](https://github.com/python/mypy/pull/18460)) | ||
* Fix `InitVar` for dataclasses (Advait Dixit, PR [18319](https://github.com/python/mypy/pull/18319)) | ||
* Remove unnecessary mypyc files from wheels (Marc Mueller, PR [18416](https://github.com/python/mypy/pull/18416)) | ||
* Get capsule pointer from module instead of `PyCapsule_Import` (Advait Dixit, PR [18286](https://github.com/python/mypy/pull/18286)) | ||
* Add lowered primitive for unsafe list get item op (Jukka Lehtosalo, PR [18136](https://github.com/python/mypy/pull/18136)) | ||
* Fix iteration over `NamedTuple` objects (Advait Dixit, PR [18254](https://github.com/python/mypy/pull/18254)) | ||
* Mark mypyc package with `py.typed` (bzoracler, PR [18253](https://github.com/python/mypy/pull/18253)) | ||
* Update docstrings of IR builder classes (Jukka Lehtosalo, PR [18246](https://github.com/python/mypy/pull/18246)) | ||
* Fix list index while checking for `Enum` class. (Advait Dixit, PR [18426](https://github.com/python/mypy/pull/18426)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you strip periods at end of change log items, for consistency? (I guess we could do this in the change log generation script as well.) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good catch! I tried to do this on my first pass, but I missed a couple. Tangentially related, I kind of love the vim regex for finding these occurrences:
|
||
* Update `pythoncapi_compat.h` (Marc Mueller, PR [18340](https://github.com/python/mypy/pull/18340)) | ||
|
||
### Stubgen Improvements | ||
|
||
* Improve dataclass init signatures (Marc Mueller, PR [18430](https://github.com/python/mypy/pull/18430)) | ||
* Preserve `dataclass_transform` decorator (Marc Mueller, PR [18418](https://github.com/python/mypy/pull/18418)) | ||
* Fix `UnpackType` for 3.11+ (Marc Mueller, PR [18421](https://github.com/python/mypy/pull/18421)) | ||
* Improve `self` annotations (Marc Mueller, PR [18420](https://github.com/python/mypy/pull/18420)) | ||
* Print `InspectError` traceback in stubgen `walk_packages` when verbose is specified (Gareth, PR [18224](https://github.com/python/mypy/pull/18224)) | ||
|
||
### Stubtest Improvements | ||
|
||
* Fix crash with numpy array default values (Ali Hamdan, PR [18353](https://github.com/python/mypy/pull/18353)) | ||
* Distinguish metaclass attributes from class attributes (Stephen Morton, PR [18314](https://github.com/python/mypy/pull/18314)) | ||
|
||
### Fixes to Crashes | ||
|
||
* Prevent crash with `Unpack` of a fixed tuple in PEP695 type alias (Stanislav Terliakov, PR [18451](https://github.com/python/mypy/pull/18451)) | ||
* Fix crash with `--cache-fine-grained --cache-dir=/dev/null` (Shantanu, PR [18457](https://github.com/python/mypy/pull/18457)) | ||
* Prevent crashing when `match` arms use name of existing callable (Stanislav Terliakov, PR [18449](https://github.com/python/mypy/pull/18449)) | ||
* Gracefully handle encoding errors when writing to stdout (Brian Schubert, PR [18292](https://github.com/python/mypy/pull/18292)) | ||
|
||
### Documentation Updates | ||
|
||
* Add `sphinx_inline_tabs` to docs (Marc Mueller, PR [18262](https://github.com/python/mypy/pull/18262)) | ||
* Document any `TYPE_CHECKING` name works (Shantanu, PR [18443](https://github.com/python/mypy/pull/18443)) | ||
* Update docs not to mention 3.8 where possible (sobolevn, PR [18455](https://github.com/python/mypy/pull/18455)) | ||
* Mention `ignore_errors` in exclude docs (Shantanu, PR [18412](https://github.com/python/mypy/pull/18412)) | ||
* Add `Self` misuse to common issues (Shantanu, PR [18261](https://github.com/python/mypy/pull/18261)) | ||
|
||
### Other Notable Fixes and Improvements | ||
|
||
* Fix literal context for ternary expressions (Ivan Levkivskyi, PR [18545](https://github.com/python/mypy/pull/18545)) | ||
* Ignore `dataclass.__replace__` LSP violations (Marc Mueller, PR [18464](https://github.com/python/mypy/pull/18464)) | ||
* Bind `self` to the class being defined when checking multiple inheritance (Stanislav Terliakov, PR [18465](https://github.com/python/mypy/pull/18465)) | ||
* Fix attribute type resolution with multiple inheritance (Stanislav Terliakov, PR [18415](https://github.com/python/mypy/pull/18415)) | ||
* Improve security of our GitHub Actions (sobolevn, PR [18413](https://github.com/python/mypy/pull/18413)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is an internal change and could be left out, though maybe users will be happy to know that we are more secure? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, that was my thought; technically it's "public" in that it's an improvement to security for the supply chain for the software they're using (ie, they're less likely to suffer from a supply chain attack). I'm happy to remove it if you want though, just LMK. |
||
* Unwrap `type[Union[...]]` when solving typevar constraints (Stanislav Terliakov, PR [18266](https://github.com/python/mypy/pull/18266)) | ||
* Allow `Any` to match sequence patterns in match/case (Stanislav Terliakov, PR [18448](https://github.com/python/mypy/pull/18448)) | ||
* Avoid false `unreachable` and `redundant-expr` warnings in loops. (Christoph Tyralla, PR [18433](https://github.com/python/mypy/pull/18433)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 18433 covered in highlights |
||
* Fix parent generics mapping when overriding generic attribute with property (Stanislav Terliakov, PR [18441](https://github.com/python/mypy/pull/18441)) | ||
* Dedicated error code for explicit `Any` (Shantanu, PR [18398](https://github.com/python/mypy/pull/18398)) | ||
* Reject invalid `ParamSpec` locations (Stanislav Terliakov, PR [18278](https://github.com/python/mypy/pull/18278)) | ||
* Remove stubs no longer in typeshed (Shantanu, PR [18373](https://github.com/python/mypy/pull/18373)) | ||
* Allow inverting `--local-partial-types` (Shantanu, PR [18377](https://github.com/python/mypy/pull/18377)) | ||
* Allow to use `Final` and `ClassVar` after Python 3.13 (정승원, PR [18358](https://github.com/python/mypy/pull/18358)) | ||
* Update to include latest stubs in typeshed (Shantanu, PR [18366](https://github.com/python/mypy/pull/18366)) | ||
* Fix `--install-types` masking failure details (wyattscarpenter, PR [17485](https://github.com/python/mypy/pull/17485)) | ||
* Reject promotions when checking against protocols. (Christoph Tyralla, PR [18360](https://github.com/python/mypy/pull/18360)) | ||
* Don't erase type object args in diagnostics (Shantanu, PR [18352](https://github.com/python/mypy/pull/18352)) | ||
* Clarify status in `dmypy status` output (Kcornw, PR [18331](https://github.com/python/mypy/pull/18331)) | ||
* Disallow no-args generic aliases when using PEP 613 explicit aliases (Brian Schubert, PR [18173](https://github.com/python/mypy/pull/18173)) | ||
* Suppress errors for unreachable branches in conditional expressions (Brian Schubert, PR [18295](https://github.com/python/mypy/pull/18295)) | ||
* Do not allow `ClassVar` and `Final` in `TypedDict` and `NamedTuple` (sobolevn, PR [18281](https://github.com/python/mypy/pull/18281)) | ||
* Fail typecheck if not enough or too many types provided to `TypeAliasType` (bzoracler, PR [18308](https://github.com/python/mypy/pull/18308)) | ||
* Use more precise context for `TypedDict` plugin errors (Brian Schubert, PR [18293](https://github.com/python/mypy/pull/18293)) | ||
* Use more precise context for invalid type argument errors (Brian Schubert, PR [18290](https://github.com/python/mypy/pull/18290)) | ||
* Do not allow `type[]` to contain `Literal` types (sobolevn, PR [18276](https://github.com/python/mypy/pull/18276)) | ||
* Allow bytearray/bytes comparisons with --disable-bytearray-promotion (Jukka Lehtosalo, PR [18255](https://github.com/python/mypy/pull/18255)) | ||
* More LSP compatibility on arg names (Shantanu, PR [18363](https://github.com/python/mypy/pull/18363)) | ||
* Speed up `State.finish_passes` (Jukka Lehtosalo, PR [18302](https://github.com/python/mypy/pull/18302)) | ||
* Optimize type indirection visitor (Jukka Lehtosalo, PR [18298](https://github.com/python/mypy/pull/18298)) | ||
* Speed up SCC dependency inference (Jukka Lehtosalo, PR [18299](https://github.com/python/mypy/pull/18299)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. could move these to performance highlight There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I took a pass at this; @JukkaL feel free to stomp over my description of your changes of course (before or after merging). |
||
|
||
### Acknowledgements | ||
|
||
Thanks to all mypy contributors who contributed to this release: | ||
|
||
Thanks to all mypy contributors who contributed to this release: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. duplicate sentence |
||
|
||
- Advait Dixit | ||
- Ali Hamdan | ||
- Brian Schubert | ||
- bzoracler | ||
- Cameron Matsui | ||
- Christoph Tyralla | ||
- Gareth | ||
- Ivan Levkivskyi | ||
- Jukka Lehtosalo | ||
- Kcornw | ||
- Marc Mueller | ||
- Mikhail f. Shiryaev | ||
- Shantanu | ||
- sobolevn | ||
- Stanislav Terliakov | ||
- Stephen Morton | ||
- Valentin Stanciu | ||
- Viktor Szépe | ||
- wyattscarpenter | ||
- 정승원 | ||
|
||
I’d also like to thank my employer, Dropbox, for supporting mypy development. | ||
|
||
## Mypy 1.14 | ||
|
||
We’ve just uploaded mypy 1.14 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use Title Case for section headings (also "Next Release" above), for consistency.