dbrgn / heroku-buildpack-python-sklearn

Python buildpack with Numpy 1.7.0, SciPy 0.11.0 and a current version of Scikit-learn.
MIT License
31 stars 28 forks source link

Upgrade numpy to 1.7.1 and scipy to 0.12.0. #7

Closed AlJohri closed 7 years ago

AlJohri commented 10 years ago

I used lell's repository https://github.com/lell/npscipy-binaries for updated versions of numpy and scipy.

AlJohri commented 10 years ago

Closes #6.

AlJohri commented 10 years ago

Please note that existing repositories upgrading their buildpack will need to recreate the application / clear the application cache because the buildpack doesn't detect a change in numpy/scipy. It will still use the old cached version.

dbrgn commented 10 years ago

I'm currently in the hospital for a few days, I'll take a look at it when I'm back.

AlJohri commented 10 years ago

@dbrgn get better soon!

dbrgn commented 10 years ago

Thanks for the bump :) I'm back.

I'm not sure how I should handle this. If I read the buildpack correctly the Numpy/Scipy version is hardcoded. So the version requirement in requirements.txt would be ignored.

In that case this change might break things when people re-create their apps and all of a sudden get a newer version of Numpy/SciPy than before.

Do you have a good idea how we can add version support from requirements.txt? That would make it easier to add newer versions in the future. Maybe you have time to implement and test this? Unfortunately I don't use this buildpack in production anymore, so it's hard for me to judge.

Also, your comment regarding version upgrades would be resolved by comparing the desired and the installed version.

AlJohri commented 10 years ago

Can't we just search for the numpy, scipy, and scikit-learn versions within the requirements.txt, check if they are one of the versions available in the binaries repository (https://github.com/lell/npscipy-binaries) which currently seems to be

numpy: 1.6.1, 1.7.0, 1.7.1 scipy: 0.10.1, 0.11.0, 0.12.0

The different combinations of numpy and scipy are able to compile different versions of scikit-learn, however, so this would probably also need to be hardcoded.

if numpy > 1.7.0 and scipy > 0.11.0: assert_greater(scikitlearn, 0.13.0)
if numpy == 1.6.1 and scipy == 0.10.0 : ...

Something like that?

dbrgn commented 10 years ago

Yes, that would probably. I don't use this buildpack myself anymore, and I don't really have any free time right now, so if you'd like this feature it would be great if you could implement it.