Skip to content

Producing constraints.txt files #1300

@nbren12

Description

@nbren12

What's the problem this feature will solve?

We have been using pip-compile to manage building the environments of several different "micro-projects" in a monorepo while ensuring that if two micro-projects share have the same dependency then the same version of that dependencey is used. To do this, we use the output of pip-compile as a constraints.txt file. The overall structure is like this

pip-compile app1 app2 app3 --output-file constraints.txt

# build environment for one app
pip install -c constraints.txt app1

This worked fine with the old pip, but with the new dependency solver, pip install -c does not support extra requirements. This is the error message:

$ pip install -c constraints.txt ipython
DEPRECATION: Constraints are only allowed to take the form of a package name and a version specifier. Other forms were originally permitted as an accident of the implementation, but were undocumented. The new implementation of the resolver no longer supports these forms. A possible replacement is replacing the constraint with a requirement.. You can find discussion regarding this at https://github.com/pypa/pip/issues/8210.
ERROR: Constraints cannot have extras

I'm not sure if this is a "bug" or an un-supported use-case. Until now it has worked quite well for our monorepo, and is part of why I chose pip-tools over less composable solutions like poetry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions