This guide contains the collaboration guidelines to use for contributing and maintening this project.
To assure future compatibility and ease of maintenance, these are to be observed as strictly as possible.
This project relies on the automatic code formatting provided by CSharpier.
This assures consistency.
This assures that no wrong formatting gets committed. It also assures that the code is compilable.
This project follows the Conventional Commits guidelines, albeit with more verbosity.
file: add <filename>
for adding a new file. If the file is a source files (.cs
), it must be empty or only contain a barebone (empty!) class.file: move <path/to/filename> -> <new/folder>
for moving an existing file. No modifications wrt the file contents must be made.file: rename <filename> -> <new filename>
for renaming an existing file. No modifications wrt the file contents must be made.file: delete <filename>
for removing an existing file. If part of a refactor pass, preferrefactor: remove <feature>
. A short contents lineReason: <justification for change>
is welcome to add context.feature: implement <feature description>
for implementations of a new feature, class, function.refactor: <change description>
for refactoring changes. Refactoring changes MUST BE as atomic as possible, and as complete as feasible. Prefer splitting into several commits for clarity if needed. A short contents lineReason: <justification for change>
is welcome to add context.repo: <change description>
for changes affecting the repository.build: <change description>
for changes affecting the build. Dependency changes (add/remove/update) go into this category. Changes wrt build settings are part of this category as well.ci: <change description>
for changes affecting the CI scripts.merge[pull request #<num>]: branch/name
is the only correct way to merge pull requests. SPECIAL CARE IS REQUIRED as this format is not the default format that GitHub uses.
Only grammatically and orthographically correct US English is allowed. In case of doubt for wording and spelling, check an online thesaurus and dictionary.
CSharpier restores the correct line endings anyway.
UTF-8 NO BOM is set by CSharpier and must not be altered.