Thanks Jarek, I am just catching up with this discussion. I agree that this is unilaterally forcing us to make changes, though the one (~=3.10) is also the standard one we have been using.
I am in favour of using our existing convention ~=3.10. Pavan On Mon, Jul 7, 2025 at 10:12 AM Jarek Potiuk <ja...@potiuk.com> wrote: > 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. >