2.76 KB
Newer Older
1 2 3
## Contributing changes to the Synchronet Source Repository

Merge requests are considered and accepted at [](
Do not submit pull/merge requests in the Synchronet *mirror projects* on or; they won't be considered.
5 6 7 8 9 10 11

When submitting merge requests to existing files, unless you have prior agreement with the maintainers:
* Use the dominant coding style of the file(s) being modified
* Do not perform tab to space conversions (or vice-versa); incidental trimming of trailing whitespace is okay
* Do not include changes that are not relevant to the merge request description/message
* Keep merge requests to a single topical change (e.g. don't combine new features with bug fixes with typo-fixes and style changes)

Rob Swindell's avatar
Rob Swindell committed
### Commit content
13 14
In general, if it's a large set of changes, your best bet of getting it accepted and merged into the repo would be to discuss the concept of the change with the developers in the [Synchronet Programming conference]( **first**.

When modifying the C/C++ source files:
16 17 18
* Do not call functions from `ctype.h` (e.g. `isprint()`, `isspace()`, `isdigit()`, etc.) - use the `xpdev/gen_defs.h IS_*` macros instead.
* Use safe string handling (e.g. xpdev's `SAFECOPY()` instead of `strcpy()`, `SAFEPRINTF()` or `safe_snprintf()` instead of `sprintf()`).

19 20 21 22
When modifying JavaScript (`.js`) files:
* Specify `"use strict"` when adding new files and write conforming code
* Don't introduce/use 3rd party libraries unnecessarily

23 24
When adding files:
* Prefer all lowercase characters in filenames
Rob Swindell's avatar
Rob Swindell committed
* Don't include spaces or other special characters (e.g. that require URL-encoding) in filenames
26 27
* Don't use misleading file extensions/suffixes (e.g. `*.doc` for plain text files)

28 29
### Branches
Only approved and authenticaed "developers" can create new branches in the `main/sbbs`repo. If, as a developer, you are creating a new branch in the `main/sbbs` repository, use the branch naming scheme: `<your-name>/<topic>`, where *your-name* is your abbreviated name, user-name, or alias and *topic* helps to identify the intended purpose of the branch. Branches created in user repositories (e.g. forks of main/sbbs) need not contain the `<your-name>/` prefix.

Rob Swindell's avatar
Rob Swindell committed
31 32 33 34 35
### Commit messages
* Try to keep the commit title (first line) to 70 characters or less.
* When a comment is related to an [issue](, use the proper commit message syntax foir automatic issue management as documented [here](

### Other types of contributions
If you were interested in contributing money, not code, then paypal to rob at synchro dot net.

Thank you for contributing!