All are encouraged to contribute by way of submitting new Issues and Pull-Requests to help improve the quality of projects in the Adminion org. Please see individual sections below regarding different types of contributions.
The master barnch is for the bleeding edge of development, the next version. It is used for incubation of breaking changes and new features; therefore has an unstable API: features may be added or removed at any time and may be poorly documented (if at all). Commits directly to master should be avoided in favor of using feature branches or bigfix branches and opening pull requests when the branches have matured.
Once the version on master has matured and the API has become stable, a stable release branch for that major version (v2.x) will be cut from master, the major version released from that branch (v2.x -> v2.0.0) and master will be updated to reflect work on the next semver-major verison (v3.x). Backward-compatible commits from master are cherry-picked into stable release branches (v2.x, v1.x) where appropriate. Minor and patch releases are made from their respective stable branches. (v2.x -> v2.0.1...v2.x -> 2.1.0)
If you believe you have found a bug, please create an issue describing the bug, code that reproduces it, and the version of the project you are using. If possible, please provide a pull request to fix or suggest how the bug may be resolved.
Please follow the Pull Request Guidelines.
Please follow the Pull Request Guidelines.
Breaking semver-major changes will only be considered if they dramatically improve stability, performance, and/or usability with minimal code modifications for end-users. Please follow the Pull Request Guidelines.
- Fork the project repo
- Create a new branch from
master
. - Implement your feature/bugfix in that branch (please provide jsdoc compatible API documentation for new features and don't forget to credit yourself with the @author tag!).
- Verify your feature/bugfix passes all of your tests as well as all existing tests or fix them if the tests are the issue.
- Rebase your branch on top of
adminion:master
to include others' changes. - Again, verify your feature/bugfix still passes all tests after rebasing.
- Regenerate API Documentation and run a Coverage Report:
npm run docs && npm run coverage
. - Commit and push your branch to your repo.
- Make a pull request from your branch into
adminion:master
.
If myself or others incorporate bugfixes/minor changes before reviewing your PR, you may be asked to rebase again prior to merging your PR.
Tests are implemented using Mocha and a test coverage reports are generated by Istanbul.
Run the tests with:
$ npm test
and generate a coverage report using:
npm run coverage
Test files are located in tests/
and the coverage reports will be generated in coverage/
.
Tests help us find and prevent bugs. They should be thorough, but not redundant. Please always include tests with your new features and ensure you patches pass existing tests. PRs with failing tests will not be merged; furthermore, PRs that decrease a project's test coverage will likely not be merged. See Testing and Coverage.