Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sharing dev dependencies between projects #3664

Open
alexhall opened this issue Apr 1, 2019 · 3 comments
Open

Sharing dev dependencies between projects #3664

alexhall opened this issue Apr 1, 2019 · 3 comments
Labels
Category: Dependency Resolution Issue relates to dependency resolution. Status: Requires PEEP This issue requires an accompanying enhancement proposal Type: Behavior Change This issue describes a behavior change. Type: Enhancement 💡 This is a feature or enhancement request.

Comments

@alexhall
Copy link

alexhall commented Apr 1, 2019

My team has a mondorepo-style setup (single Github repo with several Python projects that are tested, built, and deployed independently). We're looking at using pipenv to set each project up with its own Pipfile and virtual-environment, to allow us to isolate project dependencies.

At the same time, we want to be able to share a standard set of development dependencies between these projects (e.g. mypy, pytest, autopep8) to support a standard team development environment. It would appear that our options right now are either:

  • Duplicate all the dev dependencies in every project Pipfile. This isn't very satisfactory because it adds a lot of overhead in keeping those dependencies in sync between projects.
  • Maintain these dev dependencies outside of pipenv, e.g. in a requirements.txt that we install directly via pip user-install in the system Python. This isn't very satisfactory because it forces us to give up on many of the benefits offered by pipenv in terms of isolation and repeatability.

Is there a recommended setup, using pipenv or any other standard tooling, which lets us maintain per-project application dependencies with shared dev dependencies that still gives us isolation and repeatability?

@SwampFalc
Copy link

I came into this ticket because I basically would like the same thing.

But while trying a few bits and bobs out, I realized pipenv will use the Pipfile in the directory you're in. If you make a "dev" folder and put a Pipfile in there with only the dev-packages section, you should be able to basically pipenv twice.

@techalchemy techalchemy added Category: Dependency Resolution Issue relates to dependency resolution. Status: Requires PEEP This issue requires an accompanying enhancement proposal Type: Behavior Change This issue describes a behavior change. Type: Enhancement 💡 This is a feature or enhancement request. labels May 19, 2019
@techalchemy
Copy link
Member

The proposal sounds interesting, but I believe we would need to see the idea laid out in an enhancement proposal (a markdown document submitted via a PR to the peeps directory, see PEEP-001) basically to let us know how this behavior should work and what changes would be required to accomplish it so that we can be sure we understand the request

@alexhall
Copy link
Author

@techalchemy I'm happy to write up a proposal, though it's doubtful I'll have time to contribute anything to its implementation. My main goal in opening this issue was to see if such functionality is currently supported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Dependency Resolution Issue relates to dependency resolution. Status: Requires PEEP This issue requires an accompanying enhancement proposal Type: Behavior Change This issue describes a behavior change. Type: Enhancement 💡 This is a feature or enhancement request.
Projects
None yet
Development

No branches or pull requests

3 participants