First off, thanks for taking the time to contribute! ❤️
All types of contributions are encouraged and valued. See the Table of Contents for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉
And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
- Star the project
- Tweet about it
- Refer this project in your project's readme
- Mention the project at local meetups and tell your friends/colleagues
This project and everyone participating in it is governed by the Open Elements Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
To ensure all contributions are properly licensed and documented, we use the Developer Certificate of Origin (DCO). The DCO is a lightweight mechanism for contributors to certify that they have the right to submit code or documentation to the project.
The DCO GitHub App is installed on all repositories to automatically check that each commit is signed off. Each commit
message must contain a "Signed-off-by" line with the contributor's name and email address, achieved by using the -s
flag when committing.
Here’s an example of how to sign off your commits correctly:
git commit -s -m "Your commit message"
This will add a "Signed-off-by" line at the end of your commit message:
Signed-off-by: Your Name [email protected]
If the DCO App flags your pull request for missing sign-offs, you can fix this by amending your commits:
git commit --amend -s
git push --force
Like most open-source projects, we use pull requests (PRs) to track code changes. Follow these steps to create a PR:
-
Forking: Fork the repository on GitHub.
-
Clone the Fork: Clone the forked repository to your local working directory.
git clone https://github.com/${owner}/${repo}.git
-
Add Upstream: Add an upstream remote to keep your fork in sync with the main repo.
git remote add upstream https://github.com/OpenElements/${repo}.git
-
Sync Your Local Branch: Sync your local
main
branch with the upstream repository.git pull upstream main
-
Create a New Branch: Create a branch to add a new feature or fix an issue.
git checkout -b new-feature
-
Make Your Changes: Make changes in the new-feature branch, then build and test your code locally.
-
Add Files to Commit: Add files that you want to commit.
git add <file>
-
Enable GPG Signing: Enable GPG signing of your commits. Signing all your commits with your public key allows the community to verify it’s really you. If you forgot to sign some commits, you can rewrite your commit history.
git config commit.gpgsign true
-
Sign Off on Commits: Use the
-s
flag to sign off on all commits. Also, GPG-sign your commits with your public key.git commit --signoff -S -m "Your commit message"
-
Submit a Pull Request (PR): Push your branch and open a PR on GitHub.
Before you ask a question, it is best to search for existing Issues that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.
If you then still feel the need to ask a question and need clarification, we recommend the following:
- Open an Issue.
- Provide as much context as you can about what you're running into.
We will then take care of the issue as soon as possible.
If you found a bug in our code or want to suggest a new feature or improvement please create a new Issue.
We reserve issues for people who have never contributed to this project or any open source project in general. We know that creating a pull request (PR) is a major barrier for new contributors. The goal of issues labeled by 'good first issue' is to help you make your first contribution.
This does not mean that contribution is only welcome for those issues. We are happy with any contribution. The most important point is that an issue exists for the contribution. If that is not the case please create an issue for a bug or enhancement. Please comment on the given issue that you want to work on it. Once a member of the team has assigned you to the issue you can start working on it.
This guide is based on the contributing-gen. Make your own!