-
Notifications
You must be signed in to change notification settings - Fork 64
*: Pull opencontainers/project-template #20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
ad517c3
e3fbd39
fcc7f42
5ac5ed9
f06beeb
0548361
06827b3
1ae370f
1b9ba8f
8afbcde
263e0c4
b6d2e98
84b4812
d1d045f
5b3d5d5
560fdc9
c82a2e7
1d5bddc
593b8f0
889639a
7e11601
e48c6c7
445ee2d
f629094
c15c0e2
3fd90e8
267f916
eecc4fe
f2148b6
89afeeb
775db84
40966cf
c340e73
af1013d
be10456
86b3087
c732cc2
56abe12
52dbb39
9b4e469
d81a903
3f54e95
3eec2a6
f562576
9f95b15
827d87c
22e4324
f80a5db
bf60e34
beb3ba7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| 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 | ||
| 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. | ||
|
|
@@ -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`. | ||
| 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 |
| 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/ | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @wking Don't undo your work!
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
|
||
|
|
@@ -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} | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ummm
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From an official Apache project:
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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, | ||
|
|
||
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.