Releases: cerfacs-globc/icclim
7.1.1
7.1.1
Fixes
- Fix inflated seasonal totals in
icclim.sum(...)when converting filtered daily rate data such as precipitation inmm/dayto amounts. - Seasonal selections like
MAMno longer integrate across inter-season gaps, so reproduced cases such as4228.6now correctly return310.4.
Improvements
- Add a faster daily-source conversion path for seasonal rate-to-amount handling.
- Add generalized reference-verification scripts and regression tests for seasonal precipitation and non-precipitation cases.
- Add a developer protocol for broader Climpact/manual comparisons.
Notes
- A separate metadata ambiguity remains possible when a variable name conflicts with CF metadata, such as
RHbeing used for precipitation. That did not cause the numeric bug fixed in this release.
7.1.0
icclim v7.1.0
This release includes major refactoring for Ruff compliance, architectural modularization, and CI robustness improvements.
Highlights
- Major Ruff Refactoring: Full compliance across core library, tests, and notebooks.
- CI Robustness: Restructured workflows to prevent automated commit conflicts on feature branches.
- Architectural Modularity: Refactored
icclim.main.indexinto a modular helper system. - Modernization: Dropped Python 3.9 support; now requiring Python 3.10+.
- API Stability: Verified backward compatibility for critical parameters like
ignore_Feb29th.
See Release Notes for the full list of changes.
7.0.5
icclim v7.0.5
Key Changes
- Drop Python 3.9 Support: Updated to require Python 3.10+ (CI/CD now runs on Python 3.11).
- Relaxed Dependency Constraints: Updated
pyproject.toml(e.g.,numpy>=1.21,xarray>=2022.6.0,xclim>=0.45.0) for better compatibility with modern environments. - Ruff Compliance: Refined API extraction tool to ensure 100% Ruff compliance in all generated code.
- CI/CD Modernization: Standardized all workflows and pre-commit hooks on Python 3.11.
- Bug Fixes: Fixed several linting and formatting issues across core modules and documentation.
7.0.4
7.0.3
What's Changed
- [maint] Bumped all dependency packages according to latest xclim.
Fixed the code to deal with breaking changes in xarray, pint, xclim.
Full Changelog: v7.0.0...v7.0.3
7.0.0
What's Changed
date: 2024-03
Breaking Changes Summary
- New package architecture.
- New toolchain with flit and ruff.
cltstandard variable uint changed.clonemethod added to Indicators.
Changes Details
-
[maint] BREAKING CHANGE
Created a_corepackage which should not be used outside icclim source.
Its content may change without deprecation warnings. -
[enh] Added DCSC indices under
icclim.dcscnamespace. -
[doc] Adapt Christian's notebooks from ISENES and add them as
tutorials in our documentation. -
[doc] Add nbshpinx extension to render jupyter notebooks in
the online documentation. -
[maint] Migrate from [black, blackdoc, flake8, isort, pyupgrade,
pydocstyle] to ruff -
[maint] Migrate from setup.py to pyproject.toml
-
[maint] Make readthedocs build fail when there are warnings
-
[maint] Fix warnings in doc build
-
[maint] BREAKING CHANGE
Update architecture to have asrc/and atests/directory at root level -
[maint] BREAKING CHANGE
Migrate build toolchain from setuptools to flit -
[maint] Remove version number from
constantsmodule as it was
causing the build process to import icclim. The version number is now
statically set in src/icclim/init.py -
[fix] Force xarray to read dataset sequentially to avoid a netcdf-c
threading issue causing seg faults. -
[enh] Add
publish-to-pypi.ymlgithub action to automatically build
and publish icclim to pypi. This action is triggered by a github
release being published. This action requires a manual approval on
github. -
[enh] Add the following ECAD indices: PP (average of pressure),
SS (sum of sunshine) and RH (average of humidity). -
[fix] BREAKING CHANGE
the default unit ofcltstandard variable is now % as expected
(was a wind strenght unit). -
[maint] BREAKING CHANGE
Rework architecture to have a_coreprivate package
containing the core logic of icclim. Idea taken from numpy 2.0. -
[doc] Add docstring to almost all functions, classes and modules.
This has been done to improve the generated documentation.
co-authored: Github's copilot. -
[maint] Add missing type hints.
-
[doc] Make use of readthedocs' autoapi library to generate the API
documentation. -
[maint] Improve maintainability of
tools/extract-icclim-funs.pyto
ease adding new registries (still not perfect). -
[fix] Add
clonemethod to Indicators to avoid modifying the original instance
when setting templating metadata.
Full Changelog: v6.5.0...v7.0.0
v6.5.0
Breaking changes
- Pin xclim between 0.45 and 0.47
- [#281] Adapt icclim to xclim 0.45 by updating excess and deficit generic functions
- Drop support for python 3.8
Fixes
v6.4.0
v6.3.0
BREAKING CHANGES
- [fix] The indicators based on the difference between two variables (ecad: DTR, ETR, vDTR and anomaly) gave wrong values due to a bad unit conversion of the output. This was for example the case when the input variables are in Kelvin, the difference between the two variables is still in Kelvin but it cannot be converted to degree Celsius with the ususal +273.15. To workaround this issue, we first convert inputs to the expected output unit and then we compute the index.
- [fix] Indices based on both a percentile threshold and a threshold_min_value (for ecad: r75p, r75pTOT, r95p, r95pTOT, r99p, r99pTOT) are now computing the exceedance rate on values above threshold_min_value as well. Previously this threshold_min_value was used to compute the percentile and the total (for rxxpTOT indices) but not the exceedance rate.
- [maint] The only compatible version of icclim 6.3.0 is xclim 0.42