CONTRIBUTING.md 3.53 KB
Newer Older
Christos's avatar
Christos committed
1
2
# CONTRIBUTING

3
Wax is an open source software project, part of the broader [Collaborative Knowledge Foundation](https://coko.foundation/) (Coko) community. We welcome people of all kinds to join the community and contribute with knowledge, skills, expertise. Everyone is welcome in our [chat room](https://mattermost.coko.foundation/coko/channels/town-square).
Christos's avatar
Christos committed
4

5
In order to contribute to Wax, you're expected to follow a few sensible guidelines.
Christos's avatar
Christos committed
6
7
8
9
10
11
12

## Search first, ask questions later

If you want to create a new component or if you've experienced a bug or want to discuss something in the issue trackers, please search before you start developing to find out whether it already exists.

## Discuss your contribution before you build

13
Please let us know about the contribution you plan to make before you start it. Either comment on a relevant existing issue, or open a new issue if you can't find an existing one. This helps us avoid duplicating effort and to ensure contributions are likely to be accepted. You can also ask in the [chat room](https://mattermost.coko.foundation/coko/channels/wax) if you are unsure.
Christos's avatar
Christos committed
14

15
For contributions made as discussions and suggestions, you can at any time open an RFC in our issue tracker and we will be happy to jump into a discussion.
Christos's avatar
Christos committed
16
17
18

## Branches

19
20
21
22
23
We maintain master as the production branch and tag it with release names. If you wish to contribute, then you need to make a branch and then issue a merge request following this procedure:

- Create a user account on Coko GitLab : http://gitlab.coko.foundation
- Clone master with `git clone https://gitlab.coko.foundation/wax/wax-prosemirror.git`
- Create a new branch and work off that. Please name the branch in a way that sensibly identifies the feature you are working on. You can push the branch to Coko Gitlab at anytime.
Christos's avatar
Christos committed
24
- If the master branch has moved forward, at the time of finishing the feature, rebase your branch to master(git rebase master),resolve if any conflicts, check that everything worked as before, and then submit a MR
Christos's avatar
Christos committed
25
26
27

## Getting your contributions merged

28
29
This is a two part process: first ask for comments, then ask for the changes to be merged.
To ask for feedback, generate a Merge Request (Pull Request) from the GitLab interface.
Christos's avatar
Christos committed
30
31
32
33
34
Look at the feedback and alter your branch as necessary.
We encourage feedback and discussion from as many people as possible on Merge Requests!

## Conventional commits

35
We use conventional commits and verify that commit messages match the pattern, you can read more about it [here](https://conventionalcommits.org/) and [here](https://github.com/conventional-changelog-archived-repos/conventional-changelog-angular/blob/master/convention.md). You can use `yarn cz` to use a command-line tool that helps you with formatting your commit. We use conventional commits so that we can automatically follow semantic versioning and generate changelogs across all packages.
Christos's avatar
Christos committed
36
37
38

## Bug reports, feature requests, support questions

39
40
41
This is all done through GitLab. Visit the issue tracker for Wax [here](https://gitlab.coko.foundation/wax/wax-prosemirror/issues) and add an issue.

## Code style & guidelines
Christos's avatar
Christos committed
42

43
Linter and code style packages (namely `eslint`, `stylelint` and `prettier`), are provided as part of the repo's `devDependencies`. It is possible that you need to set up your editor to work with these packages. For example, for Visual Studio Code, you would need to add the "ESLint", "Prettier - Code Formatter" and "stylelint" extensions to get the full benefit of these packages. Commits will not be allowed if there is linting issues in the affected files.