Skip to content

0.0.54

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Jun 17:58
Immutable release. Only release title and notes can be modified.
bf8a7dd

Release Notes

Released on 2026-06-25.

Bug fixes

  • Avoid duplicate configuration error output (#26375)
  • Avoid stack overflows in reachability analysis (#26272)
  • Fix divergent recursive tuple cycle handling in ty (#26316)
  • Fix panic from relation queries during cycle recovery (#26335)
  • Fix panics by reverting recursive TypeOf cycle recovery (#26339)
  • Support basic usages of __class__ closure cells in methods (#26329)

LSP server

  • Fix typealias token classification inconsistency (#26255)
  • Implement rust-analyzer's "Click for full compiler diagnostic" feature (#26269)

Performance

  • Co-locate retained definition usage state (#26019)
  • Use never-change durability for immutable file inputs (#26353)

Diagnostics

  • Reject undeclared protocol instance attributes (#26336)

Core type checking

  • Allow replacing ordinary methods with compatible functions (#26158)
  • Distinguish typing.TypedDict from typing_extensions.TypedDict (#25843)
  • Don't treat non-empty ranges as single-valued (#26351)
  • Handle TypeVar bounds over type[...] in attribute lookup (#26146)
  • Infer definite equality comparison results (#26337)
  • Infer mismatched literal comparisons (#26313)
  • match statements: make class-pattern fallthrough member-aware (#26283)
  • match statements: prove TypedDict structural patterns exhaustive (#26285)
  • match statements: resolve positional class-pattern exhaustiveness (#26284)
  • Model non-exhaustive enum member sets (enum.Flags) (#26277)
  • Reduce retained definition map storage (#26348)
  • Reuse equality semantics for membership compatibility (#25955)
  • Sync vendored typeshed stubs to support builtins.sentinel (#26341)
  • Treat non-empty range calls as non-empty for reachability (#25220)
  • Use assignability for divergent constraints (#26334)
  • Widen inferred class-valued instance attributes (#26338)

Contributors

Install ty 0.0.54

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.54/ty-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ty/releases/download/0.0.54/ty-installer.ps1 | iex"

Download ty 0.0.54

File Platform Checksum
ty-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ty-x86_64-apple-darwin.tar.gz Intel macOS checksum
ty-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ty-i686-pc-windows-msvc.zip x86 Windows checksum
ty-x86_64-pc-windows-msvc.zip x64 Windows checksum
ty-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ty-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ty-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ty-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ty-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ty-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ty-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ty-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ty-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ty-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ty-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ty-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ty-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ty

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>