Skip to content

ros2cs : Update Supported Runtimes, Refactor Code Generation, and Add Metadata Features#46

Merged
noelex merged 6 commits intonoelex:mainfrom
ha-ves:ros2cs-improve
Sep 25, 2025
Merged

ros2cs : Update Supported Runtimes, Refactor Code Generation, and Add Metadata Features#46
noelex merged 6 commits intonoelex:mainfrom
ha-ves:ros2cs-improve

Conversation

@ha-ves
Copy link
Contributor

@ha-ves ha-ves commented Sep 24, 2025

Commit message:

  • Update supported runtimes, dropped EOL <= .NET 7
  • (!) semantic changes
  • Update CppAst.Gen and adds LibGit2Sharp
  • Adds option to write .inputs & .outputs files
  • Adds interface package version to TypeSupportAttribute with additional commit hash
  • Use assembly informational version
  • Remove interface metadata parsing redundancy
  • Use LINQ
  • Filter by msg|action|srv files early in loadpackage
  • Extend metadata type conditionals guard
  • launchSettings.json WSL2 & projectdir

Copilot: Pull Request Description

Summary

  • Update Supported Runtimes: Dropped support for EOL .NET versions (<= .NET 7).
  • Semantic Changes: Refactored code generation and metadata handling.
  • Dependencies: Updated CppAst.Gen and added LibGit2Sharp.
  • New Features:
    • Option to write .inputs and .outputs files.
    • Added interface package version and commit hash to TypeSupportAttribute.
    • Use of assembly informational version.
  • Refactoring:
    • Removed redundant interface metadata parsing.
    • Improved code with LINQ usage.
    • Early filtering by msg|action|srv files in package loading.
    • Extended metadata type conditionals guard.
  • Miscellaneous:
    • Updated launchSettings.json for WSL2 and project directory support.

Files Changed

  • 15 files modified
  • 190 insertions, 133 deletions

Notable Files

  • CSharpCodeGenerator.cs: Major updates and refactoring.
  • *.Builder.cs, Helpers/*.cs: Various improvements and bug fixes.
  • Rosidl.Generator.CSharp.csproj: Dependency and target framework updates.
  • ros2cs/Program.cs, launchSettings.json: Miscellaneous improvements.

@ha-ves
Copy link
Contributor Author

ha-ves commented Sep 24, 2025

Package discovery is back to use the latest found from SourceDirectories.

Additionally, the discovery only checks for package.xml existence. It will parse for the actual Package object after resolving dependencies instead, reducing unnecessary IO on package.xml.

Improves generation speed on large source directories.

@noelex
Copy link
Owner

noelex commented Sep 25, 2025

Could you please rebase rather than merge? I'd like to have a linear history on the main branch. Thanks!

* (!) semantic changes
* Update CppAst.Gen and adds LibGit2Sharp
* Adds option to write .inputs & .outputs files
* Adds interface package version to TypeSupportAttribute with additional commit hash
* Use assembly informational version
* Remove interface metadata parsing redundancy
* Use LINQ
* Filter by `msg|action|srv` files early in loadpackage
* Extend metadata type conditionals guard
* launchSettings.json WSL2 & projectdir
* Use only paths up to dependencies resolve to reduce unnecessary IO on reading package.xml in large interface package source directories
* ros2cs project, "Run Tests" args update
@noelex noelex merged commit 1e552a3 into noelex:main Sep 25, 2025
8 checks passed
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.

2 participants