Migration Guide#

HydroMT is now at version 1.0.0

This update introduces several significant changes to the model structure, configuration files, and data handling. The architecture has been redesigned to enhance flexibility, usability, and performance. HydroMT is now organized into a component-based architecture to replace the previous inheritance model. Instead of all model functionality being defined in a single Model class, a model is now composed of modular ModelComponent classes such as GridComponent, VectorComponent, or ConfigComponent. Similarly, the DataCatalog has been redesigned along Driver and DataAdapter classes to allow for more flexible reading of different data formats and sources and the harmonization of data to standard HydroMT data structures.

This section describes how to migrate HydroMT models and configurations to the newer version of the HydroMT core. It includes detailed steps, references to updated data structures, and example migration workflows.

It is divided into four main parts:

Migrating the Data Catalog

Migrating the model workflow file

Updates for python users

Migrating to v1

Users migrating from earlier versions of HydroMT should follow these general steps:

  1. Update their HydroMT YAML workflow file to match the v1 schema. (This includes converting .ini and .toml files to YAML format.)

  2. Migrate their data catalog following the updated v1 format.

For python users, you will have to review your scripts and some of the functions calls as some methods have been moved or renamed. The main changes to the HydroMT python API are documented in the Python updates in version 1.

For plugin developers, we include a more detailed guide about the architecture and how to change your Model plugin to the new component-based structure in the Migrating your HydroMT plugin section.

This guide provides the main updates and steps to migrate to HydroMT v1. All detailed changes can be found in the changelog