cerca

lean forum software (pmc local branch)
git clone http://git.permacomputing.net/repos/cerca.git # read-only access
Log | Files | Refs | README | LICENSE

CONTRIBUTING.md (2359B)


      1 # Contributing
      2 
      3 Hello! Let's jam! Before that, though, let's slow down and talk about how to make contributions that will be
      4 welcomed with open arms.
      5 
      6 The goal of this forum software is to enable small non-commercial communities to have their own
      7 place for longer-flowing conversations, and to maintain a living history. As part of that, it
      8 should be easy to make this software your own. It should also be easy to host on any kind of
      9 computer, given prior experience with hosting a simple html website. Contradicting this is the
     10 messy reality that the current software is written for the explicit use of the [Merveilles]
     11 community!
     12 
     13 ## Code contributions
     14 In general, it's preferred to keep the code flexible than to impose (unnecessary) hierarchy at
     15 this early stage, and to reach out before you attempt to add anything large-ish. Common sense,
     16 basically.
     17 
     18 In a bit more detail and in bullet-point format—the guiding principles:
     19 
     20 * Communicate _before_ starting large rewrites or big features
     21 * Keep the existing style and organization
     22 * Flexibility before hierarchy 
     23 * Have fun! There are other places to execute at a megacorp level
     24 * Additions should benefit long-term use of the forum and longer form conversations
     25 * New features should have a reasonable impact on the codebase
     26     * Said another way: new additions should not have an outsized impact on the _overall_ codebase
     27 * The software should always be easy to host on a variety of devices, from powerful servers to smol memory-drained and storage-depleted computers
     28 * As far as we are able to: avoid client-side javascript
     29     * Said another way: there should always be a way to do something without a functioning javascript engine
     30 * Don't `go fmt` the entire codebase in the same PR as you're adding a feature; do that separately if it's needed
     31 * The maintainer reserves the right to make final decisions, for example regarding whether
     32   something:
     33     * makes the codebase less fun to work with, or understandable
     34     * goes against the project's idea of benefitting conversations
     35     * does not compose well with the existing forum experience
     36 
     37 At the end of the day, a maintainer must live with decisions made for the project—both good and
     38 bad! That weight of responsibility is taken into account when looking at new contributions.
     39 
     40 [Merveilles]: https://now.lectronice.com/notes/merveilles/