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
When adding packageboto3 and s3fs poetry automatically uses the latest version for both. However it is 'fixated' on those latest versions making it too strict. Currently, the latest versions of boto3 and s3fs don't go well with another, and version 1.34.34 rather than 1.34.36 has to be used for boto3 in order to work with s3fs, a difference of two minor revisions/patches.
When running
poetry add --dry-run boto3 s3fs
One would assume that poetry installs boto3 and s3fs, no matter which version (though preferably the latest). However, as the output below shows, it tries to install (and only tries to install) the latest version, leading to a dependency conflict:
Using version ^1.34.36 for boto3
Using version ^2024.2.0 for s3fs
Updating dependencies
Resolving dependencies... (0.9s)
Because no versions of aiobotocore match >2.5.4,<2.6.0 || >2.6.0,<2.7.0 || >2.7.0,<2.8.0 || >2.8.0,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.10.0 || >2.10.0,<2.11.0 || >2.11.0,<2.11.1 || >2.11.1,<2.11.2 || >2.11.2,<3.0.0
and aiobotocore (2.5.4) depends on botocore (>=1.31.17,<1.31.18), aiobotocore (>=2.5.4,<2.6.0 || >2.6.0,<2.7.0 || >2.7.0,<2.8.0 || >2.8.0,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.10.0 || >2.10.0,<2.11.0 || >2.11.0,<2.11.1 || >2.11.1,<2.11.2 || >2.11.2,<3.0.0) requires botocore (>=1.31.17,<1.31.18).
And because aiobotocore (2.6.0) depends on botocore (>=1.31.17,<1.31.18), aiobotocore (>=2.5.4,<2.7.0 || >2.7.0,<2.8.0 || >2.8.0,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.10.0 || >2.10.0,<2.11.0 || >2.11.0,<2.11.1 || >2.11.1,<2.11.2 || >2.11.2,<3.0.0) requires botocore (>=1.31.17,<1.31.18).
And because aiobotocore (2.7.0) depends on botocore (>=1.31.16,<1.31.65)
and aiobotocore (2.8.0) depends on botocore (>=1.32.4,<1.33.2), aiobotocore (>=2.5.4,<2.9.0 || >2.9.0,<2.9.1 || >2.9.1,<2.10.0 || >2.10.0,<2.11.0 || >2.11.0,<2.11.1 || >2.11.1,<2.11.2 || >2.11.2,<3.0.0) requires botocore (>=1.31.16,<1.31.65 || >=1.32.4,<1.33.2).
And because aiobotocore (2.9.0) depends on botocore (>=1.33.2,<1.33.14)
and aiobotocore (2.9.1) depends on botocore (>=1.33.2,<1.33.14), aiobotocore (>=2.5.4,<2.10.0 || >2.10.0,<2.11.0 || >2.11.0,<2.11.1 || >2.11.1,<2.11.2 || >2.11.2,<3.0.0) requires botocore (>=1.31.16,<1.31.65 || >=1.32.4,<1.33.14).
And because aiobotocore (2.10.0) depends on botocore (>=1.33.2,<1.34.23)
and aiobotocore (2.11.0) depends on botocore (>=1.33.2,<1.34.23), aiobotocore (>=2.5.4,<2.11.1 || >2.11.1,<2.11.2 || >2.11.2,<3.0.0) requires botocore (>=1.31.16,<1.31.65 || >=1.32.4,<1.34.23).
And because aiobotocore (2.11.1) depends on botocore (>=1.33.2,<1.34.28)
and aiobotocore (2.11.2) depends on botocore (>=1.33.2,<1.34.35), aiobotocore (>=2.5.4,<3.0.0) requires botocore (>=1.31.16,<1.31.65 || >=1.32.4,<1.34.35).
Because no versions of s3fs match >2024.2.0,<2025.0.0
and s3fs (2024.2.0) depends on aiobotocore (>=2.5.4,<3.0.0), s3fs (>=2024.2.0,<2025.0.0) requires aiobotocore (>=2.5.4,<3.0.0).
Thus, s3fs (>=2024.2.0,<2025.0.0) requires botocore (>=1.31.16,<1.31.65 || >=1.32.4,<1.34.35).
And because boto3 (1.34.36) depends on botocore (>=1.34.36,<1.35.0)
and no versions of boto3 match >1.34.36,<2.0.0, s3fs (>=2024.2.0,<2025.0.0) is incompatible with boto3 (>=1.34.36,<2.0.0).
So, because poetry-bug-report depends on both boto3 (^1.34.36) and s3fs (^2024.2.0), version solving failed.
When, on the other hand, the command below is run, which specifies the major and minor version but not the patch/revision
when poetry add boto3 s3fs a user just wants to install these packages, it is rarely the case the user wants and only wants, the very latest package, because if so, the user would specify it. Having to specify poetry add boto3@^1.34.0 s3fs@^2024.0.0 in order for this to work, means the user must look up the current major and minor revision for each package in order for it to work, which is cumbersome, and most would expect this to be the default behavior.
dvorst
changed the title
poetry add results in "no versions of 'package match version'
poetry add results in "no versions of 'package' match 'version'
Feb 7, 2024
dvorst
changed the title
poetry add results in "no versions of 'package' match 'version'
poetry add is too strict resulting in no versions of 'package' match 'version'
Feb 7, 2024
The Issue
When adding package
boto3
ands3fs
poetry automatically uses the latest version for both. However it is 'fixated' on those latest versions making it too strict. Currently, the latest versions of boto3 and s3fs don't go well with another, and version 1.34.34 rather than 1.34.36 has to be used for boto3 in order to work with s3fs, a difference of two minor revisions/patches.When running
One would assume that poetry installs boto3 and s3fs, no matter which version (though preferably the latest). However, as the output below shows, it tries to install (and only tries to install) the latest version, leading to a dependency conflict:
When, on the other hand, the command below is run, which specifies the major and minor version but not the patch/revision
Then the installation succeeds.
Why this is a problem
when
poetry add boto3 s3fs
a user just wants to install these packages, it is rarely the case the user wants and only wants, the very latest package, because if so, the user would specify it. Having to specifypoetry add boto3@^1.34.0 s3fs@^2024.0.0
in order for this to work, means the user must look up the current major and minor revision for each package in order for it to work, which is cumbersome, and most would expect this to be the default behavior.poetry debug info
pyproject.toml
System info
MacBook Pro 2022
Apple silicon M2 processor
macOs 14.2
The text was updated successfully, but these errors were encountered: