Nephio Technical Community Document

Last updated: Sep 1, 2022
Status: Approved

Introduction

The Nephio technical project has been established as Nephio Project, a Series of LF Projects, LLC (alternatively, the “Project”). LF Projects, LLC is a Delaware series limited liability company. Governance for the Project is detailed within the Project Technical Charter available at nephio.org (“Technical Charter''). This Technical Community Document is intended to provide additional operational guidelines for the Project, and is subject to the Technical Charter.

Nephio Charter is located here. The Start-Up Period and Steady-State of Nephio project is articulated in the Charter.
https://nephio.org/wp-content/uploads/sites/6/2022/06/Nephio-Project-Technical-Charter-Amended-6-9-2022.pdf

1 Guiding Principles

The Nephio Project, a Series of LF Projects, LLC (“Nephio”) will operate transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders.

2 Structure of the Technical Community

The Technical Community consists of multiple SIG groups and a Technical Steering Committee (TSC) that spans across all SIGs.

2.1 Technical Mission of Nephio

Nephio’s goal is to deliver carrier-grade, simple, open, Kubernetes-based cloud-native intent automation and common automation templates that materially simplify the deployment and management of multi-vendor cloud infrastructure and network functions across large-scale edge deployments. Nephio reduces costs of adoption of cloud and network infrastructure and enables faster onboarding of network functions (NFs) to production, including provisioning of underlying cloud infrastructure with a true cloud native approach.

3 Special Interest Groups (SIGs)

SIGs are responsible for designing, developing, testing, and releasing code and coordinating with external communities to deliver Nephio releases.

3.1 SIG Roles

3.1.1 Contributor

A Contributor is someone who contributes code, code reviews, technical documentation, wiki updates, community activities, or other artifacts. Contributors work with a SIG’s Committer and community. A SIG Contributor may be promoted to the role of Committer after demonstrating a history of positive contributions to that SIG.

3.1.2 Committer

Each SIG has a set of Contributors with permission to commit code to the source code management system (the “Committers”) for that SIG.

  • Each SIG defines its own Committer permissions; being a Committer in one SIG does not give an individual committer rights in any other SIG.

  • The Committers will be the decision makers on all matters for a SIG, including design, code, patches, and releases.

  • Committers are the best available individuals, and usually work almost full-time on components in active development.

  • Information about all SIG committers, such as name, company, and Contact information, should be documented in the Nephio wiki.

In order to preserve meritocracy in selection of Committers, while ensuring diversity of Committers, each SIG is encouraged to take on at least two Committers from different companies (subject to meritocracy).

3.1.3 SIG Chair and Vice-Chair

Each SIG is required to elect a Chair and a Vice-Chair. The Chair and Vice-chair act as the defacto spokespeople for the SIG group. The Chair and Vice-Chair coordinate the activities of the SIG for the successful execution and release of Nephio software modules. The Chair is the default spokesperson for the SIG. If the Chair is absent, the Vice-Chair will lead the SIG activities.

3.1.3.1 Chair and Vice-chair Candidates

After the start-up period of Nephio, Candidates for a SIG’s Chair and Vice-Chair must be Committers in that SIG. This requirement is waived during the initial startup period.

Candidates must self-nominate

3.1.3.2 Chair and Vice-Chair Voters

During Nephio’s start-up period, TSC members vote to elect the SIG Chair and Vice-Chair. After the incubation period, the SIG’s Contributors elect the Chair and Vice-Chair.

3.1.3.3 Chair and Vice-Chair Election Mechanics

The following circumstances automatically trigger an election for SIG Chair and Vice-Chair:

  • The TSC creates and approves the SIG

  • The Chair or Vice-Chair resigns their post

  • The majority of the SIG’s committers voted to call a new election

  • One year has passed since the last Chair and Vice-Chair election for that SIG

3.2 SIG Operations

3.2.1 SIG Decisions Making Process

Technical and release decisions for a SIG should reflect a consensus of that SIG’s Contributors. If consensus cannot be reached, decisions are taken by majority vote of the SIG’s Contributors. Contributors may, by majority vote, delegate (or revoke delegation) of any portion of such decisions to an alternate open, documented (wiki), and traceable decision making process. In the event of a tie, the decision follows the vote of the Chair.

3.2.2 Committer Lifecycle

3.2.2.1 Adding Committers

  • Initial Committers for a SIG are specified when the SIG is created.

  • Contributors can become Committers only through contributions and community trust. Committers for a SIG select and vote for new Committers for that SIG.

  • New Committers for a SIG need to have a demonstratable, established history of meritocratic contributions.

