Skip to content
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

Bump minimum versions for dependencies #9434

Merged
merged 5 commits into from
Sep 5, 2024

Conversation

dcherian
Copy link
Contributor

@dcherian dcherian commented Sep 5, 2024

# h5py and hdf5 tend to cause conflicts
# for e.g. hdf5 1.12 conflicts with h5py=3.1
# prioritize bumping other packages instead
- h5py=3.8
- hdf5=1.12
- hypothesis
- iris=3.4
- iris=3.7
- lxml=4.9 # Optional dep of pydap
- matplotlib-base=3.7
- nc-time-axis=1.4
# netcdf follows a 1.major.minor[.patch] convention
# (see https://github.com/Unidata/netcdf4-python/issues/1090)
- netcdf4=1.6.0
Copy link
Collaborator

Choose a reason for hiding this comment

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

in theory we can also bump to netcdf4=1.6.4. This would mean that we don't support any version that is not affected by the race conditions, though, so not sure if we should do that.

Copy link
Member

Choose a reason for hiding this comment

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

Let's do this!

Copy link
Contributor Author

@dcherian dcherian Sep 5, 2024

Choose a reason for hiding this comment

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

we don't support any version that is not affected by the race conditions, though

hmmm I am not so sure.

doc/whats-new.rst Outdated Show resolved Hide resolved
@dcherian
Copy link
Contributor Author

dcherian commented Sep 5, 2024

Merging. We could potentially bump netcdf4, and h5py in a future PR.

@dcherian dcherian merged commit 25debff into pydata:main Sep 5, 2024
28 checks passed
@dcherian dcherian deleted the bump-min-versions branch September 5, 2024 17:23
@max-sixty
Copy link
Collaborator

max-sixty commented Sep 5, 2024

Does anyone happen to know off-hand why the numbagg min version didn't bump? I can look more unless someone can immediately see

https://pypi.org/project/numbagg/#history — most recent version released 12 months ago was 0.2.2, released on 2023-01-04, while this specifies 0.2.1. We get big progression & xarray code simplification over the next six weeks, when we get to 12 months since 0.6.0

@dcherian
Copy link
Contributor Author

dcherian commented Sep 5, 2024

We get big progression & xarray code simplification over the next six weeks, when we get to 12 months since 0.6.0

I think it's ok to be a little loose on this timeline if the benefits are large.

@keewis
Copy link
Collaborator

keewis commented Sep 5, 2024

we didn't teach the min-versions script to understand X.major.minor versions, yet, only major.minor.patch versions. Thus, netcdf4 and numbagg (and all packages with 0.x.y versions) will have to be checked manually.

@max-sixty
Copy link
Collaborator

we didn't teach the min-versions script to understand X.major.minor versions, yet, only major.minor.patch versions. Thus, netcdf4 and numbagg (and all packages with 0.x.y versions) will have to be checked manually.

OK thanks

(my first thought is "isn't 0.x.y a case of major.minor.patch?". But the script is great, not worth a big lift if it's just two dependencies..)

@keewis
Copy link
Collaborator

keewis commented Sep 5, 2024

only if you consider x to be the minor version. However, since we provide three parts the script considers them to be manually pinned and doesn't try to update them; instead it marks them with a warning (w).

In any case, it may be worth looking for a way to tell the script that certain libraries follow a 0.major.minor or 1.major.minor scheme.

@max-sixty
Copy link
Collaborator

only if you consider x to be the minor version.

This would work OK, no? If 0 were the major version and x.y were the minor.patch versions?

@keewis
Copy link
Collaborator

keewis commented Sep 5, 2024

it confuses the script, and thus explicitly marks this as an error. We can totally change that, but someone would have to do this (and I won't have time for the next two weeks).

@max-sixty
Copy link
Collaborator

I took a look at the script (though I can't run it without installing conda...), and I think it's ignoring patch versions, which is totally fine. (I thought the discussion above meant that it was somehow handling 0.x.y differently; my mistake, @keewis was clear...).

Assuming that's correct, numbagg will bump as soon as it hits 12 months since 0.3.0. So all good. And wouldn't suggest we add any complication to the script (maybe the only change would be to not ignore patch versions iff this made the script simpler...)

@keewis
Copy link
Collaborator

keewis commented Sep 6, 2024

as long as we specify the patch version, the script won't do anything. It will only work correctly we pin 0.3.0 as 0.3.

I still think it's worth changing the script to allow special-casing certain packages (as in, netcdf4) to have a different version parser, but for that we'll first have to fix the race conditions we have ever since the internal global lock was dropped from netcdf4.

dcherian added a commit to dcherian/xarray that referenced this pull request Sep 17, 2024
* main: (29 commits)
  Release notes for v2024.09.0 (pydata#9480)
  Fix `DataTree.coords.__setitem__` by adding `DataTreeCoordinates` class (pydata#9451)
  Rename DataTree's "ds" and "data" to "dataset" (pydata#9476)
  Update DataTree repr to indicate inheritance (pydata#9470)
  Bump pypa/gh-action-pypi-publish in the actions group (pydata#9460)
  Repo checker (pydata#9450)
  Add days_in_year and decimal_year to dt accessor (pydata#9105)
  remove parent argument from DataTree.__init__ (pydata#9465)
  Fix inheritance in DataTree.copy() (pydata#9457)
  Implement `DataTree.__delitem__` (pydata#9453)
  Add ASV for datatree.from_dict (pydata#9459)
  Make the first argument in DataTree.from_dict positional only (pydata#9446)
  Fix typos across the code, doc and comments (pydata#9443)
  DataTree should not be "Generic" (pydata#9445)
  Disallow passing a DataArray as data into the DataTree constructor (pydata#9444)
  Support additional dtypes in `resample` (pydata#9413)
  Shallow copy parent and children in DataTree constructor (pydata#9297)
  Bump minimum versions for dependencies (pydata#9434)
  Always include at least one category in random test data (pydata#9436)
  Avoid deep-copy when constructing groupby codes (pydata#9429)
  ...
hollymandel pushed a commit to hollymandel/xarray that referenced this pull request Sep 23, 2024
* Bump minimum dependency versions

Closes pydata#9363

* Update doc/whats-new.rst

Co-authored-by: Justus Magin <[email protected]>

* bump netcdf4

* fix rtd

* Revert "bump netcdf4"

This reverts commit ae285b1.

---------

Co-authored-by: Justus Magin <[email protected]>
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.

bump min versions
4 participants