Skip to content

Latest commit

 

History

History
120 lines (102 loc) · 6.87 KB

CHANGELOG.md

File metadata and controls

120 lines (102 loc) · 6.87 KB

Changelog

All notable changes to the [mlfmu] project will be documented in this file.
The changelog format is based on Keep a Changelog.

Unreleased

Changed

  • Add README page for Examples dir, add generated FMUs for each example (given FMI tools page requirements for Examples), and update the files generated by mlfmu codegen (add for pyspark example)
  • Generation of modelDescription.xml file to correctly generate tags for each output with 1-indexed indexes and InitialUnknowns tags
  • Generation of modelDescription.xml adds the variables (inputs, parameters and outputs) in the orderer of their valueReference. This is for the indexing to work correctly

[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 to uv as package manager
  • README.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 to pyright)
  • 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)