Skip to content

Split up requirements, update CONTRIBUTING.md #2208

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

Merged
merged 3 commits into from
May 26, 2017

Conversation

ColCarroll
Copy link
Member

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 from requirements.txt (and plays nicely with the above trick), and useful packages for development can be installed with requirements-dev.txt.

  • Also slimmed down create_testenv.sh (for example, pytest-cov installs coverage), 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 with setup.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 made numdifftools optional.

  • h5py is only used for the backend

Finally! We might want to benchmark speedups from mkl-service and advertise them -- the create_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.

requirements.txt Outdated
six
h5py
six>=1.10.0
h5py>=2.7.0
Copy link
Member

Choose a reason for hiding this comment

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

I think h5py and numdifftools are already optional, so we should move them to extra.

@twiecki
Copy link
Member

twiecki commented May 22, 2017

Your point on mkl-service is great. It makes a huge difference so we should definitely let the user know and make sure it gets installed by default.

@twiecki
Copy link
Member

twiecki commented May 24, 2017

I think this is a blocker for 3.1.

@twiecki twiecki added this to the 3.1 milestone May 24, 2017
@ColCarroll
Copy link
Member Author

erp, sorry, forgot about it -- can tweak in a few hours. reflecting on it, I'm actually more in favor of removing numpy/scipy as requirements, since theano already does that (so we're just increasing the chance of a version mismatch). That can wait for a while though!

@twiecki
Copy link
Member

twiecki commented May 25, 2017

We can remove them, it's a good idea. We'd push another release candidate to make sure it doesn't cause any problems.

@twiecki twiecki merged commit edddb2c into pymc-devs:master May 26, 2017
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.

2 participants