Skip to content

Commit abab707

Browse files
committed
*: Move closer to project-template's current status
Generated with: $ git remote add project-template git://github.com/opencontainers/project-template.git $ git fetch project-template $ git show --oneline project-template/master 61d73a3 (project-template/master) Merge pull request opencontainers#40 from wking/minor-patch-bullet $ git merge --squash --allow-unrelated-histories project-template/master $ git checkout HEAD -- .pullapprove.yml MAINTAINERS README.md RELEASES.md $ git checkout project-template/master -- GOVERNANCE.md LICENSE $ emacs README.md CONTRIBUTING.md # unify around project-template's CONTRIBUTING.md approach $ emacs meeting.ics # update link to point at CONTRIBUTING.md#meetings $ git commit -sv I personally prefer non-squash merges to preserve history and ease future updates, but that approach has not been popular within the OCI [1,2], so I'm going with a squash-merge here. I'm sticking with the local RELEASES.md, because it uses four-space indents. I've filed [3] to upstream that change. I've also filed [4] upstreaming our local wording change from 70ba4e6 (meeting: Bump January meeting from the 3rd to the 10th, 2017-12-07, opencontainers#943). I've also fixed the GOVERNANCE.md security link in flight with [5]. I've left the other in-flight project-template changes alone [6]. I've wrapped the URL in meetings.ics to avoid [7]: Line length should not be longer than 75 characters near line opencontainers#33 Reference: RFC 5545 3.1. Content Lines [1]: opencontainers/go-digest#20 (comment) [2]: opencontainers/runtime-tools#274 (comment) [3]: opencontainers/project-template#54 [4]: opencontainers/project-template#55 [5]: opencontainers/project-template#34 [6]: https://github.com/opencontainers/project-template/pulls [7]: https://icalendar.org/validator.html Signed-off-by: W. Trevor King <wking@tremily.us>
1 parent a1998ec commit abab707

File tree

6 files changed

+262
-126
lines changed

6 files changed

+262
-126
lines changed

