Giter VIP home page Giter VIP logo

community's Introduction

This repository holds a set of documents that govern the work of the Cloud Foundry Foundation (CFF), both the foundation itself and the technical communities that it supports.

There are two categories of governace included: foundation and technical community.

Foundation Governance

Changes to these policies and agreements require a vote of the CFF Governing Board.

  • CFF Charter - (Status: ACTIVE) - The charter for the CFF, included in the participation agreement that every member signs

  • Foundation Governance - (Status: ACTIVE) - Top level policies of the Cloud Foundry Foundation

  • Code of Conduct - (Status: ACTIVE) - Code of Conduct governing all participation in the Cloud Foundry community

Technical Community Governance

Changes to these documents require a vote (or consensus) of the Technical Oversight Committee (TOC).

  • Principles - (Status: INFORMATIONAL) - Core principles that inform the technical governance of the Cloud Foundry community

  • Roles - (Status: ACTIVE) - Description of the various technical community roles and the responsibilities, requirements, privileges and scope of each role

  • Technical Oversight Committee - (Status: ACTIVE) - Technical governance structure and process

  • Change Plan - (Status: DONE) - Plan for how to get from the community's current policies and practices to a new desired state

The evolution of the Cloud Foundry Technical Community Governance is explained in this talk.

Working Groups

(Status: ACTIVE)

The technical community's activities are structured into working groups by the TOC. For a listing of the active working groups, see WORKING-GROUPS.md.

community's People

Contributors

a-b avatar ameowlia avatar anita-flegg avatar ap-hunt avatar beyhan avatar chipchilders avatar christopherclark avatar ctlong avatar dlresende avatar dsboulder avatar emalm avatar gcapizzi avatar geigerj0 avatar geofffranks avatar gerg avatar jochenehret avatar jpalermo avatar loewenstein-sap avatar marcpaquette avatar mariash avatar maxmoehl avatar moleske avatar pivotal-marcela-campo avatar plowin avatar rkoster avatar sethboyles avatar silvestre avatar stephanme avatar strehle avatar vmware-jasonandrew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

community's Issues

user experience as 1st class asset with its associated governance

Cloud Foundry's user experience is recognized as a key differentiator w.r.t. alternative products & communities.

To maintain and further improve this asset, I believe that UX needs to be valued by the community process as an asset which deserves as much care/inclusivity/process as other assets such as technical (code, design) or marketing (branding, logs) or legals (IP).

In the past, I believe CloudFoundry has brought innovative and solid UX as a result of the following practices by key contributors (in particular Pivotal):

  • strong product management with investments in user research and metrics to make right product and UX decisions
  • gathering community feedback on user experience alternatives (through design proposals, surveys)
  • ensuring a strong backward compatibility for UX: systematically gathering community feedback on considered breaking changes in APIs, UX (including CF CLI flag or output changes)
  • ensuring an overall consistent UX across CF projects, with efforts such as ubiquitous language across projects, documentation, and marketing activities.

Some suggestions for "rebooted" governance:

  • While WGs have full autonomy for managing technical decisions in their scope along with TOC oversight, the
    work affecting CF UX should have a global channel to ask for community feedback (was previously cf-dev@)
  • CF UX artefacts (user research, results of community surveys, user experience and design work - such as UX prototypes/personas -, and scenarios, user documentation) should be subject to clear governance, ideally be open to read/contribute by the community while protecting sales/customer details by contributors.
  • There should be a process to handling UX-related community disagreements (such as deprecation windows for V2 to V3 API, or CF-on-VMS to CF-on-K8S )

TOC: Voter Eligibility: Non-code contributions

https://github.com/cloudfoundry/community/blob/main/TOC.md#voter-eligibility
As a person who's contributions are mainly in the form of commenting on issues, writing design docs, commenting on design docs ... participating in working groups, I'm wondering how Anyone who has at least 50 contributions in the last 12 months is eligible to vote in the TOC election. is going to translate to these non-code contributions and also how this is going to be counted. I saw that there's an exception process via the TOC, but it would still be good to give some indication what signifies significant contributions over the past year.

