Skip to content

release: finalize v0.3.1 version/doc consistency - #12

Closed
InitusNovus wants to merge 83 commits into
mainfrom
dev
Closed

release: finalize v0.3.1 version/doc consistency#12
InitusNovus wants to merge 83 commits into
mainfrom
dev

Conversation

@InitusNovus

Copy link
Copy Markdown
Owner

Summary

  • align package/API versions to 0.3.1 for release on main
  • update install snippets in README (EN/KO) and NuGet README files to 0.3.1
  • include post-review oracle evidence file cleanup already validated in CI

Why

Pre-release alpha markers and install docs needed to be synchronized before tagging stable v0.3.1, following AGENTS pre-release checklist.

Verification

  • fantomas --check src/ tests/
  • dotnet build --configuration Release --nologo
  • dotnet test --configuration Release -v minimal --nologo
  • GitHub Actions CI on dev (lint + build-test)

InitusNovus and others added 30 commits February 12, 2026 12:53
- Remove 5 exception-swallowing try/with blocks in Dbc.fs that silently
  returned defaults on parse failures, risking incorrect C code generation
- Add GenerateError DU to preserve error type info through the pipeline
  (ParseError/ValidationError/CodeGenError no longer flattened to string)
- Update Api.fs, Library.fs facade, and CLI to match GenerateError variants
- Add Core test project with 13 tests (10 Dbc + 3 Api error propagation)
- Fix Windows test compatibility: use mingw32-make and .exe extension
- All 29 tests pass (16 Generator + 13 Core), 0 failures
- ConfigTests: 16 tests for Config.validate and Config.loadFromYaml

- CodegenTests: 8 tests for Codegen.generate with inline IR

- EdgeCaseTests: 4 tests for empty DBC, Motorola LSB, signed, 64-bit signals

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <[email protected]>
- FacadeTests: 4 tests verifying exception type mapping

- ApiTests: 1 E2E happy-path test with examples/sample.dbc

- fsproj: add compile items and Signal.CANdy project reference

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <[email protected]>
- Mark H-1c~H-1g, H-3a~H-3c as complete in ROADMAP

- Add session report for 34 new tests (63 total, 0 failures)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <[email protected]>
Remove 8 duplicated .fs files from Generator (~1100 lines), replacing them
with an 83-line Compat.fs backward-compatibility bridge that re-exports Core
types under the Generator namespace. Generator.fsproj now references Core
directly and carries zero package dependencies of its own.

Key changes:
- Generator.fsproj: remove 7 Compile items + 5 PackageReferences, add Core ref
- Compat.fs: bridge modules for Ir, Config, Dbc, Codegen, Result (active pattern)
- Program.fs: rewritten to use Core API (Config/Dbc/Codegen/Errors) directly
- Core Dbc.fs: add missing validateMuxStructure (was in legacy Generator only)

All 63 tests pass (47 Core + 16 Generator), E2E roundtrip verified.
- Fix get_bits_le/set_bits_le: replace hardcoded 8-byte loop with dynamic n_bytes
- Fix 64-bit mask UB: use UINT64_MAX when length==64
- Fix memset: use message.Length instead of hardcoded 8
- Add 6 F# tests (codegen + edge cases) for CAN FD payloads up to 64 bytes
- Add canfd_test.dbc (DLC=64, 3 signals) and E2E test_fd_roundtrip in main.c
- Update README: supported features + limitations reflect CAN FD support
- get_bits_be/set_bits_be already use dynamic bit-by-bit loops, no change needed
…ode (L-4c)

- Add canfd_dlc_to_len() / canfd_len_to_dlc() to generated utils (ISO 11898-1)
- Fix signed signal decode: cast uint64_t to int64_t before float conversion
  to prevent negative values from being interpreted as huge positive numbers
- Add comprehensive_test.dbc with 18 signals covering LE/BE, signed, packed,
  non-aligned, and scale/offset configurations
- Add 7 C E2E test functions verifying byte-level encode/decode correctness
- Add 5 F# unit tests for DLC mapping codegen and signal pattern generation
Sisyphus: 🪨⬆️ (OpenCode)
Sisyphus: 🪨⬆️ (OpenCode)
Sisyphus: 🪨⬆️ (OpenCode)
…ript)

- Add .config/dotnet-tools.json with ReportGenerator 5.4.5 local tool manifest
- Add run-coverage.ps1 PowerShell script for HTML coverage report generation
- Add TestResults/ and coverage_report/ to .gitignore

Sisyphus: 🪨⬆️ (OpenCode)
…ated vectors

- Add TRACE printf lines to test_roundtrip and test_fixed_roundtrip for visual verification
- Expand motorola_lsb_suite.dbc from 1 to 4 signals (3 unsigned + 1 signed, byte-aligned)
- Add test_moto_lsb_comprehensive with mathematically derived known_data byte arrays

Sisyphus: 🪨⬆️ (OpenCode)
- Add runCGeneratorWithDbc helper to support arbitrary DBC file paths
- Add 11 new [Fact] integration tests covering LE/BE/signed/nonalign/packed/scale,
  CAN FD, multiplex, value table, and Motorola LSB byte-level verification
- Generator test count: 16 -> 27, total: 74 -> 85

Sisyphus: 🪨⬆️ (OpenCode)
InitusNovus and others added 28 commits March 12, 2026 14:00
@InitusNovus

Copy link
Copy Markdown
Owner Author

Superseded by #13 from release/v0.3.1-sync due merge conflicts on dev branch. Release alignment changes are merged via #13.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant