# Report an Issue Help us make UI-Router better! If you think you might have found a bug, or some other weirdness, start by making sure it hasn't already been reported. You can [search through existing @uirouter/angular issues](https://github.com/ui-router/ng2?search?q=wat%3F&type=Issues) and [@uirouter/core issues](https://github.com/ui-router/core?search?q=wat%3F&type=Issues) to see if someone's reported one similar to yours. If not, then [create a plunkr](http://bit.ly/UIR-Plunk) that demonstrates the problem (try to use as little code as possible: the more minimalist, the faster we can debug it). Next, [create a new issue](https://github.com/ui-router/ng2/issues/new) that briefly explains the problem, and provides a bit of background as to the circumstances that triggered it. Don't forget to include the link to that plunkr you created! **Note**: If you're unsure how a feature is used, or are encountering some unexpected behavior that you aren't sure is a bug, it's best to talk it out on [StackOverflow](http://stackoverflow.com/questions/ask?tags=angular2,@uirouter/angular) before reporting it. This keeps development streamlined, and helps us focus on building great software. | Issues only! | | -------------------------------------------------------------------------------------------------------------------------------------------------- | | Please keep in mind that the issue tracker is for _issues_. Please do _not_ post an issue if you need help or support. Instead, use StackOverflow. | # Contribute **(1)** See the **[Developing](#developing)** section below, to get the development version of UI-Router up and running on your local machine. **(2)** Check out the [roadmap](https://github.com/ui-router/ng2/milestones) to see where the project is headed, and if your feature idea fits with where we're headed. **(3)** If you're not sure, [open an RFC](https://github.com/ui-router/ng2/issues/new?title=RFC:%20My%20idea) to get some feedback on your idea. **(4)** Finally, commit some code and open a pull request. Code & commits should abide by the following rules: - _Always_ have test coverage for new features (or regression tests for bug fixes), and _never_ break existing tests - Commits should represent one logical change each; if a feature goes through multiple iterations, squash your commits down to one - Make sure to follow the [Angular commit message format](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format) so your change will appear in the changelog of the next release. - Changes should always respect the coding style of the project # Developing `ui-router-ng2` uses npm and webpack. ## Fetch the source code The code for `ui-router-ng2` is split into two source repositories: - [UI-Router Core](https://github.com/ui-router/core) (`@uirouter/core` on npm) - [UI-Router for Angular 2](https://github.com/ui-router/ng2) (`ui-router-ng2` on npm) Clone both repositories into directories next to each other. ``` mkdir uirouter cd uirouter git clone https://github.com/ui-router/ng2.git git clone https://github.com/ui-router/core.git ``` ## Install dependencies Use `npm` to install the development dependencies for each repository. ``` cd core npm install cd ../ng2 npm install cd .. ``` ## Link the directories This step is necessary if you need to modify any code in `@uirouter/core`. Using `npm`, link `@uirouter/core` into `ui-router-ng2` ``` cd core npm link cd ../ng2 npm link @uirouter/core cd .. ``` After executing these steps, your local copy of `@uirouter/angular` will be built using your local copy of `@uirouter/core` instead of the prebuilt version specified in `package.json`. ## Develop - `npm run build`: Perform a full build. - `npm run test:watch`: Continuously builds and runs tests when source or tests change. If you make changes in `@uirouter/core`, run these scripts before rebuilding or re-testing `@uirouter/angular`: - `npm run build`: Compiles `@uirouter/core` code - `npm run watch`: Continuously builds the `@uirouter/core` code when sources change. ## Updating Angular Versions See notes in [add_support_for_new_angular_version.txt](./add_support_for_new_angular_version.txt) for steps to update the angular dependency version