Skip to end of metadata
Go to start of metadata

Introduction

The Open Network Automation Platform technical project has been established as ONAP Project a Series of LF Projects, LLC (“ONAP” or, 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 onap.org (“Technical Charter”).  This Technical Community Document is intended to provide additional operational guidelines for the Project, and is subject to the Technical Charter.  

How to update this page

The index links do not work.  You will simply need to search for that section. Sorry. Kenny Paul 


 1.          Guiding Principles

The ONAP Project a Series of LF Projects, LLC (“ONAP”) 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 projects and a Technical Steering Committee that spans across all projects.

 3.          Per Project

                3.1.          Project Roles

                               3.1.1.          Contributor

A Contributor is someone who contributes to a project. Contributions could take the form of code, code reviews, or other artifacts. Contributors work with a project’s Committer and the project’s sub-community. A Contributor may be promoted to a Committer by the project’s Committers after demonstrating a history of meritocratic contribution to that project.

                               3.1.2.          Committer

For each project there is a set of Contributors approved for the right to commit code to the source code management system (the “Committers”) for that project.

                                                  3.1.2.1.          Committer rights are per project; being a Committer on one project does not give an individual committer rights on any other project.

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

                                                  3.1.2.3.          Committers are the best available individuals, but usually work full-time on components in active development.

                                                  3.1.2.4.          In order to preserve meritocracy in selection of Committers while ensuring diversity of Committers, each initial project are encouraged to take on at least three Committers from different companies (subject to meritocracy).

                               3.1.3.          Project Technical Leader

A project is required to elect a Project Technical Leader (“PTL”). The PTL acts as the de facto spokesperson for the project.

                                                  3.1.3.1.          Project Technical Leader Candidates

Candidates for the project’s Project Technical Leader will be derived from the Committers of the Project.Candidates must self nominate.

                                                  3.1.3.2.          Project Technical Leader Voters

Only Committers for a project are eligible to vote for a project’s Project Technical Lead.

                                                  3.1.3.3.          Project Technical Leader Election Mechanics

An election for Project Technical Leader occurs when any of the following are true:

                                                                 3.1.3.3.1.          The project is initially created

                                                                 3.1.3.3.2.          The Project Technical Leader resigns his or her post

                                                                 3.1.3.3.3.          The majority of committers on a project vote to call a new election

                                                                 3.1.3.3.4.          One year has passed since the last Project Technical Leader election for that project

                3.2.          Project Operations

                               3.2.1.          Project Decisions Making Process

Technical and release decisions for a project should be made by consensus of that project’s Committers.  If consensus cannot be reached, decisions are taken by majority vote of a project’s Committers.  Committers may, by majority vote, delegate (or revoke delegation) of any portion of such decisions to an alternate open, documented, and traceable decision making process.

                               3.2.2.          Committer Lifecycle

                                                3.2.2.1.          Adding Committers

                                                                 3.2.2.1.1.          Initial Committers for a project will be specified at project creation

                                                                 3.2.2.1.2.          Committer rights for a project are earned via contribution and community trust. Committers for a project select and vote for new Committers for that project, subject to TSC approval.

                                                                 3.2.2.1.3.          New Committers for a project should have a demonstrable established history of meritocratic contributions.

                                                3.2.2.2.          Adding Committers to moribund projects

                                                                 3.2.2.2.1.          In the event that a project has no active committers (e.g., due to resignations, etc.), the TSC may appoint an interim Committer from a project’s active Contributors. This term shall last until the next release date, after which time the Committer must stand for election from amongst other Committers on the project to maintain his or her status. 

                                                                 3.2.2.2.2.          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 project to continue development following an unexpected change in personnel.

                                                                 3.2.2.2.3.          The method by which the TSC appoints an interim committee is first by request to the ONAP-TSC email list indicating the request to appoint an interim Committer for a project.  After the reception of such an email, the normal TSC decision process applies.

                                                3.2.2.3.          Removing Committers

                                                                 3.2.2.3.1.          A Committer may voluntarily resign from a project by making a public request to the PTL to resign (via the project and ONAP-TSC email lists).

                                                                 3.2.2.3.2.          A Committer for a project who is disruptive, or has been inactive on that project for an extended period (e.g., six or more months) may have his or her Committer status revoked by the project’s Project Technical Leader or by 2/3 super-majority vote of the project’s committers.

                                                                 3.2.2.3.3.          The Project Technical Leader is responsible for informing the Technical Steering Committee (TSC) of any committers who are removed or resign via the ONAP-TSC email list.

                                                                 3.2.2.3.4.          Former committers removed for reasons other than being disruptive may be listed as ‘Emeritus Committers’.  That title expresses gratitude for their service, but conveys none of the privileges of being a Committer.

                               3.2.3.          Umbrella Projects

                                                  3.2.3.1.          The TSC may create umbrella projects (“Umbrella Projects”) that in turn support multiple sub-projects. Umbrella Projects will be led by an Umbrella Committee made up of the PTL and one or more committers, who are the Committers of each of the subprojects. Each subproject will have its own set of Committers with responsibility only for the subproject repository.

                                                  3.2.3.2.          With the approval of the TSC, Umbrella Projects may establish and modify additional technical roles for sub-project participants.

                3.3.          Project Lifecycle

                               3.3.1.          ONAP Project Lifecycle

The activities of the ONAP community are articulated around projects and releases. The scope of each project is aligned with the ONAP architecture and the scope of each release is defined with the objective to fulfill a particular use case(s).

                                                  3.3.1.1.          A project is a long term endeavor setup to deliver features across multiple releases, which have a shorter lifespan.

                                                  3.3.1.2.          The project and release lifecycle are simple and provide sufficient visibility to allow teams to coordinate with one another and flock naturally.

                                                  3.3.1.3.          The key point of the project and release lifecycle process is to provide adequate visibility to all stakeholders, provide synchronization, and support to all contributors.

                                                  3.3.1.4.          This document covers the ONAP project lifecycle. The Release Lifecycle is documented in a separate document (include link when ready).

                                  3.3.2.          Project Lifecycle Overview

The project lifecycle provides the freedom for each team to conduct its project according to their needs, culture and work habits. Thus, the project lifecycle is not prescriptive on how each project operates.

                                                  3.3.2.1.          An ONAP release can be composed of 1 to N projects. As such the number of contributing projects to a particular release may vary overtime.

                                                  3.3.2.2.          A release is initiated to deliver a set of project deliverables.

                                                  3.3.2.3.          The project lifecycle process does not impose a duration for the project nor for the release. There is an independent Release Plan document for each release to specify release timelines.

                               3.3.3.          Project Lifecycle States and Reviews

ONAP project lifecycle defines five states that each project goes through. The project lifecycle may extend across multiple releases.

                                                  3.3.3.1.          The procedure of moving from one state to the next one is independent from the release and the pace depends on each individual project.

                                                  3.3.3.2.          In order to effectively review project progress, four reviews are build-in within the project lifecycle.

                                                  3.3.3.3.          The lifecycle of a project is depicted on the following diagram:

 

Project State

Description

Proposal

Project doesn’t really exist yet, may not have real resources, but is proposed and is expected to be created due to business needs.

Incubation

Project has resources, but is recognized to be in the early stages of development. The outcome is a minimum viable product (MVP) that demonstrates the value of the project and is a useful vehicle for collecting feedback, but is not expected to be used in production environments.

Mature

Project is fully functioning and stable, has achieved successful releases.

Core

Project provides value to and receives interest from a broad audience.

Archived

Project can reach the Archived state for multiple reasons. Either the project has successfully been completed and its artifacts provide business values, or the project has been cancelled for unforeseen reasons (no value anymore, technical, etc.).

Project in any state can be Archived through a Termination Review.

 

To move from one state to the next state, the Project Team has to formulate a Kick-Off release review to the TSC, by specifying its goal to move up the Project Lifecycle ladder.

From State

To State

Review Description

Null

Proposal

 

Proposal

Incubation

Incubation review

Incubation

Mature

Maturity review

Mature

Core

Core review

Core

Archived

Termination review

Note 1: Project proposals are posted in the “Proposed Projects” section of the ONAP wiki.  Approved projects are posted to the “Approved Projects” section of the ONAP wiki.

Note 2: The proposal submitter can decide to remove projects in “proposal” state that do not progress to incubation state.

                               3.3.4.          Tailoring

A project’s release cycle may be tailored by allowing some exceptions to the normal release process. Tailoring may be initiated in two ways:

                                                  3.3.4.1.          By the TSC voting members: TSC voting members reserves the right to allow changes to the process in order to meet criteria that were initially unknown.

                                                  3.3.4.2.          By Project Team Lead: Any project team lead can email TSC voting members to request tailoring the process for a particular release. The key point in tailoring is to anticipate as much as possible, to justify the request, and document the request in the wiki.

                                                  3.3.4.3.          Tailoring practices will be documented as we progress through our releases. The TSC should respond to requests in a timely manner.

                               3.3.5.          Reviews & Metrics Overview

                                                  3.3.5.1.          Project promotion across states can only be done by TSC review and voting. During the reviews the candidate projects are evaluated based on predefined metrics and KPIs. The target numbers may vary for each project and state.

                                                                 3.3.5.1.1.          Longevity of the project

                                                                 3.3.5.1.2.          Project follows (or doesn't) the ONAP release cadence

                                                                 3.3.5.1.3.          Requirements have resulted in corresponding implementations

                                                                 3.3.5.1.4.          Comprehensiveness and maturity of the artifacts (code, test cases, documentation) the project produces including contributions/code to partner/upstream projects where applicable

                                                                 3.3.5.1.5.          Mature testing/integration success for defined environments (ONAP and/or partner/upstream projects, which is applicable or both)

                                                                 3.3.5.1.6.          Project artifacts: it is expected that all project’s artifacts are available and accessible to all contributors of the ONAP community. Links toward projects artifacts must be provided

                                                                 3.3.5.1.7.          Community Size and diversity of the active community (number and diversity of people contributing)

                                                  3.3.5.2.          For each and every review the following steps are required:

                                                                 3.3.5.2.1.          The project review is posted two weeks in advance in the Release Wiki. This allows all contributors to provide feedback prior to the review meeting. (include link when available)

                                                                 3.3.5.2.2.          The project review is emailed to onap-tsc@lists.onap.org mailing list

                                                                 3.3.5.2.3.          Disposition by TSC: Confirm that the project state is complete and the listed requirements are met.

                                                                 3.3.5.2.4.          Simple majority approval by voting TSC members

                                                                 3.3.5.2.5.          Reviews for multiple projects can occur at the same time.

                                                                 3.3.5.2.6.          During Release Kick-Off, the project team may request that the TSC conduct a review to move up the ladder.

                               3.3.6.          Project Reviews

                                                3.3.6.1.          Incubation Review

The goal of the Incubation Review is to officially launch the project and to support its needs until project Termination Review.

                                                                 3.3.6.1.1.          Once a project has passed the Incubation Review, the project is in Incubation State and may span over multiple releases.

                                                                 3.3.6.1.2.          Proposal template is available on the ONAP wiki .

                                                                 3.3.6.1.3.          The following artifacts are expected:

                                                                                3.3.6.1.3.1.          Name of the project is appropriate (no trademark issues etc.); Proposed repository name is all lower-case without any special characters

                                                                                3.3.6.1.3.2.          Project contact name, company and email are defined and documented

                                                                                3.3.6.1.3.3.          Description of the project goal and its purpose are defined

                                                                                3.3.6.1.3.4.          Scope and project plan are well defined

                                                                                3.3.6.1.3.5.          Resources committed and available contributors identified

                                                                                3.3.6.1.3.6.          Initial list of Committers identified (elected/proposed by initial contributors)

                                                                                3.3.6.1.3.7.          Meets ONAP TSC Policies

                                                                                3.3.6.1.3.8.          Proposal has been socialized with potentially interested or affected projects and/or parties

                                                                                3.3.6.1.3.9.          Cross Project Dependencies (XPDs). In the case where a project will require changes in other projects, those projects are listed in the proposal, and a sponsoring developer in the project has been identified

                                                                            3.3.6.1.3.10.          Tools have been identified and discussed with relevant partners (Linux Foundation, IT). Once the project passes the review, the tools chain must be created within one week. Tools encompass Configuration Management, CI-CD, Code Review, Testing, Team Wiki, End Users documentation (not exhaustive)

                                                3.3.6.2.          Maturity Review

The goal of the Maturity Review is to ensure:

                                                                 3.3.6.2.1.          Artifacts for Incubation State are complete and accepted

                                                                 3.3.6.2.2.          Plan for Maturity State are accepted

                                                                 3.3.6.2.3.          Once a project has passed the Maturity Review, the project is in Mature State and may span over multiple releases.

                                                                 3.3.6.2.4.          Review metrics for Maturity review:

                                                                                3.3.6.2.4.1.          Successful participation in releases: The project demonstrates stable output (code base, documents) within its history of releases in accordance with the release policy.

                                                                                3.3.6.2.4.2.          Architecture has been reviewed by the Architecture Committee

                                                                                3.3.6.2.4.3.          Project is active and contributes to ONAP: The project demonstrates a stable or increasing number of contributions across recent releases. Contributions are commits which got merged to a repository of an ONAP project or a related upstream project. Commits can for example be patches to update the requirements document of a project, code addition to an ONAP or upstream project repository, new test cases and so forth.

                                                                                3.3.6.2.4.4.          Mature artifacts produced: The project demonstrates that the artifacts produced by the project are deployable (where applicable) and have been successfully deployed, configured and used by end users (typically, service providers).

                                                3.3.6.3.          Core Review

The goal of the Core Review is to ensure:

                                                                 3.3.6.3.1.          Artifacts for Maturity State are complete and accepted

                                                                 3.3.6.3.2.          Plan for Core State are accepted. For the Core Review it is expected to deliver a comprehensive integration plan

                                                                 3.3.6.3.3.          Once a project has passed the Core Review, the project is in Core State and may span over multiple releases.

                                                                 3.3.6.3.4.          Review metrics for Core review include the metrics for maturity review plus the following:

                                                                 3.3.6.3.5.          Contributor diversity: The project demonstrates that it has a stable core team of contributors/committers which are affiliated to a set of at least three different companies. Core team members are those who have been active on the project for more than two releases, which means they were reviewing contributions to the project in ONAP Code Review and/or in the review-tool of the target upstream project(s).

                                                                 3.3.6.3.6.          Recognized value through other projects: The project demonstrates that its results are leveraged by other ONAP projects in an ongoing way, i.e. for at least the last two releases.

                                                                 3.3.6.3.7.          Successful integration tests (only applicable to projects which provide features/functionality): The project demonstrates that component tests and system-level tests have been implemented, that tests are used within the ONAP-O CI/CD test pipeline, and that tests bear successful results.

                                                                 3.3.6.3.8.          Stability, Security, Scalability and Performance levels have reached a high bar.

                                                3.3.6.4.          Termination Review

The goal of the Termination Review is to ensure that:

                                                                 3.3.6.4.1.          Artifacts for Core state are complete and accepted

                                                                 3.3.6.4.2.          Core project artifacts are acceptable and meet the acceptance criteria

                                                                 3.3.6.4.3.          Project Team has the confidence that its artifacts can be used outside the ONAP community

                                                                 3.3.6.4.4.          Metrics for Termination review are available

                               3.3.7.          Mature Release Process

A Project’s Committers make all decisions about Releases of that Project.  However, to be eligible to be considered ‘Mature’, the project must demonstrate a history of following the Mature Release Process.  The purpose of the Mature Release Process is to ensure openness and maximum opportunity for participation.  The idea is to have a simple, clear, public declaration of what a project intends to do and when, and what was actually done in a release cycle.   Towards that end, a project following the ‘Mature Release Process’ should have a Release Plan published at the beginning of its release cycle by its committers, and a Release Review just prior to the project release.

Both Release Plan and Release Review documents are intended to be relatively short, simple, and posted publicly on the wiki to assist the project in coordinating among themselves and the general world in gaining visibility.

These should contain roughly the following sections:

                                                3.3.7.1.          Release Plan

                                                                 3.3.7.1.1.          Introduction

                                                                 3.3.7.1.2.          Release Deliverables

                                                                 3.3.7.1.3.          Release Milestones

                                                                 3.3.7.1.4.          Expected Dependencies on Other Projects

                                                                 3.3.7.1.5.          Compatibility with Previous Release

                                                                 3.3.7.1.6.          Themes and Priorities

                                                                 3.3.7.1.7.          Other

                                                                 3.3.7.1.8.          Features delivered

                                                                 3.3.7.1.9.          Non-Code Aspects (user docs, examples, tutorials, articles)

                                                              3.3.7.1.10.          Architectural Issues (if any)

                                                              3.3.7.1.11.          Security Issues (if any)

                                                              3.3.7.1.12.          Quality Assurance (test coverage, etc)

                                                              3.3.7.1.13.          End-of-life (API/Features EOLed in Release)

                                                              3.3.7.1.14.          Summary of Outstanding Bugs

                                                              3.3.7.1.15.          Summary of Standards Compliance

                                                              3.3.7.1.16.          Delta between planned schedule and actual schedule

                                                3.3.7.2.          Release Review

                                                                 3.3.7.2.1.          Features delivered

                                                                 3.3.7.2.2.          Non-Code Aspects (user docs, examples, tutorials, articles)\

                                                                 3.3.7.2.3.          Architectural Issues (if any)

                                                                 3.3.7.2.4.          Security Issues (if any)

                                                                 3.3.7.2.5.          Quality Assurance (test coverage, etc)

                                                                 3.3.7.2.6.          End-of-life (API/Features EOLed in Release)

                                                                 3.3.7.2.7.          Summary of Outstanding Bugs

                                                                 3.3.7.2.8.          Summary of Standards Compliance

                                                                 3.3.7.2.9.          Delta between planned schedule and actual schedule

                3.4.          Amendments to the Technical Community Document

The TSC may make amendments to this Technical Community Document at any time. The document amendment process is for a TSC voting member to propose changes that will be decided by a simple majority of the full TSC. The proposed changes are subject to review and approval by the Series Manager of ONAP.

 4.          Technical Steering Committee

                4.1.          Membership Definitions

                               4.1.1.          Active Community Members

Anyone from the ONAP community with twenty (20) or more measurable contributions during the previous 12-month period, inclusive of code merged, code reviews performed, wiki page edits, (creation, modification, comments or attachments) or JIRA activities (creation, modification, comment or closure).

                                                  4.1.1.1.          An exception may be granted at the full discretion of the TSC if an individual fails to meet the Active Community Member criteria only under the condition that the TSC has delegated some level of responsibility for participating in an external open source community or standards body to that individual.  For an exception to be considered the individual must request it themselves by sending an email to the onap-tsc list, which demonstrates all of the following criteria have been met:

                                                                 4.1.1.1.1.          The individual has made at least some measurable contributions directly to the ONAP community in the previous 12-month period

                                                                 4.1.1.1.2.          The total number of combined measurable contributions (ONAP + external) would meet the Active Community Member threshold

                                                                 4.1.1.1.3.          The external contributions have been made specifically on behalf of the ONAP community and not in the exclusive service of the individual's employer

                                                                 4.1.1.1.4.          A pointer to the relevant records from the external source to be included in the count has been provided

                               4.1.2.          Related Company

Any entity (Company-A) which controls or is controlled by another entity (Company-B) or which, together, is under the common control of a third party (Company-C), in each case where such control results from ownership, either directly or indirectly, of more than fifty percent of the voting securities or membership interests of the entity in question; and “Related Companies” are entities that are each a Related Company as described above.

                4.2.          TSC Members

                               4.2.1.          TSC Size and Structure

                                                  4.2.1.1.          TSC members shall be Active Community Members in order to qualify for, or to retain any seat on the TSC.

                                                  4.2.1.2.          All seats on the TSC are open to any qualified candidate irrespective of their employment status, the company they may work for, the type of business or  industry vertical they may be associated with or of their LF or LFN membership status.

                                                  4.2.1.3.          There shall be up to a maximum of 25 seats permitted on the TSC. There is no requirement for all 25 seats to be filled at any given time.

                                                  4.2.1.4.          Any seats left vacant following a regular annual election shall remain vacant until the next annual election.

                                                  4.2.1.5.          One Person Per Company Rule
Although TSC seats are issued to individuals and not to companies, only one (1) person from any company, or group of Related Companies may be a member of the TSC at any given time. Exceptions to this rule are:

                                                                 4.2.1.5.1.          A sitting TSC member impacted by merger & acquisition activity involving their company may retain their TSC seat until the next annual TSC election cycle.

                                                                 4.2.1.5.2.          An incumbent TSC member that wins a Special Election as defined in this document, following a job change.

                                                  4.2.1.6.          Proxy Representation
TSC members may assign a proxy representative that may both attend meetings and/or vote (either live or electronically) on their behalf to accommodate business conflicts, travel, holiday periods or personal time off

                                                                 4.2.1.6.1.          All proxies must be reasonably time-bound.
                                                                 4.2.1.6.2.          The TSC must be pre-notified of the proxy and the coverage duration in advance via an email to the onap-tsc mailing list or via the TSC Proxy wiki page.
                                                                 4.2.1.6.3.          There are no provisions for a default, standing or de facto proxy assignment for any TSC member.
                                                                 4.2.1.6.4.          "Self-announced" proxies are not permitted and will not be recognized.


                               4.2.2.          TSC Membership Requirements and Expectations

                                                  4.2.2.1.          Meeting Attendance
TSC members are expected to regularly attend TSC meetings

                                                                 4.2.2.1.1.          If any TSC member, without being represented by a proxy misses any two consecutive regular TSC meetings, such member shall not be counted for quorum or voting purposes until that member next attends.

                                                              4.2.2.1.2.          If any TSC member, without being represented by a proxy, misses any four consecutive regular TSC meetings, that member shall be removed from the TSC automatically unless the TSC approves an exception.

                                                  4.2.2.2.          Dedicated work time for TSC related activities

TSC members are expected to dedicate at least 3-4 hours weekly on average to perform the type of work outlined in this document. If a potential member is not able to commit to such a time investment, it is strongly recommended they do not run as a candidate for any TSC seat.

                                                  4.2.2.3.          Direct Community Leadership

                                                                 4.2.2.3.1.          TSC members are expected to take on some manner of Community Leadership role beyond the TSC seat itself.

                                                                 4.2.2.3.2.          The Community Leadership role must serve the needs and/or benefits of the ONAP community as a whole and not serve the exclusive needs and/or of the member's company.

                                                                 4.2.2.3.3.          Examples of Community Leadership roles include but are not limited to:

                                                                                4.2.2.3.3.1.          Project PTL

                                                                                4.2.2.3.3.2.          Subcommittee Officer

                                                                                4.2.2.3.3.3.          A TSC work group or task force leader

                                                                                4.2.2.3.3.4.          Community Coordinator (TAC, MAC, SPC, SDO or other OSS)

                                                                                4.2.2.3.3.5.          LFN or other OSS Whitepaper or blueprint editor/contributor

                                                                                4.2.2.3.3.6.          LFN (or other OSS) Event organizer

                                                  4.2.2.4.          Active Participation in basic TSC operations

TSC members are expected to actively take part in fulfilling the TSC responsibilities as defined in the ONAP charter and this document. That may include (but is not limited to):

                                                                 4.2.2.4.1.          Bringing forth proposals for improvements in the software or software development process.

                                                                 4.2.2.4.2.          Proposing solutions to issues raised by the community and brought to the TSC for a decision.

                                                                 4.2.2.4.3.          Pulling in experts from their company or organization to help address issues brought before the TSC.

                                                  4.2.2.5.          ONAP Advocacy

TSC members are expected to advocate for the adoption and use of ONAP by their company/organization or other OSS projects and use cases. Advocacy may take the form of public posts (blogs, articles, white papers, blueprints, etc.),  or via direct communication with the relevant parties.

 

                               4.2.3.          Responsibilities of the TSC.

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

                                                  4.2.3.1.          Defining ONAP’s release vehicles (such as a Coordinated Release) that align with the Project’s,mission,

                                                  4.2.3.2.          Fostering cross-project collaboration,

                                                  4.2.3.3.          Serving as ONAP’s primary technical liaison body with other consortiums and groups,

                                                  4.2.3.4.          Developing an architecture,

                                                  4.2.3.5.          Setting simultaneous release dates,

                                                  4.2.3.6.          Defining release quality standards,

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

                                                  4.2.3.8.          Monitoring technical progress,

                                                  4.2.3.9.          Mediating technical conflicts between Committers and PTLs,

                                               4.2.3.10.          Organizing inter-project collaboration,

                                               4.2.3.11.          Coordinating technical community engagement with the end-user community.

                               4.2.4.          TSC Chair

The TSC will elect from amongst voting TSC members a chairperson for a term of one year according to the ONAP Technical Charter. The TSC shall hold elections to select a TSC Chair annually; there are no limits on the number of terms a TSC Chair may serve.

                                                  4.2.4.1.          Chair Responsibilities

The primary responsibility of the TSC Chair is to represent the technical community in communications with the LF Networking Fund of The Linux Foundation and to be responsible for:

                                                                 4.2.4.1.1.          Leading TSC meetings;

                                                                 4.2.4.1.2.          This responsibility may be delegated to the another TSC member  (in such case, this is to be informed via the TSC email list)

                                                                 4.2.4.1.3.          Representing the technical community to external organizations.

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

                                                                 4.2.4.1.5.          Lead the TSC in the execution of the TSCs responsibilities as defined in this document.

                               4.2.5.          Vice Chair

The TSC will elect from amongst voting TSC members a Vice Chair.  The TSC shall hold elections to select a Vice Chair annually; there are no limits on the number of terms a Vice Chair may serve.

                                                  4.2.5.1.          Vice Chair Responsibilities

                                                                 4.2.5.1.1.          The Vice Chair will support the TSC Chair.

                                                                 4.2.5.1.2.          The Vice Chair will represent the TSC when the TSC Chair is not available unless another delegation has been made explicitly.

                               4.2.6.          Coordinators

                                                  4.2.6.1.          Coordinator Description

The TSC has multiple coordinator roles.  Each coordinator role comes with its own set of responsibilities to discharge in serving the community via coordinating among various parties.

                                                                 4.2.6.1.1.          A coordinator is an internal role, so while a coordinator may coordinate among various external liaisons in some instances, being a coordinator does not imply being the liaison to any particular external organization or group of organizations.

                                                                 4.2.6.1.2.          Coordinators support the TSC Chair in the execution of TSC responsibilities and the delivery of ONAP releases. They are responsible for fostering collaboration among the many parties that need to work together to identify, characterize, and solve problems, they do not direct solutions.

                                                  4.2.6.2.          Coordinator origin.

                                                                 4.2.6.2.1.          The Technical Steering committee may elect coordinators from the Technical Steering Committee or from community participants.  The TSC will solicit nominations for the role. Nominees should have subject matter experience in the relevant coordination area. In the event that multiple candidates self-nominate, the TSC will hold an election.

                                                                 4.2.6.2.2.          Elections are held annually. There are no limits to the number of terms an individual can serve.

                                                                 4.2.6.2.3.          The coordinator will regularly report status and issues to the TSC via the ONAP-TSC email list.

                                                  4.2.6.3.          Coordinator and coordination area lifecycle

There is a lifecycle for the coordinator responsibility (coordination area) and the coordinator appointment.

                                                                 4.2.6.3.1.          Coordination Area Creation
A coordination area is created by sending a request to the TSC via the ONAP-TSC email list.  The email shall have:

                                                                                4.2.6.3.1.1.          Email Subject: Creation Request for coordination area:

                                                                                4.2.6.3.1.2.          Coordination Area responsibility description:

                                                                                4.2.6.3.1.3.          Reporting Cadence:

                                                                                4.2.6.3.1.4.          Area Coordinator: (Can be blank)

                                                                                4.2.6.3.1.5.          The decision to create the coordination area is created by a TSC decision (per the TSC voting rules).  A decision can be made with modification, with the modifications captured in the TSC minutes.  Once a coordination area is created, it will be documented in the ONAP Wiki.

                                                                 4.2.6.3.2.          Coordination Area Update

                                                                                4.2.6.3.2.1.          A coordination area can be updated by sending a request to the TSC via the ONAP-TSC email list.  The email shall have the following: Email subject: Update Request for coordination area:

                                                                                4.2.6.3.2.2.          Proposed Update: .

                                                                                4.2.6.3.2.3.          The decision to update the coordination area is created by a TSC decision (according to the TSC voting rules).  An update decision can be made with modification, with the modifications captured in the TSC minutes.  Once a coordination area is updated, the updates will be documented in the ONAP Wiki.

                                                                 4.2.6.3.3.          Coordination Area Termination.

                                                                                4.2.6.3.3.1.          A coordination area can be terminated by sending an email to the TSC via the ONAP-TSC email list.  The email shall have the following.

                                                                                4.2.6.3.3.2.          Email Subject: Close Request for coordination area:

                                                                                4.2.6.3.3.3.          Motivation: .

                                                                                4.2.6.3.3.4.          The decision to close the coordination area is created by a TSC decision (according to the TSC voting rules).  Once a coordination area is updated, the coordination area will be removed from the ONAP Wiki.

                4.3.          TSC Operations

                               4.3.1.          TSC Decision Making Process

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

                               4.3.2.          TSC Chair, Vice Chair & Coordinator Elections

The TSC Chair/Vice Chair/Coordinators shall be elected separately.  There is no prohibition against a person holding multiple roles within the community.

                                                  4.3.2.1.          TSC Chair/Vice Chair Candidates

                                                                 4.3.2.1.1.          Candidates for TSC Chair or Vice Chair must be TSC Members as defined in this document.

                                                                 4.3.2.1.2.          Candidates must self nominate.

                                                  4.3.2.2.          Coordinator Candidates

                                                                 4.3.2.2.1.          Any community member, regardless of TSC membership or Active Community Member status,  is eligible to serve as a Coordinator.  Nominees should have subject matter experience in the relevant coordination area.

                                                                 4.3.2.2.2.          Candidates must self nominate.  
  

                                                  4.3.2.3.          TSC Chair/Vice Chair/Coordinator Voters

Only TSC Members are eligible to vote for TSC Chair, Vice Chair and Coordinator positions.

                                                  4.3.2.4.          TSC Chair/Vice Chair/Coordinator Election Mechanics

Election of a TSC Chair/Vice Chair/Coordinator shall use a multiple-candidate method, e.g.: Condorcet: http://en.wikipedia.org/wiki/Condorcet_method; or Single Transferable Vote: http://en.wikipedia.org/wiki/Single_transferable_vote

                                                  4.3.2.5.          Replacement of a TSC officer

In the event of aTSC Chair/Vice Chair standing down, the position will undergo a re-election with the candidate pool limited to the current TSC members

                               4.3.3.          TSC Member Elections

                                                4.3.3.1.          The regular elections of the TSC shall occur annually in September

                                                4.3.3.2.          Candidate and Voter Eligibility

                                                                 4.3.3.2.1.          Any Active Community Member is eligible to run for a TSC seat

                                                                 4.3.3.2.2.          Any Active Community Member is eligible to vote in a TSC election

                                                                 4.3.3.2.3.          Eligibility as an Active Community Member to either run for a TSC seat or vote is determined effective as of the date and time the nomination process starts

                                                                 4.3.3.2.4.          Currently serving in a Community Leadership capacity is not a prerequisite for a candidate’s eligibility in any TSC election

                                                4.3.3.3.          TSC Member Candidates

                                                                 4.3.3.3.1.          There are no limitations on the number of candidates that can run for a TSC seat, nor is there a limit to the number of candidates from any company, or group of Related Companies that can run in a TSC election

                                                                 4.3.3.3.2.          Candidates must self nominate

                                                4.3.3.4.          TSC Member Election Mechanics

                                                                 4.3.3.4.1.          The election of a TSC Member shall consist of a single stack ranked vote of all candidates such as Condorcet: http://en.wikipedia.org/wiki/Condorcet_method); 

                                                                 4.3.3.4.2.          The top ranked candidates in the election shall be elected to serve on the TSC up to the maximum number of seats allowed 

                                                                 4.3.3.4.3.          If multiple candidates from a company or a group of Related Companies are running in the election only the top ranked candidate in the election shall be elected.

                                                4.3.3.5.          Special Elections

                                                                 4.3.3.5.1.          Special Elections will not be held during the months of July and August. The next opportunity to address any seat or membership changes on the TSC will be at the next regular election and all regular election provisions shall apply.

                                                                 4.3.3.5.2.          In the event of the resignation or removal of a TSC member, the TSC may either call for a Special Election, or choose to leave the seat open until the next regular election cycle, by a simple majority vote of the TSC

                                                                 4.3.3.5.3.          In the event of a TSC Member’s change of employment creates a conflict with the One Person Per Company Rule a Special Election is to be held.

                               4.3.4.          TSC Member Job Status Changes

                                                  4.3.4.1.          If a TSC member is no longer able to perform their TSC duties, the TSC member may step down by informing the community via an email to the TSC email list.

                                                  4.3.4.2.          Any TSC member that changes companies or employment status must notify the TSC via an email to the ONAP TSC list.

                                                  4.3.4.3.          If there is no conflict with the One Person Per Company Rule, a TSC Member will retain their seat provided any new responsibilities do not impact their ability to meet the obligations outlined in this document.

                                                  4.3.4.4.          If there is a conflict with the One Person Per Company Rule, the incumbent TSC member may run in the Special Election to retain their seat if they choose to do so. If elected they may retain their seat until the next regular TSC election cycle.

                                                  4.3.4.5.          There are no provisions permitting a company or group of Related Companies to appoint a replacement into a seat vacated by one of their employees.

                 4.4.         

                4.5.          TSC Subcommittees

The TSC, at its discretion, may establish subcommittees to assist the TSC with its responsibilities and provide expert guidance in technical subject areas (e.g., architecture or security).

                               4.5.1.          Membership

                                                  4.5.1.1.          Subcommittee Membership Eligibility

Each subcommittee shall determine its own membership eligibility, in consultation with the TSC. It is expected that subcommittee membership shall be open to all ONAP Contributors; however, subcommittees may impose restrictions such as the number of participants from a single company or group of Related Companies. While the desire may be to keep its size and scope limited, each subcommittee shall be open to the ONAP membership. All elected TSC members are eligible to join a subcommittee

                                                  4.5.1.2.          Subcommittee Chair / Vice Chair

Each subcommittee may elect a Chair and optionally a Vice-Chair who is responsible for leading meetings and representing the subcommittee to the TSC.

                                                  4.5.1.3.          Subcommittee Chair / Vice Chair Elections

The Chair or Vice-Chair will be elected by members of the subcommittee as of the date the nomination process starts for the election.

                                                  4.5.1.4.          Subcommittee Voter Eligibility

Voting for a Chair or Vice-Chair is not limited to ONAP member companies. However only 1 Subcommittee member from each company, or group of related companies may vote in the election.

                                                  4.5.1.5.          Subcommittee Election Confirmation

The elected Chair (and/or Vice-Chair) is submitted to the TSC for confirmation. The TSC decides to accept the outcome or requests a new voting.

                               4.5.2.          Advisory Role of the Subcommittee

                                                  4.5.2.1.          Subcommittees are advisory in nature, and not authoritative. They provide advice to projects and to the TSC.

                                                  4.5.2.2.          Subcommittees operate on a rough consensus basis.  If the subcommittee is unable to reach consensus on what advice to offer, the subcommittee Chair shall raise the issue with the TSC, where a formal vote can be taken, or advise the project that the subcommittee cannot reach consensus.

                               4.5.3.          TSC subcommittee lifecycle.

                                                  4.5.3.1.          Creation of a TSC subcommittee

                                                                                     4.5.3.1.1.          The TSC decides the creation of a subcommittee in accordance with TSC decision procedure.

                                                                                     4.5.3.1.2.          In order to create a TSC subcommittee, a TSC member shall make a proposal to the TSC (via ONAP-TSC email list) that that shall cover at least the following:

                                                                                                    4.5.3.1.2.1.          TSC subcommittee name.

                                                                                                    4.5.3.1.2.2.          TSC subcommittee purpose:

                                                                                                    4.5.3.1.2.3.          TSC subcommittee expected deliverables:

                                                                                                    4.5.3.1.2.4.          TSC subcommittee starting participants:

                                                                                                    4.5.3.1.2.5.          Optionally TSC subcommittee definition of done:   This may relate to the deliverables>

                                                  4.5.3.2.          Update of a TSC subcommittee

The TSC can modify a TSC subcommittee via a TSC decision.  To request such a modification, a request is made to the ONAP-TSC email list.

                                                  4.5.3.3.          Conclusion of a TSC subcommittee

                                                                 4.5.3.3.1.          The TSC decides the termination of the TSC subcommittee in accordance with the TSC decision procedure.  The submission of a request to terminate the TSC subcommittee should cover:

                                                                 4.5.3.3.2.          TSC subcommittee name

                                                                 4.5.3.3.3.          TSC subcommittee deliveries:

                                                                 4.5.3.3.4.          Motivation for termination of TSC subcommittee:

                               4.5.4.          Subcommittee vs. coordinator

As a guideline, a subcommittee is most appropriate when the task to be addressed involves a relatively stable group of people with a high level of intersection of common involvement.  A coordinator is more appropriate when there is a more dynamic group of people and issues may change frequently. A coordinator is also more appropriate for smaller efforts or topics requiring infrequent meetings.