-
Notifications
You must be signed in to change notification settings - Fork 12
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
Update handling of installation requirements #90
Update handling of installation requirements #90
Conversation
Thank you so much @cthoyt again! :) Two things:
|
|
Btw @matentzn I use |
setup.cfg
Outdated
networkx | ||
pandasql | ||
sparqlwrapper | ||
jsonasobj~=1.2.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this required? isn't this a transitive dependency?
I feel this may have been put in as a patch at some point. I think if removed everything will work fine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say including transitive dependencies in setup.cfg is explicitly bad. I didn't carefully read all requirements list but rather copied this over from the requirements.txt file, so I would be happy to remove ones that aren't explicitly imported in the package itself. However, any dependency that's explicitly imported in a package should explicitly list it as a dependency. I hope the difference makes sense, let me know if not and I will elaborate
sorry I didn't realize I was the blocker. Let's do it! @hrshdhgd let's prioritize! cc @sierra-moxon to coordinate with our cookiecutter template one thing I don't understand is do we remove all version info from dependencies altogether? I agree this is a nightmare, and I don't like pinning to specific versions since it inhibits reuse. But there are some versions of some packages we know just won't work. isn't nx finicky? I like to at least be able to specify a major version requirements |
I think doing minimum versions is good if you're taking advantage of a feature that got introduced at a certain point. For some packages you might also want to specify a maximum version (e.g., I've done it for RDFlib) but this is typically a bad move because it means you don't support the newest code. Overall I think it's still fine to play it fast and loose w.r.t. version numbers until disaster occurs :) |
Closing in favour of #113 |
@matentzn why? Couldn't you have just made updates to this branch? Plus what you did makes it hard to track/attribute the updates |
Ok, can you move it then? Since we will work on the branch, I want it to be on this repo - but due to conflicts I couldn't move it.. If you want, just reopen your pull request again but not to master, and with conflicts resolved. |
@matentzn btw there's a button on the right "Allow edits by maintainers" that I didn't check. Most repos have it checked by default - you can change this in the settings for the repo so new PRs will automatically be able to be edited by the maintainers |
Did you allow edits now? |
This PR updates the way requirements are installed. Notably, it removes the
requirements.txt
,Pipfile
, andPipfile.lock
since those are typically only used for web applications and one-off scripts. There's the little caveat where this means some installation dependencies can get mixed up, but Python is provably bad at this, and it's a crapshoot anyway (especially if you expect someone to install your software).The requirements for docs and tests get put in their own
extras
inside thesetup.cfg
. All installation is changed to use pip. Tox allows you to specify which extras you want (should be obvious from the diff)