astral-sh/ty
59.5
Weak · 19 September 2026
1.2k
lines of production code
Python
with JavaScript
1
measurement over time
What this system is
This system is \ty\, an extremely fast Python type checker written in Rust. It provides a compiled binary distributed via \cargo-dist\ and a Python package wrapper that enables execution via \python -m ty\. The repository includes automation scripts for building, releasing, and maintaining the project, along with documentation generated from the Ruff submodule.
Features
Initial repository scaffolding for ty
This release establishes the standalone ty repository structure, separating documentation and release infrastructure from the core Rust codebase in the Ruff project. It introduces a git submodule for the Ruff source, configures the \cargo-dist\ build system via \dist-workspace.toml\ for multi-platform binary and Docker image distribution, and sets up the \mkdocs\ documentation site. The repository also includes a comprehensive pre-commit configuration with hooks for linting, formatting, and security checks, along with baseline configuration files for editors, git attributes, and Python versioning.
(repo-wide) · high confidence
New release, build, and maintenance automation scripts
The repository now includes a suite of new scripts to automate the release process, build optimizations, and documentation maintenance. The \release.sh\ script handles submodule initialization, version bumping via \rooster\, and updating the changelog with typeshed diff links. A new \build\_ty\_pgo.py\ script enables Profile-Guided Optimization for the \ty\ binary using a pinned corpus of ecosystem projects. Documentation is now automatically synchronized from the Ruff submodule via \autogenerate\_files.sh\, and the \transform\_readme.py\ script adapts the README for PyPI by fixing image paths and removing dark-mode dependencies. Additionally, \update\_schemastore.py\ automates the process of updating the JSON schema in the SchemaStore repository, and \patch-dist-manifest-checksums.py\ ensures release archives have valid checksums in the distribution manifest.
scripts · high confidence
Python package now exposes a \`find\_ty\_bin\` utility and supports \`python -m ty\` execution
The \python\ package now includes a \ty\ module that provides a \find\_ty\_bin\ function to locate the \ty\ binary across various installation layouts (standard scripts, prefix/target installs, and user schemes). This enables the package to be executed directly via \python -m ty\, which delegates to the found binary while handling platform-specific execution details (such as avoiding tracebacks on interrupt for Windows). The addition of \py.typed\ also marks the package as type-hinted for static analysis tools.
python · high confidence
Removals
Removal of CLI entry point
The \src/ty/\_\init\\_.py\ file has been deleted, removing the \main()\ function that previously printed "Hello from ty!". This eliminates the default command-line interface entry point for the \ty\ package.
src/ty · high confidence
Dependencies
Updated project metadata and build configuration for ty
The pyproject.toml has been updated to version 0.0.82, with the description changed to "An extremely fast Python type checker, written in Rust." The build system has switched from uv\_build to maturin, and dependency groups have been added for dev (prek), release (rooster), and docs (mkdocs ecosystem). Python version support is now explicitly declared up to 3.15, and various tool configurations for Ruff, UV, and Rooster have been added or updated.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 59.
Lenses
- Code Health 96
- Architecture 69
- Maturity 57
- Readiness 51
- Security 83
Changes since last survey
- 300 commits — 290 feature/other, 10 fixes
By area
- (root) — 143 commits
- .github/workflows — 89 commits
- docs/coming-from-mypy-or-pyright.md — 12 commits
- docs/reference — 10 commits
- docs/features — 7 commits
- .github/actionlint.yaml — 6 commits
- docs/editors.md — 5 commits
- .github/renovate.json5 — 3 commits
- scripts/release.sh — 3 commits
- .github/ISSUE_TEMPLATE — 2 commits
- .github/secure-token-service.json — 2 commits
- docs/assets — 2 commits
- docs/installation.md — 2 commits
- docs/suppression.md — 2 commits
- scripts/update_schemastore.py — 2 commits
- docs/.overrides — 1 commit
- docs/exclusions.md — 1 commit
- docs/index.md — 1 commit
- docs/modules.md — 1 commit
- docs/rules.md — 1 commit
Notable commits
- fix: Fix documented Python package build command (#4384)
- fix: Fix header levels in 0.0.19 changelog (#2909)
- fix: Fix renovate actions/*-artifact updates (#2956)
- fix: Fix ty version reporting in Docker distributions (#2702)
- fix: Fix vulnerable Python dependencies (#4282)
- fix: Revert "Revert "Use ICF for macOS release builds"" (#3901)
- fix: Revert "Update Artifact GitHub Actions dependencies" (#3112)
- fix: Revert "Use ICF for macOS release builds" (#3900)
- fix: Update bug report issue template (#4189)
- fix: fix: update broken registry.bazel.build/docs URLs (#4439)
- change: Add a "release-gate" step to the release workflow (#3205)
- change: Add a 'Diagnostics improvements' section to the changelogs (#3309)
- change: Add a GitHub repository threat model for ty (#4481)
- change: Add a workflow for preparing releases (#4505)
- change: Add attestations for release artifacts and Docker images (#2827)
- change: Add dependency cooldowns (#4281)
- change: Add instructions for how to run ty with Bazel (#2711)
- change: Add note about fallback behavior to python in PATH (#2787)
- change: Add shellcheck to pre-commit configuration (#2845)
- change: Add typeshed diff link to changelog during release (#2957)
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
astral-sh/ty was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 04c69110b391e96310e6892cbed9936c4f31d7aa — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.