Skip to content

Commit

Permalink
Update TAG ENV governance
Browse files Browse the repository at this point in the history
Signed-off-by: leonardpahlke <leonard.pahlke@googlemail.com>
  • Loading branch information
leonardpahlke committed Oct 31, 2023
1 parent d87e808 commit aaf9884
Show file tree
Hide file tree
Showing 14 changed files with 349 additions and 307 deletions.
23 changes: 0 additions & 23 deletions governance/chair-proposal-process.md

This file was deleted.

3 changes: 3 additions & 0 deletions governance/communication-channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

This document describes the process for creating new communication channels for the CNCF TAG Environmental Sustainability (TAG ENV). Examples of such communication channels may be: Slack channels, accounts on social media platforms, etc.

- [Process for creating communication channels for TAG Environmental Sustainability](#process-for-creating-communication-channels-for-tag-environmental-sustainability)
- [Process for creating new Slack channels](#process-for-creating-new-slack-channels)

## Process for creating new Slack channels

All Slack channels must be created in the [CNCF](https://slack.cncf.io) workspace. TAG ENV has a main channel [#tag-environmental-sustainability](https://cloud-native.slack.com/archives/C03F270PDU6) with complementary sub-channels for some working groups or projects. The goal is to always provide the main channel with meaningful information, even if a sub-channel exists. This should be done by posting the message in the main channel and posting a link to the message in the sub-channel.
Expand Down
49 changes: 19 additions & 30 deletions governance/github.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,30 @@
# Github access permissions and administration

Facilitation roles are identified in [github settings](/.github/settings.yml) which we use for Github admin permissions and managing issues.
Write permissions are enabled by the [GitHub Settings](/.github/settings.yml) file.
The main GitHub repository for the TAG is `tag-env-sustainability`. TAG Leads have admin access to the repository and elected leads of working groups and projects maintain access which is defined in the [`cncf/people/config.yaml`](https://github.com/cncf/people/blob/main/config.yaml).

There is typically more process for review and collaboration than is controlled by access permissions.
We expect members to review [governance](/governance) and ask questions by filing a Github issue and/or submit suggested changes via Pull Request if anything is not clear.
The TAG also has technical repositories.
The [`tag-env-tooling`](https://github.com/cncf-tags/tag-env-tooling) contains smaller project, larger projects get sourced in seperate repsitories.
All technical repositories are maintained in the [`cncf-tags`](https://github.com/cncf-tags) GitHub organization.
See [`cncf-tags`](https://github.com/cncf/toc/blob/main/tags/cncf-tags-github-org.md) to find out more about the intention behind the organization.

Chairs have admin privileges and have access to change settings in the Github UI.
Except where noted below, changes should be made in the repo files to control access privileges, not in the Github UI (so they are visible to everyone.)
- [Github access permissions and administration](#github-access-permissions-and-administration)
- [Adding a commit to a TAG ENV repository](#adding-a-commit-to-a-tag-env-repository)
- [GitHub project board](#github-project-board)

Note: Members of the CNCF TOC and some CNCF staff also have admin access; however, TAG Roles will be defined transparently using files described below, and will follow TAG processes in making any changes.
## Adding a commit to a TAG ENV repository

## Settings file

Pull Requests to appoint members to new Roles in [github settings](/.github/settings.yml) must be approved by at least one Chair, along with whatever additional required process is defined in [roles](roles.md).
When a member has multiple roles, the role defined later in the file (that does not require additional access) is noted in a comment.
PRs to remove someone from a role must be approved by the person themselves or a majority of Chairs.

## Writing to the main branch

The following settings are controlled in the Github UI by those with admin access.
The "main" branch is "protected" (even for admins), with these requirements:

- can't be deleted
- no direct commits (including no "force push"), also
- at least one reviewer must approve
- must be approved by someone listed as a `collaborator` with
`push` or `admin` access
- title must not indicate work in
progress ([WIP](https://github.com/apps/wip))

## Housekeeping

To maintain the main branch in a feasible way the Pull Requests shall come from forked repositories from tag-environmental-sustainability.
After which an unique name should be assigned to identify what will be changed in the forked repository by utilizing branches.
Each contributor, including TAG leadership and CNCF personnel, does not commit directly to the `main` TAG ENV branch.
To commit to the repository, create a branch off to the `main` branch, if you have maintain or admin priviledges, or a [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) to the repository.
After changes are made to the branch or fork, the change can be proposed via a [pull request (PR)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).

After being merged the branch will be deleted.
Next contributions shall be in another fresh branch.
This way we keep the repository clean and allows a faster acceptance as it's clear what exactly is addressed.
This highly limits the amount of branches and stops having branches around for longer then needed.

The [`CONTRIBUTING.md`](../CONTRIBUTING.md) gives more information about how to contribute to the TAG.

## GitHub project board

The TAG uses a [project board](https://github.com/orgs/cncf/projects/10) to visualize and track issues.
The project board has views for working groups or projects.
153 changes: 153 additions & 0 deletions governance/lead-proposal-process.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# TAG Leadership election process

The leadership team of the TAG (Chairs and TLs) as well as the extended leadership team of working group chairs and project leads are servant leads in the community.
They are an enabler for the group and support the creation and success of the different activities.
They are the driver for the group for not losing the higher targets out of sight and taking decisions when no consensus can be found.

Roles within the TAG outlining expectations and responsibilities are defined in the [roles](roles.md) governance document.

The election process for TAG Leadership is described in the first part of this document.
The election process for Working Group and Project leadership is more lightweight and defined in the second part of this document.

- [TAG Leadership election process](#tag-leadership-election-process)
- [TAG Chair and TL election process](#tag-chair-and-tl-election-process)
- [Process of nominations](#process-of-nominations)
- [Community timeline](#community-timeline)
- [Submitting a nomination](#submitting-a-nomination)
- [Additional note about the TAG Chair proposal process](#additional-note-about-the-tag-chair-proposal-process)
- [General nomination requirements](#general-nomination-requirements)
- [Justification for nominees](#justification-for-nominees)
- [Announcing nomination results](#announcing-nomination-results)
- [Next Steps](#next-steps)
- [Working Group and Project Leadership](#working-group-and-project-leadership)
- [Process of nominations](#process-of-nominations-1)
- [Community timeline](#community-timeline-1)
- [Submitting a nomination](#submitting-a-nomination-1)

## TAG Chair and TL election process

### Process of nominations

TAG Lead roles are open to all interested participants within the community.
Depending on the needs of the community, as determined by the current TAG leadership team (Chairs and TLs), nominations may come from working group co-chairs, TAG co-chairs and/or tech leads and/or other community members. Each TAG is expected to define this for themselves.

The TAG ENV leadership team is conducted of:

* Three Co-Chairs
* Tech Leads

Final nominations will adhere to the [CNCF's TOC described process](https://github.com/cncf/toc/blob/main/tags/cncf-tags.md#elections) as well as to the leadership nomination requirements described below.

Any individual who is a member of the TAG ENV, it's working group's, or otherwise considered an active participant of the group may nominate another individual.

The process of endorsing and selecting individuals will consider the following factors to ensure both the need for proper community representation and the necessary technical expertise:

* Gender diversity
* Company diversity
* Geo diversity
* Number of nominations from different companies, people, regions for a single individual
* Existing body of work
* Justification provided during nomination

In case there are no individuals expressing interest in taking up leadership positions, an evaluation process for the TAG / working group or project archival may be initiated, as [outlined by the TOC](https://github.com/cncf/toc/blob/main/tags/cncf-tags.md#retirement).

#### Community timeline

Community nominations will run for at least 1 month, with a maximum up to 2 months.

* For TAG Chair nominations, the TOC will take a vote as [described by the TOC](https://github.com/cncf/toc/blob/main/tags/cncf-tags.md#elections).
* For TAG TL, TAG Chairs will vote and propose the nomination to the TOC. The TOC takes the final vote.
* For Working Group and Project Chairs, the TAG Chairs and Leads will take a vote.

Upon close of nominations, a decision should be made within the next month.

#### Submitting a nomination

Nominations are to be submitted to [TAG Co-Chair's email alias](mailto:cncf-tag-env-sus-chairs@lists.cncf.io) with the details:

* Subject `"NOMINATION $(TAG Chair, TAG TL, WG XYZ Chair): $NAME-OF-NOMINEE"`
* CC the nominee
* Justification
* Nominee Biography

#### Additional note about the TAG Chair proposal process

1. Environmental Sustainability TAG Co-chairs operate as a team. The Co-Chair team seeks to maintain full coverage of the leadership capabilities across the key qualities of industry experience, hands-on cloud-native and sustainability experience, as well as administrative experience needed to run a Environmental Sustainability TAG.
2. If a clear successor for the exiting Co-Chair exists based on the merit of their contributions ("plant trees, carry water") and relevant experience that will benefit the TAG, based on the TAG's collective experience over time, the exiting Co-chair may nominate a successor to the TOC.
3. The exiting Co-Chair should propose the desired successor to the other Co-Chairs. If there are any objections, the Co-Chair will have the opportunity to propose another worthy candidate. If Environmental Sustainability TAG Chairs, Tech Leads and TOC Liaisons are unable to put forward a candidate, then a selection process will need to be agreed upon and executed.
4. If no new Chair candidate is available, the role will remain vacant until the Co-chair's, TOC Liaisons or CNCF TOC propose a replacement.

### General nomination requirements

The TAG ENV recognizes and values the achievements of individuals who have proven themselves in this community.
If a given nominee does not meet all the requirements, the TAG leadership will still review the nomination and justification to determine if enough intent and commitment is present to move forward with an endorsement.

**Nominees must**:

* Be the author of at least one pull request against the TAG ENV repository
* Be active in the community within the last 3 months before their nomination
* Active - Attending at least 1 TAG ENV Regular Meeting a month
* Engaging in community chat via Slack or lists
* Commenting on PRs and issues to drive suggestions to proposals, define scope, resolve clarity issues, etc.
* Agree to the nomination

*additional requirements may be defined in the specific [roles](roles.md) governance document*

**Nominations must**:

* Come from someone other than the nominee
* Have justification from the nominator regarding the nominee's capabilities

#### Justification for nominees

To ensure nominations are thoughtful and supported, in addition to the above requirements, a justification must enumerate on the nominee's:

* TAG Community involvement
* Leadership and collaboration skills
* Willingness to learn and expand existing technical knowledge

### Announcing nomination results

The TAG leadership will release aggregate information about the nominees at the end of the nomination process. Aggregate information will not include who nominated someone.

### Next Steps

If the role under nomination requires TOC approval or vote, the TAG Co-chairs are responsible for coordinating and executing that in accordance with the TOC's processes (defined previously).

## Working Group and Project Leadership

Working group and project leads are appointed by the TAG Chairs through the following process.

### Process of nominations

TAG Lead roles are open to all interested participants within the community.
There are currently no limits of leadership roles for working groups or projects if not specifed otherwise in the WG / project charter document.

The process of endorsing and selecting individuals will consider the following factors to ensure both the need for proper community representation and the necessary technical expertise:

* Gender diversity
* Company diversity
* Geo diversity
* Number of nominations from different companies, people, regions for a single individual
* Existing body of work
* Justification provided during nomination

In case there are no individuals expressing interest in taking up leadership positions, an evaluation process for the working group or project archival may be initiated, as [working group archival process](project-formation.md).

#### Community timeline

Community nominations will run for at least 2 weeks, with a maximum up to 1 months.
The TAG Chairs will take a vote.
Upon close of nominations, a decision should be made within the next month.

#### Submitting a nomination

One of the TAG Leads will open an issue to initiate the nomination process.
Anyone interested can add a comment to the issue to clearly show interest.
The comment should adress the points specified below.

* Justification
* TAG Community involvement
* Leadership and collaboration skills
* Willingness to learn and expand existing technical knowledge
* Nominee Biography
16 changes: 13 additions & 3 deletions governance/meeting-host-playbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

Meetings are held to coordinate and discuss TAG ENV activities. The TAG ENV leads host these meetings. The following playbook can be used for reference to structure the meeting, you don't need to stick step by step (word by word), it should give guidance how a meeting usually is structured.

- [TAG Environmental Sustainability Meeting Host Playbook](#tag-environmental-sustainability-meeting-host-playbook)
- [Requirements to host the meeting](#requirements-to-host-the-meeting)
- [Pre-Meeting](#pre-meeting)
- [During the Meeting](#during-the-meeting)
- [Preparation](#preparation)
- [Intro](#intro)
- [Agenda](#agenda)
- [End of the Meeting](#end-of-the-meeting)
- [Post-Meeting](#post-meeting)

## Requirements to host the meeting

* Install Zoom and check your settings (especially audio and video).
Expand All @@ -10,10 +20,10 @@ Meetings are held to coordinate and discuss TAG ENV activities. The TAG ENV lead

## Pre-Meeting

* Add a new blank agenda entry to the meeting notes by copying the template and editing the details accordingly.
* Announce a day in advance in Slack to add agenda items to meeting notes.
* Add a new blank agenda entry to the [meeting notes](https://bit.ly/cncf-tag-env-meeting-notes) by copying the template and editing the details accordingly.
* Announce a day in advance in Slack to add agenda items to [meeting notes](https://bit.ly/cncf-tag-env-meeting-notes).
* Announce the meeting about an hour before in the `#tag-env-sustainability` Slack channel.
* Announce the meeting over [social media](https://github.com/cncf/tag-env-sustainability#contact) a day before. If there is a special presentation / occasion, you may want to announce it a total of two times a week in advance.
* Announce the meeting over [social media](https://github.com/cncf/tag-env-sustainability#contact) a day before. If there is a special presentation / occasion. You may want to announce it a total of two times a week in advance.

```markdown
Hi folks! The CNCF TAG ENV bi-weekly meeting takes place 1 hour from now.
Expand Down
21 changes: 21 additions & 0 deletions governance/paper-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,27 @@
This document is intended to provide a consistent mechanism for cloud native environmental sustainability to produce community papers, ensure they are reviewed, and subsequently published.
Content of this document does not supersede existing processes and is intended to be used in conjunction with [existing proposal to project instructions](process.md).

- [Process for creating papers](#process-for-creating-papers)
- [Proposal](#proposal)
- [Project](#project)
- [Tentative schedule milestones](#tentative-schedule-milestones)
- [Milestones](#milestones)
- [Audience, Goals, and refining scope](#audience-goals-and-refining-scope)
- [Tasking assignment](#tasking-assignment)
- [Content rough-in](#content-rough-in)
- [Opinions](#opinions)
- [References](#references)
- [Collaborative](#collaborative)
- [Executive summary and content wrap-up](#executive-summary-and-content-wrap-up)
- [Narrative voice](#narrative-voice)
- [Final group review](#final-group-review)
- [Community Review](#community-review)
- [Public comment adjudication](#public-comment-adjudication)
- [CNCF publishing engagement](#cncf-publishing-engagement)
- [Addition to the repo](#addition-to-the-repo)
- [Blog publishing and coordination](#blog-publishing-and-coordination)
- [Authorship, attribution and acknowledgements](#authorship-attribution-and-acknowledgements)

## Proposal

If a proposal is made that includes a paper as a deliverable, the proposal needs to ensure that there is a clearly identified lead and a well defined paper scope.
Expand Down
Loading

0 comments on commit aaf9884

Please sign in to comment.