node
(LTS recommended)- On windows: Make sure to choose to install the native build dependencies in the setup
- Alternatively follow instruction here https://github.com/nodejs/node-gyp
python
3.x
Optional recommendation:
-
VSCode with the following extensions:
- Prettier
- ESLint
- EditorConfig
- Install rush.js using
npm install -g @microsoft/rush
- Install dependencies
rush update
- Build
rush build
# or to do a force rebuild.
rush rebuild
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.
# Run for all packages.
rush watch
# Run for a specific package.
npm run watch
Test framework we used is jest
To run the test on the built product you have 2 options:
- Run all the tests using
rush test:ci
- Run individual project tests(Recommended when working on test)
# Go to the package directory
cd packages/<type>/<package>/
# Run test in interactive mode
npm test
# Alternatively you can run them once with coverage(Same as rush test:ci)
npm run test:ci
- Linting
# Run for all packages.
rush lint
# Run for a specific package.
npm run lint
- Cleaning
# Run for all packages.
rush clean
# Run for a specific package.
npm run clean
You can tell autorest to use your local changes.
- For
@autorest/core
, use the--version
option
autorest --version:<path-to-repo>/packages/extensions/core
- For
@autorest/modelerfour
, use the--use
option
autorest --use:<path-to-repo>/packages/extensions/modelerfour
- For
autorest itself
, change the command
node <path-to-repo>/packages/apps/autorest/entrypoints/app.js
Steps to do before making a pull request:
-
Run
rush change
and describe the change and if it should be amajor
,minor
orpatch
version.major
: If there is a breaking change.(Exceptautorest
,@autorest/core
and@autorest/modelefour
packages which should use minor bump for that.)minor
: If there is a new feature but not breaking(Exceptautorest
,@autorest/core
and@autorest/modelefour
packages)patch
: For any bug fix.
-
Run
rush format
to ensure the code is formatted correctly.