Skip to content

Message schemas supported by Foxglove Studio

License

Notifications You must be signed in to change notification settings

foxglove/schemas

Repository files navigation

@foxglove/schemas

Message schemas supported by Foxglove

Language/Framework Package name Version
JavaScript/TypeScript @foxglove/schemas npm version
Python + Protobuf foxglove-schemas-protobuf pypi version
Python + FlatBuffers foxglove-schemas-flatbuffer pypi version
ROS foxglove_msgs ROS Melodic version ROS Noetic version ROS Foxy version ROS Galactic version ROS Humble version ROS Iron version ROS Rolling version

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

  1. Update the version number in package.json, make a PR, and merge to main
  2. Make a git tag of the form releases/typescript/vX.Y.Z on the squash-merged commit, and push the tag
  3. GitHub Actions will take care of the rest

Python

  1. Update the version number in python/[package-name]/setup.cfg, make a PR, and merge to main
  2. Make a git tag of the form releases/python/[package-name]/vX.Y.Z on the squash-merged commit, and push the tag
  3. 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).

  1. Manually update package.xml and CHANGELOG.rst with new version info
  2. Manually create a tag named ros-vX.Y.Z for the new version
  3. Push the newly created commit and tag
  4. 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.