Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

This page holds proposals for new GitHub issues in the Release Management repo.

Proposals to close the existing issues are provided here: Open Issues Consolidated

Multiple APIs in one API Sub-project

This section has been updates wits the outcomes of the dedicated meeting on this topic on 2024-04-12.

Original related GitHub issue: Herbert's proposal here: Proposal to establish API Families as Working Groups across API Sub Projects · Issue #7 · camaraproject/ReleaseManagement (github.com)

Issue & proposal

GitHub release packages provide a zip file that includes the full API Sub-project repository 

If multiple API files are managed in one API Sub-project/repo, then release package will include all APIs, even if they are not intended to be released.

Proposal:

1) The notion of API family will not be release managed. CAMARA release management only considers APIs and their releases

2) The proposal is to

  • develop only one API (file) (exception see below) in one API Sub-Project
  • exception: if an API Sub-project wants to keep multiple APIs in the same API Sub-project:
    • all APIs in this API Sub-project shall always be released together
    • all APIs that are part of the release of an API Sub-project shall provide the require release assets.
    • if a different team or release schedule are needed to release one API of a Sub-project that has multiple APIs, then it shall be moved (with its related assets) to its own API Sub-project.

NOTE: We can look at reworking/simplifying the API sub-project repository structure if needed.

2024-04-12: Additional proposal from Herbert/Shilpa on API version asset naming to 

  • Decouple the (pre-)release tag and package name/number from the API version.
  • Add some addition semantics in the release name/number

See whiteboard session below for examples.

Agreement from the group to go forward with that decoupling proposal and update the process to reflect it (@ Tanja)

API Groupings

Grouping of APIs is useful to reduce the number of meetings and reporting load with the increasing number of APIs, and facilitate moving APIs from one family or group to another, or combining related APIs from multiple API Sub-projects into one group.

Proposal

  • group API Sub-projects for meeting / governance purposes (e.g. as current API families, but can also support other groupings).
  • options are 
    1. using a GitHub Working Group folder 
    2. using a CAMARA Wiki page - seems to be the preferable approach as this is also where meetings are now being managed.

Agreement in the team to go forward with the option 2. Tanja will provide an example to demonstrate the proposal realization on the Confluence.

Actions:

  • Each API Sub-projects that contain multiple APIs should
    • decide if it should create separate sub-projects for its APIs
    • If so, decide on the name and request the API Sub-project creation to cCasey & Evan
    • on the API Sub-project pages on the wiki add the list of APIs managed together
    • Create one API release tracker page for each API-Subgroup and its API(s)



Decision point: 

  • a) Tag and repo are coupled, but decoupled from API version(s) contained in the release
  • b) Release name/number is decoupled from API version - just number the releases e.g rx.y and use x=0.y if API not stable;0) once in meta-release. use subsequent numbering across meta-releases

Proposal of the meeting participants: option b) - using another naming/numbering schema for the releases of the sub project repositories


Whiteboard example

Potential release sequence for a new project:

r0.1 (pre

  • api1 with v0.1.0-alpha.1

r0.2

  • api1 v0.10-alpha.2
  • api2 v0.1.0-alpha.1

r0.3 (pre-release)


r0.4

r0.5 (latest)

  • api1 v0.1.0
  • api2 v0.1.0


Existing in next meta-release

r2.0

  • api1 v1.1.0-alpha1
  • api2 v1.0.0-alpha1

r2.1

  • api1 v1.1.0-rc1
  • api2 v1.0.0-rc1

r2.2 (pre-release)

  • api1 v1.1.0-rc1
  • api2 v1.0.0-rc2

r2.3

...

r2.4 => M5

  • api1 v1.1.0
  • api2 v1.0.1

r2.5

  • api1 v1.1.1
  • api2 v1.0.1


next meta-release

r3.1 

  • api1 v1.1.2
  • api1 v1.0.2

meta-release with breaking changes by Commonalities

r4.1

  • api1 v2.0.0-alpha.1
  • api2 v2.0.0-alpha.1

r4.2

  • api1 v2.0.0-rc.1
  • api2 v2.0.0-rc.2

r4.3

  • api1 v2.0.0
  • api2 v2.0.0


Challenge can the API tracker info be pulled from yaml file in the repository. 



  • No labels