Sourced from ruff's releases.
0.15.12
Release Notes
Released on 2026-04-24.
Preview features
- Implement
#ruff:file-ignorefile-level suppressions (#23599)- Implement
#ruff:ignorelogical-line suppressions (#23404)- Revert preview changes to displayed diagnostic severity in LSP (#24789)
- [
airflow] Implementtask-branch-as-short-circuit(AIR004) (#23579)- [
flake8-bugbear] Fixbreak/continuehandling inloop-iterator-mutation(B909) (#24440)- [
pylint] FixPLC2701for type parameter scopes (#24576)Rule changes
- [
pandas-vet] Suggest.arrayas well inPD011(#24805)CLI
- Respect default Unix permissions for cache files (#24794)
Documentation
- [
pylint] FixPLR0124description not to claim self-comparison always returns the same value (#24749)- [
pyupgrade] Expand docs on reusableTypeVars and scoping (UP046) (#24153)- Improve rules table accessibility (#24711)
Contributors
@dylwil3@AlexWaygood@woodruffw@avasis-ai@Dev-iL@denyszhak@ShipItAndPray@anishgirianish@augustelalande@amyreese@majiayu000Install ruff 0.15.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh
... (truncated)
Sourced from ruff's changelog.
0.15.12
Released on 2026-04-24.
Preview features
- Implement
#ruff:file-ignorefile-level suppressions (#23599)- Implement
#ruff:ignorelogical-line suppressions (#23404)- Revert preview changes to displayed diagnostic severity in LSP (#24789)
- [
airflow] Implementtask-branch-as-short-circuit(AIR004) (#23579)- [
flake8-bugbear] Fixbreak/continuehandling inloop-iterator-mutation(B909) (#24440)- [
pylint] FixPLC2701for type parameter scopes (#24576)Rule changes
- [
pandas-vet] Suggest.arrayas well inPD011(#24805)CLI
- Respect default Unix permissions for cache files (#24794)
Documentation
- [
pylint] FixPLR0124description not to claim self-comparison always returns the same value (#24749)- [
pyupgrade] Expand docs on reusableTypeVars and scoping (UP046) (#24153)- Improve rules table accessibility (#24711)
Contributors
@dylwil3@AlexWaygood@woodruffw@avasis-ai@Dev-iL@denyszhak@ShipItAndPray@anishgirianish@augustelalande@amyreese@majiayu0000.15.11
Released on 2026-04-16.
Preview features
... (truncated)
66f93cf
Bump 0.15.12 (#24815)476a4d0
[ty] Complete support for more detailed diagnostics on possibly unbound
error...ed669ea
Implement #ruff:file-ignore file-level suppressions (#23599)e73d952
[ty] Include inferred type in invalid-key concise
diagnostic for union/inte...80feb29
[ty] report only dead annotation-only locals as unused (#24811)0fbf2bc
Drop deprecated license classifier (#24808)43b174c
[ty] Infer lambda parameter types with Callable type
context (#24317)4f449ae
[ty] Add error context for intersection types (#24772)5b4e753
[ty] Add support for goto in literal enum member inlay hint (#24792)e7cc762
[ty] Add error context for TypedDict assignments (#24790)Sourced from mypy's changelog.
Mypy 1.20.2
- Use WAL with SQLite cache and fix close (Shantanu, PR 21154)
- Adjust SQLite journal mode (Ivan Levkivskyi, PR 21217)
- Correctly aggregate narrowing information on parent expressions (Shantanu, PR 21206)
- Fix regression related to generic callables (Shantanu, PR 21208)
- Fix regression by avoiding widening types in some contexts (Shantanu, PR 21242)
- Fix slicing in non-strict optional mode (Shantanu, PR 21282)
- mypyc: Fix match statement semantics for "or" pattern (Shantanu, PR 21156)
- mypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR 21275)
- Initial support for Python 3.15.0a8 (Marc Mueller, PR 21255)
Acknowledgements
Thanks to all mypy contributors who contributed to this release:
- A5rocks
- Aaron Wieczorek
- Adam Turner
- Ali Hamdan
- asce
- BobTheBuidler
- Brent Westbrook
- Brian Schubert
- bzoracler
- Chris Burroughs
- Christoph Tyralla
- Colin Watson
- Donghoon Nam
- E. M. Bray
- Emma Smith
- Ethan Sarp
- George Ogden
- getzze
- grayjk
- Gregor Riepl
- Ivan Levkivskyi
- James Hilliard
- James Le Cuirot
- Jeremy Nimmer
- Joren Hammudoglu
- Kai (Kazuya Ito)
- kaushal trivedi
- Kevin Kannammalil
- Lukas Geiger
- Łukasz Langa
- Marc Mueller
- Michael R. Crusoe
- michaelm-openai
- Neil Schemenauer
- Piotr Sawicki
... (truncated)
145a062
Bump version to 1.20.281cd492
Fix slicing with nonstrict optional (#21282)908d344
[mypyc] Set dunder attrs when adding module to sys.modules (#21275)ba28610
Initial support for Python 3.15.0a8 (#21255)7b0e09f
Fix match statement semantics for "or" pattern (#21156)92b74f2
Avoid widening types in conditional_types (#21242)0dcbfaa
Fix is_overlapping_types for generic callables (#21208)210f518
Correctly aggregate narrowing information on parent expressions (#21206)c34530e
Only set journal mode in coordinator (#21217)79a3ec6
Use WAL with SQLite cache, fix close (#21154)