@foxglove/schemas
v1.6.6
Published
Foxglove-defined message schemas for ROS, Protobuf, FlatBuffers, OMG IDL, and JSON
Downloads
14,815
Readme
@foxglove/schemas
Message schemas supported by Foxglove
| Language/Framework | Package name | Version |
| --------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| JavaScript/TypeScript | @foxglove/schemas
| |
| Python + Protobuf | foxglove-schemas-protobuf
| |
| Python + FlatBuffers | foxglove-schemas-flatbuffer
| |
| ROS | foxglove_msgs
| |
Introduction
See Foxglove Schemas documentation.
The schemas folder contains type definitions generated for ROS 1, ROS 2, Protobuf, JSON Schema, TypeScript, and OMG IDL.
These schemas can be used in MCAP files or Foxglove WebSocket servers to take advantage of Foxglove's visualizations.
License
@foxglove/schemas is licensed under the MIT License.
Development
The schema definitions are in internal/schemas.ts.
After editing the schemas, re-generate the language-specific definitions by running yarn update-generated-files
.
Release instructions
TypeScript
- Update the version number in
package.json
, make a PR, and merge to main - Make a git tag of the form
releases/typescript/vX.Y.Z
on the squash-merged commit, and push the tag - GitHub Actions will take care of the rest
Python
- Update the version number in
python/[package-name]/setup.cfg
, make a PR, and merge to main - Make a git tag of the form
releases/python/[package-name]/vX.Y.Z
on the squash-merged commit, and push the tag - GitHub Actions will take care of the rest
ROS
For first-time setup, follow the guides for installing bloom and authenticating with GitHub.
Permissions to push to foxglove/ros_foxglove_msgs-release (for ROS 1) and ros2-gbp/ros_foxglove_msgs-release (for ROS 2) are required. The latter are managed via Terraform.
The following is a modified version of bloom release instructions (because catkin_generate_changelog and catkin_prepare_release can't handle our custom tag format of ros-vX.Y.Z
).
- Manually update
package.xml
andCHANGELOG.rst
with new version info - Manually create a tag named
ros-vX.Y.Z
for the new version - Push the newly created commit and tag
- Run
bloom-release foxglove_msgs --ros-distro humble
, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the ros/rosdistro repo.
Packages will be available via apt after the next sync. View package build status prior to the sync at: melodic, noetic, foxy, galactic, humble, iron, rolling
Stay in touch
Join our Slack channel to ask questions, share feedback, and stay up to date on what our team is working on.