Thank you for being interested in making Software Engineering better for everybody
There are many ways to contribute to the project, from simple to most rewarding:
- Correct mistakes - This could be spelling, grammar or improving writing to allow the point to be communicated more clearly.
- Enrich a principle - All principles can be improved by adding more information or better reasoning.
- Copy an existing principle to here - Derive a principle from elsewhere. Make sure it has a permissible license (e.g., MIT, CC BY-SA).
- Create a principle - Do you want to communicate an idea of your own to the world? You can create it on principles.dev. Principles.dev has friendly SEO options to prevent duplicate content if you want to publish it elsewhere (e.g. your blog)
If you're creating or copying an exisiting principle. Before you begin, you should at least read through the how to write a principle quickstart section. Looking at existing principles on the site will help you understand what's required.
- This repository is the source of truth for principles.dev. Once a build is merged back to the release branch, it will appear on the live website at principles.dev
- To submit a principle, you must create a pull request/fork the repo with the merge target set to release branch.
- Optionally create an account (you can use github) on principles.dev. Doing so will acreate an account page to track the principles you create. It looks like this: https://principles.dev/u/AdamCraven/ .
- To credit your principles to your principles.dev account, you must write your github username (case-sensitive) in the authors or contributors field at the top of any created or edited principle.
Creating a principle is an intentionally high-friction process to deter low-quality principles. If you are reading these words, it is unlikely your principle will fall into the low quality category. Principles are generally approved if the requirement for a basic principle is met.
The reasons for lack of approval are:
- Low quality - The principle cannot change someone's behavior or capability because it's missing crucial information or context.
- Not containing the what and the why
- The principle is offensive, inflammatory, or generally targeted at hostility towards a different group (e.g., don't use X language, X technology, etc.)
- Grammar or spelling mistakes (which are easily correctable)
If you need clarification, it's ok to open an issue on this repository to discuss a principle and get some general pointers. If you create a pull request and any of the above problems exist, the maintainers will point them out, and you'll have opportunities to correct them. Please make sure you've read the documentation beforehand. The more time you've spent on understanding, the more maintainers will gladly invest their time in helping you.