3.2.2.2 Adding Committers to moribund SIGs

In the event that a SIG has no active Committers (due to resignations, etc.), the SIG’s Chair and Vice-Chair, or the TSC, may appoint an interim Committer from another SIG’s active Contributors. This term shall last until the next release date, after which an election will be conducted according to the process described in this document.

In this special case, approval requires a majority of committers who respond within two weeks. If no one responds by the deadline, then the committer status is approved. This provision allows a SIG to continue development following an unexpected change in personnel.

3.2.2.3 Removing Committers

A Committer may voluntarily resign from a SIG by making a public request to the Chair & Vice-Chair to resign (via the SIG email list and cc to tsc@lists.Nephio.org ).

A Committer for a SIG who is disruptive, or has been inactive on that SIG for an extended period (e.g., one or more months) may have his or her Committer status revoked by the SIG’s Chair and Vice-Chair or by 2/3 supermajority vote of the SIG’s Contributors.

The SIG Chair and Vice-Chair are responsible for informing the Technical Steering Committee (TSC) of any committers who are removed or resigned via the email list: tsc@lists.Nephio.org.

3.3 SIG Lifecycle

3.3.1 Nephio SIG Lifecycle

The activities of the Nephio community are organized around SIGs and releases. The scope of each SIG is aligned with Nephio’s charter and the scope of each release is defined with the objective to fulfill a particular Telco use case(s).

A SIG involves long-term efforts that deliver features across multiple releases. The SIG and release lifecycle should provide sufficient visibility to all community members and allow teams to coordinate with one another.

This document covers the Nephio SIG lifecycle. The Release Lifecycle should be documented in the wiki.

3.3.2 Nephio SIG Types

As of August 4th, 2022, TSC has approved the following SIG groups into operation.

  • SIG 1: Network Architecture

    • This SIG group focuses on development of specifications and consolidating Telco requirements for development by other SIG groups.

    • This SIG group facilitates upstream and downstream community coordination required for successful Nephio releases.

  • SIG 2: Automation

    • This SIG group focuses on design and standardization of schemas, CRDs, and operators; development of CRDs, Operators, related tooling & reference Implementation; and packaging and testing of functional components of Nephio.

  • SIG 3: Release

    • This SIG group focuses on CI/CD, Test Grids, Builds, Release Machinery and Administration of Nephio releases.

Additional SIG groups can be added as required by TSC after the startup period (as described in the Charter) of the Nephio project.

The Nephio Community goal is to deliver a fully integrated and production deployable solution. Our community uses the upstream-first principle to avoid technical debt on the upstream open source components: Nephio SIGs should not carry patches against pstream open source projects, but collaborate with and contribute designs and patches to the respective upstream projects to address gaps. The SIGs must approve exceptions.

3.3.2.1 SIG subprojects

The Chair and Vice-Chair of each SIG may create any number of subprojects within the SIG to develop multiple software modules, which must be within the scope of the parent SIG. Each subproject may have its own distinct Contributors and Committers. TSC approval is not needed to create a subproject. The Chair and Vice-Chair of the parent SIG are responsible for the successful running of the subproject. All decisions regarding subprojects should be discussed openly in the parent SIG group meeting.

Subprojects must maintain all information relevant to its operation using its wiki page.

3.3.2.2 Release Lifecycle States and Reviews

Nephio should target major releases every six months. Patches and other software fixes can happen more frequently. TSC can task SIG groups to work on specific releases or requirements related to the release. All SIGs should coordinate to deliver releases every six months. The Architecture SIG is responsible for proposing the use cases, specifications and other key architecture requirements for each release. The SIG’s Chair and Vice-chair are responsible for coordinating delivery from this SIG and presenting it to TSC and other SIG groups.

The Automation SIG is responsible for proposing the new or updated software components required for each release. The SIG Chair and Vice-chair are responsible for coordinating this delivery from this SIG and presenting it to TSC and other SIG groups.

The Release SIG is responsible for proposing the CI/CD, Test Grids, Builds, and Release Machinery required to deliver the release and coordinate the overall administration of Nephio releases. The SIG Chair and Vice-chair are responsible for coordinating this delivery from this SIG and presenting it to TSC and other SIG groups.

TSC will tag each release proposal from SIGs as the following and promote to another stage once the criteria is satisfied. The Automation and Release SIG Chair and Vice-chair are responsible for presenting the information to the TSC group in each phase and TSC is responsible for the promotion of stages.

Release State

Description

Required information

TSC Acceptance Criteria

Release State

Description

Required information

TSC Acceptance Criteria

Proposal

Initial release proposal

