mirror of https://github.com/astral-sh/ruff
Currently, `ty version` pulls its information from the Ruff repository —
but we want this to pull from the repository in the directory _above_
when Ruff is a submodule.
I tested this in the `ty` repository after tagging an arbitrary commit:
```
❯ uv run --refresh-package ty --reinstall-package ty ty version
Built ty @ file:///Users/zb/workspace/ty
Uninstalled 1 package in 2ms
Installed 1 package in 1ms
ty 0.0.0+3 (34253b1d4 2025-05-05)
```
We also use the last Git tag as the source of truth for the version,
instead of the crate version. However, we'll need a way to set the
version for releases still, as the tag is published _after_ the build.
We can either tag early (without pushing the tag to the remote), or add
another environment variable. (**Note, this approach is changed in a
follow-up. See https://github.com/astral-sh/ruff/pull/17868**)
From this repository, the version will be `unknown`:
```
❯ cargo run -q --bin ty -- version
ty unknown
```
We could add special handling like... `ty unknown (ruff@...)` but I see
that as a secondary goal.
Closes https://github.com/astral-sh/ty/issues/5
The reviewer situation in this repository is unhinged, cc @Gankra and
@MichaReiser for review.
|
||
|---|---|---|
| .. | ||
| docs | ||
| src | ||
| tests | ||
| Cargo.toml | ||
| README.md | ||
| build.rs | ||
README.md
ty
ty is an extremely fast type checker. Currently, it is a work-in-progress and not ready for user testing.
ty is designed to prioritize good type inference, even in unannotated code, and aims to avoid false positives.
While ty will produce similar results to mypy and pyright on many codebases, 100% compatibility with these tools is a non-goal. On some codebases, ty's design decisions lead to different outcomes than you would get from running one of these more established tools.
Contributing
Core type checking tests are written as Markdown code blocks.
They can be found in ty_python_semantic/resources/mdtest.
See ty_test/README.md for more information
on the test framework itself.
The list of open issues can be found here.