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

Simplify dev setup, by removing pipenv #115

Merged
merged 3 commits into from
Jun 2, 2021

Conversation

RealOrangeOne
Copy link
Member

Replaces #67, but massively simplifies.

This is motivated by the issues around pipenv always upgrading every dependency whenever you touch any dependency.
(See pypa/pipenv#2665 and pypa/pipenv#2412)

Removing pipenv means fewer requirements for a development setup, along with a simpler and more-standard process.

I've also removed the YAML linter. There were no YAML files in the repo worth linting, and it's extra dependencies, test setup and confusion which isn't worth it or useful at this stage.

I've also elected not to use pip-tools. The dependency chain is very simple, and probably isn't worth the complexity at this point. If we find we need it, it'll be very simple to add back. We're already pinning everything we could reasonably need.

There were no YAML files in the repo worth linting, and it's extra dependencies, test setup and confusion which isn't worth it or useful at this stage.
Copy link
Contributor

@trickeydan trickeydan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It feels very dirty to do manual dependency resolution like this. I can foresee this change causing issues in the future, especially for less experienced volunteers.

@RealOrangeOne RealOrangeOne marked this pull request as ready for review May 18, 2021 08:27
@RealOrangeOne
Copy link
Member Author

It feels very dirty to do manual dependency resolution like this. I can foresee this change causing issues in the future, especially for less experienced volunteers.

Manual dependency resolution? We're only pinning our direct dependencies (and the odd special case), the rest are done automatically at install time based on whatever the package itself says it requires. Yes it's less strict than tools with lockfiles, but personally i'd much rather that than the added complexity and annoyances which come with the other (less mature) tools out there.

This setup is much more widely used, and thus more likely to be familiar to volunteers with even a basic understanding of Python's packaging ecosystem. And if they have no experience with it at all, this is much simpler than both pipenv and poetry.

Copy link
Member

@PeterJCLaw PeterJCLaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(this hasn't changed since I last approved it)

@RealOrangeOne RealOrangeOne merged commit 81f5402 into srobo:master Jun 2, 2021
@RealOrangeOne RealOrangeOne deleted the simplify-dev-setup branch June 2, 2021 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants