Skip to content

0.0.79

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Sep 21:52
Immutable release. Only release title and notes can be modified.
b4cd792

Release Notes

Released on 2026-09-07.

Bug fixes

  • Avoid dict keyword-call panics when typing is shadowed (#28292)
  • Discover configs in models derived from legacy generic classes (#28397)
  • Normalize recursive collection-use constraints (#28332)
  • Recover cycles when constructing known class instances (#28289)

CLI

  • Embed archive checksums in the shell installer (#4458)

Diagnostic improvements

  • Add Literal fixes for diagnostics flagging invalid type annotations (#28185)
  • Add await fixes for redundant conditions (#28169)
  • Add assert_never fixes for redundant final elif branches (#28178)
  • Add defensive assertion fallback for redundant elif fixes (#28179)
  • Add rules to detect always-truthy and always-falsy conditions (#28034)
  • Preserve deprecations on decorated callables (#28256)
  • Require a direct dependency for reveal_type backport fixes (#28177)
  • Suggest variable-length tuple annotations for redundant conditions (#28168)

Core type checking

  • Align TypeIs and isinstance narrowing (#28193)
  • Avoid falling back to Unknown when collecting type context constraints (#28297)
  • Ensure f is identity(f) evaluates to Literal[True] (#28360)
  • Fix callable specialization with union-valued ParamSpec (#28085)
  • Infer variance through recursive protocols (#28077)
  • Narrow types with ordered length comparisons (#28264)
  • Preserve gradual type context during generic call inference (#28091)
  • Preserve nominal subtyping for top-materialized protocols (#28271)
  • Preserve outer type variables during ParamSpec inference (#28306)
  • Preserve protocol intersections when narrowing gradual types (#28391)
  • Promote literals in nested (non-covariant) positions (#28389)
  • Reject missing attributes on type[] aliases (#28267)
  • Solve formal unions using constraint-sets (#28312)
  • Sync vendored typeshed stubs (#28331). Typeshed diff

Performance

  • Avoid unnecessary work when building specializations (#28369)
  • Bypass materialization queries for simple types (#28367)
  • Cache exception suppression for context managers (#28376)
  • Intern statement call predicates (#28373)
  • Lazily compute argument-context specializations (#28378)
  • Pre-size packed AST index chunks (#28372)
  • Reduce repeated work in use-def merges (#28365)
  • Skip decorator flags query for undecorated methods (#28338)

Memory usage improvements

  • Avoid caching simple type specializations (#28333)
  • Box cached MRO error details (#28351)
  • Reuse generic aliases as MRO query keys (#28350)
  • Reuse interned bound method signatures (#28346)
  • Reuse stored function signatures without caching duplicates (#28347)
  • Share retained use-def tables across scopes (#28313)
  • Store single narrowing operations inline (#28345)
  • Store uncommon signature metadata out of line (#28339)

Other changes

  • Declare support for Python 3.15 (#4476)

Contributors

Install ty 0.0.79

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.79/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.79/ty-installer.ps1 | iex"

Download ty 0.0.79

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>