Skip to content

Latest commit

 

History

History
289 lines (211 loc) · 11.7 KB

Lifecycle.md

File metadata and controls

289 lines (211 loc) · 11.7 KB

Planetary Software Organization Project and Working Group Lifecycle

Definitions

The Planetary Software Organization hosts several Top-Level Projects (TLPs). These projects are autonomous from each other and governed by their own TC (Technical Committee) and chartered by the Planetary Software TSC. Typically, TLPs are software projects (but not always) and are typically long-lived and open-ended.

The Planetary Software Organization also hosts several Top-Level Working Groups (TLWGs). TLWGs are formed for a specific purpose, and when that purpose is achieved, the TLWG will stand down.

TLPs are free to create their own Working Groups which are autonomous groups collaborating to fulfill a set of responsibilities. These Working Groups are chartered by the TC of the project they exist under.

 TSC
  |
  |-- Project A TC (Chartered By TSC)
  |       |-- Working Group (Chartered By Project A TC)
  |
  |-- Project B TC (Chartered By TSC)
  |       |-- Working Group (Chartered By Project B TC)
  |
  |-- Working Group X (Chartered by TSC)
  |-- Working Group Y (Chartered by TSC)

Lifecycle Overview

In general, a TLP or TLWG (hereafter TL*) will have the following lifecycle:

  • Like-minded individuals form a TC in order to establish a TL*
  • That TC establishes a charter for their TL* and submits an application to the Planetary Software TSC
  • If the application is accepted by the TSC, the TL* enters Incubation
  • A mentor(s) is assigned tor work the TC to get the TL* to ensure requirements are met
  • Once requirements are met, the TSC votes to graduate the TL* from Incubation
  • The TL* is now a fully authorized Planetary Software TL*

For TLWGs, which typically have a limited scope in time, they will eventually achieve their goal, report to the TSC, and then will stand down.

The Planetary Software TSC also reserves the right to revoke a TLP or TLWG charter.

Establishing a Technical Committee

Those like-minded individuals referenced in Item #1 above are referred to as the Technical Committee (TC). Typically, a TLP will have a TC and then also (hopefully) many other individuals that will contribute to the TLP and collaborate with the TC (either at formation or later). TLWGs don't typically have a membership more than just a TC, and so for a TLWG, the TLWG's TC is the TLWG itself.

A TC should have at least 3 initial members to write a charter for the TL* and get the application submitted to the Planetary Software TSC (but it can be submitted with fewer). It will need 3 members in order to graduate from Incubation. These should be individuals already undertaking the work described in the charter.

For more information (and examples) of how to write a charter for a TL*, and other important getting-started documents, please see our examples.

Membership Application and Approval Process

The Planetary Software Organization is quite new and currently has limited resources available to mentor new projects. As such, projects are chosen for admission as mentors become available.

You can apply at any time and the TSC and available mentors will help improve your application while awaiting available resources.

The process to join the Planetary Software Organization as a TLP or TLWG is as follows.

1. Submit Application - Pull Request Submitted

Copy the Application Template, fill it out, add the file to the Applications directory, and submit the filled in Template.md as a Pull Request to this repository.

Applications do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request.

2. Application is Accepted - Pull Request is Merged

When the Pull Request is merged, the Application is considered 'accepted' and can proceed to the next step.

3. Incubation Period Begins - Mentor is Assigned and Issue is Created

The purpose of incubation is to support and mentor a TL* entering the organization. The goal is for a TL* to be:

  • Participatory
  • Transparent
  • Effective

While certain processes are strongly recommended because of the TSC's experience, the goal of incubation is not to enforce a specific set of processes but to ensure that the processes adopted and accepted by a project achieve these goals. The requirements for graduating from incubation are detailed in the section below.

While a TL* is incubating it is assigned a mentor (or mentors) who is (are) responsible for working with the project to adopt policies and gain the health and contributorship it will need in order to graduate from incubation. The mentor (an individual or individuals that are appropriate to the scope of the TL*, but not necessarily members of the TSC) is nominated, must be willing to serve, and approved by the Planetary Software TSC.

An issue will be created to support and discuss the project's progress during incubation.

Requirements Needed to Graduate from Incubation

The requirements for graduating from incubation (and remaining a Planetary Software TLP or TLWG) are not specific processes, but instead are broad best-practices that that are likely to succeed in terms of the Planetary Software Organization's values.

Note that all of these practices adopted by a TLP or TLWG will be evaluated by the TSC prior to ratifying the proposed charter for graduation from Incubation, and the TSC may defer accepting the charter until corrections are made.

