👍🎉 First off, thanks for taking the time to contribute to nvm
! 🎉👍
We love pull requests and issues, they're our favorite.
The following is a set of guidelines for contributing to nvm
managed by @LJHarb, which is hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
However, before submitting, please review the following:
There are lots of ways to get involved. Here are some suggestions of things we'd love some help with.
You can consider helping out with issues already requiring attention - look for a "help wanted" label.
Explain the problem and include additional details to help maintainers reproduce the problem:
-
Use a clear and descriptive title for the issue to identify the problem.
-
Describe the exact steps which reproduce the problem in as many details as possible. For example, start by explaining which command exactly you used in the terminal. When listing steps, don't just say what you did, but explain how you did it. For example, if you moved the cursor to the end of a line, explain if you used the mouse, or a keyboard shortcut or a command, and if so which one?
-
Provide specific examples to demonstrate the steps. Include links to files or Github projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use Markdown code blocks.
-
Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
-
Explain which behavior you expected to see instead and why.
-
Provide as much context as possible in order to help others verify and ultimately fix the issue. This includes giving us as much details as possible about your environment, so we can more easily confirm the problem.
We are happy to welcome contributions from anyone willing to improve documentation by adding missing information or making it more consistent and coherent.
Please refer to the README for complete instructions how to install, update, as well as troubleshoot nvm
in your environment depending on your Operating System.
- Please include tests. Changes with tests will be merged very quickly.
- Please manually confirm that your changes work in
bash
,sh
/dash
,ksh
, andzsh
. Fast tests do run in these shells, but it's nice to manually verify also. - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc.
- Any time you make a change to your PR, please rebase freshly on top of the default branch. Nobody likes merge commits.
Even if you don't have all of these items covered, please still feel free to submit a PR/issue! Someone else may be inspired and volunteer to complete it for you.
Create a new branch
git checkout -b issue1234
Commit the changes to your branch, including a coherent commit message that follows our standards
git commit -a
Before sending the pull request, make sure your code is running on the latest available code by rebasing onto the upstream source
git fetch upstream
git rebase upstream/main
Verify your changes
npm test
Push your changes
git push origin issue1234
Send the pull request, make requested changes, and get merged.
- Limit the first line of the commit message (message summary) to 72 characters or less.
- Use the present tense ("Add feature" not "Added feature") and imperative mood ("Move cursor to..." not "Moves cursor to...") when providing a description of what you did.
- If your PR addresses an issue, reference it in the body of the commit message.
- See the rest of the conventions here
[Tag]: Short description of what you did
Longer description here if necessary
Fixes #1234
Note: Add co-authors to your commit message for commits with multiple authors
Co-authored-by: Name Here <email@here>
If you have any questions, please contact @LJHarb.
By making a contribution to this project, I certify that:
- The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
- The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
- The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
- I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.