| ... | ... |
@@ -90,53 +90,6 @@ regenerated occasionally from the git commit history, so a mismatch may result |
| 90 | 90 |
in your changes being overwritten. |
| 91 | 91 |
|
| 92 | 92 |
|
| 93 |
-## Decision process |
|
| 94 |
- |
|
| 95 |
-### How are decisions made? |
|
| 96 |
- |
|
| 97 |
-Short answer: with pull requests to the docker repository. |
|
| 98 |
- |
|
| 99 |
-Docker is an open-source project with an open design philosophy. This means that the repository is the source of truth for EVERY aspect of the project, |
|
| 100 |
-including its philosophy, design, roadmap and APIs. *If it's part of the project, it's in the repo. It's in the repo, it's part of the project.* |
|
| 101 |
- |
|
| 102 |
-As a result, all decisions can be expressed as changes to the repository. An implementation change is a change to the source code. An API change is a change to |
|
| 103 |
-the API specification. A philosophy change is a change to the philosophy manifesto. And so on. |
|
| 104 |
- |
|
| 105 |
-All decisions affecting docker, big and small, follow the same 3 steps: |
|
| 106 |
- |
|
| 107 |
-* Step 1: Open a pull request. Anyone can do this. |
|
| 108 |
- |
|
| 109 |
-* Step 2: Discuss the pull request. Anyone can do this. |
|
| 110 |
- |
|
| 111 |
-* Step 3: Accept or refuse a pull request. The relevant maintainer does this (see below "Who decides what?") |
|
| 112 |
- |
|
| 113 |
- |
|
| 114 |
-### Who decides what? |
|
| 115 |
- |
|
| 116 |
-So all decisions are pull requests, and the relevant maintainer makes the decision by accepting or refusing the pull request. |
|
| 117 |
-But how do we identify the relevant maintainer for a given pull request? |
|
| 118 |
- |
|
| 119 |
-Docker follows the timeless, highly efficient and totally unfair system known as [Benevolent dictator for life](http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life), |
|
| 120 |
-with yours truly, Solomon Hykes, in the role of BDFL. |
|
| 121 |
-This means that all decisions are made by default by me. Since making every decision myself would be highly unscalable, in practice decisions are spread across multiple maintainers. |
|
| 122 |
- |
|
| 123 |
-The relevant maintainer for a pull request is assigned in 3 steps: |
|
| 124 |
- |
|
| 125 |
-* Step 1: Determine the subdirectory affected by the pull request. This might be src/registry, docs/source/api, or any other part of the repo. |
|
| 126 |
- |
|
| 127 |
-* Step 2: Find the MAINTAINERS file which affects this directory. If the directory itself does not have a MAINTAINERS file, work your way up the the repo hierarchy until you find one. |
|
| 128 |
- |
|
| 129 |
-* Step 3: The first maintainer listed is the primary maintainer. The pull request is assigned to him. He may assign it to other listed maintainers, at his discretion. |
|
| 130 |
- |
|
| 131 |
- |
|
| 132 |
-### I'm a maintainer, should I make pull requests too? |
|
| 133 |
- |
|
| 134 |
-Primary maintainers are not required to create pull requests when changing their own subdirectory, but secondary maintainers are. |
|
| 135 |
- |
|
| 136 |
-### Who assigns maintainers? |
|
| 137 |
- |
|
| 138 |
-Solomon. |
|
| 139 |
- |
|
| 140 | 93 |
### How can I become a maintainer? |
| 141 | 94 |
|
| 142 | 95 |
* Step 1: learn the component inside out |
| ... | ... |
@@ -146,15 +99,3 @@ Solomon. |
| 146 | 146 |
Don't forget: being a maintainer is a time investment. Make sure you will have time to make yourself available. |
| 147 | 147 |
You don't have to be a maintainer to make a difference on the project! |
| 148 | 148 |
|
| 149 |
-### What are a maintainer's responsibility? |
|
| 150 |
- |
|
| 151 |
-It is every maintainer's responsibility to: |
|
| 152 |
- |
|
| 153 |
-* 1) Expose a clear roadmap for improving their component. |
|
| 154 |
-* 2) Deliver prompt feedback and decisions on pull requests. |
|
| 155 |
-* 3) Be available to anyone with questions, bug reports, criticism etc. on their component. This includes irc, github requests and the mailing list. |
|
| 156 |
-* 4) Make sure their component respects the philosophy, design and roadmap of the project. |
|
| 157 |
- |
|
| 158 |
-### How is this process changed? |
|
| 159 |
- |
|
| 160 |
-Just like everything else: by making a pull request :) |
| 1 | 2 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,78 @@ |
| 0 |
+# The Docker maintainer manual |
|
| 1 |
+ |
|
| 2 |
+## Introduction |
|
| 3 |
+ |
|
| 4 |
+Dear maintainer. Thank you for investing the time and energy to help make Docker as |
|
| 5 |
+useful as possible. Maintaining a project is difficult, sometimes unrewarding work. |
|
| 6 |
+Sure, you will get to contribute cool features to the project. But most of your time |
|
| 7 |
+will be spent reviewing, cleaning up, documenting, andswering questions, justifying |
|
| 8 |
+design decisions - while everyone has all the fun! But remember - the quality of the |
|
| 9 |
+maintainers work is what distinguishes the good projects from the great. |
|
| 10 |
+So please be proud of your work, even the unglamourous parts, and encourage a culture |
|
| 11 |
+of appreciation and respect for *every* aspect of improving the project - not just the |
|
| 12 |
+hot new features. |
|
| 13 |
+ |
|
| 14 |
+This document is a manual for maintainers old and new. It explains what is expected of |
|
| 15 |
+maintainers, how they should work, and what tools are available to them. |
|
| 16 |
+ |
|
| 17 |
+This is a living document - if you see something out of date or missing, speak up! |
|
| 18 |
+ |
|
| 19 |
+ |
|
| 20 |
+## What are a maintainer's responsibility? |
|
| 21 |
+ |
|
| 22 |
+It is every maintainer's responsibility to: |
|
| 23 |
+ |
|
| 24 |
+* 1) Expose a clear roadmap for improving their component. |
|
| 25 |
+* 2) Deliver prompt feedback and decisions on pull requests. |
|
| 26 |
+* 3) Be available to anyone with questions, bug reports, criticism etc. on their component. This includes irc, github requests and the mailing list. |
|
| 27 |
+* 4) Make sure their component respects the philosophy, design and roadmap of the project. |
|
| 28 |
+ |
|
| 29 |
+ |
|
| 30 |
+## How are decisions made? |
|
| 31 |
+ |
|
| 32 |
+Short answer: with pull requests to the docker repository. |
|
| 33 |
+ |
|
| 34 |
+Docker is an open-source project with an open design philosophy. This means that the repository is the source of truth for EVERY aspect of the project, |
|
| 35 |
+including its philosophy, design, roadmap and APIs. *If it's part of the project, it's in the repo. It's in the repo, it's part of the project.* |
|
| 36 |
+ |
|
| 37 |
+As a result, all decisions can be expressed as changes to the repository. An implementation change is a change to the source code. An API change is a change to |
|
| 38 |
+the API specification. A philosophy change is a change to the philosophy manifesto. And so on. |
|
| 39 |
+ |
|
| 40 |
+All decisions affecting docker, big and small, follow the same 3 steps: |
|
| 41 |
+ |
|
| 42 |
+* Step 1: Open a pull request. Anyone can do this. |
|
| 43 |
+ |
|
| 44 |
+* Step 2: Discuss the pull request. Anyone can do this. |
|
| 45 |
+ |
|
| 46 |
+* Step 3: Accept or refuse a pull request. The relevant maintainer does this (see below "Who decides what?") |
|
| 47 |
+ |
|
| 48 |
+ |
|
| 49 |
+## Who decides what? |
|
| 50 |
+ |
|
| 51 |
+So all decisions are pull requests, and the relevant maintainer makes the decision by accepting or refusing the pull request. |
|
| 52 |
+But how do we identify the relevant maintainer for a given pull request? |
|
| 53 |
+ |
|
| 54 |
+Docker follows the timeless, highly efficient and totally unfair system known as [Benevolent dictator for life](http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life), |
|
| 55 |
+with yours truly, Solomon Hykes, in the role of BDFL. |
|
| 56 |
+This means that all decisions are made by default by me. Since making every decision myself would be highly unscalable, in practice decisions are spread across multiple maintainers. |
|
| 57 |
+ |
|
| 58 |
+The relevant maintainer for a pull request is assigned in 3 steps: |
|
| 59 |
+ |
|
| 60 |
+* Step 1: Determine the subdirectory affected by the pull request. This might be src/registry, docs/source/api, or any other part of the repo. |
|
| 61 |
+ |
|
| 62 |
+* Step 2: Find the MAINTAINERS file which affects this directory. If the directory itself does not have a MAINTAINERS file, work your way up the the repo hierarchy until you find one. |
|
| 63 |
+ |
|
| 64 |
+* Step 3: The first maintainer listed is the primary maintainer. The pull request is assigned to him. He may assign it to other listed maintainers, at his discretion. |
|
| 65 |
+ |
|
| 66 |
+ |
|
| 67 |
+### I'm a maintainer, should I make pull requests too? |
|
| 68 |
+ |
|
| 69 |
+Primary maintainers are not required to create pull requests when changing their own subdirectory, but secondary maintainers are. |
|
| 70 |
+ |
|
| 71 |
+### Who assigns maintainers? |
|
| 72 |
+ |
|
| 73 |
+Solomon. |
|
| 74 |
+ |
|
| 75 |
+### How is this process changed? |
|
| 76 |
+ |
|
| 77 |
+Just like everything else: by making a pull request :) |
| 0 | 78 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,10 @@ |
| 0 |
+# Hacking on Docker |
|
| 1 |
+ |
|
| 2 |
+The hack/ directory holds information and tools for everyone involved in the process of creating and |
|
| 3 |
+distributing Docker, specifically: |
|
| 4 |
+ |
|
| 5 |
+If you're a *contributor* or aspiring contributor, you should read CONTRIBUTORS.md. |
|
| 6 |
+ |
|
| 7 |
+If you're a *maintainer* or aspiring maintainer, you should read MAINTAINERS.md. |
|
| 8 |
+ |
|
| 9 |
+If you're a *packager* or aspiring packager, you should read PACKAGERS.md. |