Contributors to this version: Trevor James Smith (@Zeitsperre), Pascal Bourgault (@aulemahal), Éric Dupuis (@coxipi), Sascha Hofmann (@saschahofmann).
New features and enhancements
- Python 3.9 coding conventions have been dropped in favour of Python 3.10+ conventions. (PR/1988).
xclim.indices.chill_unit
now accepts a new argumentpositive_only
to compute the daily positive chill units. (PR/2003).
Breaking changes
- The minimum required version of
dask
has been increased to2024.8.1
. (GH/1992, PR/1991). - The docstrings of many
xclim
modules, classes, methods, and functions have been slightly adjusted to ensure stricter compliance with establishednumpy
docstring conventions. (PR/1988). - Using different time for
ref
andhist
is now explicitly forbidden in many bias adjustment methods (e.g.EmpiricalQuantileMapping
). Methods that combineref
,hist
, andsim
in the samemap_groups
also require that time arrays be equal in size. (GH/1903, PR/1995, PR/2013). xclim
now uses asrc
layout for the codebase. Structure-dependent functions, documentation, and build commands have been adapted to reflect these changes. Developers will need to reinstallxclim
usingpip install -e .
. (PR/1971).- The call signature of
xclim.indices.hot_spell_magnitude
originally asked for anop
argument that was not used. This argument has been removed. (PR/2018).
Bug fixes
- Fixed pickling issue with
xclim.sdba.Grouper
and other classes for usage withdask>=2024.11
. (GH/1992, PR/1993). - Fixed an issue with
nimbus
that was causing URL path components to be improperly joined. (PR/1997). base_kws_vars
inMBCn
is now copied inside theadjust
function so that in-place changes do not change the dict globally. (PR/1999).- Fixed a bug in the logic of
xclim.testing.utils.load_registry
that impacted the ability to load aregistry.txt
from a non-default repository. (PR/2001).
Internal changes
- Changed French translations with word "pluvieux" to "avec précipitations". (GH/1960, PR/1994).
- Nan values in
OTC
anddOTC
are only dropped and replaced at the lowest level so that the size of time arrays never changes onxarray
levels. (PR/1995, PR/2013) streamflow
entry replaced with"q"
invariables.yml
. (GH/1912, PR/1996).- In order to address
Error 403
(forbidden) requests when retrieving data from GitHub via ReadTheDocs, thenimbus
class has been modified to use an overloadedfetch
method that appends a modified User-Agent header to the request. (PR/2001). - Addressed a very rare race condition that can happen if
pytest
is tearing down the test environment when running across multiple workers. (PR/1863). - The
numpydoc
linting tool has been added to the development dependencies, linting checks, and thepre-commit
configuration. (PR/1988). - Added a more robust
yamllint
configuration to ensure that all YAML files are linted consistently. (PR/1971). - Addressed a very rare singular matrix error that can happen in
test_loess_smoothing_nan
. (PR/2015). - Addressed a handful of typing and call signature issues in the
xclim
codebase. (PR/2018).
CI changes
- Added the
green-coding-solutions/eco-ci-energy-estimation
GitHub Action to the workflows to establish energy and carbon usage of CI activity. (PR/1863). - Various workflow security fixes: (PR/2023)
- Simplified the
bump-version.yml
version string parsing to harden against template injection. - Further de-escalated privileges for most workflows.
- Simplified the