Skip to content

Commit e16481f

Browse files
committed
Add contributing.md for Salesforce open-source compliance
1 parent 5d68c77 commit e16481f

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

CONTRIBUTING.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
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

Comments
 (0)