Hi team
I wanted to keep you updated with the state of things, as this year is seeing an unusually large number of big changes in our core dependencies.
- migration to Cython 3 appears to be complete, as we haven’t received reports of degraded performance since the launch of yt 4.3
- full support for CPython 3.12 is near complete, the only thing that’s missing is systematic testing with all optional dependencies, and we’re mostly just waiting for things to move upstream at this point. Here’s the tracking issue https://github.com/yt-project/yt/issues/4689
- unyt 3.0 was successfully released this week, causing *very* little breaking in yt (in fact, only a single test function still required adjustments). See my announcement on this mailing list for details.
- numpy 2.0 is the next (last) big thing on the horizon now. I recommend checking https://github.com/numpy/numpy/issues/24300 for details, but the TL;DR for us is that, in order to help our users smoothly transition, we’ll need to publish a new set of binaries for yt when the first release candidate drops. Numpy 2.0.0rc1 is currently scheduled for “the end December” and should be followed by the final release about 6 weeks later.
My takeaway is that, unless something critical comes up before that, or if the number of back ported bug fixes becomes too large (TBD), we should schedule our next bugfix release, yt 4.3.1, sometimes during this 6 week period, so about 2 months from now.
Take care
Clément
We're happy to announce the release of unyt 3.0.1 !
This version (as compared with 2.9.5) brings a major improvement: the implementation of "array functions”
(as defined by [NEP 18](https://numpy.org/neps/nep-0018-array-function-protocol.html)), bringing unyt more in line with astropy.units.
In short, this means that a lot more of numpy functions are now unyt-aware
and should behave more intuitively when passed unyt_array instances, including
- np.dot
- np.inner
- np.histogram
- np.concatenate
- np.stack
- functions from np.linalg and np.fft
- np.isclose
- and many more !
This also means that existing applications *may* break around these functions, as the
return value suddendly have dimensionally accurate units they previously didn't, which
is why the *major* version number was bumped from 2 to 3. Despite our efforts to make
this release as stable as possible, some unintented breakage may still happen, so please
report any supsicious behaviour you encounter.
Another major feature in unyt 3.0 is first class support for unyt-aware dask arrays.
See our documentation for details on how to use it https://unyt.readthedocs.io/en/latest/usage.html#working-with-dask-arrays
Note that it isn't recommended to use unyt 3 with current yt (4.3.0), but the next yt
release will be compatible with both unyt 2.9 and 3.0, so yt users will be allowed to switch
back to the historical behaviour and transition more smoothly.
For a more complete description of changes in this release, including bug fixes, see our changelog https://unyt.readthedocs.io/en/latest/history.html