diff --git a/CHANGELOG.md b/CHANGELOG.md index e25dad7..71bd03c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add the ability to restrict transitions in the task model states. - Add nOS-V support for parallel tasks reading the body id from the event payload. +- Keep a changelog of emulation model versions. ### Changed diff --git a/doc/user/emulation/versions.md b/doc/user/emulation/versions.md new file mode 100644 index 0000000..4dffa57 --- /dev/null +++ b/doc/user/emulation/versions.md @@ -0,0 +1,45 @@ +# Model versions + +Track changes in emulator model versions. + +!!! Note + These versions cover the [events defined](events.md) in the emulator models. + They are **not related to the versions of the libraries**. + +## Nanos6 + +- nanos6 1.0.0: Initial version + +## Nodes + +- nodes 1.0.0: Initial version + +## Kernel + +- kernel 1.0.0: Initial version + +## MPI + +- mpi 1.0.0: Initial version + +## Ovni + +- ovni 1.0.0: Initial version + +## OpenMP + +- openmp 1.1.0: Initial version + +## TAMPI + +- tampi 1.0.0: Initial version + +## nOS-V + +- nosv 2.0.0 + - Add support for parallel tasks, adding a new `bodyid` argument in `VT*` events. + - Remove support for old attach events `VH{aA}`. +- nosv 1.1.0 + - Ignore old attach events `VH{aA}`. + - Add new API attach `VA{aA}` and detach `VA{eE}` events. +- nosv 1.0.0: Initial version. diff --git a/mkdocs.yml b/mkdocs.yml index ed93df2..8f6a709 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -39,6 +39,7 @@ nav: - user/emulation/mpi.md - user/emulation/openmp.md - user/emulation/events.md + - user/emulation/versions.md - CHANGELOG.md - 'Developer guide': - dev/index.md diff --git a/test/emu/ovni/CMakeLists.txt b/test/emu/ovni/CMakeLists.txt index 9a5ed9f..1ccab87 100644 --- a/test/emu/ovni/CMakeLists.txt +++ b/test/emu/ovni/CMakeLists.txt @@ -27,3 +27,4 @@ test_emu(flush-tmpdir.c MP DRIVER "flush-tmpdir.driver.sh") test_emu(tmpdir-metadata.c MP DRIVER "tmpdir-metadata.driver.sh") test_emu(dummy.c NAME "ovniver" DRIVER "ovniver.driver.sh") test_emu(dummy.c NAME "match-doc-events" DRIVER "match-doc-events.sh") +test_emu(dummy.c NAME "match-doc-version" DRIVER "match-doc-version.sh") diff --git a/test/emu/ovni/match-doc-version.sh b/test/emu/ovni/match-doc-version.sh new file mode 100644 index 0000000..c454ac0 --- /dev/null +++ b/test/emu/ovni/match-doc-version.sh @@ -0,0 +1,30 @@ +docs="$OVNI_SOURCE_DIR/doc/user/emulation/versions.md" + +# Check that the last version of every model appears in the versions.md +# documentation changelog. + +( + # Extract model last versions + models=$(ovniemu -h 2>&1 | awk '/emulation models/ { p=1; next } p { print $2, $3}') + + if [ -z "$models" ]; then + echo "ERROR: No models read" + exit 1 + fi + + echo "$models" | while read -r model version; do + # Find the first version of the model (the latest) + first=$(grep -m 1 -- "^- $model " "$docs") + if [ -z "$first" ]; then + echo "ERROR: No match of model '$model' in $docs" >&2 + exit 1 + fi + + # And match it to the one reported by the emulator + matched=$(echo "$first" | grep -- "- $model $version" || true) + if [ -z "$matched" ]; then + echo "ERROR: Version $version is not the latest in model $model in $docs" >&2 + exit 1 + fi + done +)