Skip to content

Latest commit

 

History

History
134 lines (89 loc) · 2.86 KB

File metadata and controls

134 lines (89 loc) · 2.86 KB

Developping autorest

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

Then go to https://github.com/Azure/autorest/pull/new/publish/auto-release and create this PR.

Requirements

  • node (LTS recommended)
  • python 3.x
  • pnpm (enabled via corepack: corepack enable)

Optional recommendation:

  • VSCode with the following extensions:

    • Prettier
    • ESLint
    • EditorConfig

First build

  1. Enable corepack (if not already)
corepack enable
  1. Install dependencies
pnpm install
  1. Build
pnpm build

# or to do a force rebuild.
pnpm 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.

# Run for all packages.
pnpm watch
# Run for a specific package.
pnpm run watch

Test

Test framework we used is jest

To run the test on the built product you have 2 options:

  1. Run all the tests using
pnpm test:ci
  1. 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 pnpm test:ci)
npm run test:ci

Other commands

  • Linting
# Run for all packages.
pnpm lint
# Run for a specific package.
npm run lint
  • Cleaning
# Run for all packages.
pnpm clean
# Run for a specific package.
npm run clean

Use your local changes

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

Before making a pull request

Steps to do before making a pull request:

  1. Run pnpm 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 pnpm format to ensure the code is formatted correctly.