The Rush Stack projects are developed in the rushstack monorepo on GitHub:
Setting up your machine
NodeJS 8 or newer: We recommend to use nvm (for Mac/Linux) or nvm-windows (for Windows) so that you can easily switch between different NodeJS engine verisons. When installing NodeJS, 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.
- Make sure you have the latest release of Rush:
C:\>npm install -g @microsoft/rush
- Clone the repo:
C:\Repos>git clone https://github.com/microsoft/rushstack
- Use rush to install the package dependencies:
C:\Repos>cd rushstack C:\Repos\rushstack>rush install
- Rebuild all the projects in the repo:
- 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:
- Fork the repo.
- Create a Git branch and commit your changes.
- If you modified any package.json files, run
rush updateto make sure your package-lock.json file is up to date. Commit any changes made to that file.
- Before creating your PR, run
rush change; if prompted, enter a change log message, and commit the files that get created.
- Create a pull request
- 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 day or so. If nobody is responding, you can contact the Rush Stack developers in the Gitter chat room.