ethereum-magicians / integrity-ring

5 stars 2 forks source link

Proposal: Community Policy Framework #11

Open jpitts opened 5 years ago

jpitts commented 5 years ago
Author Jamie Pitts
Discussions To TBD
Status WIP
Type Informational
Category Policy
Created 2019-03-20

Ethereum Community Policy Framework

Abstract

This is to serve as a framework for developing integrity-related community policies, enabling teams to evaluate, adopt, and take action on written sets of social code. A key aspect of the Community Policy Framework is the Corpus, a GitHub repository where the policy work occurs.

Motivation

This is to separate the concern of policy content and subject matter from the concern of general policy development, adoption, and maintenance, recognizing that in some cases there is overlap.

What is a Community Policy

A Community Policy is a document containing a set of related declarations which articulate a team's shared values, tolerances for behavior, and desired outcomes. A Policy also specifies actions which team members will take to enforce the policy, whether in response to violations or to reward behavior. Community Policies are intended to be adopted voluntarily on the team-level.

Who are the Editors?

Community Policy Editors help move the policy-writing process along and have control over the pull request process in the GitHub-based policy repository.

What is a Community Policy Corpus?

A Corpus is a GitHub repo containing a large number of related policies, enabling policy-makers and Editors to collaborate and for the community to have visibility into the process. As a Policy is finalized, it is copied to a separate repository to make it easier for Teams to maintain their version of that Policy.

What is a Team's "community-policies" repository?

A Team maintains a "community-policies" repo as a clear way to specify which policies they have adopted and take action on. This, in conjunction with individual Policy repos, enables Teams to check out Policies as git submodules and periodically update their copy.

Writing Work Flow

[ WIP ] -> [ DRAFT ] -> [ LAST CALL ] -> [ ACCEPTED ] -> [ FINAL ]

Each status change is requested by the Policy champion and reviewed by the Editors. Use a pull request to update the status. Please include a link to where people should continue discussing your Policy. The Editors will process these requests as per the conditions below.

Adoption Work Flow

Participating teams must maintain a GitHub repository named "community-policies" which contains the policies they are adopting or have adopted, as well as a README.md describing how they are managing their policies.

[ ADOPTING ] -> [ DRAFT ] -> [ LAST CALL ] ->[ ACCEPTED ] -> [ FINAL ]

Configuring, Versioning, and Forking

A Policy can describe how parts of its text may be altered or configured by the adopting team, how it is versioned, and how it may be forked.

References

Ethereum EIP-1, a document governing the structure and flow of proposed improvements to Ethereum-related technology.

yeqbfgxjiq commented 5 years ago

This looks legit. I like how each team can customize their own policy and process in their own repo, but also has access to the support and resources of the broader community in the Corpus repo. Thanks for putting this together :)

jpitts commented 5 years ago

I found an interesting example, the NPM project (a critical pieces of javascript infrastructure) actually defines a "policies" repository...

https://github.com/npm/policies