Review ROLES.md

Ensure that the ROLES described include all types of contributions, so that there is room for technical contributions that are not directly tied to code-based contributions. Of note, roles that are requirements for TOC eligibility.

Decide whether TOC meeting notes should be viewable by all

I noticed that I don't have access to read the meeting notes linked to from the Istio or the Knative TOC descriptions. It made me wonder why those notes are not publicly viewable. In the interest of transparency, they seem like an artifact we'd want the whole community to be able to read.

My initial opinion is that we should clarify that the meeting notes from the TOC should be viewable by all. It's possible there's some nuance I'm missing here that led Knative and Istio to decide to make their TOC notes private, and I'm curious to hear whether folks have reasons to support that decision.

Consider setting specific standards for adding new members to the CFF GH orgs

Comment that triggered this issue:

Unfortunately, according https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-organizations-and-teams/changing-team-visibility github organization teams seems to only be visible to organization members.

Any chance for CFF to add representative of CFF members to the organization, or more generally CFF community users ?

Originally posted by @gberche-orange in #36 (comment)

As of now, we do not have clear info about what is required to get org membership. It would be good to describe that here: https://github.com/cloudfoundry/community/blob/main/ROLES.md

Determine how project lifecycle will be handled

In the current CFF governance process, the PMC Council is responsible for the lifecycle of PMCs, PMCs are responsible for the lifecycle of Projects, and Projects are responsible for the lifecycle of repositories.

We need to think about the incubation > active > attic model for lifecycle, and decide how repos will flow through that process (if we keep a lifecycle model).

Please configure GITBOT

Pivotal provides the Gitbot service to synchronize issues and pull requests made against public GitHub repos with Pivotal Tracker projects.

If you do not want to use Pivotal Tracker to manage this GitHub repo, you do not need to take any action.

If you are a Pivotal employee, you can configure Gitbot to sync your GitHub repo to your Pivotal Tracker project with a pull request.

Steps:

  • Add the Toolsmiths-Bots team to have admin access to your repo
  • Add the cf-gitbot ([email protected]) user to have owner access to your Pivotal Tracker project
  • Create new branch in this repo: cfgitbot-config (an ask+cf@ ticket is the fastest way to get write access if you get a 404)
  • Add your new repo and or project to config-production.yml file
  • Submit a PR, which will get auto-merged if you've done it right. Detailed steps here

If you are not a pivotal employee, you can request that [email protected] set up the integration for you.

You might also be interested in configuring GitHub's Service Hook for Tracker on your repo so you can link your commits to Tracker stories. You can do this yourself by following the directions at:

https://www.pivotaltracker.com/blog/guide-githubs-service-hook-tracker/

If there are any questions, please reach out to [email protected].

Clarify process for TOC Chair

  • How long is the term of the TOC Chair?
  • Under what conditions does the TOC select a new chair? Any change to the TOC composition?
  • Is chair selection an official Decision of the TOC, to be governed by the TOC decision-making process?
  • Can the TOC Chair resign their chair responsibilities while still remaining on the TOC?

Standardize WG metadata to ease community interactions

Expected behavior

As a community member

  • in order to easily discover and interact with CFF working groups
  • I need a consistent/standardized way to consume WG metadata:
    • WG members and their roles (such as istio/istio/CODEOWNERS or kubernetes-sigs/service-catalog/OWNERS)
    • Roadmap pointer
    • Public CI pointer (and associated git repo)
    • Pointers to design and architecture documents
    • List of git repos
    • Slack channel
    • Security contacts (in addition to CFF level security contacts)

Observed behavior

community/GOVERNANCE.md

Lines 17 to 40 in 9fc193f

