GenoML / genoml2

GenoML (genoml2) is an open source Python package. It is an automated machine learning (autoML) platform for genomics data
Apache License 2.0
28 stars 17 forks source link

requirements.txt should include package version info #4

Closed mgibbs1259 closed 4 years ago

mgibbs1259 commented 4 years ago

Please make sure that this is a feature request.

System information

Describe the feature and the current behavior/state. To avoid ending up in dependency hell, the requirements.txt file should include package versions.

Will this change the current api? How? No

Who will benefit with this feature? Everyone! This will help ensure reproducibility.

Any Other info.

xldrx commented 4 years ago

Thank you @mgibbs1259 for the suggestion. While adding exact dependency versions could help with reproducibility, it has some severe impact on the rest of the system by blocking other packages with different (usually higher) version dependencies to install.

In practice packages are very selective about adding exact versions to the requirements. Here are some examples:

  1. PyTorch does not add any version to the requirements [Link]
  2. matplotlib only add minimum version [Link]
  3. Pandas selectively add exact versions to the requirements 4 out of 72 [Link]

Same pattern is followed by other python packages.

That being said, we have decided to be very conservative on dependency versioning in genoml. Could you elaborate on problems you have encounter regarding requirements?

mgibbs1259 commented 4 years ago

Thanks for taking the time to respond, @xldrx! Your explanation was very informative, and I didn't realize that those packages were selective about exact versions in their requirements. I just had one minor problem with the requirements that I should have elaborated on in this issue (sorry about this!). I'm using the python_v1.5 branch, and I created a Python 3.7.4 virtual environment. When installing the requirements, I ran into a minor problem when installing xgboost. I saw in docs/GettingStarted.sh, there is a comment with steps for dealing with this issue. I was able to get xgboost to install successfully by using pip install xgboost==0.90.

m-makarious commented 4 years ago

Moved issue to new repo for completeness and consistency