Likewise, if a TLP or TLWG changes their practices after they have been chartered in a manner that has diverged significantly from these guidelines, the TSC (or any Collaborator) may request that further corrections be made by opening an issue or a PR in the TLP's or TLWG's repository. Should the TLP or TLWG choose not to adopt the recommended changes, the TSC may choose to revoke their charter.

These requirements are as follows:

TC Membership of at Least Three

Membership of the TC must be at least 3 members.

Each TLP TC or TLWG must elect a representative to the Planetary Software Organization TSC or vote to abstain from representation on the TSC.

Transparency

The decision making and release process must be documented and publicly accessible.

All TLPs and TLWGs are expected to operate in a transparent manner. Decisions must be made publicly through a documented public process managed by each TLP TC or TLWG.

Charter

Every TLP or TLWG must have a charter that describes their statement of purpose, scope of their responsibilities, and members. It should be documented in a Charter file located in the root of any repository under their stewardship and referenced by their README.

All TLPs and TLWGs must use a participatory decision making process, and are responsible for documenting and keeping up to date their current processes and practices.

The TSC suggests a Consensus Seeking process.

All TLP TCs must ensure they are accurately representing the WGs in their TLP.

Code of Conduct

Every TLP or TLWG must have a Code of Conduct, and what that code is should be documented in a Code-Of-Conduct file located in the root of any repository under their stewardship.

The easy default is just to indicate that a TLP or TLWG simply follows the Planetary Software Code of Conduct.

However, TLPs or TLWGs can choose to define their own alternative policy.

Note that the Code of Conduct adopted by a TLP or TLWG will be evaluated by the TSC prior to ratifying the proposed charter for graduation from incubation. If that Code of Conduct is considered to be weaker than, or diverges too significantly from, the Planetary Software Code of Conduct, the TSC may defer accepting the charter until corrections are made.

Likewise, if a TLP or TLWG Code of Conduct changes after it has been chartered and the TSC determines that the updated Code of Conduct is weaker than, or diverges too significantly from, the Planetary Software Code of Conduct, the TSC (or any Collaborator) may request that further corrections be made by opening an issue or a PR in the TLP's or TLWG's repository. Should the TLP or TLWG choose not to adopt the recommended changes, the TSC may choose to revoke their charter.

Contributing Guidelines

Every TLP or TLWG must have Contributing Guidelines, and they should be documented in a Contributing file located in the root of any repository under their stewardship.

This document should describe a very simple process. The Planetary Software Organization Contributing document is one example, but there are other models discussed in the Bootstrap Policies.

Approved Licenses

At this time the Planetary Software Organization is only accepting projects which use an MIT, BSD, ISC, Apache2, or UnLicense license. If you think another license would be appropriate, please submit an Issue.

This policy does not apply to dependencies of a project, but if a dependency of a project is not freely available, then the project should still be as functional as possible without it. For example if a project has a dependency that provides a proprietary algorithm, functionality that does not use the algorithm should still be functional when the dependency is not present. This ensures that members of the open source community who do not have access to or a license for the dependency are able to contribute and use other parts of the software.

5. TSC Review - Issue Created

A TL* in incubation may graduate at any time by passing a TSC review, and then passing a majority vote of the TSC.

A review is initiated by someone requesting a review via an Issue on the TSC repo. This someone could be a member of the TL*'s TC, one of the TL*'s mentors, or someone from the TSC.

Two TSC members who are not conflicted with the TL* (not members of its TC, nor its mentors) will review the state of the TL* against the above requirements, documenting their findings in the Issue thread.

If these two TSC members find that the TL* does not pass the criteria, advice will be given for how the TC can rectify the shortcomings.

The TC can then make changes and request another review.

If the two TSC members both find that the TL* does meet the criteria to graduate from incubation, then the TSC can hold a graduation vote.

6. TSC Graduation Vote

If the TL* has passed a review by two TSC members (see above), it can be put to a TSC vote to graduate.

This process can happen either via an agenda item in a regular TSC meeting, or directly via a PR to modify the main TSC README to add the new TLP or TLWG to the lists in that document. The vote or the PR must gain approval by a majority vote of the TSC. If this vote is held at an in-person meeting and passes, the following PR to modify the README only needs to satisfy the 'regular' PR requirements (since majority requirement was satisfied at the meeting).

The TLP or TLWG is considered to be chartered once that PR lands.

Badges

Once admitted, please update the relevant readme files for the project to include the appropriate Planetary Software Organization badge.

Type Badge Raw Markdown
Affiliate Affiliate [![Affiliate](https://img.shields.io/badge/Planetary_Software-Affiliate-645394.svg)](https://github.com/planetarysoftware/TSC)
Project Project [![Project](https://img.shields.io/badge/Planetary_Software-Project-645394.svg)](https://github.com/planetarysoftware/TSC)