Run conformance tests in GitHub CI (#4579) Summary: The typing conformance suite only runs inside Meta, via the `conformance_output_test` Buck target. On GitHub nothing invokes it, so a PR that changes pyrefly's conformance output goes green while leaving the checked-in `conformance.exp` stale. The mismatch only surfaces later, when the change is imported internally and fails there. Add a step to the `pyrefly` workflow that runs `conformance_output.py --mode check` against the release binary that job already built, matching what internal CI checks. The step is restricted to Linux: the generated output does not vary by platform, so one OS suffices, and the check cannot run on Windows because it keys results by splitting paths on `/`. The check-mode failure message told the reader to re-generate the output with `buck2`, which a GitHub contributor has no way to run. It now branches on whether `--executable` was passed, since that flag is precisely the signal that the caller is outside Buck, and prints the corresponding cargo-based command. Reviewed By: ndmitchell, rchen152 Differential Revision: D116394357
Pyrefly is a type checker and language server for Python, which provides lightning-fast type checking along with IDE features such as code navigation, semantic highlighting, and code completion. It is available as a command-line tool and an extension for popular IDEs and editors such as VSCode, Neovim, Zed, and more.
See the Pyrefly website for full documentation and how to add Pyrefly to your editor of choice.
Pyrefly's current development status is stable.
pyrefly init, silence existing errors with pyrefly suppress, and generate type annotations with pyrefly infer. Start with one file and expand at your own pace.pip install pyreflyPyrefly releases new minor versions (1.x.0) monthly and patch versions in between as-needed for critical fixes. Pyrefly does not follow strict semantic versioning: minor versions contain more significant changes than patch versions, but any version may introduce new type errors and other breaking changes. The pyrefly suppress command can be used to easily silence errors when upgrading to a new version.
If you have questions or would like to report a bug, please create an issue.
See our contributing guide and architecture overview for information on how to contribute to Pyrefly.
Join our Discord to chat about Pyrefly and types. This is also where we hold biweekly office hours.