Skip to content

Commit 35ed7aa

Browse files
committed
docs: add contributing guidelines
Signed-off-by: Andres Correa Casablanca <castarco@coderspirit.xyz>
1 parent 4b8f084 commit 35ed7aa

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

CONTRIBUTING.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Contributing Guidelines
2+
3+
## Code of Conduct
4+
This project and everyone participating in it is governed by our
5+
[Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to
6+
uphold this code. Please report unacceptable behavior to
7+
contact@coderspirit.xyz.
8+
9+
## How can I contribute?
10+
- Reporting bugs
11+
- Proposing new features or improvements
12+
- For bug reports & proposals, consider the following:
13+
- Always be respectful, and mind the [Code of Conduct](./CODE_OF_CONDUCT.md)
14+
- Check if someone else already reported that bug or proposed that idea.
15+
- Try to be thorough and detailed with your explanations, to help others to
16+
understand them and take proper action.
17+
- Improving the current documentation
18+
- Contributing code
19+
- Always be respectful, and mind the [Code of Conduct](./CODE_OF_CONDUCT.md)
20+
- Backwards compatibility is almost sacred, please try to preserve it.
21+
- Try to respect the current coding style, to avoid style inconsistencies.
22+
23+
## Tooling
24+
25+
1. If you are developing from a Macos system, it is advisable to install the
26+
`findutils` package via `brew` (or your package manager of choice).
27+
2. To save time in CI and have more immediate feedback, it is a good idea to
28+
enable the Git hooks with the command:
29+
```bash
30+
pnpm install-githooks
31+
```
32+
33+
## Code Contributions: Acceptance Criteria
34+
35+
In order for us to accept contributions, the merge request must fulfill certain
36+
requirements:
37+
38+
### Style Guide
39+
40+
There is no "official" style guide, although we enforce style through automated
41+
tools, such as [Prettier](https://prettier.io/) and
42+
[ESLint](https://eslint.org/).
43+
44+
### Commit signatures
45+
For security & regulations compliance, commits must be cryptographically signed
46+
by [PGP](https://www.openpgp.org/)/[GPG](https://gnupg.org/), or SSH
47+
([since git v2.34](https://github.blog/2021-11-15-highlights-from-git-2-34/)).
48+
You can read more about this topic here:
49+
- [Git's documentation](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work)
50+
- [Github's documentation](https://help.github.com/en/github/authenticating-to-github/signing-commits)
51+
- [Gitlab's documentation](https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/).
52+
- [Signing Git commits with your SSH key](https://calebhearth.com/sign-git-with-ssh)
53+
54+
### Commit messages
55+
56+
Commit messages must be properly formatted (following the
57+
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) rules).
58+
The reasons behind this decision are many:
59+
- The project's history has to be "easy" to read.
60+
- It's easier to extract statistics from the commit logs.
61+
- It's easier to generate useful changelogs.
62+
- This practice enforces that committers think twice about the nature of their
63+
contributions.
64+
- It allows us to automate version numbering (following
65+
[Semantic Versioning](https://semver.org/) rules)
66+
67+
### Branch history
68+
69+
The merge request's commits have to present a "clean" history, `git rebase` is
70+
your friend. This means:
71+
- linear history
72+
- commit messages matching what the commit does
73+
- no "experimental" commits + their revert commits

0 commit comments

Comments
 (0)