Annotation of embedaddon/pimd/CONTRIBUTING.md, revision 1.1
1.1 ! misho 1: Contributing to pimd
! 2: ====================
! 3:
! 4: pimd is an old project. As such it has a lot of history that sometimes
! 5: creep up through the cracks. Bugs!
! 6:
! 7: Bugs can be missing or unclear documentation, faulty legacy behavior,
! 8: missing key features or support for a new cool operating system. Or
! 9: simple things, like speling errors or too frequent, or missing logs.
! 10:
! 11: pimd exists on [GitHub][github] for this exact purpose -- to fix bugs,
! 12: collaboratively.
! 13:
! 14: We welcome any and all help in the form of bug reports, fixes, patches
! 15: for new features -- *preferably as GitHub pull requests*, submitting a
! 16: pull request practically guarantees inclusion ... other methods are of
! 17: course also possible: emailing the maintainer a patch or even a raw
! 18: file, or simply emailing a feature request or an alert for a problem.
! 19: For email questions/requests/alerts there is always the risk of memory
! 20: exhaustion on the part of the maintainer.
! 21:
! 22:
! 23: Coding Style
! 24: ------------
! 25:
! 26: > **Tip:** Adapt your code to what the surrounding code looks like!
! 27:
! 28: pimd is written in C. C is an old language and sometimes that age is
! 29: clearly visible. The current maintainer has tried to (re)enforce a
! 30: consistent and more modern C style, without having to completly
! 31: re-indent the whole code base.
! 32:
! 33: First of all, lines are allowed to be longer than 72 characters these
! 34: days. In fact, there exist no enforced maximum, but keeping it around
! 35: 100 chars is OK.
! 36:
! 37: pimd use leading four spaces in functions and structs. The next level
! 38: use eight spaces, but the original authors used tab for that level. A
! 39: `switch()` has its `case` statements indented four spaces ... but then
! 40: it is more or less [KNF][].
! 41:
! 42: In Emacs this coding style can be achieved by using the following
! 43: footer applied to a C file:
! 44:
! 45: /**
! 46: * Local Variables:
! 47: * version-control: t
! 48: * indent-tabs-mode: t
! 49: * c-file-style: "ellemtel"
! 50: * c-basic-offset: 4
! 51: * End:
! 52: */
! 53:
! 54: The current maintainer has considered shifting the original coding
! 55: style to FULL [KNF][] several times.
! 56:
! 57:
! 58: GIT Submodules
! 59: --------------
! 60:
! 61: pimd is maintained using the GIT version control system. It also use a
! 62: Git submodule, [libite][], to provide several utilities functions, like
! 63: `pidfile()` and the OpenBSD `strlcpy()` family of functions.
! 64:
! 65: Make sure to `git submodule update` after a `git pull`, in addition to
! 66: `git submodule update --init` when you clone the repository initially.
! 67:
! 68:
! 69: Commit Messages
! 70: ---------------
! 71:
! 72: Commit messages exist to track *why* a change was made. Try to be as
! 73: clear and concise as possible in your commit messages. Example from
! 74: the [Pro Git][gitbook] online book:
! 75:
! 76: Brief, but clear and concise summary of changes
! 77:
! 78: More detailed explanatory text, if necessary. Wrap it to about 72
! 79: characters or so. In some contexts, the first line is treated as
! 80: the subject of an email and the rest of the text as the body. The
! 81: blank line separating the ummary from the body is critical (unless
! 82: you omit the body entirely); tools like rebase can get confused if
! 83: you run the two together.
! 84:
! 85: Further paragraphs come after blank lines.
! 86:
! 87: - Bullet points are okay, too
! 88:
! 89: - Typically a hyphen or asterisk is used for the bullet, preceded
! 90: by a single space, with blank lines in between, but conventions
! 91: vary here
! 92:
! 93: Another good *counter* example [is this][rambling] ...
! 94:
! 95:
! 96: Target Systems
! 97: --------------
! 98:
! 99: pimd mainly targets modern UNIX systems and we semi-regularly test it on
! 100: both Debian and Ubuntu for Linux, FreeBSD, NetBSD, and OpenBSD. Please
! 101: consider these targets when submitting new features. If you cannot test
! 102: on other operating systems yourself, be prepared that your feature/fix
! 103: will likely be delayed by the maintaier, who will attempt to test and in
! 104: some cases port the feature for you.
! 105:
! 106:
! 107: Code of Conduct
! 108: ---------------
! 109:
! 110: It is expected of everyone engaging in the project to, in the words of
! 111: Bill & Ted; [be excellent to each other][conduct].
! 112:
! 113:
! 114: [github]: https://github.com/troglobit/pimd/
! 115: [KNF]: https://en.wikipedia.org/wiki/Kernel_Normal_Form
! 116: [libite]: https://github.com/troglobit/libite
! 117: [gitbook]: https://git-scm.com/book/ch5-2.html
! 118: [rambling]: http://stopwritingramblingcommitmessages.com/
! 119: [conduct]: https://github.com/troglobit/pimd/blob/master/CODE-OF-CONDUCT.md
! 120:
! 121: <!--
! 122: -- Local Variables:
! 123: -- mode: markdown
! 124: -- End:
! 125: -->
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>