Please take a second to read over this before opening an issue. Providing complete information upfront will help us address any issue (and ship new features!) faster.
We greatly appreciate bug fixes, documentation improvements and new features, however when contributing a new major feature, it is a good idea to idea to first open an issue, to make sure the feature it fits with the goal of the project, so we don't waste your or our time.
The Clinic.js project has a Code of Conduct that all contributors are expected to follow.
A perfect bug report would have the following:
- Summary of the issue you are experiencing.
- Details on what versions of Node.js and Clinic.js you have (
node -v
andclinic -v
). - A simple repeatable test case for us to run. Please try to run through it 2-3 times to ensure it is completely repeatable.
We would like to avoid issues that require a follow up questions to identify the bug. These follow ups are difficult to do unless we have a repeatable test case.
In addition, it is helpful if you upload your Clinic.js data to help us diagnose your issues.
Use the clinic upload
tool to do this:
clinic upload 10000.clinic-doctor
After the upload has finished, add the printed upload id to your issue.
All contributions should fit the standard linter, and pass the tests. You can test this by running:
npm test
In addition, make sure to add tests for any new features. You can test the test coverage by running:
npm run ci-cov
For quick setup use demo and examples
We have also prepared a wide range of "real" samples which can be used during development. These samples can be downloaded from here (930MB). They contain profiles of Acmeair, Udaru, Loopback and ApostropheCMS.
After unzipping the tarball, give the folder a name (e.g. node-clinic-bubbleprof-samples
) and run the visualize-all command from your local Bubbleprof folder (command below assumes folders are side by side):
npm run visualize-all ../node-clinic-bubbleprof-samples/*.clinic-bubbleprof
Generating all of those samples at once may take a while. It is also possible to generate a single sample or a small selection of them
npm run visualize-all ../node-clinic-bubbleprof-samples/15896.clinic-bubbleprof ../node-clinic-bubbleprof-samples/7078.clinic-bubbleprof
npm run visualize-all
is very useful at quickly iterating over a sample - or a set of samples - as it runs analysis
and vizualizer
without the need to collect
the data again. Simply reload the html after the command has finished to see your changes.
Make sure to get a :thumbsup:
, +1
or LGTM
from another collaborator before merging a PR. If you aren't sure if a release should happen, open an issue.
Release process:
npm test
npm version <major|minor|patch>
git push && git push --tags
npm publish
All contributions to the Clinic.js project are submitted to the project under the MIT license.
The Clinic.js project uses a Contribution Certification that is derived from the Developer Certificate of Origin. It is important to note that the Contribution Certification is not the same as the standard DCO and we do not use the term "DCO" or "Developer Certificate of Origin" to describe it to avoid confusion. Nevertheless, the intent and purpose is effectively the same.
Every contributor agrees to the Contribution Certification by including a
Signed-off-by
statement within each commit. The statement must include
the contributor's real full name and email address.
Signed-off-by: J. Random User <j.random.user@example.com>
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 and hereby submit it under the MIT license; 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 MIT License; 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 license(s) involved.