The CAMARA release process requires each API Sub Project to plan and track their API versions so that the meta-release can be planned.
For each target public API version that is planned to be released by an API Sub Project, an API release tracker needs to be created to track its planning and progress through the release process.
The following sections provide the details.
Sub Project API release tracking (umbrella page)
The API release tracking page is the place where an API Sub Project documents the releases of all its API version(s). Note: this page has "tracking" (not "tracker") in its title and there is only one per API Sub Project. A tracker is dedicated to only target public API version.
- A Sub Project's API release tracking page is located under the home page of the API Sub Project. It is automatically created with the API Sub Project page on the wiki.
- All API release trackers are located under the release tracking page of the API Sub Project.
Note: If the umbrella release tracking page is missing, either contact the CAMARA Confluence support team, or you can create it manually as follows:
- Go to the following page <API Sub Project name> API Release Tracking, and create a copy indicating your API Sub Project home page as the target parent page.
- Replace the <API Sub Project name> in the copied page title with the API repository name.
Examples
The following are examples of API Sub Projects with their umbrella release tracking page and sample API release trackers:
- EXAMPLE: API Sub Project with one API - this example has an API tracing page with trackers for multiple versions of one API
- EXAMPLE: API Sub Project with multiple APIs - this example has an release tracking page with trackers for multiple versions of multiple APIs.
Create an API release tracker
For each API, when a public version is planned, a dedicated API release tracker is created to plan and track the progress through the release process. This can be done starting at M0.
To create an API release tracker, go to your API Sub project's release tracking page (see above) and do the following:
- Push the "Add API release tracker" button to create the tracker page for the new API version to be released.
- In the page title, put the <API name> and a "v" followed by the <Target version> as described in the below table, e.g. geofencing v1.0.0
- Complete the table on the page following the indications in the table below. PLEASE DO NOT CHANGE THE FIRST COLUMN.
- If planned for meta-release, add the meta-release label to the page (e.g. camara-fall24)
- Maintain the page up-to-date to reflect the progress of the API version through the release process, e.g. at its various alpha, release-candidate and public version.
The API Sub Project can add any additional information about the API version on its release tracker. as they see useful.
NOTE: The API release tracker is a normal confluence page (created from a template), and can be edited as such.
API release tracker content explanation
Each API release tracker has the below table that serves as the source for tracking progress of the release of the API version.
In particular, this content is pulled into the meta-release planning page (based on the page meta-release label).
IMPORTANT
THE LEFT COLUMN OF THIS TABLE SHALL NOT BE CHANGED. If you want to add a new field, please contact the release management team through the mailing list to request the addition of the field and the reason to add it. Adding a field will require a manual update to ALL release trackers.
Explanations:
Meta-release | The name of the meta-release, e.g. Fall24. Put N/A if the API version is planned to be an initial public version only outside of the meta-release. |
API name | The API name. For the definition of "API name" on this page see: API Release Process, e.g. geofencing |
Group | The name of the API Sub project or the repository for the API Sub Project, e.g. DeviceLocation |
Repository | The shortened link to GitHub repository for the API Sub Project, e.g. DeviceLocation |
Target version | The API version that you plan to publish in the indicated meta-release, e.g. 0.5.0, 1.0.0, 1.1.0, etc. |
Target scope | The shortened link to a GitHub issue called "Scope for version <x.y.z>" which needs to be created latest at M1 and resolved by M3 e.g. DeviceLocation/issues/58 |
Target maturity | Indicates the maturity of the public API version that is targeted in the upcoming meta-release: choose one of "initial" or "stable". |
Readiness checklist | The shortened link to the API readiness checklist for the API version. The template of the checklist can be found here: API-Readiness-Checklist.md |
M3 date | The date of the availability of the release of the release-candidate API version after approval of its release PR. Between M3 and M4 dates, only bug fixes and necessary non-breaking changes can be made through additional release-candidates. Format is yyyy-mm-dd |
M4 date | The date of the availability of the release of the target public API version after approval of its release PR. For approval, the Release Management team will check the release PR for acceptance and submit it to the TSC for approval. Format is yyyy-mm-dd |
API version | The version of the latest pre-release (alpha or release-candidate) API version to be updated at M3 and M4 date, e.g. 0.2.0_alpha.3, 0.10.0-rc.2, 0.10.1, 1.0.0-rc.5, etc.) |
pre-release tag | The shortened link to the release tag of the latest pre-release (alpha or release-candidate) for the API version e.g. QualityOnDemand/releases/tag/r1.10 |
M5 date | The date by which the Release Management team has checked the release-candidate API version provided at the M4 date and the API is approved by the TSC. The link to the PR for public-release API version shall be included in this field when available After this date, if approval is obtained, the API Sub Project shall commit the PR of the public-release API version and its release assets for use in the meta-release. Format is yyyy-mm-dd. The link to the PR shall be removed after the commit is done. |
public-release tag | The shortened link to the release tag of the public API version. This field is updated once the public release has been created, e.g. QualityOnDemand/releases/tag/r1.15 |
Comments | Field for exchanging information with RM team, for example M3: release PR ready for RM review - link to release PR (by Sub Projects) M3: ready for RM / comments by RM / OK by RM - link to review issue #nr (by RM) M4: release PR ready for RM review - link to release PR (by Sub Projects) M4: ready for RM / comments by RM / OK by RM - link to review issue #nr (by RM) M4: selected for approval by TSC - TSC approval: OK / Comments (by RM / TSC) |
Contacts | Contact names for the API release: name1 @name2 |
NOTE: For Confluence administrators only: the content for the Confluence template is here: Use by RM admins only: Content for API release tracker template (v4).