camaraproject / Governance

Telco network capabilities exposed through APIs provide a large benefit for customers. By simplifying telco network complexity with APIs and making the APIs available across telco networks and countries, CAMARA enables easy and seamless access.
53 stars 44 forks source link

Proposal for new API Project lifecycle approach (Sandbox + Incubated) #129

Open hdamker opened 2 months ago

hdamker commented 2 months ago

Problem Statement

Currently we have within CAMARA only two states defined for the development of APIs:

With that there is a need to have a relativ high barrier for the approval of a new API Sub Projects to limit the number of API Sub Project which need to be managed and supervised. That has to happen at a point of time when relativ few details about an API proposal are known. There is e.g. the proposal to require three supporting companies for a new proposal - due to the early state of a proposal it is difficult to get such commitments.

Solution Proposal

Introduce two different lifecycle states for an API Sub Project:

Principles:

Criteria for a Sandbox Project to get "incubated" (draft):

Expected Actions

The TSC should kindly discuss the proposal as an alternative to #122. If adapted:

hdamker commented 4 weeks ago

As presented within TSC on May 16th: TSC_2024-05-16_Sub Project Lifecycle.pdf

The proposed criteria are currently available within https://wiki.camaraproject.org/display/CAM/API+Sub+Project+Maturity+Levels

Please leave your comments here.

TEF-RicardoSerr commented 3 weeks ago

On the mean time that a decision is taken, it is needed to define which APIs are suitable to be sent for aproval to TSC (from the API Backlog).

Proposal is to have at least 2 companies supporting them (API owner + additional supporter) this is in order to ensure that the subgroup can work properly (one company propose PRs so the other one may approve them) as it is required regarding the minimun GitHub Workflow

Ref. #122

eric-murray commented 2 weeks ago

I support some form of labelling in the GitHub repository to distinguish the more mature sub-projects from those that are just getting started or have not made much progress. Whilst there are clues to be had from GitHub itself (number of contributors, number of commits, etc.), clear labelling would help external viewers to focus on the more "important" of CAMARA's activities.

And for sure we need clear criteria to move from "Sandboxed" to "Incubated", and I broadly agree with the above proposals.

My comments are:

jgarciahospital commented 2 weeks ago

Agreed that labelling would help understanding the status of each subgroup, differentiating just created groups from those that are much more advanced (with stable releases available, for example). Agree Eric that dedicated sandbox WG is not convenient, neither the usage of "sandbox" name.

That system will allow a subgroup to be slowly starting, until scope is clear, user stories... and then evolve to a issue/PR based discussion where surely more companies will participate. But a dedicated subgroup per API (or family, as currently) still need to apply, avoiding re-working when migrating from one status to other.

But, in any case, the issue remains. Which rules are to be set for a group to start? Physical limitation is 2 companies, for the PRs to be approved. Do we all agree to maintain that as a base for a subgroup to be created, and to try to specify a labelling system to separate the phases of the groups?

lbertz02 commented 1 week ago

Are 2 companies (one company propose PRs so the other one may approve them) actually required for minimum GitHub Workflow or is the minimum GitHub Workflow something defined within CAMARA (looking for a reference)?

hdamker commented 1 week ago

Are 2 companies (one company propose PRs so the other one may approve them) actually required for minimum GitHub Workflow or is the minimum GitHub Workflow something defined within CAMARA (looking for a reference)?

@lbertz02 Technically: We are protecting the main branch so that at minimum one Codeowner review is needed to be able to merge a PR (and no direct commits allowed into main). If one of the Codeowners is opening a PR there must be at least a second one to approve. But that's only the technically minimum. The process for "Changes and contributions to CAMARA" is described within ProjectStructureAndRoles.md and has more requirements.

lbertz02 commented 1 week ago

@hdamker Thank you. There in Step 4 of "Changes and contributions to CAMARA" is the statement that it is ideal for multiple companies to be involved - not required. I agree that it is ideal but it is important to note that it is not currently required unless I missed other text.

hdamker commented 1 week ago

... There in Step 4 of "Changes and contributions to CAMARA" is the statement that it is ideal for multiple companies to be involved - not required. I agree that it is ideal but it is important to note that it is not currently required unless I missed other text.

@lbertz02 There is an indirect requirement, as we currently require to have Maintainers from at least two companies before we create a Sub Project. They shall be invited to the review (but yes, they don't need to make a review/approval - silence is agreement).