The presentation by SIG should include clear use cases, software components, and timeline

The proposal aligns with Nephio Charter and goals.

Incubation

Proposal is approved by TSC and in development

SIG should present periodic updates (at least every month) to TSC. Any key roadblocks should be highlighted to TSC

TSC should monitor the progress and guide the SIG to resolve any roadblocks.

Mature

Release is completely ready, tested, and document is ready to be published

SIG should present the readiness, user guide, release notes, known bugs, and other relevant information to TSC.

TSC should review the readiness and vote to accept the release.

Core

Software is released to the public/community and supported by the community for patches.

Each release needs to be supported by the community for at least 2 years or TSC approves the exception. Community to support backward compatibility of releases for smooth operations.

TSC approved the release and information is documented for the public.

Latest release becomes the Core. Previous release is tagged with end-of-life.

Core releases are numbered in this sequence release #. Patch version #

Multiple core patches can be released and SIG can make the release decision of patches and TSC approval is not required.

TSC should coordinate with LF for the public announcement and marketing.

Archived

The release is no longer supported by the community (after two years or as per TSC decision) and stored as archived software for public reference

Archived release should be documented in the wiki

TSC approves the archival

SIG can establish its own process to successfully maintain its subprojects and software development.

3.3.4 Communication between SIGs

Frequently, SIGs must collaborate to prioritize certain work with cross-SIG dependencies. In Nephio,

  • One SIG may ask another SIG to engage on a particular area of development.

  • SIG groups can exchange requirements

3.3.5 Communication between SIGs and TSC

  • SIGs must report the status of all subprojects to TSC regularly (at least once per month)

  • TSC may request status from a SIG or Subproject at any time

3.4 Amendments to the Technical Community Document

The TSC may make amendments to this Technical Community Document at any time with a simple majority of the members of a quorum of the TSC as defined in section 4.4.1.

4 Technical Steering Committee

4.1 Nephio Community Active Contributors

Active Contributors are the cornerstone of the TSC.

An Active Contributor is defined as any member of the Nephio community who has made twenty (20) or more measurable contributions as assessed by the TSC during the previous 12-month period, inclusive of code merged, code reviews performed, presentations, technical documentation of software functions, wiki page edits, or JIRA activities.

At the Steady-State, the qualification period will be from the point of the previous election. The Contribution could be both an internal and externally managed code repository required by Nephio.

4.2 TSC Members

At Steady-State; TSC Membership consists of an elected subset of up to 20 people from the Contributors. In Start-Up Period; there can be up to 25 TSC members as described in the Charter.

Only TSC members have voting rights for decisions taken by the TSC and each TSC member has a single vote. TSC members going in absence can request a proxy from the same company to represent them on their behalf at the TSC for a maximum period of one month. In case of no active participation by a TSC member for more than 3-months is considered abandoning the community hence Chair and Vice-Chair can request TSC to remove the member from the TSC. TSC members will hold the TSC functional roles of chair and Vice-chair.

4.3 TSC Functional Roles

4.3.1 TSC Chair and Vice-Chair

The TSC members elect the TSC Chair and Vice-Chair.

At Steady-State, the TSC Chair and Vice-Chair are elected for a term of one year.

The TSC members shall hold elections to select a TSC Chair and Vice-Chair at the Transition Point and subsequently every year within one month of the yearly anniversary of the date of the Transition Point.

There are no limits on the number of terms a TSC Chair and Vice-Chair may serve.

The Chair and Vice-Chair work together to share the responsibilities of chairing the TSC.

4.3.1.1 Responsibilities

The primary responsibility of the TSC Chair and Vice-Chair are to represent the technical community and to be responsible for:

  • Leading TSC meetings; This responsibility may be delegated to another TSC Member during both Chair and Vice-Chair absence (in such case, this is to be informed via the TSC email list)

  • Representing the technical community to external organizations.

  • These responsibilities may be delegated to another member of the technical community.

4.4 TSC Operations

4.4.1 TSC Decision Making Process

Decisions of the TSC shall be made by majority vote of TSC Members.

A TSC vote requires a quorum of TSC members to be valid, a quorum consisting of at least 51% of TSC Members present or casting a vote.

Any vote of TSC members that results in a tie shall be considered as not approved.

4.4.2 TSC Election Candidate and Voter Eligibility

4.4.2.1 TSC Members

At Steady-State, Candidates must self nominate for TSC as articulated in this document.

4.4.2.1.1 Candidate and Voter Eligibility

Any Active Contributor community member is eligible to run for TSC membership

Any Active Contributor community member is eligible to vote in a TSC Member election