CONTRIBUTING.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# Contribution Guidelines
2+
3+
Development happens on GitHub.
4+
Issues are used for bugs and actionable items and longer discussions can happen on the [mailing list](#mailing-list).
5+
6+
The content of this repository is licensed under the [Apache License, Version 2.0](LICENSE).
7+
8+
## Code of Conduct
9+
10+
Participation in the Open Container community is governed by [Open Container Code of Conduct][code-of-conduct].
11+
12+
## Meetings
13+
14+
The contributors and maintainers of all OCI projects have monthly meetings, which are usually at 2:00 PM (USA Pacific) on the first Wednesday of every month.
15+
There is an [iCalendar][rfc5545] format for the meetings [here][meeting.ics].
16+
Everyone is welcome to participate via [UberConference web][UberConference] or audio-only: +1 415 968 0849 (no PIN needed).
17+
An initial agenda will be posted to the [mailing list](#mailing-list) in the week before each meeting, and everyone is welcome to propose additional topics or suggest other agenda alterations there.
18+
Minutes are posted to the [mailing list](#mailing-list) and minutes from past calls are archived [here][minutes], with minutes from especially old meetings (September 2015 and earlier) archived [here][runtime-wiki].
19+
20+
## Mailing list
21+
22+
You can subscribe and browse the mailing list on [Google Groups][mailing-list].
23+
24+
## IRC
25+
26+
OCI discussion happens on #opencontainers on [Freenode][] ([logs][irc-logs]).
27+
28+
## Git
29+
30+
### Security issues
31+
32+
If you are reporting a security issue, do not create an issue or file a pull
33+
request on GitHub. Instead, disclose the issue responsibly by sending an email
34+
to security@opencontainers.org (which is inhabited only by the maintainers of
35+
the various OCI projects).
36+
37+
### Pull requests are always welcome
38+
39+
We are always thrilled to receive pull requests, and do our best to
40+
process them as fast as possible. Not sure if that typo is worth a pull
41+
request? Do it! We will appreciate it.
42+
43+
If your pull request is not accepted on the first try, don't be
44+
discouraged! If there's a problem with the implementation, hopefully you
45+
received feedback on what to improve.
46+
47+
We're trying very hard to keep the project lean and focused. We don't want it
48+
to do everything for everybody. This means that we might decide against
49+
incorporating a new feature.
50+
51+
### Conventions
52+
53+
Fork the repo and make changes on your fork in a feature branch.
54+
For larger bugs and enhancements, consider filing a leader issue or mailing-list thread for discussion that is independent of the implementation.
55+
Small changes or changes that have been discussed on the [project mailing list](#mailing-list) may be submitted without a leader issue.
56+
57+
If the project has a test suite, submit unit tests for your changes. Take a
58+
look at existing tests for inspiration. Run the full test suite on your branch
59+
before submitting a pull request.
60+
61+
Update the documentation when creating or modifying features. Test
62+
your documentation changes for clarity, concision, and correctness, as
63+
well as a clean documentation build.
64+
65+
Pull requests descriptions should be as clear as possible and include a
66+
reference to all the issues that they address.
67+
68+
Commit messages must start with a capitalized and short summary
69+
written in the imperative, followed by an optional, more detailed
70+
explanatory text which is separated from the summary by an empty line.
71+
72+
Code review comments may be added to your pull request. Discuss, then make the
73+
suggested modifications and push additional commits to your feature branch. Be
74+
sure to post a comment after pushing. The new commits will show up in the pull
75+
request automatically, but the reviewers will not be notified unless you
76+
comment.
77+
78+
Before the pull request is merged, make sure that you squash your commits into
79+
logical units of work using `git rebase -i` and `git push -f`. After every
80+
commit the test suite (if any) should be passing. Include documentation changes
81+
in the same commit so that a revert would remove all traces of the feature or
82+
fix.
83+
84+
Commits that fix or close an issue should include a reference like `Closes #XXX`
85+
or `Fixes #XXX`, which will automatically close the issue when merged.
86+
87+
### Sign your work
88+
89+
The sign-off is a simple line at the end of the explanation for the
90+
patch, which certifies that you wrote it or otherwise have the right to
91+
pass it on as an open-source patch. The rules are pretty simple: if you
92+
can certify the below (from [developercertificate.org][]):
93+
94+
```
95+
Developer Certificate of Origin
96+
Version 1.1
97+
98+
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
99+
1 Letterman Drive
100+
Suite D4700
101+
San Francisco, CA, 94129
102+
103+
Everyone is permitted to copy and distribute verbatim copies of this
104+
license document, but changing it is not allowed.
105+
106+
107+
Developer's Certificate of Origin 1.1
108+
109+
By making a contribution to this project, I certify that:
110+
111+
(a) The contribution was created in whole or in part by me and I
112+
have the right to submit it under the open source license
113+
indicated in the file; or
114+
115+
(b) The contribution is based upon previous work that, to the best
116+
of my knowledge, is covered under an appropriate open source
117+
license and I have the right under that license to submit that
118+
work with modifications, whether created in whole or in part
119+
by me, under the same open source license (unless I am
120+
permitted to submit under a different license), as indicated
121+
in the file; or
122+
123+
(c) The contribution was provided directly to me by some other
124+
person who certified (a), (b) or (c) and I have not modified
125+
it.
126+
127+
(d) I understand and agree that this project and the contribution
128+
are public and that a record of the contribution (including all
129+
personal information I submit with it, including my sign-off) is
130+
maintained indefinitely and may be redistributed consistent with
131+
this project or the open source license(s) involved.
132+
```
133+
134+
then you just add a line to every git commit message:
135+
136+
Signed-off-by: Joe Smith <joe@gmail.com>
137+
138+
using your real name (sorry, no pseudonyms or anonymous contributions.)
139+
140+
You can add the sign off when creating the git commit via `git commit -s`.
141+
142+
[code-of-conduct]: https://github.com/opencontainers/tob/blob/d2f9d68c1332870e40693fe077d311e0742bc73d/code-of-conduct.md
143+
[developercertificate.org]: http://developercertificate.org/
144+
[Freenode]: https://freenode.net/
145+
[irc-logs]: http://ircbot.wl.linuxfoundation.org/eavesdrop/%23opencontainers/
146+
[mailing-list]: https://groups.google.com/a/opencontainers.org/forum/#!forum/dev
147+
[meeting.ics]: meeting.ics
148+
[minutes]: http://ircbot.wl.linuxfoundation.org/meetings/opencontainers/
149+
[runtime-wiki]: https://github.com/opencontainers/runtime-spec/wiki
150+
[UberConference]: https://www.uberconference.com/opencontainers

GOVERNANCE.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ This section describes generic rules and procedures for fulfilling that mandate.
88

99
## Proposing a motion
1010

11-
A maintainer SHOULD propose a motion on the dev@opencontainers.org mailing list (except [security issues](#security-issues)) with another maintainer as a co-sponsor.
11+
A maintainer SHOULD propose a motion on the dev@opencontainers.org mailing list (except [security issues](CONTRIBUTING.md#security-issues)) with another maintainer as a co-sponsor.
1212

1313
## Voting
1414

15-
Voting on a proposed motion SHOULD happen on the dev@opencontainers.org mailing list (except [security issues](#security-issues)) with maintainers posting LGTM or REJECT.
15+
Voting on a proposed motion SHOULD happen on the dev@opencontainers.org mailing list (except [security issues](CONTRIBUTING.md#security-issues)) with maintainers posting LGTM or REJECT.
1616
Maintainers MAY also explicitly not vote by posting ABSTAIN (which is useful to revert a previous vote).
1717
Maintainers MAY post multiple times (e.g. as they revise their position based on feedback), but only their final post counts in the tally.
1818
A proposed motion is adopted if two-thirds of votes cast, a quorum having voted, are in favor of the release.
@@ -31,17 +31,10 @@ A quorum is established when at least two-thirds of maintainers have voted.
3131

3232
For projects that are not specifications, a [motion to release](#release-approval) MAY be adopted if the tally is at least three LGTMs and no REJECTs, even if three votes does not meet the usual two-thirds quorum.
3333

34-
## Security issues
35-
36-
Motions with sensitive security implications MUST be proposed on the security@opencontainers.org mailing list instead of dev@opencontainers.org, but should otherwise follow the standard [proposal](#proposing-a-motion) process.
37-
The security@opencontainers.org mailing list includes all members of the TOB.
38-
The TOB will contact the project maintainers and provide a channel for discussing and voting on the motion, but voting will otherwise follow the standard [voting](#voting) and [quorum](#quorum) rules.
39-
The TOB and project maintainers will work together to notify affected parties before making an adopted motion public.
40-
4134
## Amendments
4235

4336
The [project governance](#project-governance) rules and procedures MAY be amended or replaced using the procedures themselves.
44-
The MAINTAINERS of this project governance document is the total set of MAINTAINERS from all Open Containers projects (runC, runtime-spec, and image-spec).
37+
The MAINTAINERS of this project governance document is the total set of MAINTAINERS from all Open Containers projects (go-digest, image-spec, image-tools, runC, runtime-spec, runtime-tools, and selinux).
4538

4639
## Subject templates
4740

LICENSE

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Apache License
32
Version 2.0, January 2004
43
http://www.apache.org/licenses/
@@ -176,7 +175,18 @@
176175

177176
END OF TERMS AND CONDITIONS
178177

179-
Copyright 2015 The Linux Foundation.
178+
APPENDIX: How to apply the Apache License to your work.
179+
180+
To apply the Apache License to your work, attach the following
181+
boilerplate notice, with the fields enclosed by brackets "{}"
182+
replaced with your own identifying information. (Don't include
183+
the brackets!) The text should be enclosed in the appropriate
184+
comment syntax for the file format. We also recommend that a
185+
file or class name and description of purpose be included on the
186+
same "printed page" as the copyright notice for easier
187+
identification within third-party archives.
188+
189+
Copyright {yyyy} {name of copyright owner}
180190

181191
Licensed under the Apache License, Version 2.0 (the "License");
182192
you may not use this file except in compliance with the License.

MAINTAINERS_GUIDE.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
## Introduction
2+
3+
Dear maintainer. Thank you for investing the time and energy to help
4+
make this project as useful as possible. Maintaining a project is difficult,
5+
sometimes unrewarding work. Sure, you will get to contribute cool
6+
features to the project. But most of your time will be spent reviewing,
7+
cleaning up, documenting, answering questions, justifying design
8+
decisions - while everyone has all the fun! But remember - the quality
9+
of the maintainers work is what distinguishes the good projects from the
10+
great. So please be proud of your work, even the unglamourous parts,
11+
and encourage a culture of appreciation and respect for *every* aspect
12+
of improving the project - not just the hot new features.
13+
14+
This document is a manual for maintainers old and new. It explains what
15+
is expected of maintainers, how they should work, and what tools are
16+
available to them.
17+
18+
This is a living document - if you see something out of date or missing,
19+
speak up!
20+
21+
## What are a maintainer's responsibilities?
22+
23+
It is every maintainer's responsibility to:
24+
25+
* Expose a clear roadmap for improving their component.
26+
* Deliver prompt feedback and decisions on pull requests.
27+
* Be available to anyone with questions, bug reports, criticism etc. on their component.
28+
This includes IRC and GitHub issues and pull requests.
29+
* Make sure their component respects the philosophy, design and roadmap of the project.
30+
31+
## How are decisions made?
32+
33+
This project is an open-source project with an open design philosophy. This
34+
means that the repository is the source of truth for EVERY aspect of the
35+
project, including its philosophy, design, roadmap and APIs. *If it's
36+
part of the project, it's in the repo. It's in the repo, it's part of
37+
the project.*
38+
39+
As a result, all decisions can be expressed as changes to the
40+
repository. An implementation change is a change to the source code. An
41+
API change is a change to the API specification. A philosophy change is
42+
a change to the philosophy manifesto. And so on.
43+
44+
All decisions affecting this project, big and small, follow the same procedure:
45+
46+
1. Discuss a proposal on the [mailing list](CONTRIBUTING.md#mailing-list).
47+
Anyone can do this.
48+
2. Open a pull request.
49+
Anyone can do this.
50+
3. Discuss the pull request.
51+
Anyone can do this.
52+
4. Endorse (`LGTM`) or oppose (`Rejected`) the pull request.
53+
The relevant maintainers do this (see below [Who decides what?](#who-decides-what)).
54+
Changes that affect project management (changing policy, cutting releases, etc.) are [proposed and voted on the mailing list](GOVERNANCE.md).
55+
5. Merge or close the pull request.
56+
The relevant maintainers do this.
57+
58+
### I'm a maintainer, should I make pull requests too?
59+
60+
Yes. Nobody should ever push to master directly. All changes should be
61+
made through a pull request.
62+
63+
## Who decides what?
64+
65+
All decisions are pull requests, and the relevant maintainers make
66+
decisions by accepting or refusing the pull request. Review and acceptance
67+
by anyone is denoted by adding a comment in the pull request: `LGTM`.
68+
However, only currently listed `MAINTAINERS` are counted towards the required
69+
two LGTMs. In addition, if a maintainer has created a pull request, they cannot
70+
count toward the two LGTM rule (to ensure equal amounts of review for every pull
71+
request, no matter who wrote it).
72+
73+
Overall the maintainer system works because of mutual respect.
74+
The maintainers trust one another to act in the best interests of the project.
75+
Sometimes maintainers can disagree and this is part of a healthy project to represent the points of view of various people.
76+
In the case where maintainers cannot find agreement on a specific change, maintainers should use the [governance procedure](GOVERNANCE.md) to attempt to reach a consensus.
77+
78+
### How are maintainers added?
79+
80+
The best maintainers have a vested interest in the project. Maintainers
81+
are first and foremost contributors that have shown they are committed to
82+
the long term success of the project. Contributors wanting to become
83+
maintainers are expected to be deeply involved in contributing code,
84+
pull request review, and triage of issues in the project for more than two months.
85+
86+
Just contributing does not make you a maintainer, it is about building trust with the current maintainers of the project and being a person that they can depend on to act in the best interest of the project.
87+
The final vote to add a new maintainer should be approved by the [governance procedure](GOVERNANCE.md).
88+
89+
### How are maintainers removed?
90+
91+
When a maintainer is unable to perform the [required duties](#what-are-a-maintainers-responsibilities) they can be removed by the [governance procedure](GOVERNANCE.md).
92+
Issues related to a maintainer's performance should be discussed with them among the other maintainers so that they are not surprised by a pull request removing them.

0 commit comments

Comments
 (0)