🇺🇸🎉 Thank you for your support! 🎉🇺🇸
The following is a set of guidelines for contributing code to the campaign. You can find all public projects related to the campaign hosted in the DerekKent group on GitLab and the DerekKent organization on GitHub.
These are just guidelines, not rules. Use your best judgment and feel free to propose changes to this document in a merge request.
What should I know before I get started?
This campaign is welcoming of everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, personal appearance, race, religion, or sexual identity and orientation. Volunteers and contributors to this campaign are expected to foster and uphold that welcoming environment.
Remember there's another person on the other side of the screen.
This project is licensed under the CC0 1.0 Universal License, which effectively means that it waives all Copyright claims and is part of the public domain. By contributing to this project, you agree to release all such contributions under the CC0 1.0 license.
That means others may freely reuse and redistribute your contributions for any purposes without being required to provide you attribution or compensation (although nor are they precluded from doing so).
A humans.txt file is generated with every release from the project's git log as a small token of thanks to everyone who has generously donated their time, sweat, and code to our success.
You don't have to know how to code to contribute. We make every effort to review and test code, but with the huge variety of different devices and browsers, bugs are an inevitability. If you find an issue, chances are other people are going to be affected by it as well. By reporting issues, you help us improve the user experience and better reach more people to spread our message.
Following the below guidelines helps us more quickly understand and address the issue you're reporting.
- Check the list of open issues to see if somebody else has already reported it.
- Include as many details as possible in your report.
- Read through the recommendations for submitting a good bug report.
- Review the recommended bug reporting template. You don't have to follow it exactly and some sections may not be relevant, but it will help you formulate your report.
Bugs are tracked as GitLab issues. After you've determined you're reporting a new issue, create an issue and provide the following:
- A clear and descriptive title
- The URL(s) (web address) where the issue can be replicated, if applicable
- The exact steps to follow to reproduce the problem
- A description of the current behavior you observed and the expected behavior
- Screenshots of the steps and/or issue, as applicable
- The name and version of the browser(s) you used
- The name and version of the Operating System you used
- A printout of anything logged to the console (if you know how)
[Short description of problem here]
URL: [URL where the problem can be seen here]
**Reproduction Steps:**
1. [First Step]
2. [Second Step]
3. [Other Steps...]
**Expected behavior:**
[Describe expected behavior here]
**Observed behavior:**
[Describe observed behavior here]
**Screenshots**
![Screenshots which demonstrate the problem](url)
**Browser and version:** [Enter the browser and version used here]
**OS and version:** [Enter OS name and version used here]
**Additional information:**
* Problem can be reliably reproduced, doesn't happen randomly: [Yes/No]
Enhancements can be big or small. Is there a language you think the project should be translated into? Let us know! Do you think the font size on a page is too small to read easily? That's useful feedback too! If you have an idea to improve the project, or just want to knock around a few ideas, don't hesitate to submit your thoughts.
Following the below guidelines helps us best understand and implement your idea.
- Check the list of open issues to see if somebody else has already proposed the same or similar idea. You can always add additional comments on to that thread if you want to expand on or disagree with a suggestion.
- Read through the recommendations for submitting a good enhancement suggestion.
- Review the recommended bug reporting template. You don't have to follow it exactly and some sections may not be relevant, but it will help you formulate your suggestion.
Enhancement suggestions are tracked as GitLab issues. After you've determined you're suggesting a new enhancement, create an issue and provide the following:
- A clear and descriptive title
- Steps explaining the enhancement, if applicable
- A detailed explanation of the suggested enhancement and current behavior
- Mockups of the suggested enhancement, if applicable and you're able
- An explanation why this enhancement would be useful
If you'd like to suggest a change to a policy position or suggest a position be taken on a policy that isn't covered, you're welcome to open an issue here for public discussion.
[Short description of suggestion]
**Steps which explain the enhancement**
1. [First Step]
2. [Second Step]
3. [Other Steps...]
**Current and suggested behavior**
[Describe current and suggested behavior here]
**Why would the enhancement be useful to most users**
[Explain why the enhancement would be useful]
- Include screenshots in your merge request whenever possible.
- Follow the JavaScript and SCSS styleguides.
- End files with a newline.
- Create well-crafted git commits that provide a useful and accurate history.
- Pass all linters and Ava unit tests (
npm test
).
- Limit the subject (first) line to 50 characters or less.
- Capitalize the subject line.
- Use the imperative mood in the subject line.
- Do not end the subject line with a period.
- Separate subject from body with a blank line.
- Wrap the body at 72 characters.
- Use the body to explain what and why vs. how (if useful).
- Reference related issues and merge requests.
Read more about how to write a good git commit message.
- Prefer ES2015 classes over prototypes.
- Use strict equality checks (
===
and!==
). - Prefer arrow functions
=>
, over thefunction
keyword. - Prefer function definitions over function expressions.
- Use semicolons at the end of each statement.
- Prefer single quotes.
- Use
PascalCase
for classes,lowerCamelCase
for variables and functions,SCREAMING_SNAKE_CASE
for constants, and symbols for private variables and functions. - Prefer template strings over string concatenation.
- Prefer promises over callbacks.
- Prefer array functions like
map
andforEach
overfor
loops. - Use
const
for declaring variables that will never be re-assigned, andlet
otherwise. - Avoid
var
to declare variables. - Use a trailing comma after each item in a multi-line array or object literal, except the last item.
- Use the one true brace style.
- Indent using 4 spaces.
- List properties in alphabetical order.
- Avoid deeply nesting rules and selectors.
- Prefer flexible, scalable units (rem, em, vw...) over px.
- Prefer rem over em unless you really mean em.
- Include a leading zero for magnitudes between -1 and 1.
- Utilize globally defined variables wherever possible.
- Ensure rules are properly namespaced to a page when appropriate.
- Indent using 4 spaces.
Label Name | Search Link | Description |
---|---|---|
bug |
search | Confirmed or likely bugs. |
accessibility |
search | Issues impacting accessibility. |
enhancement |
search | Suggested enhancements. |
policy |
search | Suggested policy change or new policy position. |
question |
search | Questions more than bug reports or feature requests. |
feedback |
search | General feedback more than bug reports or feature requests. |
help-wanted |
search | Issues where community help would be appreciated. |
more-information-needed |
search | More information needs to be collected about these problems or feature requests (e.g. steps to reproduce). |
needs-reproduction |
search | Likely bugs that have yet to be reliably reproduced. |
blocked |
search | Issues blocked by other issues. |
duplicate |
search | Issues which are duplicates of other issues. |
wontfix |
search | Issues where no changes will be made for reasons addressed in comments on the issue. |
invalid |
search | Issues which aren't valid (e.g. user errors). |
Label Name | Search Link | Description |
---|---|---|
documentation |
search | Related to any type of documentation. |
performance |
search | Related to performance. |
security |
search | Related to security. |
ui |
search | Related to visual design. |
chrome |
search | Related to viewing the site on Chrome. |
safari |
search | Related to viewing the site on Safari. |
firefox |
search | Related to viewing the site on Firefox. |
edge |
search | Related to viewing the site on Edge. |
ie |
search | Related to viewing the site on IE. |
git |
search | Related to Git functionality (e.g. problems with gitignore). |
gulp |
search | Related to Gulp functionality. |
Label Name | Search Link | Description |
---|---|---|
work-in-progress |
search | Merge requests which are still being worked on. |
needs-review |
search | Merge requests which need code review. |
under-review |
search | Merge requests actively under review. |
requires-changes |
search | Merge requests which need changes based on review comments. |
needs-testing |
search | Merge requests which need manual testing. |