Releases: pjanec/CycloneDds.NET
Releases · pjanec/CycloneDds.NET
0.2.3 MSBuild integration fixes, avoiding useless codegen runs
Fixed
- Code-generation stamp file placed outside the generated folder. A missing path
separator wrote the incremental stamp as a sibling of the generated directory
(...CycloneDdsGeneratedcodegen.stamp) instead of inside it. When the folder was cleaned
but the orphaned stamp survived, the next build skipped code generation yet compiled with no
generated files — producing an assembly missing its[assembly: DdsIdlMapping]metadata.
Downstream projects could then no longer emit the matching#includeandidlcfailed with
"Scoped name '…' cannot be resolved". The stamp now lives inside the generated directory,
soClean(and any wipe of the folder) removes it together and forces a correct regen. - Generated
.idlnot copied to output on a clean build. The output step ran (via
AfterTargets) before generation completed, so on a clean build the.idlnever reached
bin; a referencing project'sidlcthen failed with "Can't open include file". The copy
is now performed deterministically inside the generation target, immediately after the files
are produced. - Inconsistent
#includeemission. The IDL type name and its#includewere resolved by
two independent paths that could disagree, silently producing an un-includable IDL. They now
share one resolution path, and the generator fails fast with an actionable message (naming the
type, field, and likely cause) instead of lettingidlcsurface a cryptic error later.
Changed
- Code generation now runs only where it's needed. Previously the build targets flowed to
every project in the transitive reference closure and ran the (Roslyn-based) generator
unconditionally — dozens of needless runs. Generation is now gated to projects that (a) have a
directPackageReferenceto CycloneDDS.NET and (b) actually declare DDS types or enums
(a fast in-process source scan, no extra process launch). A project that authors DDS types but
references the package only transitively can opt in with
<CycloneDdsCodeGenEnabled>true</CycloneDdsCodeGenEnabled>. - Unified the MSBuild integration into a single source of truth. The packaged
(buildTransitive) targets and the in-repo targets were duplicated; they are now one file,
with environment differences expressed as overridable properties.
Added
build/CycloneDDS.NET.props(imported only for direct package references) and the
CycloneDdsCodeGenEnabledopt-in property.
0.2.2 DdsMonitor, incremental code-gen, bit-bound enums, inline arrays
- Partitions
- WaitSets
- Removed Newtonsoft.Json reference
- Incremental code generation. File delta tracking to limit unnecessary disk writes and Roslyn intellisense thrashing.
- Union fix (critical structural alignment bug causing misaligned DDS union payloads.)
- Added explicit translation fallback logic for type identity boundaries across foreign assembly contexts.
- Added support for:
- sparse/non-contiguous enums via
@valueannotations, - enum wire sizing bounds (
@bit_bound), - C#
[InlineArray]memory patterns, - and explicit generation toggles (
CycloneDdsDisableCodeGen).
- sparse/non-contiguous enums via
- DdsMonitor tool (blazor based UI trafic monitor)
- Multi-Participant Configuration
- Dynamic Topic Discovery from .net assemblies
- Topic explorer
- Sample list & sample detail windows linked together
- Data Grid Customization
- Filtering and Sorting
- Recording & replay
- Sample authoring & sending
- Sender tracking
- Headless mode (CLI tool)
- Traffic stats