3.5 KiB
Table of Contents
Contributing
This is a personal project to learn new languages and technics and thus does not really have a future you could contribute to. You are however welcome to fork and modify it while following the guidelines and licenses in COPYING.md.
Environment
Preferred editor: VSCodium with some extensions.
For dependencies/tools, make sure to use the versions specified in INSTALL.md#requirements.
Coding conventions/formatting
There is a .editorconfig file to use with compatible editors 1, or with those who have plugins available 2.
Please use prettier and the supplied configuration to format the following file types:
.js
.vue
.css
.md
.yaml
.graphqls
,.graphql
.json
Use the following formatters with the following types:
.go
(use gofmt)
No formatter specified for the following types (adapt to existing style):
Makefile
.sql
.mod
,.sum
Do not change the formatting of license texts (e.g. COPYING.md).
General
-
We indent using
tabs
(4 spaces wide). -
We use single-quotes
'
where possible. -
We use
LF
line endings (enforced by .gitattributes). -
We use
UTF-8
encoding where possible. -
We end files with an empty line.
-
We use the string
TODO
to mark bits of code that need improvement. -
We use the string
DEBUG
to mark bits of code that are only for debugging (remove before next commit). -
We add (if possible) the following header to files that contain a reasonable amount of self-written code or are essential to the project:
/* YetAnotherToDoList Copyright © YYYY name your@email This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */
File specific rules
Markdown (.md)
-
We add a single
h1
element per document (as a title of the document). -
We use asterisks
*
for bold and italic, not underscores_
. -
We don't use citation blocks
>
for emphasis. -
We end sentences with a full stop
.
. -
We leave one space around backticks
`
when used as inline code. -
We add new lines around codeblocks
```
. -
We indent using spaces (2 spaces wide).
-
We add a table of content (toc) in gitea's style where necessary:
--- gitea: none include_toc: true ---
YAML
We indent using spaces (1 space wide).
Bash (.sh)
We use env
in the shebang: #!/usr/bin/env bash
.
File endings
.yaml and .yml
We use the .yaml
file ending.
.graphql and .graphqls
-
We use
.graphql
for writing client queries. -
We use
.graphqls
for defining our graph scheme.
Commit messages
- We write in all lowercase except for special names, e.g.
update Makefile
- We write in imperative mood, e.g.
add contribution guidelines
, notadding ...
oradds ...
.