Rush StackShopBlogEvents
Skip to main content

Getting started

Most Rush Stack projects are developed in the main rushstack monorepo on GitHub:

We also maintain a number of supporting repositories for documentation and code samples:

GitHub repoContents
microsoft/rushstackThe main monorepo
microsoft/rushstack-websitesDocusaurus websites for,,,,,, and
microsoft/rush-exampleA barebones example repository for testing Rush commands
microsoft/rushstack-samplesA collection of code samples using the Rush Stack tooling
microsoft/tsdocTSDoc-related projects are developed in this standalone monorepo
microsoft/lockfile-explorer-demosDemo branches for the Lockfile Explorer tutorials

Setting up your machine

  • Node.js 14 / 16: We recommend to use nvm (for Mac/Linux) or nvm-windows (for Windows) so that you can easily switch between different Node.js engine verisons. When installing Node.js, make sure to first uninstall any previous versions and clean up their files. See FAQ: After installing Rush, why am I stilling see the old version? for more about this.

  • Visual Studio Code (recommended): You can use any editor, but we suggest VS Code. It's great!

Building the projects

We use the Rush tool for building projects in the rushstack monorepo.

  1. Make sure you have the latest release of Rush:
C:\>npm install -g @microsoft/rush
  1. Clone the repo:
C:\Repos>git clone
  1. Use rush to install the package dependencies:
C:\Repos>cd rushstack
C:\Repos\rushstack>rush install

(Note: if you don't have a GitHub email configured, add the --bypass-policy option.)

  1. Rebuild all the projects in the repo:
C:\Repos\rushstack>rush rebuild
  1. If you want to build just one project:
C:\Repos\rushstack>cd libraries\rush-core-library
C:\Repos\rushstack\libraries\rush-core-library>rushx build

Important: You generally should not use commands like npm install in a Rush repo. See the Rush documentation for more information about this tool.

Submitting a Pull Request

We welcome contributions! To submit a feature for one of the rushstack projects:

  1. Fork the repo.
  2. Create a Git branch and commit your changes.
  3. If you modified any package.json files, run rush update to make sure your package-lock.json file is up to date. Commit any changes made to that file.
  4. Before creating your PR, run rush change; if prompted, enter a change log message, and commit the files that get created.
  5. Create a pull request
  6. If your PR primarily affects a single project, add the project name as a prefix to your PR title. For example: "[api-extractor] Added a new API feature" or "[node-core-libary] Fixed a bug in the library".

Someone should review your PR within a few days. Be aware that the Rush Stack maintainers manage large corporate monorepos, which can be very distracting work. If nobody's responding to PR comments, try asking in the #contributor-helpline chat room. We greatly appreciate community contributions and do want to get your PR reviewed!