/rushstack

Monorepo for tools developed by the Rush Stack community

Primary LanguageTypeScriptOtherNOASSERTION

https://rushstack.io/

Zulip chat room   Build Status

The home for projects maintained by the Rush Stack community. Our mission is to develop reusable tooling for large scale TypeScript monorepos.

Open in GitHub Codespaces

Open in VS Code web view

Documentation Links

  • What is Rush Stack? - learn about the mission behind these projects
  • API reference - browse API documentation for NPM packages
  • Zulip chat room - chat with the Rush Stack developers
  • Rush - a build orchestrator for large scale TypeScript monorepos
  • Heft - our recommended tool that integrates with Rush
  • API Extractor - create .d.ts rollups and track your TypeScript API signatures
  • API Documenter - use TSDoc comments to publish an API documentation website
  • Lockfile Explorer - investigate and solve version conflicts for PNPM lockfiles
  • TSDoc - the standard for doc comments in TypeScript code

Related Repos

These GitHub repositories provide supplementary resources for Rush Stack:

  • rushstack-samples - a monoprepo with sample projects that illustrate various project setups, including how to use Heft with other popular JavaScript frameworks
  • rush-example - a minimal Rush repo that demonstrates the fundamentals of Rush without relying on any other Rush Stack tooling
  • rushstack-websites - Docusaurus monorepo for our websites

Published Packages

Folder Version Changelog Package
/apps/api-documenter npm version changelog @microsoft/api-documenter
/apps/api-extractor npm version changelog @microsoft/api-extractor
/apps/heft npm version changelog @rushstack/heft
/apps/lockfile-explorer npm version changelog @rushstack/lockfile-explorer
/apps/rundown npm version changelog @rushstack/rundown
/apps/rush npm version changelog @microsoft/rush
/apps/trace-import npm version changelog @rushstack/trace-import
/eslint/eslint-bulk npm version changelog @rushstack/eslint-bulk
/eslint/eslint-config npm version changelog @rushstack/eslint-config
/eslint/eslint-patch npm version changelog @rushstack/eslint-patch
/eslint/eslint-plugin npm version changelog @rushstack/eslint-plugin
/eslint/eslint-plugin-packlets npm version changelog @rushstack/eslint-plugin-packlets
/eslint/eslint-plugin-security npm version changelog @rushstack/eslint-plugin-security
/heft-plugins/heft-api-extractor-plugin npm version changelog @rushstack/heft-api-extractor-plugin
/heft-plugins/heft-dev-cert-plugin npm version changelog @rushstack/heft-dev-cert-plugin
/heft-plugins/heft-jest-plugin npm version changelog @rushstack/heft-jest-plugin
/heft-plugins/heft-lint-plugin npm version changelog @rushstack/heft-lint-plugin
/heft-plugins/heft-localization-typings-plugin npm version changelog @rushstack/heft-localization-typings-plugin
/heft-plugins/heft-sass-plugin npm version changelog @rushstack/heft-sass-plugin
/heft-plugins/heft-serverless-stack-plugin npm version changelog @rushstack/heft-serverless-stack-plugin
/heft-plugins/heft-storybook-plugin npm version changelog @rushstack/heft-storybook-plugin
/heft-plugins/heft-typescript-plugin npm version changelog @rushstack/heft-typescript-plugin
/heft-plugins/heft-webpack4-plugin npm version changelog @rushstack/heft-webpack4-plugin
/heft-plugins/heft-webpack5-plugin npm version changelog @rushstack/heft-webpack5-plugin
/libraries/api-extractor-model npm version changelog @microsoft/api-extractor-model
/libraries/debug-certificate-manager npm version changelog @rushstack/debug-certificate-manager
/libraries/heft-config-file npm version changelog @rushstack/heft-config-file
/libraries/load-themed-styles npm version changelog @microsoft/load-themed-styles
/libraries/localization-utilities npm version changelog @rushstack/localization-utilities
/libraries/lookup-by-path npm version changelog @rushstack/lookup-by-path
/libraries/module-minifier npm version changelog @rushstack/module-minifier
/libraries/node-core-library npm version changelog @rushstack/node-core-library
/libraries/operation-graph npm version changelog @rushstack/operation-graph
/libraries/package-deps-hash npm version changelog @rushstack/package-deps-hash
/libraries/package-extractor npm version changelog @rushstack/package-extractor
/libraries/rig-package npm version changelog @rushstack/rig-package
/libraries/rush-lib npm version @microsoft/rush-lib
/libraries/rush-sdk npm version @rushstack/rush-sdk
/libraries/stream-collator npm version changelog @rushstack/stream-collator
/libraries/terminal npm version changelog @rushstack/terminal
/libraries/tree-pattern npm version changelog @rushstack/tree-pattern
/libraries/ts-command-line npm version changelog @rushstack/ts-command-line
/libraries/typings-generator npm version changelog @rushstack/typings-generator
/libraries/worker-pool npm version changelog @rushstack/worker-pool
/rigs/heft-node-rig npm version changelog @rushstack/heft-node-rig
/rigs/heft-web-rig npm version changelog @rushstack/heft-web-rig
/rush-plugins/rush-amazon-s3-build-cache-plugin npm version @rushstack/rush-amazon-s3-build-cache-plugin
/rush-plugins/rush-azure-storage-build-cache-plugin npm version @rushstack/rush-azure-storage-build-cache-plugin
/rush-plugins/rush-http-build-cache-plugin npm version @rushstack/rush-http-build-cache-plugin
/rush-plugins/rush-redis-cobuild-plugin npm version @rushstack/rush-redis-cobuild-plugin
/rush-plugins/rush-resolver-cache-plugin npm version @rushstack/rush-resolver-cache-plugin
/rush-plugins/rush-serve-plugin npm version @rushstack/rush-serve-plugin
/webpack/hashed-folder-copy-plugin npm version changelog @rushstack/hashed-folder-copy-plugin
/webpack/loader-load-themed-styles npm version changelog @microsoft/loader-load-themed-styles
/webpack/loader-raw-script npm version changelog @rushstack/loader-raw-script
/webpack/preserve-dynamic-require-plugin npm version changelog @rushstack/webpack-preserve-dynamic-require-plugin
/webpack/set-webpack-public-path-plugin npm version changelog @rushstack/set-webpack-public-path-plugin
/webpack/webpack-embedded-dependencies-plugin npm version changelog @rushstack/webpack-embedded-dependencies-plugin
/webpack/webpack-plugin-utilities npm version changelog @rushstack/webpack-plugin-utilities
/webpack/webpack-workspace-resolve-plugin npm version changelog @rushstack/webpack-workspace-resolve-plugin
/webpack/webpack4-localization-plugin npm version changelog @rushstack/webpack4-localization-plugin
/webpack/webpack4-module-minifier-plugin npm version changelog @rushstack/webpack4-module-minifier-plugin
/webpack/webpack5-load-themed-styles-loader npm version changelog @microsoft/webpack5-load-themed-styles-loader
/webpack/webpack5-localization-plugin npm version changelog @rushstack/webpack5-localization-plugin
/webpack/webpack5-module-minifier-plugin npm version changelog @rushstack/webpack5-module-minifier-plugin

