|
*This is a suggested `CONTRIBUTING.md` file template for use by open sourced Salesforce projects. The main goal of this file is to make clear the intents and expectations that end-users may have regarding this project and how/if to engage with it. Adjust as needed (especially look for `{project_slug}` which refers to the org and repo name of your project) and remove this paragraph before committing to your repo.* |
|
|
|
# Contributing Guide For {NAME OF PROJECT} |
|
|
|
This page lists the operational governance model of this project, as well as the recommendations and requirements for how to best contribute to {PROJECT}. We strive to obey these as best as possible. As always, thanks for contributing – we hope these guidelines make it easier and shed some light on our approach and processes. |
|
|
|
# Governance Model |
|
> Pick the most appropriate one |
|
|
|
## Community Based |
|
|
|
The intent and goal of open sourcing this project is to increase the contributor and user base. The governance model is one where new project leads (`admins`) will be added to the project based on their contributions and efforts, a so-called "do-acracy" or "meritocracy" similar to that used by all Apache Software Foundation projects. |
|
|
|
> or |
|
|
|
## Salesforce Sponsored |
|
|
|
The intent and goal of open sourcing this project is to increase the contributor and user base. However, only Salesforce employees will be given `admin` rights and will be the final arbitrars of what contributions are accepted or not. |
|
|
|
> or |
|
|
|
## Published but not supported |
|
|
|
The intent and goal of open sourcing this project is because it may contain useful or interesting code/concepts that we wish to share with the larger open source community. Although occasional work may be done on it, we will not be looking for or soliciting contributions. |
|
|
|
# Getting started |
|
|
|
Please join the community on {Here list Slack channels, Email lists, Glitter, Discord, etc... links}. Also please make sure to take a look at the project [roadmap](ROADMAP.md) to see where are headed. |
|
|
|
# Issues, requests & ideas |
|
|
|
Use GitHub Issues page to submit issues, enhancement requests and discuss ideas. |
|
|
|
### Bug Reports and Fixes |
|
- If you find a bug, please search for it in the [Issues](https://github.com/{project_slug}/issues), and if it isn't already tracked, |
|
[create a new issue](https://github.com/{project_slug}/issues/new). Fill out the "Bug Report" section of the issue template. Even if an Issue is closed, feel free to comment and add details, it will still |
|
be reviewed. |
|
- Issues that have already been identified as a bug (note: able to reproduce) will be labelled `bug`. |
|
- If you'd like to submit a fix for a bug, [send a Pull Request](#creating_a_pull_request) and mention the Issue number. |
|
- Include tests that isolate the bug and verifies that it was fixed. |
|
|
|
### New Features |
|
- If you'd like to add new functionality to this project, describe the problem you want to solve in a [new Issue](https://github.com/{project_slug}/issues/new). |
|
- Issues that have been identified as a feature request will be labelled `enhancement`. |
|
- If you'd like to implement the new feature, please wait for feedback from the project |
|
maintainers before spending too much time writing the code. In some cases, `enhancement`s may |
|
not align well with the project objectives at the time. |
|
|
|
### Tests, Documentation, Miscellaneous |
|
- If you'd like to improve the tests, you want to make the documentation clearer, you have an |
|
alternative implementation of something that may have advantages over the way its currently |
|
done, or you have any other change, we would be happy to hear about it! |
|
- If its a trivial change, go ahead and [send a Pull Request](#creating_a_pull_request) with the changes you have in mind. |
|
- If not, [open an Issue](https://github.com/{project_slug}/issues/new) to discuss the idea first. |
|
|
|
If you're new to our project and looking for some way to make your first contribution, look for |
|
Issues labelled `good first contribution`. |
|
|
|
# Contribution Checklist |
|
|
|
- [x] Clean, simple, well styled code |
|
- [x] Commits should be atomic and messages must be descriptive. Related issues should be mentioned by Issue number. |
|
- [x] Comments |
|
- Module-level & function-level comments. |
|
- Comments on complex blocks of code or algorithms (include references to sources). |
|
- [x] Tests |
|
- The test suite, if provided, must be complete and pass |
|
- Increase code coverage, not versa. |
|
- Use any of our testkits that contains a bunch of testing facilities you would need. For example: `import com.salesforce.op.test._` and borrow inspiration from existing tests. |
|
- [x] Dependencies |
|
- Minimize number of dependencies. |
|
- Prefer Apache 2.0, BSD3, MIT, ISC and MPL licenses. |
|
- [x] Reviews |
|
- Changes must be approved via peer code review |
|
|
|
# Creating a Pull Request |
|
|
|
1. **Ensure the bug/feature was not already reported** by searching on GitHub under Issues. If none exists, create a new issue so that other contributors can keep track of what you are trying to add/fix and offer suggestions (or let you know if there is already an effort in progress). |
|
3. **Clone** the forked repo to your machine. |
|
4. **Create** a new branch to contain your work (e.g. `git br fix-issue-11`) |
|
4. **Commit** changes to your own branch. |
|
5. **Push** your work back up to your fork. (e.g. `git push fix-issue-11`) |
|
6. **Submit** a Pull Request against the `main` branch and refer to the issue(s) you are fixing. Try not to pollute your pull request with unintended changes. Keep it simple and small. |
|
7. **Sign** the Salesforce CLA (you will be prompted to do so when submitting the Pull Request) |
|
|
|
> **NOTE**: Be sure to [sync your fork](https://help.github.com/articles/syncing-a-fork/) before making a pull request. |
|
|
|
# Contributor License Agreement ("CLA") |
|
In order to accept your pull request, we need you to submit a CLA. You only need |
|
to do this once to work on any of Salesforce's open source projects. |
|
|
|
Complete your CLA here: <https://cla.salesforce.com/sign-cla> |
|
|
|
# Issues |
|
We use GitHub issues to track public bugs. Please ensure your description is |
|
clear and has sufficient instructions to be able to reproduce the issue. |
|
|
|
# Code of Conduct |
|
Please follow our [Code of Conduct](CODE_OF_CONDUCT.md). |
|
|
|
# License |
|
By contributing your code, you agree to license your contribution under the terms of our project [LICENSE](LICENSE.txt) and to sign the [Salesforce CLA](https://cla.salesforce.com/sign-cla) |
|
|