Skip to content

Releases: hydrologie/xhydro

v0.3.6

10 Jun 18:17
3b9eaa8
Compare
Choose a tag to compare

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 <https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-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

20 Mar 20:54
2a39728
Compare
Choose a tag to compare

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

  • xhydro has implemented a gis module that facilitates geospatial tasks needed for gathering hydrological inputs. (GH/60, PR/61).

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 of main.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

29 Feb 19:25
6063917
Compare
Choose a tag to compare

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 <https://semver.org/spec/v2.0.0.html>_ 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).

Release v0.3.0

01 Dec 20:20
ac60ff8
Compare
Choose a tag to compare

v0.3.0 (2023-12-01)

Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Trevor James Smith (@Zeitsperre).

New features and enhancements

  • The xhydro planification was added to the documentation. (GH/39, PR/49).

Breaking changes

  • xhydro now adheres to PEPs 517/518/621 using the flit backend for building and packaging. (PR/50).

Bug fixes

  • The return_level dimension in xh.frequency_analysis.local.parametric_quantiles() is now the actual return level, not the quantile. (GH/41, PR/43).

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

10 Oct 15:57
6b8e3ec
Compare
Choose a tag to compare

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

  • Support for Python3.8 and lower has been dropped. (PR/11).
  • xHydro now hosts its documentation on Read the Docs. (GH/22, PR/26).
  • Local frequency analysis functions have been added under a new module xhydro.frequency_analysis. (PR/20, PR/27).

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

  • xHydro repository has renamed its primary development branch from master to main. (PR/13).
  • xHydro now requires a conda environment to be installed. (PR/21).

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).
  • Various cleanups of the environment files. (GH/23, PR/30).
  • xhydro now uses the trusted publishing mechanism for PyPI and TestPyPI deployment. (PR/32).
  • Added tests. (PR/27).

v0.1.2

10 May 18:12
e468987
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.1.1...v0.1.2