Eligibility is effective as of the date and time the nomination process starts

4.4.2.2 TSC Chair and Vice-Chair functional roles

Elections for the role of TSC Chair and Vice-Chair shall be held immediately after each year's TSC Member election.

Candidates must self-nominate.

4.4.2.2.1 Candidate and Voter Eligibility

All TSC members are eligible to run for the roles of Chair or Vice-Chair. There are no limits on the number of terms a TSC Chair and Vice-Chair may serve.

All TSC Members are eligible to vote in a TSC Chair and Vice-Chair election.

There are no limits to the number of terms an individual can serve.

4.4.3 TSC Election Mechanics

4.4.3.1 TSC Member Elections

All TSC members shall be elected at the Transition Point (end of start-up period) and subsequently every year within one month of the yearly anniversary of the date of the Transition Time.

In start-up state, there is no board to manage the fund and the founding company is responsible to fund and manage (until Steady-State). In Steady-State, a board will be formed and members of the company will represent the board. TSC selection is based on the merit basis as defined in this document.

4.2.3.2 TSC Member Election Mechanics

The annual election of TSC Members shall consist of a single stack-ranked vote of all self-nominated candidates to select the remaining 20 TSC members.

All Nephio Contributors may cast a single vote

4.4.3.2.1 Enforcement of organization TSC member limits.

The election will rank all standing candidates from 1 to N.

Only one (1) person from any company, or a group of related companies can be elected as a TSC member at any given time. If any organization entered more than the permitted limit of electable candidates, all excess candidates shall be removed from the results from the least ranked upwards until the organizational limit is reached.

Once this is done, the remaining 20 highest ranked candidates shall be elected to the TSC.

4.4.3.2.2 Interim elections

A TSC member, including Chair or Vice-Chair may be required to step down when:

  • They are no longer able to perform the TSC duties

  • They moved to a different company

  • The organization limits are exceeded, or

  • As a result of company acquisitions or mergers after each yearly election.

In all above cases, the TSC member may inform via an email to the TSC email list the TSC may call an interim election for that single position within 60 days of the notification from the leaving TSC member. Interim elections can be used to reelect the open TSC position. The period of the TSC member elected using the interim election can be up to the next full election. In an interim election, any organization of eligible contributors may enter candidates only if their current representation on the TSC is below their organization’s TSC Member limit.

Interim elections shall otherwise follow all the same procedures and use the same voting schemes as the yearly elections.

4.4.3.3 TSC Chair/Vice-Chair Election Mechanics

The TSC will elect from amongst TSC Members a chairperson and Vice-Chairperson for a term of one year.

The TSC shall hold elections to select a TSC Chair and Vice-Chair at the steady-state and subsequently every year within one month of the yearly anniversary of the date of the Transition Point.

Election of a TSC Chair/Vice Chair/Coordinator shall use a multiple-candidate method consisting of a single stack ranked vote of all candidates.

4.4.3.4 TSC Member Contributions

Contributions to the Nephio Community may be counted as either “individual” or “individual contribution on behalf of a company”. An “individual” contribution is made by a named individual. “Individual contributions on behalf of a company” are governed by the policy of an individual’s Organization to whom they were affiliated at the time of the contribution. Individual contributions cannot be transferred to other individuals.

For the purposes of TSC elections, the Organization can request the TSC to count an “individual contribution on behalf of a company” to another named individual of their Organization at any time regardless of whether the original Contributor has left the Organization. If an individual Contribution leaves an Organization, that Organization may, at their sole discretion, decide to retain all their Contributions and relocate them to another named individual within their Organization (for the TSC election purpose). Organization should inform TSC of such details of contributions and reallocation in writing.

OR

The Organization should agree to transfer all their Contributions to the individual’s new Organization, thereby releasing all interest in the previous Contributions to the Individual’s new Organization. Organization should inform TSC of such details of contributions and releases in writing.

4.5 Responsibilities of the TSC

Subject to the Technical Charter, the TSC is responsible for:

  • Successful coordination of the community, SIGs and releases.

  • Fostering cross-SIG collaboration.

  • Serving as Nephio’s primary technical liaison body with other consortiums and groups.

  • Setting release dates.

  • Defining release quality standards.

  • Defining technical best practices and community norms (including the establishment and maintenance of a Development Process).

  • Monitoring technical progress.

  • Mediating technical conflicts between Committers, and SIG’s Chair and Vice-Chair.

  • Establish process and guide the community for the overall welfare of the Nephio.

  • All marketing elements of Nephio, its releases and success.

  • Act as a liaison to other SDOs and users.

*** End of the document***