53 lines
3.0 KiB
Markdown
53 lines
3.0 KiB
Markdown
|
|
# Contributing to angular-breadcrumb
|
||
|
|
|
||
|
|
I am very glad to see this project living with PR from contributors who trust in it. Here is some guidelines to keep the contributions useful and efficient.
|
||
|
|
|
||
|
|
## Development hints
|
||
|
|
|
||
|
|
### Installation
|
||
|
|
- Checkout the repository
|
||
|
|
- Run `npm install`
|
||
|
|
- Run `bower install`
|
||
|
|
|
||
|
|
### Test running
|
||
|
|
This module uses the classic AngularJS stack with:
|
||
|
|
|
||
|
|
- Karma (test runner)
|
||
|
|
- Jasmine (assertion framework)
|
||
|
|
- angular-mocks (AngularJS module for testing)
|
||
|
|
|
||
|
|
Run the test with the grunt task `grunt test`. It runs the tests with different versions of AngularJS.
|
||
|
|
|
||
|
|
### Test developing
|
||
|
|
Tests are build around modules with a specific `$stateProvider` configuration:
|
||
|
|
|
||
|
|
- [Basic configuration](https://github.com/ncuillery/angular-breadcrumb/blob/master/test/mock/test-modules.js#L6): Basic definitions (no template, no controller)
|
||
|
|
- [Interpolation configuration](https://github.com/ncuillery/angular-breadcrumb/blob/master/test/mock/test-modules.js#L21): States with bindings in `ncyBreadcrumbLabel`
|
||
|
|
- [HTML configuration](https://github.com/ncuillery/angular-breadcrumb/blob/master/test/mock/test-modules.js#L36): States with HTML in `ncyBreadcrumbLabel`
|
||
|
|
- [Sample configuration](https://github.com/ncuillery/angular-breadcrumb/blob/master/test/mock/test-modules.js#L41): Bridge towards the sample app configuration for using in tests
|
||
|
|
- [UI-router's configuration](https://github.com/ncuillery/angular-breadcrumb/blob/master/test/mock/test-ui-router-sample.js#L9): Clone of the UI-router sample app (complemented with breadcrumb configuration)
|
||
|
|
|
||
|
|
Theses modules are loaded by Karma and they are available in test specifications.
|
||
|
|
|
||
|
|
Specifications are generally related to the directive `ncyBreadcrumb` or the service `$breadcrumb`.
|
||
|
|
|
||
|
|
### Sample
|
||
|
|
If you are not familiar with JS testing. You can run the [sample](http://ncuillery.github.io/angular-breadcrumb/#/sample) locally for testing purposes by using `grunt sample`. Sources are live-reloaded after each changes.
|
||
|
|
|
||
|
|
## Submitting a Pull Request
|
||
|
|
- Fork the [repository](https://github.com/ncuillery/angular-breadcrumb/)
|
||
|
|
- Make your changes in a new git branch following the coding rules below.
|
||
|
|
- Run the grunt default task (by typing `grunt` or `grunt default`): it will run the tests and build the module in `dist` directory)
|
||
|
|
- Commit the changes (including the `dist` directory) by using the commit conventions explained below.
|
||
|
|
- Push and make the PR
|
||
|
|
|
||
|
|
|
||
|
|
## Coding rules
|
||
|
|
- When making changes on the source file, please check that your changes are covered by the tests. If not, create a new test case.
|
||
|
|
|
||
|
|
|
||
|
|
## Commit conventions
|
||
|
|
angular-breadcrumb uses the same strict conventions as AngularJS and UI-router. These conventions are explained [here](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-git-commit-guidelines).
|
||
|
|
|
||
|
|
It is very important to fit these conventions especially for types `fix` and `feature` which are used by the CHANGELOG.md generation (it uses the [grunt-conventional-changelog](https://github.com/btford/grunt-conventional-changelog)).
|