Hello here,

If you have not noticed - we have a little bit of drama because in the
latest `uv` version, Astral unilaterally decided to make the `~=3.10`
de-facto invalid specification.

The `~=3.10`  is a perfectly valid specification widely recognized as
`>=3.10,<4` and specified like that (named "Compatible Release") in
https://peps.python.org/pep-0440/#compatible-release  and even if the
wording in the PEP is slightly ambiguous for the semantics of it - it is
widely recognized, quite heavily used and all Python tooling properly
interpret it in the way described above.

Yet the Astral team decided - unilaterally, that this is an ambiguous and
misleading specification and started issuing a warning about it. Initially,
the warning was pretty mysterious for workspace, because it did not tell
which pyproject.toml it came from (we had it in all providers and breeze) -
so after they implemented a fix, this turned into about a 100 unsilenceable
warnings every time you run `uv sync`. This happened after I complained
about this in the PR and proposed that there should be both - better
message and a way to silence the warning for maintainers that they know
what they are doing) - yet uv 7.9.19 just made the situation worse by
ballooning the number of warnings and still not allowing to silence it.

We are still waiting on a decision what Astral team will do in
https://github.com/astral-sh/uv/issues/14422, Unfortunately there is no
community to make decisions there - this is a unilateral decision of Astral
team what they do, even if ~=3.10 is perfectly valid and recognized
specification, that IMHO is not up to Astral team to make people change
their way.

So for now we are literally being forced by Astral to change the way we
declare python compatibility - PR is here
https://github.com/apache/airflow/pull/52967 . The way how `uv` workflow
works makes it impossible to keep `~=3.10` - because every time you run `uv
sync` - in our case literally several times a day you have 1.5 pages of
warnings in your terminal. So it's not a "recommendation" - we are forced
to change it.

I do not particularly like being forced like that - for the "PEP compliant"
and "standard" feature by the Astral team - but for now I created the
temporary fix - and hopefully the decision will be reversed and we will be
able to silence the warning - if we choose to do so.

Speaking of which:

Assuming that we have a choice (we do not have it now) - what would be your
preference:

* Should we continue using ~3.10 ?
* Or should we switch to >=3.10,<4 ?

I'd love to hear - regardless of the forceful change now - what is the
preference of the community members. I have no "strong" preferences, I
slightly prefer the `~3.10` as it is more concise. But I know others might
have a different preference. And assuming that the Astral team will stop
forcing us to "voluntarily choose" the latter, I would love that our
community makes that choice on their own.

What do you prefer?

J.

Reply via email to