Remix.run Logo
bbor 2 hours ago

  Ruff v0.16 has a small number of breaking changes
Why. Why must my poor semver be hurt so!

I sorta kinda get why `ty` is pre v1.0.0 -- it's a typechecker that doesn't check a huge number of types. But what are we waiting for with `ruff`? Surely it's eaten whatever the old options were (black? maybe a few takes on py+lint?) by now many times over, and is even more dominant than `uv`.

I run this program hundreds of times a day so I'm generally excited for new features, but I guess the OAI acquisition has made me ornery when it comes to these folks. Apologies to kindly nerds who made this release happen, and congrats <3

microtonal 38 minutes ago | parent | next [-]

Why must my poor semver be hurt so!

It is fully according to their versioning policy:

https://docs.astral.sh/ruff/versioning/

But also compliant with semver:

Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

https://semver.org/

(Maybe I misinterpreted your remark, but semver does not get hurt.)

colinmarc an hour ago | parent | prev [-]

It's conventional for semver to allow breaking changes for 0.x minor releases (but not for patch releases).

jakobnissen 39 minutes ago | parent [-]

Yes but the question is why Ruff has not released v1 yet. They’re clearly used in production and the entire purpose of v0.x is to signal a project is early in development and is expected to have coarse edges.