Branch `publish/auto-release` should be automatically updated with the latest changelog. Give it 5min after merging a PR or check the status of the [Release action](https://github.com/Azure/autorest/actions/workflows/release.yml)
Then go to https://github.com/Azure/autorest/pull/new/publish/auto-release and create this PR.
1. Install [rush.js](https://rushjs.io/pages/intro/get_started/) using
```bash
npm install -g @microsoft/rush
```
2. Install dependencies
```bash
rush update
```
3. Build
```bash
rush build
# or to do a force rebuild.
rush rebuild
```
## Run in watch mode
When working on autorest it is recommended to have the compiler run in watch mode. This means that on file changes typescript will automatically recompile and produce the output.
```bash
# Run for all packages.
rush watch
# Run for a specific package.
npm run watch
```
## Test
Test framework we used is [jest](https://jestjs.io/)
1. Run `rush change` and describe the change and if it should be a `major`, `minor` or `patch` version.
-`major`: If there is a breaking change.(Except `autorest`, `@autorest/core` and `@autorest/modelefour` packages which should use minor bump for that.)
-`minor`: If there is a new feature but not breaking(Except `autorest`, `@autorest/core` and `@autorest/modelefour` packages)
-`patch`: For any bug fix.
2. Run `rush format` to ensure the code is formatted correctly.