# Working Groups
* Sponsored by TOC for major areas, e.g. scheduling, logging etc
* Roughly equivalent to projects today
* Some may be focused on one area, some may be cross-cutting
* Should have a charter (mission, goals, scope etc)
* Should maintain a Roadmap
* Anyone can join the WG
* Weekly meetings, slack channel etc
* All work in the open
* Leadership, N (1-3ish) Leads appointed as below
* Generally, WG should make decisions by consensus, but the leads are ultimately responsible
* Create subgroups as needed (e.g. could create a team to focus on a specific, time-bound deliverable, potentially that team may work in a tracker/pairing model) - no formal model for these
* If consensus not reached Leads generally make decision, but can escalate to TOC
*Note:* the working group does _not_ privilege pairing or tracker by default. (It may split out a subgroup to work on a task or deliverable in a pairing model which is then adopted on completion by the WG, or becomes its own WG). In general the WGs default to open, so both pairing and non-pairing contributions are the same. Of course, members of the WG may choose to pair, and the WG may choose to have a daily (open) standup, and to practice TDD, but there’s not a magic different backlog for people pairing, and pairing does *not* skip the need for an /approve (tho 1 of the pair may be an approver). Contentious decisions should trigger a conversation on a github issue etc, they should _not_ be resolved by an offline conversation with a PM that doesn’t end up back on the issue.
# Working Group Roles
Modelled after https://github.com/knative/community/blob/master/ROLES.md
* Member:
* Actively contributing
* Has power to lgtm PRs (requirement to merge: 1 lgtm, 1 approve)
* Approver/Maintainer (of a part of the code): roughly
does not yet describe standard format for WG to expose their metadata/assets to the community

Here is a list sources of information regarding CFF projects available to the community

Ease access to CFF contribution statistics

As a CF user

  • in order to assess community health
  • in order to use data to understand vendor involvement contribution
  • I need to easily have access to statististics and data about community contributions (in particular code, and handling issues, reviews of PRs)

As an inspiration, the CNCF hosts the https://devstats.cncf.io/ for CNCF projects

Full list of dashboards Community sizing and health assessment dashboards * Companies contributing in repository groups * Companies table * Company Statistics by Repository Group * Countries stats * Github Stats by Repository * Github Stats by Repository Group * Overall Project Statistics * Stars and Forks by Repository

Contributor statistics dashboards

  • Bot commands repository groups
  • Company PRs in repository groups
  • Contributions chart
  • Developer Activity Counts by Companies
  • Developer Activity Counts by Repository Group
  • New and Episodic PR Contributors
  • New contributors
  • PR Reviews by Contributor
  • PRs authors repository groups
  • SIG mentions

Issue velocity dashboards

  • Inactive Issues by SIG
  • Issues age by SIG and repository groups
  • Issues Opened/Closed by SIG
  • New And Episodic Issue Creators

PR velocity dashboards

  • Awaiting PRs by SIG
  • Blocked PRs repository groups
  • Inactive PRs by SIG
  • Open issues/PRs by milestone and repository
  • Open PR Age by Repository Group
  • PR Comments
  • PR Time to Approve and Merge
  • PR Time to Engagment
  • PR Workload per SIG Chart
  • PR Workload per SIG Table
  • PRs approval repository groups
  • PRs labels by SIG
  • PRs labels repository groups
  • PRs opened by SIG
  • Other
  • Licenses and programming languages
  • Repository groups
Sample screenshots

with Community sizing and health assessmentCompany Statistics by Repository group
image

per project statistics, e.g. cluster api
image

Fortunately, the code powering devstats.cncf.io is opensource and could be used as is by the CFF.

See related KubeCon session Who What How: Understanding Kubernetes Development through DevStats with video and slides

Associated code is at https://github.com/cncf/devstats and https://github.com/cncf/devstatscode

TOC should decide if it wants to add end user seat(s)

In the discussions prior to establishing the TOC, it was suggested that the TOC itself should consider if it wants to expand itself to include one or more end user seats.

A model to review for how end users are added to the TOC, and how the TOC might qualify someone as representing the end user community, can be seen in the CNCF charter: https://github.com/cncf/foundation/blob/master/charter.md section 6(b) in the charter version posted on September 26, 2020.

Opening this issue, but will tag for followup only after the first TOC forms.

Reconsider "chair" role

Potentially break into board liaison and let the TOC figure out how to run meetings as a group. Consider how the TOC would decide who gets the role, considering how to deal with privacy implications (including what if the board disagrees).

