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 |
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.
@foxglove/schemas is licensed under the MIT License.
The schema definitions are in internal/schemas.ts.
After editing the schemas, re-generate the language-specific definitions by running yarn update-generated-files
.
- 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
- 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
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
Join our Slack channel to ask questions, share feedback, and stay up to date on what our team is working on.