|
| 1 | +*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.* |
| 2 | + |
| 3 | +# Contributing Guide For {NAME OF PROJECT} |
| 4 | + |
| 5 | +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. |
| 6 | + |
| 7 | +# Governance Model |
| 8 | +> Pick the most appropriate one |
| 9 | +
|
| 10 | +## Community Based |
| 11 | + |
| 12 | +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. |
| 13 | + |
| 14 | +> or |
| 15 | +
|
| 16 | +## Salesforce Sponsored |
| 17 | + |
| 18 | +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. |
| 19 | + |
| 20 | +> or |
| 21 | +
|
| 22 | +## Published but not supported |
| 23 | + |
| 24 | +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. |
| 25 | + |
| 26 | +# Getting started |
| 27 | + |
| 28 | +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. |
| 29 | + |
| 30 | +# Issues, requests & ideas |
| 31 | + |
| 32 | +Use GitHub Issues page to submit issues, enhancement requests and discuss ideas. |
| 33 | + |
| 34 | +### Bug Reports and Fixes |
| 35 | +- 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, |
| 36 | + [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 |
| 37 | + be reviewed. |
| 38 | +- Issues that have already been identified as a bug (note: able to reproduce) will be labelled `bug`. |
| 39 | +- If you'd like to submit a fix for a bug, [send a Pull Request](#creating_a_pull_request) and mention the Issue number. |
| 40 | + - Include tests that isolate the bug and verifies that it was fixed. |
| 41 | + |
| 42 | +### New Features |
| 43 | +- 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). |
| 44 | +- Issues that have been identified as a feature request will be labelled `enhancement`. |
| 45 | +- If you'd like to implement the new feature, please wait for feedback from the project |
| 46 | + maintainers before spending too much time writing the code. In some cases, `enhancement`s may |
| 47 | + not align well with the project objectives at the time. |
| 48 | + |
| 49 | +### Tests, Documentation, Miscellaneous |
| 50 | +- If you'd like to improve the tests, you want to make the documentation clearer, you have an |
| 51 | + alternative implementation of something that may have advantages over the way its currently |
| 52 | + done, or you have any other change, we would be happy to hear about it! |
| 53 | + - If its a trivial change, go ahead and [send a Pull Request](#creating_a_pull_request) with the changes you have in mind. |
| 54 | + - If not, [open an Issue](https://github.com/{project_slug}/issues/new) to discuss the idea first. |
| 55 | + |
| 56 | +If you're new to our project and looking for some way to make your first contribution, look for |
| 57 | +Issues labelled `good first contribution`. |
| 58 | + |
| 59 | +# Contribution Checklist |
| 60 | + |
| 61 | +- [x] Clean, simple, well styled code |
| 62 | +- [x] Commits should be atomic and messages must be descriptive. Related issues should be mentioned by Issue number. |
| 63 | +- [x] Comments |
| 64 | + - Module-level & function-level comments. |
| 65 | + - Comments on complex blocks of code or algorithms (include references to sources). |
| 66 | +- [x] Tests |
| 67 | + - The test suite, if provided, must be complete and pass |
| 68 | + - Increase code coverage, not versa. |
| 69 | + - 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. |
| 70 | +- [x] Dependencies |
| 71 | + - Minimize number of dependencies. |
| 72 | + - Prefer Apache 2.0, BSD3, MIT, ISC and MPL licenses. |
| 73 | +- [x] Reviews |
| 74 | + - Changes must be approved via peer code review |
| 75 | + |
| 76 | +# Creating a Pull Request |
| 77 | + |
| 78 | +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). |
| 79 | +3. **Clone** the forked repo to your machine. |
| 80 | +4. **Create** a new branch to contain your work (e.g. `git br fix-issue-11`) |
| 81 | +4. **Commit** changes to your own branch. |
| 82 | +5. **Push** your work back up to your fork. (e.g. `git push fix-issue-11`) |
| 83 | +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. |
| 84 | +7. **Sign** the Salesforce CLA (you will be prompted to do so when submitting the Pull Request) |
| 85 | + |
| 86 | +> **NOTE**: Be sure to [sync your fork](https://help.github.com/articles/syncing-a-fork/) before making a pull request. |
| 87 | +
|
| 88 | +# Contributor License Agreement ("CLA") |
| 89 | +In order to accept your pull request, we need you to submit a CLA. You only need |
| 90 | +to do this once to work on any of Salesforce's open source projects. |
| 91 | + |
| 92 | +Complete your CLA here: <https://cla.salesforce.com/sign-cla> |
| 93 | + |
| 94 | +# Issues |
| 95 | +We use GitHub issues to track public bugs. Please ensure your description is |
| 96 | +clear and has sufficient instructions to be able to reproduce the issue. |
| 97 | + |
| 98 | +# Code of Conduct |
| 99 | +Please follow our [Code of Conduct](CODE_OF_CONDUCT.md). |
| 100 | + |
| 101 | +# License |
| 102 | +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) |
0 commit comments