Releases: hydrologie/xhydro
v0.4.1
v0.4.1 (2024-11-07)
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 tofrequency_analysis.local.fit
to compute multiple separate periods with a single call. (PR/219). - In
xhydro.cc.sampled_indicators
, thedelta_type
argument can now be a dictionary or None, in which case the attributedelta_kind
is used. (PR/220). - In
xhydro.cc.sampled_indicators
, weights along atime
orhorizon
dimension will no longer reduce that dimension. (PR/220).
Bug fixes
- Fixed a bug in
xhydro.modelling.format_input
where the function would fail if the input data was adask
array. (PR/214). - The
executable
parameter in the Hydrotel model class is now always required. (PR/214).
Breaking changes
- The
xhydro
testing utilities have been rewritten to usepooch
for downloading and caching testing datasets fromhydrologie/xhydro-testdata
. (PR/212). - The
xhydro
testing utilities now requirepytest-xdist
as a development dependency. (PR/212). - Many core dependencies have been updated to more modern versions. (PR/218, PR/228).
- The
delta_type
argument inxhydro.cc.sampled_indicators
has been renamed todelta_kind
and is no longer positional. (PR/220). - The
xhydro.pmp
module has been moved toxhydro.indicators.pmp
. (PR/226).
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 thepytest-xdist documentation <https://pytest-xdist.readthedocs.io/en/stable/>
_ 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). xhydro.indicators
is now a package with submodules for different types of indicators. Previous functions have been moved to ageneric
submodule and are imported at the top level for backwards compatibility. (PR/226).xh.testing.utils.publish_release_notes
now has alatest
parameter to print only the latest release notes. (PR/228).
v0.4.0
Contributors to this version: Trevor James Smith (@Zeitsperre), Gabriel Rondeau-Genesse (@RondeauG), Thomas-Charles Fortier Filion (@TC-FF).
New features and enhancements
xhydro
now supportsRavenPy
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).
Internal changes
numpy
has been pinned below v2.0.0 untilxclim
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 thexhydro
documentation. (GH/63, PR/163). - The
conda
environment now relies on the newly createdxdatasets
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 aCI/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 thexhydro
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 requirespython
>= 3.10. (PR/195).
v0.3.6
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 thegumbel_r
to avoid changes inxclim 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 ofCHANGES.rst
toCHANGELOG.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
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 agis
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 withindocs/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 ofesmpy
whenesmf
is installed and visible on the$PATH
. - Added a
Makefile
recipe for running tests over Jupyter notebooks. - Synchronized dependencies between
pyproject.toml
andconda
configuration files.
- Added a workflow configuration using
- Moved the notebooks under a Usage section in the documentation. (GH/114, PR/118).
v0.3.4
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 fromhydrologie/xhydro-testdata
, and ensuring that testing datasets can be loaded into temporary directories. (PR/62). xhydro
is now configured to usepooch
to download and cache testing datasets fromhydrologie/xhydro-testdata
. (PR/62).xhydro
is nowSemantic 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 supportspandas
>= 2.2.0,xarray
>= 2023.11.0, andxclim
>= 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 requiresxarray
>=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 theregistry.txt
load_registry
: Loads installed (or custom) registry and returns dictionarypopulate_testing_data
: Fetches the registry and optionally caches files at a different location (helpful forpytest-xdist
).
- Added a
pre-commit
hook (numpydoc
) to ensure thatnumpy
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
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 theflit
backend for building and packaging. (PR/50).
Bug fixes
- The
return_level
dimension inxh.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()
andxh.frequency_analysis.local.criteria()
are now lazier. (GH/41, PR/43).- The
cookiecutter
template has been updated to the latest commit viacruft
. (PR/50):Manifest.in
andsetup.py
have been removed.pyproject.toml
has been added, with most package configurations migrated into it.HISTORY.rst
has been renamed toCHANGES.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
andtoml-sort
have been added to cleanup thepyproject.toml
file.ruff
has been added to the linting tools to replace mostflake8
andpydocstyle
verifications.
v0.2.0
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 frommaster
tomain
. (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).