Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ad517c3
Initial commit
caniszczyk May 3, 2016
e3fbd39
Create README.md
caniszczyk May 3, 2016
fcc7f42
Add contributing and maintainer guidelines.
caniszczyk May 3, 2016
5ac5ed9
Merge pull request #1 from opencontainers/add-contributing-guidelines
crosbymichael May 3, 2016
f06beeb
MAINTAINERS_GUIDE: Remove trailing whitespace
wking May 19, 2016
0548361
CONTRIBUTING: Make leader-issues optional
wking May 19, 2016
06827b3
CONTRIBUTING: Don't specify a 50-char limit
wking May 19, 2016
1ae370f
Merge pull request #6 from wking/optional-leader-issue
crosbymichael May 23, 2016
1b9ba8f
CONTRIBUTING: Make the test requirements contingent on an existing suite
wking May 19, 2016
8afbcde
Merge pull request #10 from wking/no-specific-commit-summary-limit
crosbymichael May 23, 2016
263e0c4
Merge pull request #5 from wking/whitespace
crosbymichael May 23, 2016
b6d2e98
Merge pull request #7 from wking/optional-test-suite
crosbymichael May 23, 2016
84b4812
CONTRIBUTING: Allow collaborative pull requests
wking May 19, 2016
d1d045f
Merge pull request #8 from wking/allow-collaboration
crosbymichael May 23, 2016
5b3d5d5
Test PullApprove
caniszczyk May 26, 2016
560fdc9
Fix to use "teams" in PullApprove
caniszczyk May 26, 2016
c82a2e7
MAINTAINERS: disallow self-LGTMs
cyphar May 27, 2016
1d5bddc
Merge pull request #13 from cyphar/disallow-self-lgtm
caniszczyk May 31, 2016
593b8f0
proposals: add release-approval-process
Jun 9, 2016
889639a
proposal: release-approval-process add some motivation
Jun 10, 2016
7e11601
proposals: release approval process to one week for apps
Jun 14, 2016
e48c6c7
proposals: release approval process 3 rcs required
Jun 14, 2016
445ee2d
proposals: release approval process: one month pre-releases
Jun 14, 2016
f629094
proposals: release approval process: use consistent language for rejects
Jun 14, 2016
c15c0e2
proposals: release approval process: clarify utility of GitHub
Jun 14, 2016
3fd90e8
proposals: release-approval-process: add voting members language
Jun 14, 2016
267f916
proposals: release approval process: add quorum language
Jun 15, 2016
eecc4fe
proposals: release approval process: add language about mailing list
Jun 15, 2016
f2148b6
proposals: release approval process: add information to projects
Jun 15, 2016
89afeeb
proposals: release approval process: improve REJECT feedback
Jun 15, 2016
775db84
proposals: release-approval-process: fixup additional typos
Jun 16, 2016
40966cf
release-approval: Shuffle to make more DRY
wking Jun 16, 2016
c340e73
release-approval: Add non-spec unanimous quorum reduction
wking Jun 17, 2016
af1013d
proposals: release-approval-process fix a grammar thing
Jun 22, 2016
be10456
proposal: fix a typo
Jun 22, 2016
86b3087
proposals: release approval process explain security@ email
Jun 25, 2016
c732cc2
project-governance: Make voting more generic
wking Jun 25, 2016
56abe12
GOVERNANCE and RELEASES: split the files
Jun 29, 2016
52dbb39
Merge pull request #15 from philips/add-governance-and-releases-docs
caniszczyk Jul 21, 2016
9b4e469
GOVERNANCE.md: fix typo
runcom Sep 4, 2016
d81a903
Merge pull request #17 from runcom/fix-typo
crosbymichael Sep 6, 2016
3f54e95
.pullapprove.yml: Reset on push, ignore authors, and require sign-offs
wking Sep 9, 2016
3eec2a6
Merge pull request #21 from wking/pullapprove-updates
caniszczyk Oct 28, 2016
f562576
*: clarify how security issues are handled
cyphar Nov 30, 2016
9f95b15
Merge pull request #22 from cyphar/clarify-security-handling
caniszczyk Dec 1, 2016
827d87c
Merge git://github.com/opencontainers/project-template into oci-template
wking Jan 6, 2017
22e4324
README: Replace security section with a stub
wking Jan 6, 2017
f80a5db
README: CONTRIBUTING.md is now under the Apache license
wking Jan 6, 2017
bf60e34
LICENSE.code: Remove this file
wking Jan 6, 2017
beb3ba7
README: Relicense under the Apache 2.0
wking Jan 6, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 78 additions & 24 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,90 @@
# Contributing to Docker open source projects
## Contribution Guidelines

