This repository contains the API definitions of different services used in Gazebo projects.
go get github.com/gazebo-web/apiYou can also download a specific version:
go get github.com/gazebo-web/api@v1.0.0Download from our Releases page.
This project uses Buf to build protobuf files. In order to install Buf, refer to their installation docs.
A makefile is provided to build files. Running make generates code for all the languages we currently support.
The following commands are available to build files for specific languages.
buf generate --template buf.gen.go.yamlbuf generate --template buf.gen.cpp.yamlbuf generate --template buf.gen.ts.yamlSee the contributing guide for detailed instructions on how to get started with our development workflow.
The Gazebo API project uses Semantic Versioning for its releases: <Major>.<minor>.<patch>.
For Gazebo API v1.2.3:
1represents the major version.2represents the minor version.3represents the patch version.
For release candidate versions such as: v1.3.3-rc0
0represents the release candidate version, it increases every time a new draft version is created forv1.3.3
NOTE: We prepend a v to the version.
Our current release policy is:
- Bug fixes increase patch versions.
- New features increase minor versions.
- Breaking changes increase major versions.
- Merge all the new features into the
mainbranch. - Create a new tag increasing the minor or patch version depending on our policy. The
Release notessection must be filled in with the features included in this new release. The tag created for this release should be:vM.m.p - Go to the latest Pipeline executed in the
mainbranch, there will be a set ofbuildjobs for the different languages that the Gazebo API support.- Click on each of the jobs listed there and press the
Keepbutton in order to avoid GitLab from auto-cleaning the artifacts generated by each job. - After pressing the
Keepbutton on each job, copy the URL from theDownloadbutton.
- Click on each of the jobs listed there and press the
- If the
Release notessection was filled in correctly, you'll find a newReleasein the Releases page. If not, go back to step 2 and fill out the respectiveRelease notessection by editing the created tag. - Click on
Editbutton next to the Release title. - In the edit page, go to the
Release assetssection, add a new entry for each link copied in step 3.- URL: The URL copied in step 3.
- Link title: Name of the language, example: C++.
- Type: Other.
- Press
Save changes, the release is now official. - Let the different teams consuming the Gazebo API know that a new release has been created.