🎉🏅 Thanks for helping us improve this project! 🙏
This document outlines some of the practices we care about. If you have any questions or suggestions about the process, feel free to open an issue.
The Node.js Code of Conduct applies to this repo.
This project falls under the governance of the Node.js Diagnostics WG as described at https://github.com/nodejs/diagnostics/blob/master/GOVERNANCE.md.
By making a contribution to this project, I certify that:
(a) 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
(b) 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
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
(d) 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.
If you find any mistakes in the docs or a bug in the code, please open an issue in Github so we can look into it. You can also create a PR fixing it yourself of course.
If you report a bug, please follow these guidelines:
For small documentation changes, you can use Github's editing feature. The only thing to keep in mind is to prefix the commit message with "docs: ". The default commit message generated by Github will lead to a failing CI build.
For larger updates to the documentation it might be better to follow the instructions for contributing code below.
Note: If you're planning on making substantial changes, please open an issue first to discuss your idea. Otherwise you might end up investing a lot of work only to discover that it conflicts with plans the maintainers might have.
The general steps for creating a pull request are:
master. We often prefix the branch name with our initials, e.g. jk-a-change.npm install to install the dependencies.npm test. This will also run style checks and other validations. You might see errors about uncommitted files. This is expected until you commit your changes.git add . and git commit. Please follow the commit message conventions described below.In addition to any linting rules the project might include, a few general rules of thumb:
tree.js module that contains tree traversal-related helpers than a helpers.js module.Please follow the angular commit message conventions. We use an automated tool for generating releases that depends on the conventions to determine the next version and the content of the changelog. Commit messages that don't follow the conventions will cause npm test (and thus CI) to fail.
The short summary - a commit message should look like this:
<type>: <subject> <body> <references> <footer>
Everything but the first line is optional. The empty lines between the different parts are required.
<type>: One of the following:<subject>: A good git commit message subject.<body>: Motivation for the change and any context required for understanding the choices made. Just like the subject, it should use imperative mood.<references>: Any URLs relevant to the PR go here. Use one line per URL and prefix it with the kind of relationship, e.g. "Closes: " or "See: ". If you are referencing an issue in your commit body or PR description, never use #123 but the full URL to the issue or PR you are referencing. That way the reference is easy to resolve from the git history without having to “guess” the correct link even if the commit got cherry-picked or merged into a different project.<footer>: This part only applies if your commit introduces a breaking change. It's important this is present, otherwise the major version will not increase. See below for an example.A feature that introduces a breaking change:
feat: Support --yes CLI option For existing projects all prompts can be inferred automatically. Manual confirmation for each default provides no value in that case. Closes https://github.com/my/project/issues/123 BREAKING CHANGE: This removes support for interactive password entry. Users will have to login beforehand.
A simple bug fix:
fix: Handle multi-byte characters in search logic