release_notes/release-notes-v1.3.0-dev.2.md
Release date: August 17, 2026
About dev releases Dev releases (versions like
X.Y.Z-dev.N) are non-stable snapshots cut periodically from trunk. They give early adopters a chance to try in-progress features and surface issues before the next stable release, but they don't carry the same stability or compatibility guarantees as a stable release — don't pin production projects to a dev version.
Pyrefly v1.3.0-dev.2 bundles 126 commits from 29 contributors.
__call__ are now checked for override consistency like any other method, catching incompatible signatures that would fail at runtime.TypeForm, fixing cases where valid type expressions were incorrectly rejected.no-any-return no longer fires on functions declared to return object, since all runtime values satisfy object.__init_subclass__ attributes are now detected, catching runtime errors when a class inherits from a parent with a non-callable __init_subclass__.object for TypeVars, tuple[()] for TypeVarTuples, ... for ParamSpecs) rather than always using Any.preset=auto default behavior.--output destinations with different formats can now be specified on the command line, enabling simultaneous output to multiple formats.--error-unused flag exits non-zero when the baseline contains unused entries, ensuring CI fails until the baseline is refreshed.--remove-unused flag rewrites the baseline with only entries that still match, allowing the set of suppressed errors to shrink without recording new ones.baseline-error-level configuration option, with provenance markers indicating which results matched the baseline.We closed 16 bug issues this release 👏
x: int followed by y = x incorrectly reported that x could not be found.datetime.datetime is now correctly recognized as a subtype of datetime.date, fixing false positives when dates and datetimes were used interchangeably.*args: *tuple[*Ts, Suffix] annotations now correctly track the variadic tuple shape during call matching, accepting arguments that match the prefix, middle, and suffix elements.__init__, fixing false errors when an annotation's type implements __get__ but no class-level descriptor exists.Literal types can now match TypeForm, fixing cases where valid type expressions were rejected.__all__ are now preserved even when a later dynamic append or extend cannot be resolved, fixing false implicit-reexport errors for names like torch.Tensor.init=False and required/optional status, fixing false errors when dataclass-transform field specifiers return descriptors.* marker, so args= becomes *args= in signature help.Thank-you to all our contributors who found these bugs and reported them! Did you know this is one of the most helpful contributions you can make to an open-source project? If you find any bugs in Pyrefly we want to know about them! Please open a bug report issue here.
pip install --upgrade pyrefly==1.3.0-dev.2
Upgrading the version of Pyrefly you're using or a third-party library you depend on can reveal new type errors in your code. Fixing them all at once is often unrealistic. We've written scripts to help you temporarily silence them. After upgrading, follow these steps:
pyrefly check --suppress-errorspyrefly check --remove-unused-ignoresThis will add # pyrefly: ignore comments to your code, enabling you to silence errors and return to fix them later. This can make the process of upgrading a large codebase much more manageable.
Read more about error suppressions in the Pyrefly documentation.
@rchen152, generatedunixname2066905484085733, @yangdanny97, David Tolnay, generatedunixname949130641157030, @javabster, @shobhitmehro, @asukaminato0721, @samwgoldman, @kinto0, @alexander-beedie, @grievejia, @connernilsen, @tobyh-canva, @IBlackVoid, @nitishagar, @WilliamK112, @lyydsheep, @NathanTempest, @ytausch, @patrickswedish, @xaskii, generatedunixname1431085361989520, @a7or, @markselby9, @heejaechang, Willem Kokke, @dillydill123, @kakolla
Please note: These release notes summarize major updates and features. For brevity, not all individual commits are listed.