Changelog¶
v0.5.0 (unreleased)¶
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Trevor James Smith (@Zeitsperre), Louise Arnal (@lou-a).
New features and enhancements¶
A periods parameter was added to
frequency_analysis.local.fit
to compute multiple separate periods with a single call. (PR/219).
Breaking changes¶
The xhydro testing utilities have been rewritten to use pooch for downloading and caching testing datasets from hydrologie/xhydro-testdata. (PR/212).
The xhydro testing utilities now require pytest-xdist as a development dependency. (PR/212).
Many core dependencies have been updated to more modern versions. (PR/218).
Internal changes¶
Updated the notebooks to reduce the load on ReadTheDocs. (PR/211).
Tests can now be run using the pytest-xdist plugin for distributed testing. See the pytest-xdist documentation for more information. (PR/212).
Several tests reliant on online servers and services have been marked as online to prevent them from running in contexts where internet access is limited. (PR/212).
Many function docstrings and type hints have been updated for accuracy and precision. (PR/212).
The xHydro project now has a set of logos for use in documentation, the readme, and other materials. (PR/217).
v0.4.0 (2024-10-04)¶
Contributors to this version: Trevor James Smith (@Zeitsperre), Gabriel Rondeau-Genesse (@RondeauG), Thomas-Charles Fortier Filion (@TC-FF).
New features and enhancements¶
xhydro now supports RavenPy v0.15.0 (RavenHydroFramework v3.8.1). (PR/161).
Regional frequency analysis functions as well as Resampling function for uncertainties have been added to the
xhydro.frequency_analysis
module. (PR/186).New function
xhydro.modelling.format_input
to format CF-compliant input data for hydrological models (currently only supports Hydrotel). (PR/185).xhydro now has a pmp module to compute the Problable Maximum Precipitation from climate change scenarios. (PR/176).
Internal changes¶
numpy has been pinned below v2.0.0 until xclim and other dependencies are updated to support it. (PR/161).
A helper script has been added in the CI directory to facilitate the translation of the xhydro documentation. (GH/63, PR/163).
The conda environment now relies on the newly created xdatasets package. (PR/164).
The cookiecutter has been updated to the latest commit. Changes include workflow fixes, stricter coding standards, and many small adjustments to the documentation. (PR/164).
A previously uncaught YAML formatting issue has been addressed. Stricter style conventions are now enforced. (PR/174).
Chunking was adjusted in a few functions to work with the new requirements of
apply_ufunc
. (PR/180).- Updated the cookiecutter template to the latest commit. (PR/177):
Actions have been updated and synchronized.
Warnings in Pull Requests from forks are now less buggy.
A new pre-commit hook and linting step for validating numpy docstrings has been added (numpydoc).
All pip-based dependencies used to run in CI are now managed by a
CI/requirements_ci.txt
that uses hashes of packages for security.
Added two new Batch (.bat) files to help facilitate the translation of and the generation of the xhydro documentation in Windows environments. (PR/196).
The bumpversion workflow now uses the Hydrologie Helper Bot to make signed commits. (PR/199).
- Updated the cookiecutter template to the latest commit. (PR/199):
Updated development dependencies to the latest versions.
Staged support for Python3.13.
Added environment caching to existing workflows.
Breaking changes¶
xhydro now requires python >= 3.10. (PR/195).
v0.3.6 (2024-06-10)¶
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Richard Arsenault (@richardarsenault), Sébastien Langlois (@sebastienlanglois).
New features and enhancements¶
Added support for the Hydrotel hydrological model. (PR/18).
Added support for various hydrological models emulated through the Raven hydrological framework. (PR/128).
Added optimal interpolation functions for time-series and streamflow indicators. (PR/88, PR/129).
Added optimal interpolation notebooks. (PR/123).
Added surface properties (elevation, slope, aspect ratio) to the gis module. (PR/151).
Breaking changes¶
Hydrological models are now classes instead of functions and dictionaries. (GH/93, PR/18).
xhydro now uses a “src” layout for the package. (PR/147).
Internal changes¶
Tests using the gamma distribution were changed to the gumbel_r to avoid changes in xclim v0.49.0. (PR/145).
The cookiecutter template has been updated to the latest commit. Changes include the addition of a CODE_OF_CONDUCT.rst file, the renaming of CHANGES.rst to CHANGELOG.rst, and many small adjustments to the documentation. (PR/147).
Added a CODE_OF_CONDUCT.rst file with Contributor Covenant guidelines. (PR/147).
v0.3.5 (2024-03-20)¶
Contributors to this version: Trevor James Smith (@Zeitsperre), Thomas-Charles Fortier Filion (@TC-FF), Sébastien Langlois (@sebastienlanglois), Gabriel Rondeau-Genesse (@RondeauG).
New features and enhancements¶
Internal changes¶
Added a workflow based on actions/labeler to automatically label Pull Requests based on files changed. (PR/68).
Added a conditional trigger to the test-notebooks job to run in advance of pull request approval in the event that the notebooks found within docs/notebooks have been modified (labeled « notebooks »). (PR/68).
- Significant changes to the Continuous Integration (CI) setup. (PR/65):
Added a workflow configuration using
label_on_approval.yml
and modifications ofmain.yml
so that fewer tests are run on Pull Requests before they are fully approved.Added some pre-commit configurations to both clean up the code within notebooks (NbQA) and strip their outputs (nbstripout).
tox is now fully v4.0-compliant.
Added a Makefile recipe to facilitate installation of esmpy when esmf is installed and visible on the $PATH.
Added a Makefile recipe for running tests over Jupyter notebooks.
Synchronized dependencies between pyproject.toml and conda configuration files.
Moved the notebooks under a Usage section in the documentation. (GH/114, PR/118).
v0.3.4 (2024-02-29)¶
Contributors to this version: Trevor James Smith (@Zeitsperre), Thomas-Charles Fortier Filion (@TC-FF), Gabriel Rondeau-Genesse (@RondeauG).
New features and enhancements¶
Added French language support to the documentation. (GH/53, PR/55).
Added a new set of functions to support creating and updating pooch registries, caching testing datasets from hydrologie/xhydro-testdata, and ensuring that testing datasets can be loaded into temporary directories. (PR/62).
xhydro is now configured to use pooch to download and cache testing datasets from hydrologie/xhydro-testdata. (PR/62).
xhydro is now Semantic Versioning v2.0.0 compliant. (PR/70).
Added new functions to xhydro.frequency_analysis.local to calculate plotting positions and to prepare plots. (PR/87).
xscen now supports Python3.12. (PR/99).
xscen now supports pandas >= 2.2.0, xarray >= 2023.11.0, and xclim >= 0.47.0. (PR/99).
Added xh.cc.sampled_indicators to compute future indicators using a perturbation approach and random sampling. (PR/54).
Breaking changes¶
Added pooch as an installation dependency. (PR/62).
xhydro now requires xarray>=2023.11.0, xclim>=0.48.2, xscen>=0.8.3, and, indirectly, pandas>=2.2.0. The main breaking change is in how yearly frequencies are called (“YS-” instead of “AS-“). (PR/54).
Functions that output a dict with keys as xrfreq (namely,
xh.indicators.compute_indicators
) will now return the new nomenclature (e.g. « YS-JAN » instead of « AS-JAN »). (PR/54).
Internal changes¶
- Added a new module for testing purposes: xhydro.testing.helpers with some new functions. (PR/62):
generate_registry: Parses data found in package (xhydro.testing.data), and adds it to the registry.txt
load_registry: Loads installed (or custom) registry and returns dictionary
populate_testing_data: Fetches the registry and optionally caches files at a different location (helpful for pytest-xdist).
Added a pre-commit hook (numpydoc) to ensure that numpy docstrings are formatted correctly. (PR/62).
- The cookiecutter has been updated to the latest commit (PR/70, PR/106):
Added some workflows (Change file labelling, Cache cleaning, Dependency scans, OpenSSF Scorecard).
The README has been updated to organize badges in a table, including a badge for the OpenSSF Scorecard.
Updated pre-commit hook versions to the latest available.
Formatting tools are now pinned to their pre-commit equivalents.
actions-version-updater.yml has been replaced by dependabot.
Addressed a handful of misconfigurations in the workflows.
Updated ruff to v0.2.0 and black to v24.2.0.
Added a few functions missing from the API to their respective modules via
__all__
. (PR/99).
v0.3.0 (2023-12-01)¶
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Trevor James Smith (@Zeitsperre).
New features and enhancements¶
Breaking changes¶
xhydro now adheres to PEPs 517/518/621 using the flit backend for building and packaging. (PR/50).
Bug fixes¶
Internal changes¶
Added xhydro.testing.utils.publish_release_notes() to help with the release process. (PR/37).
xh.frequency_analysis.local.parametric_quantiles() and xh.frequency_analysis.local.criteria() are now lazier. (GH/41, PR/43).
- The cookiecutter template has been updated to the latest commit via cruft. (PR/50):
Manifest.in and setup.py have been removed.
pyproject.toml has been added, with most package configurations migrated into it.
HISTORY.rst has been renamed to CHANGES.rst.
actions-version-updater.yml has been added to automate the versioning of the package.
bump-version.yml has been added to automate patch versioning of the package.
pre-commit hooks have been updated to the latest versions; check-toml and toml-sort have been added to cleanup the pyproject.toml file.
ruff has been added to the linting tools to replace most flake8 and pydocstyle verifications.
v0.2.0 (2023-10-10)¶
Contributors to this version: Trevor James Smith (@Zeitsperre), Gabriel Rondeau-Genesse (@RondeauG), Thomas-Charles Fortier Filion (@TC-FF), Sébastien Langlois (@sebastienlanglois)
Announcements¶
New features and enhancements¶
GitHub Workflows for automated testing using tox have been added. (PR/11).
Support for various xscen functions has been added to compute indicators and various climate change metrics. (PR/21).
New function xh.indicators.compute_volume to convert streamflow data to volumes. (PR/20, PR/27).
New function xh.indicators.get_yearly_op to compute block operation (e.g. block maxima, minima, etc.). (PR/20, PR/27).
Breaking changes¶
Bug fixes¶
N/A
Internal changes¶
Added a Pull Request template. (PR/14).
- Various updates to the autogenerated boilerplate (Ouranosinc/cookiecutter-pypackage) via cruft. (PR/11, PR/12, PR/13):
General updates to pre-commit hooks, development dependencies, documentation.
Added configurations for Pull Request and Issues templates, Zenodo.
Documentation now makes use of sphinx directives for usernames, issues, and pull request hyperlinks (via sphinx.ext.extlinks). (GH/15).
GitHub Workflows have been added for automated testing, and publishing.
Some sphinx extensions have been added/enabled (sphinx-codeautolink, sphinx-copybutton).
Automated testing with tox now updated to use v4.0+ conventions.
Removed all references to travis.ci.
Deployments to TestPyPI and PyPI are now run using GitHub Workflow Environments as a safeguarding mechanism. (PR/28).
xhydro now uses the trusted publishing mechanism for PyPI and TestPyPI deployment. (PR/32).
Added tests. (PR/27).
0.1.2 (2023-05-10)¶
First release on PyPI.