CAMARA release management process requires each API Sub-project to plan and track their API releases so that meta-release can be planned.
...
The following sections provide the details for each step.
Table of Contents |
---|
Create an API release tracking page
Each API Sub-project needs to track the release planning for its APIs.
...
- Copy the following page <API name> API release tracking, indicating your API Sub-project home page as the parent page.
- Replace the <API name> in the copied page title with the API name (i.e. the API name is as it appears in the API URL as defined here: API name definition).
Examples
The following are examples of API Sub-projects with their release tracking pages(s) and sample API release trackers:
...
We can choose which of the last 2 approaches we would recommend. For now the text recommends the second approach: a dedicated release tracking page per API.
Create an API release tracker for an API release
For each new release of an API (e.g. at M0), a dedicated API release tracker (page) is created to plan and track the progress of that API release.
...
The API release tracker is a normal confluence page. The API Sub-project can add any additional information about the release as they see useful.
API release tracker content
Each API release tracker has the below table that serves as the source for tracking API release progress.
...
Meta-release | The name of the meta-release, e.g. Fall24 |
API name | The API name. See the definition of API name on this page: API Release Process, e.g. geofencing |
Group | The name of the GitHub 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. 1.0.0 |
Target scope | The shortened link to a GitHub issue called "Scope for target version" which needs to be created latest at M1 and resolved by M3 e.g. DeviceLocation/issues/58 |
Target maturity | Indicates the maturity of the API version that is targeted in the upcoming meta-release: choose one of initial / stable. |
M3 date | The date when the latest alpha API version is ready. This is the starting point for creating the release-candidate API version for M4. After this date, only bug fixes and necessary non-breaking changes can be made to the API. Format is yyyy-mm-dd |
M4 date | The date when the release-candidate API version for M5 submission is ready. This is the starting point for creating the public-release API version for M5. Once this date is provided by the API project team, the Release Management team can check the release-candidate API version for acceptance and submit 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) |
pre-release tag | The shortened release tag of the latest pre-release (alpha or release-candidate) for the API version e.g. QualityOnDemand/releases/tag/r0.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 release tag of the public-release API version. This field is updated once the public-release has been created, e.g. QualityOnDemand/releases/tag/r1.0 |
Comments | Field for exchanging information with RM team, for example M3: alpha ready for RM M3: checked by RM - NOK - missing sunny test cases M4: ready for RM M4: ready for approval by TSC M4: approved by TSC M5: public-release done M5: API version retirement planned by yyyy-mm-dd. |
Contacts | Contact names for the API release: name1 @name2 |
API release tracker template v1
This is the baseline for the Confluence template for API release tracker pages (to be used only by Confluence Admin to copy to the template page).
...
Page Properties | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
API release checklist
Nr | API release assets | alpha | release-candidate | public-release | |
initial | stable | ||||
1 | API definition |
|
|
|
|
2 | Design guidelines from Commonalities | N |
|
|
|
3 | Profile guidelines from ICM | N |
|
|
|
4 | API versioning conventions |
|
|
|
|
5 | Linting rules enabled |
|
|
|
|
6 | API documentation |
|
|
|
|
7 | User stories |
|
|
|
|
8 | Sunny day API test cases and documentation | N |
|
|
|
9 | Full set of API test cases and documentation | N | N |
|
|
10 | Test results (API test cases passed) | N |
|
|
|
11 | Security review |
|
|
|
|
12 | Maintainers (from at least 3 distinct companies) |
|
|
|
|
13 | Codeowners (from at least 3 distinct companies) |
|
|
|
|
14a | API release numbering conventions |
|
|
|
|
14b | Release notes according to template |
|
|
|
|
15 | Protected branches enabled |
|
|
|
|
16 | Release-candidate API version tested in at least 2 operator implementations | N | N |
|
|
17 | initial public-release API version certified and launched in at least 2 operators is needed to become stable | N | N | N |
|
To be part of a meta-release, minimally the initial release assets need to be provided.
Additional Information
Add any other useful information about the status of the release here.
...