Skip to content

Commit 282877e

Browse files
author
Alfonso Acosta
authoredMay 28, 2018
docs: add Scope community baseline documentation (weaveworks#3192)
* Rename code of conduct for consistency * Add maintainers file * Steal governance and contributing documents from CNI * docs: adapt goverance documents to Scope
1 parent 9d63432 commit 282877e

File tree

5 files changed

+209
-0
lines changed

5 files changed

+209
-0
lines changed
 
File renamed without changes.

‎CONTRIBUTING.md

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# How to Contribute
2+
3+
Scope is [Apache 2.0 licensed](LICENSE) and accepts contributions via GitHub
4+
pull requests. This document outlines some of the conventions on development
5+
workflow, commit message formatting, contact points and other resources to make
6+
it easier to get your contribution accepted.
7+
8+
We gratefully welcome improvements to documentation as well as to code.
9+
10+
# Certificate of Origin
11+
12+
By contributing to this project you agree to the Developer Certificate of
13+
Origin (DCO). This document was created by the Linux Kernel community and is a
14+
simple statement that you, as a contributor, have the legal right to make the
15+
contribution. See the [DCO](DCO) file for details.
16+
17+
# Email, Chat and Community Meetings
18+
19+
The project uses the the scope-community email list and Slack:
20+
- Email: [scope-community](https://groups.google.com/forum/#!forum/scope-community)
21+
- Chat: Join the [Weave community](https://weaveworks.github.io/community-slack/) Slack workspace and use the [#scope](https://weave-community.slack.com/messages/scope/) channel
22+
23+
When sending email, it's usually best to use the mailing list. The maintainers are usually quite busy and the mailing list will more easily find somebody who can reply quickly. You will also be potentially be helping others who had the same question.
24+
25+
We also meet regularly at the [Scope community meeting](https://docs.google.com/document/d/103_60TuEkfkhz_h2krrPJH8QOx-vRnPpbcCZqrddE1s/). Don't feel discouraged to attend the meeting due to not being a developer. Everybody is welcome!
26+
27+
## Getting Started
28+
29+
- Fork the repository on GitHub
30+
- Read the [README](README.md) for getting started as a user and learn how/where to ask for help
31+
- If you want to contribute as a developer, continue reading this document for further instructions
32+
- Play with the project, submit bugs, submit pull requests!
33+
34+
## Contribution workflow
35+
36+
This is a rough outline of how to prepare a contribution:
37+
38+
- Create a topic branch from where you want to base your work (usually branched from master).
39+
- Make commits of logical units.
40+
- Make sure your commit messages are in the proper format (see below).
41+
- Push your changes to a topic branch in your fork of the repository.
42+
- If you changed code:
43+
- add automated tests to cover your changes
44+
- Submit a pull request to the original repository.
45+
46+
## How to build and run the project
47+
48+
```bash
49+
make
50+
./scope launch
51+
```
52+
53+
## How to run the test suite
54+
55+
You can run the linting and unit tests by simply doing
56+
57+
```bash
58+
make tests
59+
```
60+
61+
There are integration tests for Scope, but unfortunately it's hard to set them up in forked repositories and the setup is not documented. Help is needed to improve this situation: https://github.com/weaveworks/scope/issues/2192
62+
63+
# Acceptance policy
64+
65+
These things will make a PR more likely to be accepted:
66+
67+
* a well-described requirement
68+
* tests for new code
69+
* tests for old code!
70+
* new code and tests follow the conventions in old code and tests
71+
* a good commit message (see below)
72+
73+
In general, we will merge a PR once two maintainers have endorsed it.
74+
Trivial changes (e.g., corrections to spelling) may get waved through.
75+
For substantial changes, more people may become involved, and you might get asked to resubmit the PR or divide the changes into more than one PR.
76+
77+
### Format of the Commit Message
78+
79+
We follow a rough convention for commit messages that is designed to answer two
80+
questions: what changed and why. The subject line should feature the what and
81+
the body of the commit should describe the why.
82+
83+
```
84+
scripts: add the test-cluster command
85+
86+
this uses tmux to setup a test cluster that you can easily kill and
87+
start for debugging.
88+
89+
Fixes #38
90+
```
91+
92+
The format can be described more formally as follows:
93+
94+
```
95+
<subsystem>: <what changed>
96+
<BLANK LINE>
97+
<why this change was made>
98+
<BLANK LINE>
99+
<footer>
100+
```
101+
102+
The first line is the subject and should be no longer than 70 characters, the
103+
second line is always blank, and other lines should be wrapped at 80 characters.
104+
This allows the message to be easier to read on GitHub as well as in various
105+
git tools.
106+
107+
## 3rd party plugins
108+
109+
So you've built a Scope plugin. Where should it live?
110+
111+
Until it matures, it should live in your own repo. You are encouraged to annouce your plugin at the [mailing list](https://groups.google.com/forum/#!forum/scope-community) and to demo it at a [community meetings](https://docs.google.com/document/d/103_60TuEkfkhz_h2krrPJH8QOx-vRnPpbcCZqrddE1s/).
112+
113+
If you have a good reason why the Scope maintainers should take custody of your
114+
plugin, please open an issue so that it can potentially be promoted to the [Scope plugins](https://github.com/weaveworks-plugins/) organization.

‎DCO

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Developer Certificate of Origin
2+
Version 1.1
3+
4+
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
5+
660 York Street, Suite 102,
6+
San Francisco, CA 94110 USA
7+
8+
Everyone is permitted to copy and distribute verbatim copies of this
9+
license document, but changing it is not allowed.
10+
11+
12+
Developer's Certificate of Origin 1.1
13+
14+
By making a contribution to this project, I certify that:
15+
16+
(a) The contribution was created in whole or in part by me and I
17+
have the right to submit it under the open source license
18+
indicated in the file; or
19+
20+
(b) The contribution is based upon previous work that, to the best
21+
of my knowledge, is covered under an appropriate open source
22+
license and I have the right under that license to submit that
23+
work with modifications, whether created in whole or in part
24+
by me, under the same open source license (unless I am
25+
permitted to submit under a different license), as indicated
26+
in the file; or
27+
28+
(c) The contribution was provided directly to me by some other
29+
person who certified (a), (b) or (c) and I have not modified
30+
it.
31+
32+
(d) I understand and agree that this project and the contribution
33+
are public and that a record of the contribution (including all
34+
personal information I submit with it, including my sign-off) is
35+
maintained indefinitely and may be redistributed consistent with
36+
this project or the open source license(s) involved.

‎GOVERNANCE.md

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Scope Governance
2+
3+
This document defines project governance for the project. This is (and probably will always be) a Work in Progress.
4+
5+
## Goals and Principles
6+
7+
Scope's community goals and principles:
8+
9+
1. Transition from a primarily Weaveworks project to a true community-driven project with autonomous governance. Weaveworks noticed interest from various actors and decided to nurture a community and see where it can lead the project.
10+
2. Fill-in the needs of the community with a chop-wood-and-carry-water attitude: expect to give back before you take if you want to make an impact. Demands and suggestions from community members will be taken into account but actions and help will be more-highly appreciated.
11+
12+
## Code of Conduct
13+
14+
The Scope community abides by the CNCF [code of conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). Here is an excerpt:
15+
16+
_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._
17+
18+
As a member of the Scope project, you represent the project and your fellow contributors.
19+
We value our community tremendously and we'd like to keep cultivating a friendly and collaborative
20+
environment for our contributors and users. We want everyone in the community to have
21+
[positive experiences](https://www.cncf.io/blog/2016/12/14/diversity-scholarship-series-one-software-engineers-unexpected-cloudnativecon-kubecon-experience).
22+
23+
## Voting
24+
25+
The Scope project aims to employ "organization voting" to ensure no single organization can dominate the project. [Alfonso Acosta](https://github.com/2opremio) will take of the initial maintenance until enough voters join the community. Once the community reaches critical mass and sufficient maintainers are designed, the voting-based governance will start.
26+
27+
Individuals not associated with or employed by a company or organization are allowed one organization vote.
28+
Each company or organization (regardless of the number of maintainers associated with or employed by that company/organization) receives one organization vote.
29+
30+
In other words, if two maintainers are employed by Company X, two by Company Y, two by Company Z, and one maintainer is an un-affiliated individual, a total of four "organization votes" are possible; one for X, one for Y, one for Z, and one for the un-affiliated individual.
31+
32+
Any maintainer from an organization may cast the vote for that organization.
33+
34+
For formal votes, a specific statement of what is being voted on should be added to the relevant github issue or PR, and a link to that issue or PR added to the maintainers meeting agenda document.
35+
Maintainers should indicate their yes/no vote on that issue or PR, and after a suitable period of time, the votes will be tallied and the outcome noted.
36+
37+
## Changes in Maintainership
38+
39+
New maintainers are proposed by an existing maintainer and are elected by a 2/3 majority organization vote.
40+
41+
Maintainers can be removed by a 2/3 majority organization vote.
42+
43+
## Approving PRs
44+
45+
Non-specification-related PRs may be merged after receiving at least two organization votes.
46+
47+
## Github Project Administration
48+
49+
Maintainers will be given write access to the [weaveworks/scope](https://github.com/weaveworks/scope) GitHub repository.
50+
51+
## Changes in Governance
52+
53+
All changes in Governance require a 2/3 majority organization vote.
54+
55+
## Other Changes
56+
57+
Unless specified above, all other changes to the project require a 2/3 majority organization vote.
58+
Additionally, any maintainer may request that any change require a 2/3 majority organization vote.

‎MAINTAINERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Alfonso Acosta <fons@syntacticsugar.consulting> (@2opremio)

0 commit comments

Comments
 (0)
Please sign in to comment.