GOVERNANCE.md needs to be broken up into multiple files

As of now, we have content in GOVERNANCE.md that should be split out into different .md files to document the various aspects of the governance process, perhaps keeping GOVERNANCE.md as a table of contents.

Specifically, the TOC content in GOVERNANCE.md is Julz's initial summary of the TOC model, which has been replaced with the initial load of a TOC.md sourced (with minor modifications) from the KNative community.

Document TOC leadership and relationship to BoD

Document how the TOC will guide itself. Ex: Is there a TOC chair? If there is not a chair, will there be a liaison to the CFF's board assigned?

The expectation is that there is a named rep from the TOC that is an observer on the CFF's board.

Document TOC membership specifics

Number of seats?
Term for elected members?
Election cycles (overlapping?)
Limits on number of seats filled with employees from same organization?
End user seats?

TOC Bootstrapping

Proposal:

First election places 5 people in seats. First two highest number of votes start 2 year terms. 3 next are 1 year terms. Election cycle kicks off a year later.

Initial elig proposal:

Need to propose who is elig to run for TOC initially, since the requirements post formation include roles that don't exist during startup. What if TOC elig == vote elig?

Document TOC resignation process

At least three reasons that someone would need to resign:

  1. The TOC member chooses to resign themselves
  2. A TOC member changes employers, which results in the number of TOC members for a single employer limit being reached
  3. A code of conduct violation occurs, requiring the CFF board to remove a member of the TOC

Determine a plan for when it's a good point in time for legal teams to review

My understanding is that the updates of the Governance docs requires a formal approval voting at some point in time. In order to do this, companies usually ask their legal teams for review of the new terms.

From experience, this requires a bit of time (what's usually requested is two weeks) plus ideally an advance notice/projection on when this is going to happen, roughly.

TOC Eligibility

Review and update the language around what makes a person eligible to be nominated for a TOC election.

TOC election voting eligibility

Document how the CF project wants the TOC election process to determine eligibility for voting on TOC members

Consider "bootstrap" criteria as part of the change plan, and document post-bootstrap eligibility criteria in the appropriate governance doc.

TOC Mechanics: Set the overall technical direction and roadmap of the project

Reading through https://github.com/cloudfoundry/community/blob/main/TOC.md, I was wondering if https://github.com/cloudfoundry/community/blob/main/TOC.md under https://github.com/cloudfoundry/community/blob/main/TOC.md#charter should also translate into a bullet point under https://github.com/cloudfoundry/community/blob/main/TOC.md#committee-mechanics.

Something along the lines of:

  • Define, document, publish and update the technical direction of the Cloud Foundry open source project as a whole

Remove references to "product" where it should say "project"

While we do want to talk about the idea of product management as a functional "role-type" for the workgroup leads, I do not believe that any description of the project should use the word product.

Example in TOC.md line 2:
product and design decisions.

ROLES.md Notes section needs a review

Lots of ideas in the Notes section of toc/ROLES.md, but it's not structured well. Consider breaking it up into "fine print rules" and moving some of the general ideas to more appropriate summary sections.

Implement CF conformance testing program for certification

The cloudfoundry certitication process has long lacked from transparency and the process to evaluate/adopt/reject community inputs is lacking inclusivity

https://lists.cloudfoundry.org/g/cf-dev/topic/6371996#7543
https://lists.cloudfoundry.org/g/cf-dev/message/5996?p=,,,20,0,0,0::relevance,,%222017+PaaS+Certification+Requirements%22,20,2,0,6333680

The current certification process is also hard to find, and apparently not referenced in public website at https://www.cloudfoundry.org/certified-platforms/

Consider creating GH orgs for each working group

Based on my comment in #31 :

We may struggle to keep this up to date... I know Chris Clark struggles to keep it up to date for the analytics dashboards. One option, which we don't need to solve for right now, might be to start moving repos into GitHub organizations dedicated to each working group. We could keep a shared GitHub org for the community repo, private repos (for CI config) and other shared code / resources.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.