Milestones
[wiki.git] / learn.mdwn
index 6d700589bbc71629e90be9c2a78926dcfd494434..86092f243703205777cf6f01f3ecf99d0499dbf2 100644 (file)
@@ -4,8 +4,40 @@ This essay is an attempt to describe this process. Not as a series of step-by-st
 
 Let’s get started.
 
-Level 0: Joining a project
---------------------------
+Level 0: Milestones
+-------------------
+
+What does it mean to have joined a project?  The most important aspects are soft and hard to quantify, but there are some hard and unambiguous technical milestones you can achieve.  Most projects have the following two:
+
+* Commit access (or “commit bits”), which indicate that you have permission to directly push source code changes to the repository of the project.
+
+* Administrative access (also called “root bits” or just “root”), which indicate that you have access to the ``root`` account on production hardware and can install software, do system maintenance, etc.
+
+On some projects, commit bits is equivalent to root, while on other projects, you may be able to commit code, but cannot deploy it without root.
+
+But even if you don’t have commit access, your level of involvement can vary. As you become more involved with the project, you will start to be able to check off more things off this list:
+
+* Do you know all of the maintainers involved with the project?
+
+* Can you describe the project to an interested outsider?
+
+* Have you used the project yourself as an enduser?
+
+* Do you know (roughly) what all of the components of the project do?
+
+* Have you setup an instance of the project’s software and/or configuration from scratch?
+
+* Have you answered a user question?
+
+* Have you submitted a patch and gotten it accepted?
+
+* Have you written documentation for the project?
+
+* Have you discovered a security vulnerability in the project?
+
+* (probably more)
+
+All of these exercise different dimensions of involvement with the project, and you don’t have to do all of them to get root! But there are a lot of ways to contribute without having bits, so don’t get discouraged if you haven’t gotten them yet.
 
 Level 1: Getting in touch
 -------------------------
@@ -22,6 +54,9 @@ Level 1: Writing new software
 Level 1: System administration
 ------------------------------
 
+Level 2: Learning infrastructure
+--------------------------------
+
 Level 2: Identifying problems
 -----------------------------