|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.0.1-alpha.21 |
| 4 | + |
| 5 | +### Bug fixes |
| 6 | + |
| 7 | +- Fix inference of constructor calls to generic classes that have explicitly annotated `self` parameters in their `__init__` methods ([#20325](https://github.com/astral-sh/ruff/pull/20325)) |
| 8 | +- Fix a stack overflow when computing completions for recursive types ([#20354](https://github.com/astral-sh/ruff/pull/20354)) |
| 9 | +- Fix panic in `BoundMethodType::into_callable_type()` ([#20369](https://github.com/astral-sh/ruff/pull/20369)) |
| 10 | +- Fix stack overflows in binary comparison inference ([#20446](https://github.com/astral-sh/ruff/pull/20446)) |
| 11 | +- Fix many "too many cycle iterations" panics concerning recursive type aliases and/or recursive generics ([#20359](https://github.com/astral-sh/ruff/pull/20359)) |
| 12 | +- Fix stack overflow involving subtype checks for recursive type aliases ([#20259](https://github.com/astral-sh/ruff/pull/20259)) |
| 13 | +- Fix panic when inferring the type of an infinitely-nested-tuple implicit instance attribute ([#20333](https://github.com/astral-sh/ruff/pull/20333)) |
| 14 | + |
| 15 | +### Server |
| 16 | + |
| 17 | +- Add autocomplete suggestions for unimported symbols ([#20207](https://github.com/astral-sh/ruff/pull/20207), [#20439](https://github.com/astral-sh/ruff/pull/20439)) |
| 18 | +- Include generated `NamedTuple` methods such as `_make`, `_asdict` and `_replace` in autocomplete suggestions ([#20356](https://github.com/astral-sh/ruff/pull/20356)) |
| 19 | + |
| 20 | +### Configuration |
| 21 | + |
| 22 | +- Automatically add `python/` to `environment.root` if a `python/` folder exists in the root of a repository ([#20263](https://github.com/astral-sh/ruff/pull/20263)) |
| 23 | + |
| 24 | +### CLI |
| 25 | + |
| 26 | +- Add GitHub output format ([#20358](https://github.com/astral-sh/ruff/pull/20358)) |
| 27 | +- Add GitLab output format ([#20155](https://github.com/astral-sh/ruff/pull/20155)) |
| 28 | + |
| 29 | +### Typing semantics and features |
| 30 | + |
| 31 | +- Add support for generic [PEP-695 type aliases](https://peps.python.org/pep-0695/#generic-type-alias) ([#20219](https://github.com/astral-sh/ruff/pull/20219)) |
| 32 | +- Allow annotation expressions to be `ast::Attribute` nodes ([#20413](https://github.com/astral-sh/ruff/pull/20413)) |
| 33 | +- Allow protocols to participate in nominal subtyping as well as structural subtyping ([#20314](https://github.com/astral-sh/ruff/pull/20314)) |
| 34 | +- Attribute access on top/bottom materializations ([#20221](https://github.com/astral-sh/ruff/pull/20221)) |
| 35 | +- Bind `Self` type variables to the method, not the class ([#20366](https://github.com/astral-sh/ruff/pull/20366)) |
| 36 | +- Ensure various special-cased bound methods are understood as assignable to `Callable` ([#20330](https://github.com/astral-sh/ruff/pull/20330)) |
| 37 | +- Ensure various special-cased builtin functions are understood as assignable to `Callable` ([#20331](https://github.com/astral-sh/ruff/pull/20331)) |
| 38 | +- Fall back to `object` for attribute access on synthesized protocols ([#20286](https://github.com/astral-sh/ruff/pull/20286)) |
| 39 | +- Fix signature of `NamedTupleLike._make` ([#20302](https://github.com/astral-sh/ruff/pull/20302)) |
| 40 | +- Fix subtyping/assignability of function- and class-literal types to callback protocols ([#20363](https://github.com/astral-sh/ruff/pull/20363)) |
| 41 | +- Implement the legacy PEP-484 convention for indicating positional-only parameters ([#20248](https://github.com/astral-sh/ruff/pull/20248)) |
| 42 | +- Infer more precise types for collection literals ([#20360](https://github.com/astral-sh/ruff/pull/20360)) |
| 43 | +- Make `TypeIs` invariant in its type argument ([#20428](https://github.com/astral-sh/ruff/pull/20428)) |
| 44 | +- Narrow specialized generics using `isinstance()` ([#20256](https://github.com/astral-sh/ruff/pull/20256)) |
| 45 | +- Proper assignability/subtyping checks for protocols with method members ([#20165](https://github.com/astral-sh/ruff/pull/20165)) |
| 46 | +- Reduce false positives for `ParamSpec`s and `TypeVarTuple`s ([#20239](https://github.com/astral-sh/ruff/pull/20239)) |
| 47 | +- Overload evaluation: retry parameter matching for argument type expansion ([#20153](https://github.com/astral-sh/ruff/pull/20153)) |
| 48 | +- Simplify unions of enum literals and subtypes thereof ([#20324](https://github.com/astral-sh/ruff/pull/20324)) |
| 49 | +- Support "legacy" `typing.Self` in combination with [PEP-695](https://peps.python.org/pep-0695) generic contexts ([#20304](https://github.com/astral-sh/ruff/pull/20304)) |
| 50 | +- Treat `Hashable`, and similar protocols, equivalently to `object` for subtyping/assignability ([#20284](https://github.com/astral-sh/ruff/pull/20284)) |
| 51 | +- Treat `__new__` as a static method ([#20212](https://github.com/astral-sh/ruff/pull/20212)) |
| 52 | +- `TypedDict`: Add support for `typing.ReadOnly` ([#20241](https://github.com/astral-sh/ruff/pull/20241)) |
| 53 | +- Detect syntax errors stemming from `yield from` expressions inside async functions ([#20051](https://github.com/astral-sh/ruff/pull/20051)) |
| 54 | +- `"foo".startswith` is not an instance of `types.MethodWrapperType` ([#20317](https://github.com/astral-sh/ruff/pull/20317)) |
| 55 | +- Eliminate definitely-impossible types from union in equality narrowing ([#20164](https://github.com/astral-sh/ruff/pull/20164)) |
| 56 | +- Infer more precise types for the `name` and `value` properties on enum members ([#20311](https://github.com/astral-sh/ruff/pull/20311)) |
| 57 | +- Initial support for `slots=True` in dataclasses ([#20278](https://github.com/astral-sh/ruff/pull/20278)) |
| 58 | +- Improve type narrowing in situations involving nested functions ([#19932](https://github.com/astral-sh/ruff/pull/19932)) |
| 59 | +- Support type aliases in binary comparison inference ([#20445](https://github.com/astral-sh/ruff/pull/20445)) |
| 60 | +- Sync vendored typeshed stubs ([#20394](https://github.com/astral-sh/ruff/pull/20394)). [Typeshed diff](https://github.com/python/typeshed/compare/2480d7e7c74493a024eaf254c5d2c6f452c80ee2...47dbbd6c914a5190d54bc5bd498d1e6633d97db2) |
| 61 | + |
| 62 | +### Diagnostics |
| 63 | + |
| 64 | +- Improve specialization-error diagnostics ([#20326](https://github.com/astral-sh/ruff/pull/20326)) |
| 65 | + |
| 66 | +### Contributors |
| 67 | + |
| 68 | +- [@thejchap](https://github.com/thejchap) |
| 69 | +- [@AlexWaygood](https://github.com/AlexWaygood) |
| 70 | +- [@mtshiba](https://github.com/mtshiba) |
| 71 | +- [@JelleZijlstra](https://github.com/JelleZijlstra) |
| 72 | +- [@ibraheemdev](https://github.com/ibraheemdev) |
| 73 | +- [@TaKO8Ki](https://github.com/TaKO8Ki) |
| 74 | +- [@Glyphack](https://github.com/Glyphack) |
| 75 | +- [@ericmarkmartin](https://github.com/ericmarkmartin) |
| 76 | +- [@Renkai](https://github.com/Renkai) |
| 77 | +- [@sharkdp](https://github.com/sharkdp) |
| 78 | +- [@11happy](https://github.com/11happy) |
| 79 | +- [@BurntSushi](https://github.com/BurntSushi) |
| 80 | +- [@carljm](https://github.com/carljm) |
| 81 | +- [@dhruvmanila](https://github.com/dhruvmanila) |
| 82 | +- [@github-actions](https://github.com/github-actions) |
| 83 | +- [@ntBre](https://github.com/ntBre) |
| 84 | + |
3 | 85 | ## 0.0.1-alpha.20 |
4 | 86 |
|
5 | 87 | ### Bug fixes |
|
0 commit comments