Split up requirements, update CONTRIBUTING.md #2208
Merged
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.
Addresses #2199 . Might take a few tries on travis.
A few changes:
Using a neat trick to install by version in requirements.txt: http://stackoverflow.com/questions/19559247/requirements-txt-depending-on-python-version/33451105#33451105, though this will apparently break on
pip < 6.0
.setup.py
still reads requirements fromrequirements.txt
(and plays nicely with the above trick), and useful packages for development can be installed withrequirements-dev.txt
.Also slimmed down
create_testenv.sh
(for example,pytest-cov
installscoverage
), though it'd be nice to figure out a way for that to read from requirements{-dev}.txt, too. I like using conda to create that environment, but don't know enough about how to get conda to play nicely withsetup.py
...Also, there are at least two libraries that are still included but could be considered optional or removed (really, if we wanted to be super careful, probably just theano suffices, since it requires numpy and scipy):
numdifftools
is used for one test, and one function that is used nowhere else (tuning.scaling.approx_hessian
), and was last touched 4 years ago when @twiecki madenumdifftools
optional.h5py
is only used for the backendFinally! We might want to benchmark speedups from
mkl-service
and advertise them -- thecreate_testenv.sh
script installs it, but if we find real performance benefits from it, it might make sense to add to the requirements, or mention somewhere that this exists.