github astral-sh/ty 0.0.74

one hour ago

Release Notes

Released on 2026-08-22.

Bug fixes

  • Avoid duplicate bindings in multi-target assignments (#27938)
  • Avoid panic on unpacked kwargs in string annotations (#27963)
  • Fix stack overflow in recursive TypedDict dictionary compatibility (#27951)
  • Handle assignment expressions in string annotations (#27921)
  • Handle dynamic classes in string annotations (#27883)
  • Preserve string annotation context in lambda defaults and TypedDict types (#27914)
  • Skip invalid subscript arguments in string annotations (#27917)
  • Skip invalid subscript operands in string annotations (#27882)

LSP server

  • Add untrustedWorkspace option to the LSP (#27828)
  • Add executable discovery to the server command (#27806)
  • Handle file-valued workspace folders from Zed (#27836)
  • Skip scripts with an invalid PEP 723 configuration (#27505)
  • Support pull diagnostics for notebook cells (#27778)

Documentation

  • Update mypy/pyright comparison table (#4165)

Diagnostics

  • Add an opt-in unsound-assignment rule for variables (#27874)
  • Fix variadic signature display (#27869)
  • Highlight declarations in invalid-assignment diagnostics (#27872)
  • Improve LiteralString suggestions in string annotations (#27931)
  • Use invalid-type-form for non-generic class annotations (#27889)

Core type checking

  • Add bounded constraint solution projections (#27949)
  • Fix invariant gradual tuple materialization ranges (#27946)
  • Guard recursive constructor bindings by receiver (#27958)
  • Preserve all alternatives in bounded intersections (#27898)
  • Preserve keyword safety for unpacked callables (#27517)
  • Preserve source protocol members and classify finite aliases (#27772)
  • Preserve type-variable order when reloading constraints (#27904)
  • Propagate narrowing through statically known branches (#27752)
  • Recognize ABC metaclass methods on protocols (#27897)
  • Support __slots__ (#27730)

Performance

  • Lazily infer function parameter default types (#27857)
  • Optimize inherited recursive protocol comparisons (#27922)
  • Traverse shared constraint source-order nodes once (#27947)

Contributors

Install ty 0.0.74

Install prebuilt binaries via shell script

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

Download ty 0.0.74

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>

Don't miss a new ty release

NewReleases is sending notifications on new releases.