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
Poetry's version checking documentation has the following:
We are frequently using the caret notation to mean ">=x.y.z,<x+1.0.0". This matches the behavior circled in blue. For some version numbers however (maybe ones that start with major version == 0, but this isn't clear) the behavior matches the red circled example --- ">=x.y.z,<x.y+1.0".
Because the actual expected behavior is unclear, we should change dependencies from "^x.y.z" to ">=x.y.z,<x+1.0.0" to more reliably get the same behavior.
To Reproduce
Until a recent pull request, the pyproject.toml for volttron-platform-driver had:
volttron-lib-base-driver = "^0.1.1a3"
The pyproject.toml for volttron-lib-fake-driver had:
volttron-lib-base-driver = "0.2.1rc2"
Because "^0.1.1a3" was interpreted as: ">=0.1.1a3,<0.2.0", "0.2.1rc2" was too high. As a result, you could install volttron-lib-fake-driver first and then volttron-platform-driver successfully, but installing volttron-platform-driver first and then volttron-lib-fake-driver would fail with a dependency resolution error from pip.
Expected behavior
It should not matter which order two related packages are installed in.
Dependency requirements which are intended to include some version x to the next major version x+1 number should all be marked as ">=x.y.z,<x+1.0.0" for all modular packages.
The text was updated successfully, but these errors were encountered:
Couldn't agree more. I think the long format is more to type but it is explicit and clear for the reader. We should do this change for core and core agent and lib packages
Poetry's version checking documentation has the following:
We are frequently using the caret notation to mean ">=x.y.z,<x+1.0.0". This matches the behavior circled in blue. For some version numbers however (maybe ones that start with major version == 0, but this isn't clear) the behavior matches the red circled example --- ">=x.y.z,<x.y+1.0".
Because the actual expected behavior is unclear, we should change dependencies from "^x.y.z" to ">=x.y.z,<x+1.0.0" to more reliably get the same behavior.
To Reproduce
Until a recent pull request, the pyproject.toml for volttron-platform-driver had:
volttron-lib-base-driver = "^0.1.1a3"
The pyproject.toml for volttron-lib-fake-driver had:
volttron-lib-base-driver = "0.2.1rc2"
Because "^0.1.1a3" was interpreted as: ">=0.1.1a3,<0.2.0", "0.2.1rc2" was too high. As a result, you could install volttron-lib-fake-driver first and then volttron-platform-driver successfully, but installing volttron-platform-driver first and then volttron-lib-fake-driver would fail with a dependency resolution error from pip.
Expected behavior
It should not matter which order two related packages are installed in.
Dependency requirements which are intended to include some version x to the next major version x+1 number should all be marked as ">=x.y.z,<x+1.0.0" for all modular packages.
The text was updated successfully, but these errors were encountered: