superlinear-ai / poetry-cookiecutter

🍪 Poetry Cookiecutter is a modern Cookiecutter template for scaffolding Python packages and apps
GNU Affero General Public License v3.0
252 stars 37 forks source link

Do not use range-pinning in pyproject.toml #188

Closed woutervh closed 1 year ago

woutervh commented 1 year ago

In pyproject.toml, you are using range-pinning all dependencies.

Although the poetry-creators promote this as a default, this should be considered very harmful, as it quickly creates an avoidable unnecessary dependency-hell with a multitude of false incompatibility-reports.

see https://iscinumpy.dev/post/bound-version-constraints/ for a detailed write-up.

Range-pinning conflates the concept of abstract dependencies versus concrete dependencies .

In pyproject.toml (and setup.py before) we should define the abstract dependencies, while poetry.lock and requirements.txt contain the list of concrete dependencies to recreate an reproducible environment

lsorber commented 1 year ago

Hi @woutervh, thanks for submitting an issue! I agree – we'll remove the upper bounds on the package's/application's version specifiers where possible.

lsorber commented 1 year ago

@woutervh this should now be resolved!