diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 91e2b55c..01c530cf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,38 @@ # Contributing to Profanity -`make doublecheck` will run the code formatter, spell checker and unit tests. +## Submitting patches +We recommend for people to always work on a dedicated git branch for each fix or feature. +Don't work on master. +So that they can easily pull master and rebase their work if needed. + +For fixing (reported) bugs we usually use `git checkout -b fix/issuenumber-somedescription`. +When working on a new feature we usually use `git checkout -b feature/optionalissuenumber-somedescription`. + +However this is not a rule just a recommendation to keep an overview of things. +If your change isn't a bugfix or new feature you can also just use any branch name. + +### GitHub +We would like to encourage people to use GitHub to create pull requests. +It makes it easy for us to review the patches, track WIP branches, organize branches with labels and milestones, +and help others to see what's being worked on. + +Also see the blogpost [Contributing a Patch via GitHub](https://profanity-im.github.io/blog/post/contributing-a-patch-via-github/). + +### E-Mail +In case GitHub is down or you can't use it for any other reason, you can send a patch to our [mailing list](https://lists.notraces.net/mailman/listinfo/profanity). + +We recommend that you follow the workflow mentioned above. +And create your patch using the [`git-format-patch`](https://git-scm.com/docs/git-format-patch) tool: `git format-patch master --stdout > feature.patch` + +### Rules + +* When fixing a bug, describe it and how your patch fixes it. +* When fixing a reported issue add an `Fixes https://github.com/profanity-im/profanity/issues/23` in the commit body. +* When adding a new feature add a description of the feature and how it should be used (workflow). +* If your patch adds a new configuration option add this to the `profrc.example` file. +* If your patch adds a new theming option add this to the `theme_template` file. +* Each patch or pull request should only contain related modifications. +* Run the tests and code formatters before submitting (c.f. Chapter 'Check everything' of this README). ## Coding style Follow the style already present ;-) @@ -63,3 +95,8 @@ We include a `.codespellrc` configuration file for `codespell` in the root direc Before committing it might make sense to run `codespell` to see if you made any typos. You can run the `make spell` command for this. + +### Check everything + +`make doublecheck` will run the code formatter, spell checker and unit tests. +