OCHRE icon indicating copy to clipboard operation
OCHRE copied to clipboard

Declare verisons of dependencies

Open vtnate opened this issue 1 year ago • 8 comments

  • Requirements should be versioned, ideally using compatible versioning.
  • Python version should be restricted too, to not pick up development versions.
    • For instance, due to a numba restriction, Python 3.12 is not supported by OCHRE.

vtnate avatar Jan 11 '24 21:01 vtnate

Thanks for adding this. We'll make sure we get to it before the next release.

mnblonsky avatar Jan 12 '24 19:01 mnblonsky

We have another dependency issue too. OCHRE only works with pandas>=1.4 and <=2.0.3. We'll make sure the latest pandas is supported in the next release

mnblonsky avatar Feb 19 '24 23:02 mnblonsky

I think this is partially addressed in #120. I restricted python to <3.12. We fixed the pandas issue, so no need to restrict that. We haven't fully tested compatibility for other dependencies, but I think we can update those as we find issues.

mnblonsky avatar Apr 29 '24 22:04 mnblonsky

If ochre is ready to be used by people outside of your dev team, please add versioning requirements to the dependencies! You never know when, for instance, Pandas will release version 3.0.0 and break something ochre depends on. Since you support both Pandas 1 & 2, you can't use compatible-release versioning, you'd have to do something like Pandas >=1.4, < 3.0.

Might also be nice to remind yourself with a comment that numba is the reason you can't support python 3.12, so a new version of numba would allow you to relax that requirement.

vtnate avatar Apr 30 '24 14:04 vtnate

@vtnate do you mind reviewing this commit? Any recommended changes? https://github.com/NREL/OCHRE/pull/120/commits/6d920d8f954e3c5fa57c37dc69e3f06e21d4a157

mnblonsky avatar May 02 '24 14:05 mnblonsky

I'm testing with python 12 too, I'll add that back in if there's still a compatibility issue

mnblonsky avatar May 02 '24 14:05 mnblonsky

@vtnate do you mind reviewing this commit? Any recommended changes? 6d920d8

@mnblonsky I like it!

  1. Why only version some dependencies?
  2. When projects are still in the 0.y.z version phase, changes to minor (.y) versions often include breaking changes. You may be safer setting those dependencies to 0.y.0 instead of 0.y.
    • I recently got burned by this on another project so it's fresh in my mind 😆

vtnate avatar May 02 '24 15:05 vtnate

Addressed both of those, and Python 3.12 works. Thanks for the review!

mnblonsky avatar May 15 '24 21:05 mnblonsky

Merged in v0.8.5

mnblonsky avatar Aug 02 '24 19:08 mnblonsky