Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
334 commits
Select commit Hold shift + click to select a range
f6ef72c
[ty] Reject unsupported `environment.python-version` values in config…
charliermarsh Apr 5, 2026
62bb077
[ty] Add support for `types.new_class` (#23144)
charliermarsh Apr 5, 2026
0abbde5
Avoid syntax error from E502 fixes in f-strings and t-strings (#24410)
charliermarsh Apr 5, 2026
5d879b6
[ty] Move some dynamic class code out of `builder.rs` (#24411)
charliermarsh Apr 5, 2026
2087804
[`flake8-self`] Make `SLF` diagnostics robust to non-self-named varia…
charliermarsh Apr 5, 2026
9a55bc6
Reject multi-line f-string elements before Python 3.12 (#24355)
charliermarsh Apr 5, 2026
1fe1c5f
Avoid emitting multi-line f-string elements before Python 3.12 (#24377)
charliermarsh Apr 5, 2026
55b9532
Update cargo-bins/cargo-binstall action to v1.17.9 (#24428)
renovate[bot] Apr 6, 2026
4f7266d
Update dependency astral-sh/uv to v0.11.3 (#24429)
renovate[bot] Apr 6, 2026
7b7556d
Update taiki-e/install-action action to v2.70.2 (#24439)
renovate[bot] Apr 6, 2026
213a003
Update prek dependencies (#24433)
renovate[bot] Apr 6, 2026
ba38778
Update dependency tomli to v2.4.1 (#24432)
renovate[bot] Apr 6, 2026
2703ec6
Update dependency mkdocs-redirects to v1.2.3 (#24430)
renovate[bot] Apr 6, 2026
6ce1905
Update dependency ruff to v0.15.9 (#24431)
renovate[bot] Apr 6, 2026
940af9e
Update Rust crate insta to v1.47.1 (#24435)
renovate[bot] Apr 6, 2026
290465e
Update Rust crate rustc-hash to v2.1.2 (#24434)
renovate[bot] Apr 6, 2026
fae6ae6
Update Rust crate uuid to v1.23.0 (#24438)
renovate[bot] Apr 6, 2026
bb9c219
Update Rust crate tempfile to v3.27.0 (#24436)
renovate[bot] Apr 6, 2026
ad8672a
Update Rust crate toml to v1.1.0 (#24437)
renovate[bot] Apr 6, 2026
770cca6
[ty] Use basic blocks for determining if a node is in an `if TYPE_CHE…
AlexWaygood Apr 6, 2026
398e2a7
[ty] Lazily evaluate declaration reachability in field and enum filte…
charliermarsh Apr 6, 2026
2deaa47
[ty] Optimize `place_from_declarations` (#24444)
AlexWaygood Apr 6, 2026
2ab6210
Update dependency vite to v7.3.2 (#24461)
renovate[bot] Apr 7, 2026
03675af
[ty] Return all attribute definitions for goto definition (#24332)
MichaReiser Apr 7, 2026
3ffa53a
Use `dyn` dispatch internally only for `any_over` methods (#24468)
MichaReiser Apr 7, 2026
f4c3807
Add a required checks meta-job to CI (#24374)
zanieb Apr 7, 2026
02e5d6d
[ty] Respect non-required keys in TypedDict unpacking (#24446)
charliermarsh Apr 7, 2026
45409a7
[ty] Ensure nested conditional blocks inherit `TYPE_CHECKING` state f…
AlexWaygood Apr 7, 2026
22a68c5
[ty] Hide "rule xyz is enabled …" hints by default (#24469)
sharkdp Apr 7, 2026
55f667b
Convert Clippy allows to expects (#24473)
charliermarsh Apr 7, 2026
4859b00
[ty] Remove unused `all_definitely_bound` attribute (#24482)
ibraheemdev Apr 8, 2026
d3c8ddb
[ty] Remove tracking of whether a whole scope is in a `TYPE_CHECKING`…
AlexWaygood Apr 8, 2026
416ab83
[ty] Remove insta filter in e2e tests (#24485)
sharkdp Apr 8, 2026
1628526
[ty] Show info hints in LSP diagnostic messages (#24328)
sharkdp Apr 8, 2026
539b23e
[ty] Remve unnecessary `pub` and `pub(crate)` in `display.rs` (#24486)
MichaReiser Apr 8, 2026
5fd492a
[ty] Add missing snapshot in e2e tests (#24487)
sharkdp Apr 8, 2026
b6c69c2
[ty] Remove per-scope tracking of reachability (#24457)
AlexWaygood Apr 8, 2026
ac7656d
[ty] Use field type context for TypedDict constructor values (#24422)
charliermarsh Apr 8, 2026
9311680
Add `charliermarsh` to PR review round robin (#24488)
charliermarsh Apr 8, 2026
6ad36f8
[ty] Disallow bare ParamSpecs in Concatenate prefixes (#24474)
charliermarsh Apr 8, 2026
6e236f7
[ty] Avoid speculative inference for TypedDict constructors (#24480)
charliermarsh Apr 8, 2026
ca5ac50
[ty] Symbols from `typing` and `collections` rank higher than third p…
YilunAllenChen Apr 8, 2026
4481b6d
[ty] Add RustDoc for some TypedDict methods (#24489)
charliermarsh Apr 8, 2026
b082af3
[ty] Move some TypedDict methods into `typed_dict.rs` (#24494)
charliermarsh Apr 8, 2026
f3f1b11
Create a "deployment" for the release-gate job (#24493)
zanieb Apr 8, 2026
672a553
Silence insta doctest warning (#24496)
MichaReiser Apr 8, 2026
ad30af4
Force update insta snapshots (#24495)
MichaReiser Apr 8, 2026
8106a4b
[ty] Fix signature help for ParamSpec-specialized class calls (#24399)
charliermarsh Apr 8, 2026
0c5c701
[ty] Ensure '/' parameter appears before '*' when rendering `Callable…
Glyphack Apr 8, 2026
89d32a8
Update NPM Development dependencies (#23325)
renovate[bot] Apr 8, 2026
0f5f93b
[ty] Determine value vs. type syntax highlighting based on call argum…
charliermarsh Apr 8, 2026
527b75a
Add E2E testing framework to ruff-server (#24490)
MichaReiser Apr 8, 2026
486cdd6
[ty] Treat type alias values as type-form contexts in semantic tokens…
charliermarsh Apr 8, 2026
c3d875d
[ty] Normalize explicit `None` accessors in manual property construct…
charliermarsh Apr 8, 2026
d1a23cd
[ty] Add a materialization visitor (#24413)
charliermarsh Apr 8, 2026
60d4694
[`flake8-logging`] Allow closures in except handlers for LOG004 (#24464)
anishgirianish Apr 9, 2026
e9ba848
[ty] Fix excess subscript argument inference for non-generic types (#…
AlexWaygood Apr 9, 2026
87a0f01
[ruff] Treat f-string interpolation as potential side effect in RUF01…
anishgirianish Apr 9, 2026
a45f96d
[ty] stop special-casing str constructor (#24514)
carljm Apr 9, 2026
d8bc700
LSP: Add support for custom extensions (#24463)
silverstein Apr 9, 2026
2714e34
[ty] Enable `pull-diagnostics` by default in E2E tests (#24516)
MichaReiser Apr 9, 2026
99d97bd
[ty] Tighten up a few edge cases in `Concatenate` type-expression par…
AlexWaygood Apr 9, 2026
16c4090
docs: fix JSON typo in settings example (#24517)
shizukushq Apr 9, 2026
f518cc9
[ty] Allow partially stringified `type[…]` annotations (#24518)
sharkdp Apr 9, 2026
37a1ec8
[ty] Fix assignability of intersections with bounded typevars (#24502)
AlexWaygood Apr 9, 2026
252f761
Bump 0.15.10 (#24519)
ntBre Apr 9, 2026
1b4bf97
Shard ecosystem-analyzer runs in CI (#24503)
AlexWaygood Apr 9, 2026
239a6cb
[ty] Synthesize `__init__` for `TypedDict` (#24476)
Glyphack Apr 9, 2026
ac79009
[ty] support super() in metaclass methods (#24483)
carljm Apr 9, 2026
aa54cef
[ty] Omit invalid keyword arguments from `TypedDict` signature (#24522)
charliermarsh Apr 9, 2026
24083af
Rename patterns and arguments source order iterator method (#24532)
MichaReiser Apr 10, 2026
3075886
[ty] mdtest.py: update dependencies (#24533)
sharkdp Apr 10, 2026
e1f1875
[flake8-bandit] Fix S103 false positives and negatives in mask analys…
anishgirianish Apr 10, 2026
8d4c6ea
[ty] Rework logic for synthesizing `TypedDict` methods (#24534)
AlexWaygood Apr 10, 2026
bc65b8a
[ty] Use `map`, not `__map`, as the name of the mapping parameter in …
AlexWaygood Apr 10, 2026
038ad83
[ty] Expand test suite for assignment errors (#24537)
sharkdp Apr 10, 2026
5da2161
[ty] Allow `Final` variable assignments in `__post_init__` (#24529)
charliermarsh Apr 10, 2026
7c2430c
[ty] Minor fix in tests (#24538)
sharkdp Apr 10, 2026
a07f3cf
[ty] Add snapshots for `__init_subclass__` diagnostics (#24539)
AlexWaygood Apr 10, 2026
d52c080
[ty] Ignore unsupported editor-selected Python versions (#24498)
charliermarsh Apr 10, 2026
2ad94df
[ty] Add a `SupportedPythonVersion` enum (#24412)
charliermarsh Apr 10, 2026
e89f8ef
[ty] Fix bad diagnostic range for incorrect implicit `__init_subclass…
AlexWaygood Apr 10, 2026
590aab4
[ty] stop unioning Unknown into types of un-annotated attributes (#24…
carljm Apr 10, 2026
90fd7dd
[ty] Respect property deleters in attribute deletion checks (#24500)
charliermarsh Apr 10, 2026
f715215
[ty] Reject deleting`Final` attributes (#24508)
charliermarsh Apr 10, 2026
3ffc8b9
Bump typing conformance suite commit to latest upstream (#24553)
AlexWaygood Apr 10, 2026
9e3bd44
[ty] fix wrong assignability of type[T] to a metaclass (#24515)
carljm Apr 11, 2026
b642756
[ty] Add support for functional `Enum(...)` syntax (#23602)
thejchap Apr 11, 2026
da887d8
[ty] minor simplification to `context.rs` (#24568)
AlexWaygood Apr 11, 2026
90b297c
[ty] Allow empty names in functional `Enum(...)` semantics (#24570)
charliermarsh Apr 11, 2026
455904f
Update ecosystem-analyzer pins (#24573)
AlexWaygood Apr 11, 2026
d85aac2
[ty] Improve `type=` mixin support for functional `Enum(...)` (#24571)
charliermarsh Apr 11, 2026
4fb9924
[ty] Split reachability analysis into two files (#24562)
AlexWaygood Apr 12, 2026
0a2055a
[ty] Use reachable first declaration in declaration-based diagnostics…
charliermarsh Apr 12, 2026
a00d29d
[ty] Emit a diagnostic when attempting to inherit from a class with `…
AlexWaygood Apr 12, 2026
08b0218
[ty] Improve consistency of pedantic lints complaining about badly na…
charliermarsh Apr 12, 2026
3b6125d
[ty] Add some additional test coverage for Enums (#24578)
charliermarsh Apr 12, 2026
f7395ad
Update extractions/setup-just action to v4 (#24596)
renovate[bot] Apr 13, 2026
b25a914
Update CodSpeedHQ/action action to v4.13.0 (#24593)
renovate[bot] Apr 13, 2026
4f4b247
Update taiki-e/install-action action to v2.73.0 (#24595)
renovate[bot] Apr 13, 2026
ff26e53
Update Rust crate toml to v1.1.2 (#24592)
renovate[bot] Apr 13, 2026
49704cd
Update Rust crate indexmap to v2.13.1 (#24590)
renovate[bot] Apr 13, 2026
ad1b763
Update Rust crate insta to v1.47.2 (#24591)
renovate[bot] Apr 13, 2026
1e877b5
Update Rust crate arc-swap to v1.9.1 (#24589)
renovate[bot] Apr 13, 2026
d365c9f
Update dependency astral-sh/uv to v0.11.6 (#24586)
renovate[bot] Apr 13, 2026
1cf3e78
Update docker/login-action action to v4.1.0 (#24594)
renovate[bot] Apr 13, 2026
e0c9419
Update dependency ruff to v0.15.10 (#24587)
renovate[bot] Apr 13, 2026
8d0cdb3
Update Neovim config examples to use `vim.lsp.config` (#24577)
benberryallwood Apr 13, 2026
0b46035
Update Rust crate similar to v3 (#24598)
renovate[bot] Apr 13, 2026
fc25654
[ty] Collect assertionsin `InlineFileAssertions` tests (#24601)
MichaReiser Apr 13, 2026
b25f071
[ty] Ensure "before" and "after" runs of ecosystem-analyzer are alway…
AlexWaygood Apr 13, 2026
6aabfec
Update prek dependencies (#24588)
renovate[bot] Apr 13, 2026
4619940
[ty] Break the semantic index out into its own crate (#24471)
AlexWaygood Apr 13, 2026
122a6c2
Add `ty_python_core` to the pr-assignee-pools.toml config (#24605)
AlexWaygood Apr 13, 2026
28b5ce0
[ty] Move some `pub` functions in `ty_python_core` to be `pub(crate)`…
AlexWaygood Apr 13, 2026
ce9347e
Add recent semantic-index crate split to `.git-blame-ignore-revs` (#2…
AlexWaygood Apr 13, 2026
c378604
mdtest.py: set `CARGO_PROFILE_DEV_OPT_LEVEL=1` unless filters were sp…
AlexWaygood Apr 13, 2026
67aa7b2
[ty] Revert addition of unnecessary complexity to `module_docstring` …
AlexWaygood Apr 13, 2026
e8ecf28
[ty] Amend comment on `Enum(...)` constructor test (#24608)
charliermarsh Apr 13, 2026
6b55d43
[ty] Inherit `dataclass_transform` metadata from metaclass bases (#24…
charliermarsh Apr 13, 2026
dc4df9c
[ty] Fix `TypeGuard` and `TypeIs` narrowing for unbound method calls …
charliermarsh Apr 13, 2026
17d9271
Update Rust crate rand to v0.10.1 (#24621)
renovate[bot] Apr 14, 2026
3127232
Update dependency pytest to v9.0.3 (#24629)
renovate[bot] Apr 14, 2026
0921ed2
[airflow] Implement airflow-xcom-pull-in-template-string (AIR201) (#2…
Dev-iL Apr 14, 2026
74a2998
[ty] Correct the instructions in the `ty_test` README for running mar…
lerebear Apr 14, 2026
5d75760
[ty] Skip `EnumMeta.__call__` for enum constructor signatures (#24513)
Glyphack Apr 14, 2026
6b5423f
[ty] Move `fixes.rs` to `ty_python_semantic` (#24561)
MichaReiser Apr 14, 2026
4509968
Add inline snapshots to mdtest (#24557)
MichaReiser Apr 14, 2026
4c456a5
[ty] Use inline snapshots for error context tests (#24632)
sharkdp Apr 14, 2026
5e0b48a
[ty] Automatic snapshot updates in mdtest.py (#24633)
sharkdp Apr 14, 2026
f0eac0a
[ty] Use inline snapshots for suppressions.md tests (#24634)
MichaReiser Apr 14, 2026
11a6493
Return stabilized `std::io::ErrorKind`s in ruff_db (#24618)
ntBre Apr 14, 2026
a1bd94d
[ty] Check inherited `NamedTuple` field conflicts (#24542)
charliermarsh Apr 14, 2026
264c002
[ty] Inline snapshots for Liskov test suite (#24635)
sharkdp Apr 14, 2026
cd2d139
[ty] Avoid panic from double inference with missing functional Enum n…
charliermarsh Apr 14, 2026
61d78a1
[ty] Avoid panic from functional `Enum(value=...)` (#24639)
charliermarsh Apr 14, 2026
5f321be
[ty] Avoid double inference for `namedtuple(typename=T, field_names=x…
charliermarsh Apr 14, 2026
1c29188
[ty] Respect subclass shadowing for inherited NamedTuple fields (#24640)
charliermarsh Apr 14, 2026
23620ae
[ty] Set context-window to zero for mdtest snapshots (#24636)
sharkdp Apr 14, 2026
efbf7b6
[ty] Migrate `invalid-argument-type` tests to inline snapshots (#24637)
sharkdp Apr 14, 2026
9dd6e19
[ty] Add accidentally reverted liskov.md changes (#24643)
sharkdp Apr 14, 2026
b323e06
[ty] Respect mixed positional and keyword arguments in TypedDict cons…
charliermarsh Apr 14, 2026
54ef6ac
[ty] Make dataclass `own_fields` a `salsa::tracked` method (#24620)
charliermarsh Apr 14, 2026
5d2d6bf
[ty] Error when duplicate keywords are provided to TypedDict construc…
charliermarsh Apr 14, 2026
997e418
Update the assignee pool for ruff PRs (#24645)
amyreese Apr 14, 2026
e3f71a3
Omit overridden methods for ASYNC109 (#24648)
charliermarsh Apr 15, 2026
423d672
[ty] Migrate attribute-assignment tests to inline snapshots (#24652)
sharkdp Apr 15, 2026
980c236
[ty] Migrate invalid-assignment (syntax) and shadowing tests to inlin…
sharkdp Apr 15, 2026
b0ef5ec
Update typing conformance pin (#24656)
AlexWaygood Apr 15, 2026
83ebb12
[ty] Fix unnecessary `ty:ignore` comments inserted by `--add-ignore` …
MichaReiser Apr 15, 2026
6994c3c
[ty] Migrate `attributes.md` to inline snapshots (#24655)
sharkdp Apr 15, 2026
2bbdc13
[ty] Fix cases where `invalid-key` fix doesn't converge, and `overrid…
MichaReiser Apr 15, 2026
734e8cd
[ty] Migrate some more tests to inline snapshots (#24659)
sharkdp Apr 15, 2026
7d2d447
[`ruff`] Ignore `RUF029` when function is decorated with `asynccontex…
augustelalande Apr 15, 2026
ee9088e
[ty] Add `--fix` mode (#24097)
MichaReiser Apr 15, 2026
b41cb9a
[ty] Avoid repeated nested substitutions in path assignments (#24660)
dcreager Apr 15, 2026
61f9a0a
[ty] Sync vendored typeshed stubs (#24646)
github-actions[bot] Apr 15, 2026
dccb03d
[ty] Avoid panicking on overloaded `Callable` type context (#24661)
ibraheemdev Apr 15, 2026
12a1589
Add override mention to ASYNC109 docs (#24666)
charliermarsh Apr 16, 2026
9cf212f
[ty] Normalize property setter and deleter wrappers (#24509)
charliermarsh Apr 16, 2026
e9986d8
[ty] Reject using properties with `Never` setters or deleters (#24510)
charliermarsh Apr 16, 2026
9282e61
Disallow @disjoint_base on TypedDicts and Protocols (#24671)
JelleZijlstra Apr 16, 2026
ddd6a30
[ty] Do not suggest argument completion when at value of keyword argu…
dylwil3 Apr 16, 2026
725fbb7
[ty] Use partially qualified names when reporting diagnostics regardi…
AlexWaygood Apr 16, 2026
08c56c8
Factor out the `mdtest` crate (#24616)
ntBre Apr 16, 2026
53554b1
Bump 0.15.11 (#24678)
amyreese Apr 16, 2026
b838495
Fix mdtest.py for Rust 1.95 (#24680)
AlexWaygood Apr 16, 2026
c81782f
[ty] Do not consider a subclass of a `@dataclass_transform`-decorated…
AlexWaygood Apr 16, 2026
5442aec
[ty] report unreachable code as unnecessary hint diagnostics (#24580)
denyszhak Apr 17, 2026
3e88931
[ty] Migrate more mdtests to inline snapshots (#24681)
sharkdp Apr 17, 2026
c6ecbc6
[ty] Render inlay hint edits as `Fix`, reduce context window to 0 (#2…
MichaReiser Apr 17, 2026
7652540
[ty] Reduce source code context window to zero (#24689)
sharkdp Apr 17, 2026
08629b4
[ty] Migrate more mdtests to inline snapshots (#24687)
sharkdp Apr 17, 2026
581b3fa
Update Rust toolchain to 1.95 and MSRV to 1.93 (#24677)
AlexWaygood Apr 17, 2026
8e73833
[ty] Error context for assignability diagnostics (#24309)
sharkdp Apr 17, 2026
6e4eca1
[ty] Group overloaded methods like overloaded functions for docstring…
charliermarsh Apr 17, 2026
47d5cc4
[ty] Rename error context test suite and add desription (#24690)
sharkdp Apr 17, 2026
1f3bd63
[ty] Move property deletion test (#24691)
sharkdp Apr 17, 2026
042a4fc
[ty] Add cycle detector for binary inference expressions (#24551)
charliermarsh Apr 17, 2026
f563ab8
[ty] Add cycle recovery to `try_call_dunder_get` (#24692)
charliermarsh Apr 17, 2026
3834a4f
[ty] Expand class bases when reporting diagnostics (#24695)
charliermarsh Apr 17, 2026
65d768e
[ty] Merge same-file annotations if there is only a single line separ…
AlexWaygood Apr 17, 2026
742aa29
[ty] Expand class bases in per-base lint checks (#24699)
kc0506 Apr 17, 2026
e771b14
[ty] allow if statements in TypedDict bodies (#24702)
carljm Apr 17, 2026
67296f0
[ty] Memoize binary operator return types (#24700)
charliermarsh Apr 18, 2026
70025cd
[ty] Add protocol member-count benchmark (#24719)
charliermarsh Apr 20, 2026
991ff10
Update prek dependencies (#24724)
renovate[bot] Apr 20, 2026
940be0f
Update dependency astral-sh/uv to v0.11.7 (#24722)
renovate[bot] Apr 20, 2026
fd8e921
Update dependency ruff to v0.15.11 (#24723)
renovate[bot] Apr 20, 2026
1ab0ba3
Update astral-sh/setup-uv action to v8.1.0 (#24726)
renovate[bot] Apr 20, 2026
52d485f
Update actions/github-script action to v9 (#24734)
renovate[bot] Apr 20, 2026
8eb60be
Update taiki-e/install-action action to v2.75.7 (#24733)
renovate[bot] Apr 20, 2026
ed50100
Update Rust crate ordermap to v1.2.0 (#24732)
renovate[bot] Apr 20, 2026
f379d06
Update Rust crate indexmap to v2.14.0 (#24731)
renovate[bot] Apr 20, 2026
43c89a7
Update PyO3/maturin-action action to v1.51.0 (#24729)
renovate[bot] Apr 20, 2026
e570c0e
Update docker/build-push-action action to v7.1.0 (#24728)
renovate[bot] Apr 20, 2026
e8a37ff
Update cargo-bins/cargo-binstall action to v1.18.0 (#24727)
renovate[bot] Apr 20, 2026
7a732f3
Update Rust crate matchit to v0.9.2 (#24725)
renovate[bot] Apr 20, 2026
ededaf9
Update CodSpeedHQ/action action to v4.13.1 (#24721)
renovate[bot] Apr 20, 2026
11c2703
Update actions/upload-artifact action to v7.0.1 (#24720)
renovate[bot] Apr 20, 2026
9b7c1b8
Update NPM Development dependencies (#24735)
renovate[bot] Apr 20, 2026
2990574
Update ecosystem-analyzer pins (#24739)
AlexWaygood Apr 20, 2026
7c597dc
[ty] Gate protocol compatibility on member count (#24684)
charliermarsh Apr 20, 2026
51f0243
Use `compression-level: 1` when uploading binary artifacts in CI (#24…
AlexWaygood Apr 20, 2026
3e9ed60
Address some pedantic zizmor findings in sync_typeshed (#24745)
woodruffw Apr 20, 2026
cd8e76f
[ty] inlay hint keyword arg edit (#24667)
denyszhak Apr 20, 2026
5062d0d
[ty] Omit semantic tokens for unresolved symbols (#24718)
denyszhak Apr 20, 2026
49aa2b2
Implement `#ruff:ignore` logical-line suppressions (#23404)
amyreese Apr 20, 2026
54456cc
[ty] Emit more specific diagnostics for "possibly unbound" errors fro…
lerebear Apr 20, 2026
6e2e14a
Install salsa from crates.io (#24744)
MichaReiser Apr 20, 2026
282b19e
Update Rust crate hashbrown to 0.17.0 (#24730)
renovate[bot] Apr 20, 2026
be5736e
[ty] Add contextual secondary annotations in more places (#24696)
AlexWaygood Apr 20, 2026
2c4ff2e
[ty] update semantic tokens tests expectations (#24764)
denyszhak Apr 21, 2026
ae5e5b9
[docs] Improve rules table accessibility (#24711)
augustelalande Apr 21, 2026
11db358
[flake8-bugbear] Fix `break`/`continue` handling in `loop-iterator-mu…
anishgirianish Apr 21, 2026
1c28f0a
[ty] Improve TypedDict -> dict assignment error diagnostics (#24768)
sharkdp Apr 21, 2026
a1ecc34
Fix overload step 5 filtering for variadic parameter (#24063)
dhruvmanila Apr 21, 2026
adcb52c
[ty] Remove duplicate `invalid-type-form` diagnostics for PEP-613 typ…
AlexWaygood Apr 21, 2026
6c09271
[ty] Add error context to `invalid-return-type` diagnostics (#24770)
sharkdp Apr 21, 2026
74b3cbd
[ty] Add vararg call benchmarks (#24747)
charliermarsh Apr 21, 2026
fe3e821
[ty] Defer union of parameter types (#24756)
charliermarsh Apr 21, 2026
213b9bf
[ty] Skip checks for gradual vararg calls (#24748)
charliermarsh Apr 21, 2026
87f6bf5
[ty] Add error context attribute assignments and `invalid-yield` diag…
sharkdp Apr 21, 2026
4add3b1
[ty] fix goto definition for generic classes (#24714)
felixscherz Apr 21, 2026
810cab3
[ty] Use existential quantification to only consider inferable typeva…
dcreager Apr 21, 2026
4578377
[ty] Remove `InNoTypeCheck` enum (#24778)
AlexWaygood Apr 22, 2026
10e03a6
[ty] Minor simplification to `call/bind.rs` (#24780)
AlexWaygood Apr 22, 2026
c0be144
[ty] Fix notifications about watched changes for entities outside any…
EliteTK Apr 22, 2026
9e7adca
Revert preview changes to displayed diagnostic severity in LSP (#24789)
dylwil3 Apr 22, 2026
ae613c5
[ty] Support `**` unpacking of `TypedDict` in dict-literal assignment…
charliermarsh Apr 22, 2026
9b03f2b
[ty] improve invariant matching of formal union vs inferable typevar …
carljm Apr 22, 2026
65ec6e6
Fix PLC2701 for type parameter scopes (#24576)
ShipItAndPray Apr 22, 2026
5cd5249
[ty] Add hints to playground (#24788)
MichaReiser Apr 22, 2026
a4d5a6d
[`pyupgrade`] Expand docs on reusable `TypeVar`s and scoping (`UP046`…
majiayu000 Apr 22, 2026
81a81d2
[ty] Treat `[*xs]` as an irrefutable pattern (#24787)
charliermarsh Apr 23, 2026
db0aa2d
Update dependency uuid to v14 (#24795)
renovate[bot] Apr 23, 2026
09eecaa
fix: respect default unix permissions for cache files (#24794)
denyszhak Apr 23, 2026
3efc690
[`pylint`] Fix `PLR0124` description not to claim self-comparison alw…
avasis-ai Apr 23, 2026
94e6110
[`airflow`] Implement `task-branch-as-short-circuit` (`AIR004`) (#23579)
Dev-iL Apr 23, 2026
df3988d
[`pandas-vet`] Suggest `.array` as well in `PD011` (#24805)
dylwil3 Apr 23, 2026
e7cc762
[ty] Add error context for TypedDict assignments (#24790)
sharkdp Apr 23, 2026
5b4e753
[ty] Add support for goto in literal enum member inlay hint (#24792)
MatthewMckee4 Apr 23, 2026
4f449ae
[ty] Add error context for intersection types (#24772)
sharkdp Apr 23, 2026
43b174c
[ty] Infer lambda parameter types with `Callable` type context (#24317)
ibraheemdev Apr 23, 2026
0fbf2bc
Drop deprecated license classifier (#24808)
woodruffw Apr 24, 2026
80feb29
[ty] report only dead annotation-only locals as unused (#24811)
denyszhak Apr 24, 2026
e73d952
[ty] Include inferred type in `invalid-key` concise diagnostic for un…
tonyxwz Apr 24, 2026
ed669ea
Implement `#ruff:file-ignore` file-level suppressions (#23599)
amyreese Apr 24, 2026
476a4d0
[ty] Complete support for more detailed diagnostics on possibly unbou…
lerebear Apr 24, 2026
66f93cf
Bump 0.15.12 (#24815)
dylwil3 Apr 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,7 @@ a9b2876bd33264c826aaf38e462632f1f7bceb55
53ad26f1e10b749e1ef4680603aa9156dd528dc5
# Split up types/class.rs
34cee06dfa6c558c4ab1460200033ea44b368ae4
# Move the `deferred` submodule inside `infer/builder`
96d9e0964cb87498ef15510ea7f896ba336659f9
# Break the semantic index out into its own crate
461994073e2f6cac13a28e60b06038ba50214ffc
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@
/crates/ty/ @carljm @MichaReiser @sharkdp @dcreager @ibraheemdev
/crates/ty_wasm/ @carljm @MichaReiser @sharkdp @dcreager @Gankra
/scripts/ty_benchmark/ @carljm @MichaReiser @AlexWaygood @sharkdp @dcreager @ibraheemdev
/crates/ty_python_core/ @carljm @sharkdp @dcreager @ibraheemdev
/crates/ty_python_semantic/ @carljm @AlexWaygood @sharkdp @dcreager @ibraheemdev
/crates/ty_module_resolver/ @carljm @MichaReiser @AlexWaygood @Gankra @BurntSushi
10 changes: 5 additions & 5 deletions .github/pr-assignee-pools.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ paths = [
"/crates/ruff/**",
"/crates/ruff_linter/**",
]
reviewers = ["amyreese", "ntBre"]
reviewers = ["ntBre"]

[[pools]]
name = "ty-semantic"
paths = ["/crates/ty_python_semantic/**"]
reviewers = ["carljm", "sharkdp", "dcreager", "ibraheemdev", "oconnor663"]
paths = ["/crates/ty_python_core/**", "/crates/ty_python_semantic/**"]
reviewers = ["carljm", "charliermarsh", "sharkdp", "dcreager", "ibraheemdev", "oconnor663"]

[[pools]]
name = "ty-module-resolver"
Expand All @@ -36,9 +36,9 @@ reviewers = ["MichaReiser", "BurntSushi"]
[[pools]]
name = "ty-ide"
paths = ["/crates/ty_ide/**"]
reviewers = ["MichaReiser", "BurntSushi", "dhruvmanila"]
reviewers = ["charliermarsh", "MichaReiser", "BurntSushi", "dhruvmanila"]

[[pools]]
name = "ty-server"
paths = ["/crates/ty_server/**"]
reviewers = ["MichaReiser", "BurntSushi", "dhruvmanila"]
reviewers = ["charliermarsh", "MichaReiser", "BurntSushi", "dhruvmanila"]
46 changes: 23 additions & 23 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build sdist"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
command: sdist
Expand All @@ -60,7 +60,7 @@ jobs:
"${MODULE_NAME}" --help
python -m "${MODULE_NAME}" --help
- name: "Upload sdist"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-sdist
path: dist
Expand All @@ -80,13 +80,13 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels - x86_64"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: x86_64
args: --release --locked --out dist --compatibility pypi
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-macos-x86_64
path: dist
Expand All @@ -101,7 +101,7 @@ jobs:
tar czvf $ARCHIVE_FILE $ARCHIVE_NAME
shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-macos-x86_64
path: |
Expand All @@ -123,7 +123,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels - aarch64"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: aarch64
Expand All @@ -134,7 +134,7 @@ jobs:
ruff --help
python -m ruff --help
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-aarch64-apple-darwin
path: dist
Expand All @@ -149,7 +149,7 @@ jobs:
tar czvf $ARCHIVE_FILE $ARCHIVE_NAME
shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-aarch64-apple-darwin
path: |
Expand Down Expand Up @@ -180,7 +180,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: ${{ matrix.platform.target }}
Expand All @@ -196,7 +196,7 @@ jobs:
"${MODULE_NAME}" --help
python -m "${MODULE_NAME}" --help
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-${{ matrix.platform.target }}
path: dist
Expand All @@ -207,7 +207,7 @@ jobs:
7z a $ARCHIVE_FILE ./target/${{ matrix.platform.target }}/release/ruff.exe
sha256sum $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-${{ matrix.platform.target }}
path: |
Expand All @@ -234,7 +234,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: ${{ matrix.target }}
Expand All @@ -247,7 +247,7 @@ jobs:
"${MODULE_NAME}" --help
python -m "${MODULE_NAME}" --help
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-${{ matrix.target }}
path: dist
Expand All @@ -265,7 +265,7 @@ jobs:
tar czvf $ARCHIVE_FILE $ARCHIVE_NAME
shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-${{ matrix.target }}
path: |
Expand Down Expand Up @@ -315,7 +315,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: ${{ matrix.platform.target }}
Expand All @@ -337,7 +337,7 @@ jobs:
pip3 install ${{ env.PACKAGE_NAME }} --no-index --find-links dist/ --force-reinstall
ruff --help
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-${{ matrix.platform.target }}
path: dist
Expand All @@ -355,7 +355,7 @@ jobs:
tar czvf $ARCHIVE_FILE $ARCHIVE_NAME
shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-${{ matrix.platform.target }}
path: |
Expand All @@ -382,7 +382,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: ${{ matrix.target }}
Expand All @@ -398,7 +398,7 @@ jobs:
.venv/bin/${MODULE_NAME} --help;
"
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-${{ matrix.target }}
path: dist
Expand All @@ -416,7 +416,7 @@ jobs:
tar czvf $ARCHIVE_FILE $ARCHIVE_NAME
shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-${{ matrix.target }}
path: |
Expand Down Expand Up @@ -446,7 +446,7 @@ jobs:
- name: "Prep README.md"
run: python scripts/transform_readme.py --target pypi
- name: "Build wheels"
uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
maturin-version: v1.11.5
target: ${{ matrix.platform.target }}
Expand All @@ -466,7 +466,7 @@ jobs:
.venv/bin/pip3 install ${{ env.PACKAGE_NAME }} --no-index --find-links dist/ --force-reinstall
.venv/bin/${{ env.MODULE_NAME }} --help
- name: "Upload wheels"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-${{ matrix.platform.target }}
path: dist
Expand All @@ -484,7 +484,7 @@ jobs:
tar czvf $ARCHIVE_FILE $ARCHIVE_NAME
shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256
- name: "Upload binary"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: artifacts-${{ matrix.platform.target }}
path: |
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
name: Build Docker image (ghcr.io/astral-sh/ruff) for ${{ matrix.platform }}
runs-on: ubuntu-latest
environment:
name: release
name: ${{ inputs.plan != '' && !fromJson(inputs.plan).announcement_tag_is_implicit && 'release' || '' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -46,7 +46,8 @@ jobs:

- uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0

- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
- uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
if: ${{ inputs.plan != '' && !fromJson(inputs.plan).announcement_tag_is_implicit }}
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down Expand Up @@ -85,7 +86,7 @@ jobs:
# Adapted from https://docs.docker.com/build/ci/github-actions/multi-platform/
- name: Build and push by digest
id: build
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
with:
context: .
platforms: ${{ matrix.platform }}
Expand All @@ -102,7 +103,7 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digests
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: digests-${{ env.PLATFORM_TUPLE }}
path: /tmp/digests/*
Expand Down Expand Up @@ -141,7 +142,7 @@ jobs:
type=pep440,pattern={{ version }},value=${{ fromJson(inputs.plan).announcement_tag }}
type=pep440,pattern={{ major }}.{{ minor }},value=${{ fromJson(inputs.plan).announcement_tag }}

- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
- uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down Expand Up @@ -203,7 +204,7 @@ jobs:
steps:
- uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0

- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
- uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down Expand Up @@ -266,7 +267,7 @@ jobs:

- name: Build and push
id: build-and-push
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
with:
context: .
platforms: linux/amd64,linux/arm64
Expand Down Expand Up @@ -321,7 +322,7 @@ jobs:
type=pep440,pattern={{ version }},value=${{ fromJson(inputs.plan).announcement_tag }}
type=pep440,pattern={{ major }}.{{ minor }},value=${{ fromJson(inputs.plan).announcement_tag }}

- uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
- uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
mv /tmp/package.json crates/ruff_wasm/pkg
- run: cp LICENSE crates/ruff_wasm/pkg # wasm-pack does not put the LICENSE file in the pkg
- name: "Upload wasm artifact"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
# Avoid prefixing the name with `artifacts-` here to exclude it from the GitHub release.
name: wasm-npm-${{ matrix.target }}
Expand Down
Loading