diff --git a/.fusa-reqs.json b/.fusa-reqs.json index d35f0a2..a45bc2b 100644 --- a/.fusa-reqs.json +++ b/.fusa-reqs.json @@ -104,6 +104,7 @@ {"id":"REQ-IEC62443-OUT001","title":"cfusa iec62443 --output writes report to file and prints 'IEC 62443 gap report written to' to stderr; exit 3 for bad output path; parity with go-FuSa TestRunIEC62443_OutputFile/TestRunIEC62443_BadOutputPath","standard":"go-FuSa parity","level":"ASIL-A"}, {"id":"REQ-HARA-ASIL-C0001","title":"cfusa hara ASIL table uses 4-column (C0-C3) scale matching go-FuSa DetermineASIL; accepts Sx/Ex/Cx prefix flag values; S2/E4/C2=ASIL-C, S2/E4/C0=ASIL-A etc; parity with go-FuSa TestDetermineASIL_Table4 and TestRunHara_ASIL","standard":"go-FuSa parity","level":"ASIL-D"}, {"id":"REQ-HARA-INIT-EXISTS001","title":"cfusa hara init returns exit 2 with 'already exists' in stderr when .fusa-hara.json already exists; parity with go-FuSa TestRunHara_InitAlreadyExists","standard":"go-FuSa parity","level":"ASIL-A"}, - {"id":"REQ-HARA-SUBCMD001","title":"cfusa hara unknown subcommand returns exit 2; parity with go-FuSa TestRunHara_UnknownSubcommand","standard":"go-FuSa parity","level":"ASIL-A"} + {"id":"REQ-HARA-SUBCMD001","title":"cfusa hara unknown subcommand returns exit 2; parity with go-FuSa TestRunHara_UnknownSubcommand","standard":"go-FuSa parity","level":"ASIL-A"}, + {"id":"REQ-UNECE-OUT001","title":"cfusa unece --output writes report to file and prints 'UN R.155 gap report written to' to stderr; stdout remains empty (§2.2); parity with go-FuSa TestRunUNECE_OutputFile","standard":"go-FuSa parity","level":"ASIL-A"} ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index b046a2b..53cad55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0. ## [Unreleased] +## [0.5.30] — 2026-06-13 + +### Fixed +- **`cfusa unece --output `**: Now prints "UN R.155 gap report written to \" to stderr after writing. Parity with go-FuSa `TestRunUNECE_OutputFile` (§2.2: stdout stays empty, confirmation goes to stderr). + +### Requirements +- REQ-UNECE-OUT001 + ## [0.5.29] — 2026-06-13 ### Fixed diff --git a/CMakeLists.txt b/CMakeLists.txt index 12facfa..6396ca7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) project(cfusa - VERSION 0.5.29 + VERSION 0.5.30 DESCRIPTION "C functional safety toolkit" LANGUAGES C ) diff --git a/Dockerfile b/Dockerfile index f019a0d..7027513 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,7 +44,7 @@ LABEL org.opencontainers.image.title="c-FuSa" \ org.opencontainers.image.source="https://github.com/SoundMatt/c-FuSa" \ org.opencontainers.image.licenses="MIT" \ org.opencontainers.image.vendor="SoundMatt" \ - org.opencontainers.image.version="0.5.29" \ + org.opencontainers.image.version="0.5.30" \ io.x-fusa.tool="c-FuSa" \ io.x-fusa.language="c" \ io.x-fusa.binary="cfusa" \ diff --git a/cmd/cfusa/cmd_unece.c b/cmd/cfusa/cmd_unece.c index 7f5f6d0..2d5f8dd 100644 --- a/cmd/cfusa/cmd_unece.c +++ b/cmd/cfusa/cmd_unece.c @@ -184,6 +184,9 @@ int cmd_unece(int argc, char **argv) return 3; } - if (output && out != stdout) fclose(out); + if (output && out != stdout) { + fclose(out); + fprintf(stderr, "UN R.155 gap report written to %s\n", output); + } return (gap > 0) ? 1 : 0; } diff --git a/include/cfusa/version.h b/include/cfusa/version.h index 9c12422..230ec17 100644 --- a/include/cfusa/version.h +++ b/include/cfusa/version.h @@ -3,8 +3,8 @@ #define CFUSA_VERSION_MAJOR 0 #define CFUSA_VERSION_MINOR 5 -#define CFUSA_VERSION_PATCH 29 -#define CFUSA_VERSION_STRING "0.5.29" +#define CFUSA_VERSION_PATCH 30 +#define CFUSA_VERSION_STRING "0.5.30" #define CFUSA_SCHEMA_VERSION "1.9" #define CFUSA_SPEC_VERSION "1.9"