Want to hack on this project? Awesome! Here are instructions to get you started.
### Security issues

This project is a part of the [Docker](https://www.docker.com) project, and follows
the same rules and principles. If you're already familiar with the way
Docker does things, you'll feel right at home.
If you are reporting a security issue, do not create an issue or file a pull
request on GitHub. Instead, disclose the issue responsibly by sending an email
to [email protected] (which is inhabited only by the maintainers of
the various OCI projects).

Otherwise, go read Docker's
[contributions guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md),
[issue triaging](https://github.com/docker/docker/blob/master/project/ISSUE-TRIAGE.md),
[review process](https://github.com/docker/docker/blob/master/project/REVIEWING.md) and
[branches and tags](https://github.com/docker/docker/blob/master/project/BRANCHES-AND-TAGS.md).
### Pull requests are always welcome

For an in-depth description of our contribution process, visit the
contributors guide: [Understand how to contribute](https://docs.docker.com/opensource/workflow/make-a-contribution/)
We are always thrilled to receive pull requests, and do our best to
process them as fast as possible. Not sure if that typo is worth a pull
request? Do it! We will appreciate it.

If your pull request is not accepted on the first try, don't be
discouraged! If there's a problem with the implementation, hopefully you
received feedback on what to improve.

We're trying very hard to keep the project lean and focused. We don't want it
to do everything for everybody. This means that we might decide against
incorporating a new feature.


### Conventions

Fork the repo and make changes on your fork in a feature branch:

- If it's a bugfix branch, name it XXX-something where XXX is the number of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since when did we add branch naming conventions? This is silly and unnecessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a fair amount of cruft in the project template (see opencontainers/project-template#20 for some of my generalization suggestions). But I think consistency with project-template and a united effort to keep project-template sane are better than each OCI project rolling their own everything. See also @crosbymichael and @vbatts on this here and here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wking Ok, but half of this stuff doesn't make sense.

Let's stop holding up this PR on sillyness.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's stop holding up this PR on sillyness

I'm trying to hold it up on pan-OCI consistency. But yeah, project-template moves… slowly :p. I've filed opencontainers/project-template#27 to adjust the template on this point, and am happy to merge that in-flight PR into this one if you like the change.

issue
- If it's a feature branch, create an enhancement issue to announce your
intentions, and name it XXX-something where XXX is the number of the issue.

Small changes or changes that have been discussed on the project mailing list
may be submitted without a leader issue, in which case you are free to name
your branch however you like.

If the project has a test suite, submit unit tests for your changes. Take a
look at existing tests for inspiration. Run the full test suite on your branch
before submitting a pull request.

Update the documentation when creating or modifying features. Test
your documentation changes for clarity, concision, and correctness, as
well as a clean documentation build. See ``docs/README.md`` for more
information on building the docs and how docs get released.

Write clean code. Universally formatted code promotes ease of writing, reading,
and maintenance. Always run `gofmt -s -w file.go` on each changed file before
committing your changes. Most editors have plugins that do this automatically.

Pull requests descriptions should be as clear as possible and include a
reference to all the issues that they address.

Commit messages must start with a capitalized and short summary
written in the imperative, followed by an optional, more detailed
explanatory text which is separated from the summary by an empty line.

Code review comments may be added to your pull request. Discuss, then make the
suggested modifications and push additional commits to your feature branch. Be
sure to post a comment after pushing. The new commits will show up in the pull
request automatically, but the reviewers will not be notified unless you
comment.

Before the pull request is merged, make sure that you squash your commits into
logical units of work using `git rebase -i` and `git push -f`. After every
commit the test suite (if any) should be passing. Include documentation changes
in the same commit so that a revert would remove all traces of the feature or
fix.

Commits that fix or close an issue should include a reference like `Closes #XXX`
or `Fixes #XXX`, which will automatically close the issue when merged.

### Sign your work

The sign-off is a simple line at the end of the explanation for the patch. Your
signature certifies that you wrote the patch or otherwise have the right to pass
it on as an open-source patch. The rules are pretty simple: if you can certify
the below (from [developercertificate.org](http://developercertificate.org/)):
The sign-off is a simple line at the end of the explanation for the
patch, which certifies that you wrote it or otherwise have the right to
pass it on as an open-source patch. The rules are pretty simple: if you
can certify the below (from
[developercertificate.org](http://developercertificate.org/)):

```
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
660 York Street, Suite 102,
San Francisco, CA 94110 USA

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Expand Down Expand Up @@ -62,11 +117,10 @@ By making a contribution to this project, I certify that:
this project or the open source license(s) involved.
```

Then you just add a line to every git commit message:
then you just add a line to every git commit message:

Signed-off-by: Joe Smith <joe.smith@email.com>
Signed-off-by: Joe Smith <joe@gmail.com>

Use your real name (sorry, no pseudonyms or anonymous contributions.)
using your real name (sorry, no pseudonyms or anonymous contributions.)

If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`.
You can add the sign off when creating the git commit via `git commit -s`.
63 changes: 63 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Project governance

The [OCI charter][charter] §5.b.viii tasks an OCI Project's maintainers (listed in the repository's MAINTAINERS file and sometimes referred to as "the TDC", [§5.e][charter]) with:

> Creating, maintaining and enforcing governance guidelines for the TDC, approved by the maintainers, and which shall be posted visibly for the TDC.

This section describes generic rules and procedures for fulfilling that mandate.

## Proposing a motion

A maintainer SHOULD propose a motion on the [email protected] mailing list (except [security issues](#security-issues)) with another maintainer as a co-sponsor.

## Voting

Voting on a proposed motion SHOULD happen on the [email protected] mailing list (except [security issues](#security-issues)) with maintainers posting LGTM or REJECT.
Maintainers MAY also explicitly not vote by posting ABSTAIN (which is useful to revert a previous vote).
Maintainers MAY post multiple times (e.g. as they revise their position based on feeback), but only their final post counts in the tally.
A proposed motion is adopted if two-thirds of votes cast, a quorum having voted, are in favor of the release.

Voting SHOULD remain open for a week to collect feedback from the wider community and allow the maintainers to digest the proposed motion.
Under exceptional conditions (e.g. non-major security fix releases) proposals which reach quorum with unanimous support MAY be adopted earlier.

A maintainer MAY choose to reply with REJECT.
A maintainer posting a REJECT MUST include a list of concerns or links to written documentation for those concerns (e.g. GitHub issues or mailing-list threads).
The maintainers SHOULD try to resolve the concerns and wait for the rejecting maintainer to change their opinion to LGTM.
However, a motion MAY be adopted with REJECTs, as outlined in the previous paragraphs.

## Quorum

A quorum is established when at least two-thirds of maintainers have voted.

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.

## Amendments

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

## Subject templates

Maintainers are busy and get lots of email.
To make project proposals recognizable, proposed motions SHOULD use the following subject templates.

### Proposing a motion

> [{project} VOTE]: {motion description} (closes {end of voting window})

For example:

> [runtime-spec VOTE]: Tag 0647920 as 1.0.0-rc (closes 2016-06-03 20:00 UTC)

### Tallying results

After voting closes, a maintainer SHOULD post a tally to the motion thread with a subject template like:

> [{project} {status}]: {motion description} (+{LGTMs} -{REJECTs} #{ABSTAINs})

Where `{status}` is either `adopted` or `rejected`.
For example:

> [runtime-spec adopted]: Tag 0647920 as 1.0.0-rc (+6 -0 #3)

[charter]: https://www.opencontainers.org/about/governance
18 changes: 14 additions & 4 deletions LICENSE.code → LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
http://www.apache.org/licenses/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wking Don't undo your work!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The HTTPS form is not my work. I think consistency with project-template is more important than keeping an HTTPS here, especially as the canonical source for this license uses HTTP.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've filed opencontainers/project-template#25 to bring the template exactly in line with the canonical source.


TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

Expand Down Expand Up @@ -176,13 +175,24 @@

END OF TERMS AND CONDITIONS

Copyright 2016 Docker, Inc.
APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright {yyyy} {name of copyright owner}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ummm

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pulled in from project-template (where it mostly matches the Apache source), and you're not supposed to update the instructions here anyway.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

@wking wking Jan 18, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And from another Apache project:

https://github.com/apache/httpd/blob/2.4.25/LICENSE#L189

I think “just copy project-template” makes the most sense, but if you feel like you're supposed to edit the template instructions (agreeing with Mesos and disagreeing with project-template, Apache's httpd, and @thaJeztah here), I can adjust the merge commit to keep the old line instead of the project-template line.


Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
Loading