Update dependency management #1381
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[please review the Contribution Guidelines prior to submitting your pull request. go ahead and delete this line if you've already reviewed said guidelines.]
What does this PR do?
Provide baseline updates to use
pyproject.toml
+poetry
for more automated dependency management and deployment (#1379), as well as differentiating between CPU- and GPU-targeted installs. Likely some minor deployment-related details are still missing here (which I can't test), but I'm hoping this is a useful baseline to work from. Builds on an earlier draft PR I submitted to the tpot2 repo, but now CI tests are updated / passing.Should resolves several issues:
I left TODO's in
pyproject.toml
with a partial list of those I didn't need to make the tests pass.update_checker
optional (opt-in)In context of my closed source apps that use TPOT, this check is overkill that adds unnecessary / confusing output that end users aren't familiar with & don't know how to resolve. I see the value for other users, but there doesn't appear to be any way, e.g. with configuration, to silence the very-aggressive update checks (can appear minutes after a new TPOT release).
New local dev install process would be, e.g.:
Downstream pypi downloads of published versions should support extras, e.g.
pip install tpot[cpu]
or similar.Where should the reviewer start?
pyproject.toml
How should this PR be tested?
Tests in tox.ini are already passing. There may be some additional testing needed to make this work in deployment to pypi. I drafted the code for that, but don't have access to test deployments for TPOT (or any experience publishing packages to pypi yet).
Any background context you want to provide?
I'm again short on time to help with this, so may not be able to address comments quickly (or at all). I'm hoping this is a big boost in a helpful direction, and happy for others to take the ball and run with it.
What are the relevant issues?
[you can link directly to issues by entering # then the number of the issue]
Screenshots (if appropriate)
Questions: