This repo contains implementations of OMG IDL specifications used by Foxglove. The parsers expect schemas according to the MCAP specifications: ros2idl, omgidl.
Package name | Description | Reference | Version |
---|---|---|---|
@foxglove/omgidl-parser |
Parse OMG IDL schemas – README | Interface Definition Language Specification | |
@foxglove/omgidl-serialization |
De/Serialize data using IDL to CDR and CDR2 – README | Extensible and Dynamic Types for DDS Specification | |
@foxglove/ros2idl-parser |
Parse the ROS 2 dialect of IDL – README | article, repo |
See known limitations here: Parser/Grammar Limitations Serialization Limitations
corepack enable
yarn install
If it's your first time building, you'll need to run yarn build
.
Then to run test cases across all packages run yarn test
from the root directory.
Note: to ensure that tests from a downstream in-repo dependency are running against the latest upstream version of code, you'll have to run yarn build
every time you change the upstream dependency.
The dependency flow is as follows:
@foxglove/omgidl-serialization
depends on@foxglove/omgidl-parser
@foxglove/ros2idl-parser
depends on@foxglove/omgidl-parser
- Open a PR updating the version of the packages that have new versions that need to be deployed.
- Land PR with change of version numbers and pull the latest on main locally
- Add git tags for each package you'd like to publish using the following prefixes
@foxglove/omgidl-parser
->omgidl-parser/vX.X.X
@foxglove/omgidl-serialization
->omgidl-serialization/vX.X.X
@foxglove/ros2idl-parser
->ros2idl-parser/vX.X.X
- For example: if you're updating
@foxglove/omgidl-parser
tov1.2.1
you would add the corresponding git tag by runninggit tag omgidl-parser/v1.2.1
. For updating multiple packages on a single commit you can add multiple tags:git tag omgidl-parser/v1.2.1 omgidl-serialization/v1.1.3
. - After adding the tag run
git push origin refs/tags/<tag>
to push the specific tag to the remote
Join our Slack channel to ask questions, share feedback, and stay up to date on what our team is working on.
foxglove/omgidl and its packages are licensed under the MIT License.