You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
portalocker and qdrand-client cannot be upgraded #52545
From what I can tell we set portalocker as dependency due to problems with upstream library. Airflow doesnt require portalocker as direct dependcy.
This is a transitive dependency - and we lower-bind it, so the fact that we are including it here is only "helping" but not preventing the upgrade.
--- Explaining for portalocker (current: 2.10.1, latest: 3.2.0) ---
uv sync output for portalocker==3.2.0:
warning: The release specifier (`~=3.10`) contains a compatible release match without a patch version. This will be interpreted as `>=3.10, <4`. Did you mean `~=3.10.0` to freeze the minor version?
× No solution found when resolving dependencies for split
│ (python_full_version == '3.12.*' and platform_machine == 'x86_64' and
│ sys_platform == 'darwin'):
╰─▶ Because all of:
qdrant-client>=1.10.1,<=1.13.3
qdrant-client>=1.14.1
depend on portalocker>=2.7.0,<3.0.0 and only the following versions of
qdrant-client are available:
qdrant-client<=1.10.1
qdrant-client==1.11.0
qdrant-client==1.11.1
qdrant-client==1.11.2
qdrant-client==1.11.3
qdrant-client==1.12.0
qdrant-client==1.12.1
qdrant-client==1.12.2
qdrant-client==1.13.0
qdrant-client==1.13.1
qdrant-client==1.13.2
qdrant-client==1.13.3
qdrant-client==1.14.0
qdrant-client==1.14.1
qdrant-client==1.14.2
qdrant-client==1.14.3
we can conclude that all of:
qdrant-client>=1.10.1,<1.14.0
qdrant-client>1.14.0
depend on portalocker>=2.7.0,<3.0.0.
And because qdrant-client==1.14.0 was yanked (reason: Broken
dependency), we can conclude that qdrant-client>=1.10.1 depends on
portalocker>=2.7.0,<3.0.0.
And because apache-airflow-providers-qdrant depends on
qdrant-client>=1.10.1 and apache-airflow depends on portalocker==3.2.0,
we can conclude that apache-airflow-providers-qdrant and
apache-airflow are incompatible.
And because your workspace requires apache-airflow and
apache-airflow-providers-qdrant, we can conclude that your workspace's
requirements are unsatisfiable.
hint: While the active Python version is 3.10, the resolution failed for
other Python versions supported by your project. Consider limiting your
project's supported Python versions using `requires-python`.
It's clear that it's the "clash" between latest portalocker and latest qdrant is causing portalocker not being upgraded:
qdrant-client>=1.10.1,<=1.13.3
qdrant-client>=1.14.1
depend on portalocker>=2.7.0,<3.0.0 and only the following versions of
So yes. It's qdrant-client that does not allow us to upgrade portalocker and the fact that we add it directly has no impact on it.
A lot of our dependencies are transitive - like portalocker. Generally "lower-bounds" do not limit from upgrading to newer versions, and the reason we have them is to help pip to not go into backtracking loop, because of it's resolution algorithm being imperfect. We can attempt to remove direct portalocker reference in our pypproject.toml when pip 25.2 gets released with the new resolvlib 1.2 that is supposed to better handle the situation where too many "possible" dependencies are causing backtracking - but it will not help in this case. Here, only releasing new qdrant-client that will not limit portalocker might help.
Those are current requirements of latest released qdrant-client - 1.14.1. Clearly it has portalocker (>=2.7.0,<3.0.0) that absolutely prevents us from installing portalocker 3.2.0 (as uv sync above helpfully explained).
Activity
eladkal commentedon Jul 1, 2025
From what I can tell we set
portalockeras dependency due to problems with upstream library. Airflow doesnt require portalocker as direct dependcy.potiuk commentedon Jul 1, 2025
This is a transitive dependency - and we lower-bind it, so the fact that we are including it here is only "helping" but not preventing the upgrade.
It's clear that it's the "clash" between latest portalocker and latest qdrant is causing portalocker not being upgraded:
So yes. It's qdrant-client that does not allow us to upgrade portalocker and the fact that we add it directly has no impact on it.
potiuk commentedon Jul 1, 2025
A lot of our dependencies are transitive - like portalocker. Generally "lower-bounds" do not limit from upgrading to newer versions, and the reason we have them is to help
pipto not go into backtracking loop, because of it's resolution algorithm being imperfect. We can attempt to remove direct portalocker reference in our pypproject.toml when pip 25.2 gets released with the new resolvlib 1.2 that is supposed to better handle the situation where too many "possible" dependencies are causing backtracking - but it will not help in this case. Here, only releasing new qdrant-client that will not limit portalocker might help.potiuk commentedon Jul 1, 2025
Those are current requirements of latest released qdrant-client - 1.14.1. Clearly it has
portalocker (>=2.7.0,<3.0.0)that absolutely prevents us from installing portalocker 3.2.0 (as uv sync above helpfully explained).eladkal commentedon Aug 7, 2025
Solved by #54066