Changelog¶
All notable changes to the [mlfmu] project will be documented in this file.
The changelog format is based on Keep a Changelog.
[1.0.2]¶
Changed¶
MLFMU logo is added and conf.py is updated.
Added checks for Windows vs Linux and fixed compilation for Linux/MacOS, updated README. Tested with Ubuntu 20.04, Ubuntu 22.04 and MacOS 14.4.
[1.0.1]¶
Changed¶
Update generated docs; cleaning, fix for warnings, add missing pages and info, update authors and maintainers.
Add where the source code for cppfmu can be found, add third party license.
Added missing unit tests for the template data generated when building the FMU.
Unit tests for the modelDescription.xml generation.
Unit tests for the Interface JSON validation.
Wind turbine power prediction model example is included in the mlfmu\examples\wind_to_power_pyspark directory.
README.md : Interface.json is updated to show how to define vectors as inputs.
Changed from
pip
/tox
touv
as package managerREADME.md : Completely rewrote section “Development Setup”, introducing
uv
as package manager.Added missing docstrings for py/cpp/h files with help of Github Copilot
Moved CMake + conan + c++ package files and folders with cpp code inside src folder to be included in package
Replace pkg_resources with importlib.metadata for getting packages version to work in python 3.12
Replace deprecated root_validator with model_validator in pydanitc class
Remove unnecessary hard coded values in utils/builder.py
Complete cli interface
Add subparsers to cli argparser to handle several different commands
Create MlFmuBuilder from args and run code according to command
Change cli test to match the new cli interface/parser
Default agent_(input/output)_indexes is [] by default instead of None
Updated doc by running publish-interface-docs
Deleted azure files from old azure devops repo
The generated modelDescription.xml files now also contain
with a list of the outputs of the FMU. OnnxFmu cpp template class updated to be able to initialize state with FMU Variables
Add variables to specify which FMU variable that should be used to initialize which state
Add function to DoStep that initializes the state at the beginning of the first time step.
model_definitions_template.h
Add definitions for the the number of states that should be initialized and array of index/value reference pairs to describe how the states should be initialized
Fmu Component json interface
Add name, description and start_value to state in the json interface
States changed from a single InternalState to a list of InternalState
Fixed typo from ‘tunnable’ to ‘tunable’
Fixed number of onnx output check to be correct (1-3 and not always raising exception)
Fix correct fmi causality for parameters
Fix correct default variability for parameters
Fix expanding of array variables into one variable per index for inputs and parameters to work as outputs
Default build target in builder to wind_to_power example
CMakeList.txt (from old repo) to be able to take an arbitrary path where the fmu files to be compiled are located
Builder to run commands to compile generated files into an fmu
Can take and keep track of arbitrary paths
Builder checks if the files needed to compile the fmu exists before trying to compile the fmu
Replaced “TODO: Trow Error?” with raising a fitting exception
replaced black formatter with ruff formatter
Changed publishing workflow to use OpenID Connect (Trusted Publisher Management) when publishing to PyPI
Updated copyright statement
VS Code settings: Turned off automatic venv activation
Edited descriptions in the examples/wind_to_power/config/interface.json
Added¶
Added BSD 3-Clause License
Added
mypy
as static type checker (in addition topyright
)Add .gitattributes to handle line endings, removed eol from .editorconfig
Add .github/pull_request_template.md for enabling PR templates on Github
Add conan dependency to pyproject.toml
Add MlFmuBuilder class to generate code and compile FMU
Find default paths to files and directories if not given in cli
Run functions in utils/builder.py according to which command is being run
Clean up temporary/build files after the process is done
Added feature to be able to initialize states using previously defined parameters or inputs
This is done by setting “initializationVariable” = “{variable name}”, instead of using the “name” and “start_value” attributes
Added flag in schema to allow a variable to be reused when initializing states
Allowed for multiple states to use the same variable for initialization
.clang-format to consistently format cpp code
Added code to generate parameters for initialization of state
Wind to power model example in examples
Onnx file containing ml model
Interface json file containing information needed not contained in onnx file
The generated fmu files resulting from running running builder on the new wind_to_power example
CMakeLists.txt and conanfile.txt from old repo to configure compiling/building FMU from generated files
Removed¶
VS Code settings: Removed the setting which added the /src folder to PythonPath. This is no longer necessary.
uv
installs the project itself as a package in “editable” mode, which removes the need to manually add /src to the PythonPath environment variable.
GitHub workflows¶
(all workflows): Adapted to use
uv
as package manager_test_future.yml : updated Python version to 3.13.0-alpha - 3.13.0
_test_future.yml : updated name of test job to ‘test313’
Dependencies¶
Updated to ruff>=0.6.3 (from ruff==0.2.1)
Updated to pyright>=1.1.378 (from pyright==1.1.350)
Updated to sourcery>=1.22 (from sourcery==1.15)
Updated to pytest>=8.3 (from pytest>=7.4)
updated to pytest-cov>=5.0 (from pytest-cov>=4.1)
Updated to Sphinx>=8.0 (from Sphinx>=7.2)
Updated to sphinx-argparse-cli>=1.17 (from sphinx-argparse-cli>=1.11)
Updated to myst-parser>=4.0 (from myst-parser>=2.0)
Updated to furo>=2024.8 (from furo>=2023.9.10)
Updated to setup-python@v5 (from setup-python@v4)
Updated to actions-gh-pages@v4 (from actions-gh-pages@v3)
Updated to upload-artifact@v4 (from upload-artifact@v3)
Updated to download-artifact@v4 (from download-artifact@v3)
Updated to dictIO>=0.3.4 (from dictIO>=0.3.1)