aboutsummaryrefslogtreecommitdiff
path: root/STYLE-GUIDE.md
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2015-04-22 15:54:40 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2015-04-22 15:54:40 -0500
commitebc32aadada564095b70f0ff439a9863102a2ae5 (patch)
treeb06a6ced076b7b0fcfc9eef73211d0435779b805 /STYLE-GUIDE.md
parent362dfa33804d2ba5bed241f697aac0178be07d3d (diff)
Convert style guide to markdown
Diffstat (limited to 'STYLE-GUIDE.md')
-rw-r--r--STYLE-GUIDE.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/STYLE-GUIDE.md b/STYLE-GUIDE.md
new file mode 100644
index 00000000..6c1fcf25
--- /dev/null
+++ b/STYLE-GUIDE.md
@@ -0,0 +1,84 @@
+# OpenRC Style Guide
+
+This is the openrc style manual. It governs the coding style of all code
+in this repository. Follow it. Contact openrc@gentoo.org for any questions
+or fixes you might notice.
+
+## C CODE
+
+The BSD Kernel Normal Form (KNF) style is used [1]. Basically, it is like
+K&R/LKML, but wrapped lines that are indented use 4 spaces. Here are the
+highlights.
+
+- no trailing whitespace
+- indented code use tabs (not line wrapped)
+- cuddle the braces (except for functions)
+- space after native statements and before paren (for/if/while/...)
+- no space between function and paren
+- pointer asterisk cuddles the variable, not the type
+
+```
+void foo(int c)
+{
+ int ret = 0;
+
+ if (c > 1000)
+ return;
+
+ while (c--) {
+ bar(c);
+ ret++;
+ }
+
+ return ret;
+}
+```
+
+## COMMIT MESSAGES
+
+The following is an example of a correctly formatted git commit message
+for this repository. Most of this information came from this blog post
+[2], so I would like to thank the author.
+
+```
+Capitalized, short (50 chars or less) summary
+
+More detailed explanatory text, if necessary. Wrap it to about 72
+characters or so. In some contexts, the first line is treated as the
+subject of an email and the rest of the text as the body. The blank
+line separating the summary from the body is critical (unless you omit
+the body entirely); tools like rebase can get confused if you run the
+two together.
+
+Write your commit message in the imperative: "Fix bug" and not "Fixed
+bug." This convention matches up with commit messages generated by
+commands like git merge and git revert.
+
+Further paragraphs come after blank lines.
+
+- Bullet points are okay, too
+
+- Typically a hyphen or asterisk is used for the bullet, preceded by a
+ single space, with blank lines in between, but conventions vary here
+
+- Use a hanging indent
+
+Reported-by: User Name <email>
+X-[Distro]-Bug: BugID
+X-[Distro]-Bug-URL: URL for the bug (on the distribution's web site typically)
+```
+
+If you did not write the code and the patch does not include authorship
+information in a format git can use, please use the --author option of the
+git commit command to make the authorship correct.
+
+The Reported-by tag is required if the person who reported the bug is
+different from the author and committer.
+
+ The X-[Distro]-Bug/Bug-URL tags are required if this commit is related
+ to a bug reported to us by a specific distribution of linux or a
+ *BSD. Also, [Distro] should be replaced with the name of the
+ distribution, e.g. X-Gentoo-Bug.
+
+[1] http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style
+[2] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html