Unpublished Local Projects

Folder Description
/apps/lockfile-explorer-web Rush Lockfile Explorer: helper project for building the React web application component
/build-tests-samples/heft-node-basic-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-node-jest-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-node-rig-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-serverless-stack-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-storybook-react-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-storybook-react-tutorial-app Building this project is a regression test for heft-storybook-plugin
/build-tests-samples/heft-storybook-react-tutorial-storykit Storybook build dependencies for heft-storybook-react-tutorial
/build-tests-samples/heft-web-rig-app-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-web-rig-library-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/heft-webpack-basic-tutorial (Copy of sample project) Building this project is a regression test for Heft
/build-tests-samples/packlets-tutorial (Copy of sample project) Building this project is a regression test for @rushstack/eslint-plugin-packlets
/build-tests-subspace/rush-lib-test A minimal example project that imports APIs from @rushstack/rush-lib
/build-tests-subspace/rush-sdk-test A minimal example project that imports APIs from @rushstack/rush-sdk
/build-tests-subspace/typescript-newest-test Building this project tests Heft with the newest supported TypeScript compiler version
/build-tests-subspace/typescript-v4-test Building this project tests Heft with TypeScript v4
/build-tests/api-documenter-scenarios Building this project is a regression test for api-documenter
/build-tests/api-documenter-test Building this project is a regression test for api-documenter
/build-tests/api-extractor-d-cts-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-d-mts-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-lib1-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-lib2-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-lib3-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-lib4-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-lib5-test Building this project is a regression test for api-extractor
/build-tests/api-extractor-scenarios Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-01 Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-02 Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-03 Building this project is a regression test for api-extractor
/build-tests/api-extractor-test-04 Building this project is a regression test for api-extractor
/build-tests/eslint-7-11-test This project contains a build test to validate ESLint 7.11.0 compatibility with the latest version of @rushstack/eslint-config (and by extension, the ESLint plugin)
/build-tests/eslint-7-7-test This project contains a build test to validate ESLint 7.7.0 compatibility with the latest version of @rushstack/eslint-config (and by extension, the ESLint plugin)
/build-tests/eslint-7-test This project contains a build test to validate ESLint 7 compatibility with the latest version of @rushstack/eslint-config (and by extension, the ESLint plugin)
/build-tests/eslint-8-test This project contains a build test to validate ESLint 8 compatibility with the latest version of @rushstack/eslint-config (and by extension, the ESLint plugin)
/build-tests/eslint-bulk-suppressions-test Sample code to test eslint bulk suppressions
/build-tests/eslint-bulk-suppressions-test-legacy Sample code to test eslint bulk suppressions for versions of eslint < 8.57.0
/build-tests/hashed-folder-copy-plugin-webpack5-test Building this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 5. NOTE - THIS TEST IS CURRENTLY EXPECTED TO BE BROKEN
/build-tests/heft-copy-files-test Building this project tests copying files with Heft
/build-tests/heft-example-plugin-01 This is an example heft plugin that exposes hooks for other plugins
/build-tests/heft-example-plugin-02 This is an example heft plugin that taps the hooks exposed from heft-example-plugin-01
/build-tests/heft-fastify-test This project tests Heft support for the Fastify framework for Node.js services
/build-tests/heft-jest-preset-test This project illustrates configuring a Jest preset in a minimal Heft project
/build-tests/heft-jest-reporters-test This project illustrates configuring Jest reporters in a minimal Heft project
/build-tests/heft-minimal-rig-test This is a minimal rig package that is imported by the 'heft-minimal-rig-usage-test' project
/build-tests/heft-minimal-rig-usage-test A test project for Heft that resolves its compiler from the 'heft-minimal-rig-test' package
/build-tests/heft-node-everything-esm-module-test Building this project tests every task and config file for Heft when targeting the Node.js runtime when configured to use ESM module support
/build-tests/heft-node-everything-test Building this project tests every task and config file for Heft when targeting the Node.js runtime
/build-tests/heft-parameter-plugin This project contains a Heft plugin that adds a custom parameter to built-in actions
/build-tests/heft-parameter-plugin-test This project exercises a built-in Heft action with a custom parameter
/build-tests/heft-sass-test This project illustrates a minimal tutorial Heft project targeting the web browser runtime
/build-tests/heft-typescript-composite-test Building this project tests behavior of Heft when the tsconfig.json file uses project references.
/build-tests/heft-typescript-v2-test Building this project tests building with TypeScript v2
/build-tests/heft-typescript-v3-test Building this project tests building with TypeScript v3
/build-tests/heft-typescript-v4-test Building this project tests building with TypeScript v4
/build-tests/heft-web-rig-library-test A test project for Heft that exercises the '@rushstack/heft-web-rig' package
/build-tests/heft-webpack4-everything-test Building this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 4
/build-tests/heft-webpack5-everything-test Building this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 5
/build-tests/localization-plugin-test-01 Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly without any localized resources.
/build-tests/localization-plugin-test-02 Building this project exercises @microsoft/localization-plugin. This tests that the loader works correctly with the exportAsDefault option unset.
/build-tests/localization-plugin-test-03 Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly with the exportAsDefault option set to true.
/build-tests/package-extractor-test-01 This project is used by tests in the @rushstack/package-extractor package.
/build-tests/package-extractor-test-02 This project is used by tests in the @rushstack/package-extractor package.
/build-tests/package-extractor-test-03 This project is used by tests in the @rushstack/package-extractor package.
/build-tests/package-extractor-test-04 This project is used by tests in the @rushstack/package-extractor package.
/build-tests/rush-amazon-s3-build-cache-plugin-integration-test Tests connecting to an amazon S3 endpoint
/build-tests/rush-lib-declaration-paths-test This project ensures all of the paths in rush-lib/lib/... have imports that resolve correctly. If this project builds, all lib/**/*.d.ts files in the @microsoft/rush-lib package are valid.
/build-tests/rush-project-change-analyzer-test This is an example project that uses rush-lib's ProjectChangeAnalyzer to
/build-tests/rush-redis-cobuild-plugin-integration-test Tests connecting to an redis server
/build-tests/set-webpack-public-path-plugin-test Building this project tests the set-webpack-public-path-plugin
/build-tests/ts-command-line-test Building this project is a regression test for ts-command-line
/eslint/local-eslint-config An ESLint configuration consumed projects inside the rushstack repo.
/libraries/rush-themed-ui Rush Component Library: a set of themed components for rush projects
/libraries/rushell Execute shell commands using a consistent syntax on every platform
/repo-scripts/doc-plugin-rush-stack API Documenter plugin used with the rushstack.io website
/repo-scripts/generate-api-docs Used to generate API docs for the rushstack.io website
/repo-scripts/repo-toolbox Used to execute various operations specific to this repo
/rigs/local-node-rig A rig package for Node.js projects that build using Heft inside the RushStack repository.
/rigs/local-web-rig A rig package for Web projects that build using Heft inside the RushStack repository.
/rush-plugins/rush-litewatch-plugin An experimental alternative approach for multi-project watch mode
/vscode-extensions/rush-vscode-command-webview Part of the Rush Stack VSCode extension, provides a UI for invoking Rush commands
/vscode-extensions/rush-vscode-extension Enhanced experience for monorepos that use the Rush Stack toolchain
/webpack/webpack-deep-imports-plugin This plugin creates a bundle and commonJS files in a 'lib' folder mirroring modules in another 'lib' folder.

Contributor Notice

This repo welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This repo has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.