Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
There are a few basic ground-rules for contributors:
- No
--force
pushes or modifying the Git history in any way. - Non-master branches ought to be used for ongoing work.
- External API changes and significant modifications ought to be subject to an internal pull-request to solicit feedback from other contributors.
- Internal pull-requests to solicit feedback are encouraged for any other non-trivial contribution but left to the discretion of the contributor.
- For significant changes wait a full 24 hours before merging so that active contributors who are distributed throughout the world have a chance to weigh in.
- Contributors should attempt to adhere to the prevailing code-style.
Declaring formal releases requires peer review.
- A reviewer of a pull request should recommend a new version number (patch, minor or major).
- Once your change is merged feel free to bump the version as recommended by the reviewer.
- A new version number should not be cut without peer review unless done by the project maintainer.
Even though collaborators may contribute as they see fit, if you are not sure what to do, here's a suggested process:
- Get your branch merged on master
- Run
npm version major
ornpm version minor
ornpm version patch
git push origin master --tags
- If you are a project owner, then
npm publish
- Check open issues for what you want.
- If there is an open issue, comment on it, otherwise open an issue describing your bug or feature with use cases.
- Discussion happens on the issue about how to solve your problem.
- You or a core contributor opens a pull request solving the issue with tests and documentation.
- The pull requests gets reviewed and then merged.
- A new release version get's cut.
- (Disclaimer: Your feature might get rejected.)
This is an experiment and feedback is welcome! This document may also be subject to pull-requests or changes by contributors where you believe you have something valuable to add or change.