# Contributing

---

### How to make an Addition

You can add entries to this list by opening a pull request.

Get started by [editing](https://github.com/Lissy93/awesome-privacy/edit/main/README.md) the readme, committing changes to your fork, and opening a pull request upstream to this repo's main branch.
If you are new to GitHub, [this tutorial](https://www.freecodecamp.org/news/how-to-make-your-first-pull-request-on-github/) may help you.

Your request will be reviewed, then either merged, or have changes requested, or if the [Guidelines](#guidelines) are not met, it may be closed with a comment explaining why.

To make layout or stylistic amendments to the website ([awesome-privacy.xyz](https://awesome-privacy.xyz)), pull requests should be made to the `gh-pages` branch. For more information about the website, see [About --> Website](https://github.com/Lissy93/awesome-privacy/blob/main/.github/ABOUT.md#website)

---

### Requirements

Software additions to this list, will usually need to meet the following requirements. 

- **Privacy Respecting**
  - The project must respect users privacy, not collect more data than necessary, and store info securely 
- **Secure**
  - There should be no current, critical security issues
  - The handling of past issues must have been prompt, transparent and effective
- **Open Source**
  - The full source code should be released under an open source license
- **Actively Maintained**
  - The developers should address dependency updates and security patches in a timely manner
- **Transparent**
  - It should be clear who is behind the project, what their motives are, and what (if any) the funding model is
- **Ethical**
  - Must not suppress free speech, discriminate or disregard any human rights

_There may be some exceptions, but these would need to be fully justified, reviewed by the community, and drawbacks / anti-features must be listed along-side the software when merged. Usually these entries go within the "Notable Mentions" section instead._

---

### Guidelines

Your pull request must follow these requirements. Failure to do so, might result in it being closed.

- Ensure your PR is not a duplicate, search for existing / previous submissions first
- You must respond to any comments or requests for changes in a timely manner, 48-hours maximum
- Write short but descriptive git commit messages, under 50 characters. This must be in the format of `Adds [software-name] to [section-name]`. Your PR will be rejected if you name it `Updates README.md`
- Only include a single addition / amendment / removal, per pull request
- If your pull request contains multiple commits, you must squash them first
- You must complete each of the sections in the pull request template. Do not delete it!
- Where applicable, include links to supporting material for your addition: git repo, docs, recent security audits, etc. This will make researching it much easier for reviewers
- While adding new software to the list, don't make your entry read like an advert. Be objective, and include drawbacks as well as strengths
- Your entry should be added at the bottom of the appropriate category, unless otherwise requested
- If there are other pull requests open, please help review them before submitting yours
- A pull request must receive multiple approval reviews before it can be merged
- You must be transparent about your affiliation with a product or service that you are adding. It's totally okay to submit your own projects as additions (providing they meet the requirements), but if you don't declare your association with that project then there becomes a clear conflict of interest
- You must adhere to the Contributor Covenant Code of Conduct
- Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the above guidelines when you open it
- Your changes must be correctly spelled, and with good grammar
- Your changes must be correctly formatted, in valid markdown
- The addition title must be a link the project, and in bold
- The addition description must be no less than 50, and no more than 250 characters, keep it clear and to the point
- The structure of additions is as follows: `[Project Name](https://project-link/) | Brief description`
