Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@microsoft/rush

microsoft3.4mMIT5.155.1TypeScript support: included

A professional solution for consolidating all your JavaScript projects in one Git repo

install, build, publish, fast, incremental, package manager, monorepo, package.json

readme

@microsoft/rush

rush
      https://rushjs.io

Rush makes life easier for JavaScript developers who build and publish many NPM packages at once. If you're looking to consolidate all your projects into a single repo, you came to the right place! Rush is a fast, professional solution for managing this scenario. It gives you:

  • A single NPM install: In one step, Rush installs all the dependencies for all your projects into a common folder. This is not just a "package.json" file at the root of your repo (which might set you up to accidentally require() a sibling's dependencies). Instead, Rush uses symlinks to reconstruct an accurate "node_modules" folder for each project, without any of the limitations or glitches that seem to plague other approaches.

    This algorithm supports the PNPM, NPM, and Yarn package managers.

  • Automatic local linking: Inside a Rush repo, all your projects are automatically symlinked to each other. When you make a change, you can see the downstream effects without publishing anything, and without any npm link headaches. If you don't want certain projects to get linked, that's supported, too.

  • Fast builds: Rush detects your dependency graph and builds your projects in the right order. If two packages don't directly depend on each other, Rush parallelizes their build as separate Node.js processes (and shows live console output in a readable order). In practice this multi-process approach can yield more significant speedups than all those async functions in your single-threaded Gulpfile.

  • Subset and incremental builds: If you only plan to work with a few projects from your repo, rush rebuild --to <project> does a clean build of just your upstream dependencies. After you make changes, rush rebuild --from <project> does a clean build of only the affected downstream projects. And if your toolchain is package-deps-hash enabled, rush build delivers a powerful cross-project incremental build (that also supports subset builds).

  • Cyclic dependencies: If you have hammers that build hammer-factory-factories, Rush has you covered! When a package indirectly depends on an older version of itself, projects in the cycle use the last published version, whereas other projects still get the latest bits.

  • Bulk publishing: When it's time to do a release, Rush can detect which packages have changes, automatically bump all the appropriate version numbers, and run npm publish in each folder. If you like, configure your server to automatically run rush publish every hour.

  • Changelog tracking: Whenever a PR is created, you can require developers to provide a major/minor/patch log entry for the affected projects. During publishing, these changes will be automatically aggregated into a nicely formatted CHANGELOG.md file.

  • Enterprise policies: Want to review new libraries before developers add them to package.json, but avoid hassling people about already approved cases? Want to enforce that all your projects depend on the same library version numbers? Are unprofessional personal e-mail addresses accidentally showing up in your company's Git history? Rush can help maintain a consistent ecosystem when you've got many developers and many projects in the mix.

  • Lots more! Rush was created by the platform team for Microsoft SharePoint. We build hundreds of production NPM packages every day, from internal and public Git repositories, for third party SDKs and live services with millions of users. If there's an important package management problem that needs solvin', it's likely to end up as a feature for Rush.

3 Minute Demo

See Rush in action! From your shell, install the tool like this:

$ npm install -g @microsoft/rush

For command-line help, do this:

$ rush -h

To see Rush build some real projects, try running these commands: :-)

$ git clone https://github.com/microsoft/rushstack
$ cd rushstack
$ rush install
$ rush install  # <-- instantaneous!
$ rush rebuild
$ rush build    # <-- instantaneous!

(If you don't have a GitHub account set up, you can use rush install --bypass-policy.)

Getting Started

For more details and support resources, please visit: https://rushjs.io

Rush is part of the Rush Stack family of projects.

changelog

Change Log - @microsoft/rush

This log was last generated on Fri, 27 Jun 2025 19:57:04 GMT and should not be manually modified.

5.155.1

Fri, 27 Jun 2025 19:57:04 GMT

Updates

  • Fix pnpm-sync caused .modules.yaml ENOENT during install

5.155.0

Fri, 13 Jun 2025 16:10:38 GMT

Updates

  • Add support for PNPM v9 to the pnpm-sync feature.

5.154.0

Tue, 10 Jun 2025 18:45:59 GMT

Updates

  • Introduce a @rushstack/rush-bridge-cache-plugin package that adds a --set-cache-only flag to phased commands, which sets the cache entry without performing the operation.
  • Update the CredentialCache options object to add support for custom cache file paths. This is useful if CredentialCache is used outside of Rush.
  • PNPMv10 support: SHA256 hashing for dependencies paths lookup
  • Add Linux/MacOS support for new 'virtual-store-dir-max-length'

5.153.2

Tue, 13 May 2025 20:33:12 GMT

Updates

  • Fix path parsing issue when running rush bridge-package
  • Operations that were cobuilt now have the cobuild time correctly reflected across all agents.
  • Add hasUncommittedChanges to IInputSnapshot for use by plugins.

5.153.1

Fri, 25 Apr 2025 01:12:48 GMT

Updates

  • Fix an issue with implicit phase expansion when --include-phase-deps is not specified.
  • Upgrade rushstack/heft-config-file to fix an incompatibility with Node 16

5.153.0

Thu, 17 Apr 2025 21:59:15 GMT

Updates

  • Update documentation for extends
  • Bind "q" to gracefully exit the watcher.
  • Clarify registry authentication settings in "rush init" template for .npmrc
  • Support the --changed-projects-only flag in watch mode and allow it to be toggled between iterations.
  • Fix telemetry for "--changed-projects-only" when toggled in watch mode.
  • (rush-serve-plugin) Support websocket message to enable/disable operations.

5.152.0

Tue, 08 Apr 2025 18:41:27 GMT

Updates

  • Add ChainedCredential to AzureAuthenticationBase to handle auth failover.
  • Add support for developer tools credentials to the Azure build cache.
  • Add a new CLI flag --debug-build-cache-ids to help with root-causing unexpected cache misses.
  • Sort all operations lexicographically by name for reporting purposes.
  • (EXPERIMENTAL) Add new commands rush link-package and rush bridge-package

5.151.0

Tue, 25 Mar 2025 16:58:46 GMT

Updates

  • Fix an issue where --include-phase-deps and watch mode sometimes included operations that were not required
  • Fix an issue where build/rebuild can not be defined in a rush plugin command line configuration
  • Use useNodeJSResolver: true in Import.resolvePackage calls.
  • Add missing ./package.json export; revert useNodeJSResolver: true.
  • (plugin-api) Guaranteed operation.associatedPhase and operation.associatedProject are not undefined.

5.150.0

Thu, 27 Feb 2025 17:41:59 GMT

Updates

  • Add an --include-phase-deps switch that expands an unsafe project selection to include its phase dependencies

5.149.1

Wed, 19 Feb 2025 18:54:06 GMT

Updates

  • Remove the unused RushConstants.rushAlertsStateFilename property.
  • Bump jsonpath-plus to ~10.3.0.

5.149.0

Wed, 12 Feb 2025 04:07:30 GMT

Updates

  • Prefer os.availableParallelism() to os.cpus().length.
  • Add a new command line parameter --node-diagnostic-dir=DIR to phased commands that, when specified, tells all child build processes to write NodeJS diagnostics into ${DIR}/${packageName}/${phaseIdentifier}. This is useful if --cpu-prof or --heap-prof are enabled, to avoid polluting workspace folders.
  • Add a new phased command hook createEnvironmentForOperation that can be used to customize the environment variables passed to individual operation subprocesses. This may be used to, for example, customize NODE_OPTIONS to pass --diagnostic-dir or other such parameters.
  • Allow --timeline option for all phased commands
  • Fix support for "ensureConsistentVersions" in common-versions.json when subspaces features is not enabled.
  • Fix an issue where the port parameter in @rushstack/rush-serve-plugin was allowed to be a string parameter.

5.148.0

Fri, 10 Jan 2025 02:36:20 GMT

Updates

  • Add a configuration option to avoid manually configuring decoupledLocalDependencies across subspaces.
  • Improve some rush-sdk APIs to support future work on GitHub issue #3994
  • Fix an issue where MaxListenersExceeded would get thrown when using the HTTP build cache plugin

5.147.2

Mon, 06 Jan 2025 21:48:43 GMT

Updates

  • Fix an issue with evaluation of shouldEnsureConsistentVersions when the value is not constant across subspaces or variants.
  • Fix an issue where the lockfile object has a nullish value causing yaml.dump to report an error.

5.147.1

Thu, 26 Dec 2024 23:35:27 GMT

Updates

  • Fix an issue with the enableSubpathScan experiment where the set of returned hashes would result in incorrect build cache identifiers when using --only.
  • When a no-op operation is not in scope, reflect its result as no-op instead of skipped, so that downstream operations can still write to the build cache.
  • Allow injected dependencies without enabling subspaces.

5.147.0

Thu, 12 Dec 2024 01:37:25 GMT

Updates

  • Add a new experiment flag enableSubpathScan that, when invoking phased script commands with project selection parameters, such as --to or --from, only hashes files that are needed to compute the cache ids for the selected projects.

5.146.0

Tue, 10 Dec 2024 21:23:18 GMT

Updates

  • Support fallback syntax in .npmrc files if the package manager is PNPM. See https://pnpm.io/npmrc
  • Add an .isPnpm property to RushConfiguration that is set to true if the package manager for the Rush repo is PNPM.
  • Support pnpm lockfile v9, which is used by default starting in pnpm v9.

5.145.0

Tue, 10 Dec 2024 05:14:11 GMT

Updates

  • Upgrade @azure/identity and @azure/storage-blob.
  • Add support for Node 22.
  • Remove the dependency on node-fetch.

5.144.1

Mon, 09 Dec 2024 20:32:01 GMT

Updates

  • Bump jsonpath-plus to ~10.2.0.

5.144.0

Wed, 04 Dec 2024 19:32:23 GMT

Updates

  • Remove the node-fetch dependency from @rushstack/rush-http-build-cache-plugin.

5.143.0

Wed, 04 Dec 2024 03:07:08 GMT

Updates

  • Remove the node-fetch dependency from @rushstack/rush-amazon-s3-build-cache-plugin.
  • (BREAKING API CHANGE) Remove the exported WebClient API from @rushstack/rush-amazon-s3-build-cache-plugin.

5.142.0

Tue, 03 Dec 2024 23:42:22 GMT

Updates

  • Fix an issue where the ability to skip rush install may be incorrectly calculated when using the variants feature.
  • Add support for an "extends" property in the common/config/rush/pnpm-config.json and common/config/subspace/*/pnpm-config.json files.
  • Add warning when the globalIgnoredOptionalDependencies property is specified in common/config/rush/pnpm-config.json and the repo is configured to use pnpm <9.0.0.

5.141.4

Mon, 02 Dec 2024 20:40:41 GMT

Updates

  • Fix an issue where Rush sometimes incorrectly reported "fatal: could not open 'packages/xxx/.rush/temp/shrinkwrap-deps.json' for reading: No such file or directory" when using subspaces

5.141.3

Wed, 27 Nov 2024 07:16:50 GMT

Updates

  • Fix an issue where Rush sometimes incorrectly reported "The overrides settings doesn't match the current shrinkwrap" when using subspaces
  • Fix an issue where Rush sometimes incorrectly reported "The package extension hash doesn't match the current shrinkwrap." when using subspaces

5.141.2

Wed, 27 Nov 2024 03:27:26 GMT

Updates

  • Fix an issue where filtered installs neglected to install dependencies from other subspaces

5.141.1

Wed, 20 Nov 2024 00:24:34 GMT

Updates

  • Update schema for build-cache.json to include recent updates to the @rushstack/rush-azure-storage-build-cache-plugin.

5.141.0

Tue, 19 Nov 2024 06:38:33 GMT

Updates

  • Adds two new properties to the configuration for rush-azure-storage-build-cache-plugin: loginFlow selects the flow to use for interactive authentication to Entra ID, and readRequiresAuthentication specifies that a SAS token is required for read and therefore expired authentication is always fatal.
  • Adds a new wasExecutedOnThisMachine property to operation telemetry events, to simplify reporting about cobuilt operations.
  • Fix an issue where empty error logs were created for operations that did not write to standard error.
  • Fix an issue where incremental building (with LegacySkipPlugin) would not work when no-op operations were present in the process
  • Fix lack of "local-only" option for cacheProvider in build-cache.schema.json
  • Fix an issue where if an Operation wrote all logs to stdout, then exited with a non-zero exit code, only the non-zero exit code would show up in the summary.

5.140.1

Wed, 30 Oct 2024 21:50:51 GMT

Updates

  • Update the jsonpath-plus indirect dependency to mitigate CVE-2024-21534.

5.140.0

Tue, 22 Oct 2024 23:59:54 GMT

Updates

  • Fix an issue when using rush deploy where the node_modules/.bin folder symlinks were not created for deployed packages when using the "default" link creation mode
  • Add support for the globalIgnoredOptionalDependencies field in the common/config/rush/pnpm-config.json file to allow specifying optional dependencies that should be ignored by PNPM

5.139.0

Thu, 17 Oct 2024 20:37:39 GMT

Updates

  • Allow rush plugins to extend build cache entries by writing additional files to the metadata folder. Expose the metadata folder path to plugins.
  • [CACHE BREAK] Alter the computation of build cache IDs to depend on the graph of operations in the build and therefore account for multiple phases, rather than only the declared dependencies. Ensure that dependsOnEnvVars and command line parameters that affect upstream phases impact the cache IDs of downstream operations.
  • (BREAKING CHANGE) Replace use of ProjectChangeAnalyzer in phased command hooks with a new InputsSnapshot data structure that is completely synchronous and does not perform any disk operations. Perform all disk operations and state computation prior to executing the build graph.
  • Add a new property enabled to Operation that when set to false, will cause the execution engine to immediately return OperationStatus.Skipped instead of invoking the runner. Use this property to disable operations that are not intended to be executed in the current pass, e.g. those that did not contain changes in the most recent watch iteration, or those excluded by --only.
  • Add an optional property cacheHashSalt to build-cache.json to allow repository maintainers to globally force a hash change in build cache entries.

5.138.0

Thu, 03 Oct 2024 22:31:07 GMT

Updates

  • Changes the behavior of phased commands in watch mode to, when running a phase _phase:<name> in all iterations after the first, prefer a script entry named _phase:<name>:incremental if such a script exists. The build cache will expect the outputs from the corresponding _phase:<name> script (with otherwise the same inputs) to be equivalent when looking for a cache hit.

5.137.0

Thu, 03 Oct 2024 19:46:40 GMT

Patches

  • Expose getChangesByProject to allow classes that extend ProjectChangeAnalyzer to override file change analysis

5.136.1

Thu, 26 Sep 2024 22:59:11 GMT

Updates

  • Fix an issue where the --variant parameter was missing from a phased command when the command's alwaysInstall property was set to true.

5.136.0

Thu, 26 Sep 2024 21:48:00 GMT

Updates

5.135.0

Fri, 20 Sep 2024 20:23:40 GMT

Updates

  • Fix a bug that caused rush-resolver-cache-plugin to crash on Windows.
  • Make individual Rush log files available via the rush-serve-plugin server at the relative URL specified by "logServePath" option. Annotate operations sent over the WebSocket with the URLs of their log files.
  • Adds a new experiment 'allowCobuildWithoutCache' for cobuilds to allow uncacheable operations to benefit from cobuild orchestration without using the build cache.
  • Deprecate the sharding.shardOperationSettings property in the project config/rush-project.json in favor of an operationSettings entry for an operation with a suffix of :shard.

5.134.0

Fri, 13 Sep 2024 01:02:46 GMT

Updates

  • Always update shrinkwrap when globalPackageExtensions in common/config/rush/pnpm-config.json has been changed.
  • Pass the initialized credentials cache to AzureAuthenticationBase._getCredentialFromTokenAsync in @rushstack/rush-azure-storage-build-cache-plugin.
  • Support the rush-pnpm patch-remove command.

5.133.4

Sat, 07 Sep 2024 00:18:08 GMT

Updates

  • Mark AzureAuthenticationBase._credentialCacheId as protected in @rushstack/rush-azure-storage-build-cache-plugin.

5.133.3

Thu, 29 Aug 2024 22:49:36 GMT

Updates

  • Fix Windows compatibility for @rushstack/rush-resolver-cache-plugin.

5.133.2

Wed, 28 Aug 2024 20:46:32 GMT

Updates

  • Fix an issue where running rush install --resolution-only followed by rush install would not actually install modules.

5.133.1

Wed, 28 Aug 2024 18:19:55 GMT

Updates

  • In rush-resolver-cache-plugin, include the base path in the resolver cache file.
  • Support bundledDependencies in rush-resolver-cache-plugin.

5.133.0

Fri, 23 Aug 2024 00:40:08 GMT

Updates

  • Always update shrinkwrap when globalOverrides has been changed
  • Add afterInstall plugin hook, which runs after any install finishes.
  • Add rush.json option "suppressRushIsPublicVersionCheck" to allow suppressing hardcoded calls to the npmjs.org registry.

5.132.0

Wed, 21 Aug 2024 16:25:07 GMT

Updates

  • Add a new rush install-autoinstaller command that ensures that the specified autoinstaller is installed.
  • Emit an error if a workspace: specifier is used in a dependency that is listed in decoupledLocalDependencies.
  • Add support for --resolution-only to rush install to enforce strict peer dependency resolution.

5.131.5

Mon, 19 Aug 2024 20:03:03 GMT

Updates

5.131.4

Sun, 11 Aug 2024 05:02:05 GMT

Updates

  • Revert a breaking change in Rush 5.131.3 where pnpm patches were moved from common/pnpm-patches to common/config/rush/pnpm-patches.

5.131.3

Sat, 10 Aug 2024 02:27:14 GMT

Updates

  • Fix an issue where rush-pnpm patch-commit would not correctly resolve patch files when the subspaces feature is enabled.

5.131.2

Thu, 08 Aug 2024 23:38:18 GMT

Updates

  • Include a missing dependency in @rushstack/rush-sdk.

5.131.1

Thu, 08 Aug 2024 22:08:41 GMT

Updates

  • Fix an issue where rush-sdk can't be bundled by a consuming package.
  • Extract LookupByPath to @rushstack/lookup-by-path and load it from there.

5.131.0

Fri, 02 Aug 2024 17:26:59 GMT

Updates

  • Improve Rush alerts with a new "rush alert" command and snooze feature

5.130.3

Wed, 31 Jul 2024 23:30:13 GMT

Updates

  • Fix an issue where Rush does not detect an outdated lockfile if the dependenciesMeta package.json field is edited.
  • Include CHANGELOG.md in published releases again
  • Fix a bug that caused the build cache to close its terminal writer before execution on error.

5.130.2

Fri, 19 Jul 2024 03:41:44 GMT

Updates

  • Fix an issue where rush-pnpm patch-commit did not work correctly when subspaces are enabled.

5.130.1

Wed, 17 Jul 2024 07:37:13 GMT

Updates

  • Fix a recent regression for rush init

5.130.0

Wed, 17 Jul 2024 06:55:27 GMT

Updates

  • (EXPERIMENTAL) Initial implementation of Rush alerts feature
  • Adjusts how cobuilt operations are added and requeued to the operation graph. Removes the 'RemoteExecuting' status.

5.129.7

Tue, 16 Jul 2024 04:16:56 GMT

Updates

  • Upgrade pnpm-sync-lib to fix an edge case when handling node_modules folder
  • Don't interrupt the installation process if the user hasn't enabled the inject dependencies feature.
  • Improve @rushtack/rush-sdk and make it reuse @microsoft/rush-lib from rush global folder
  • Remove the trailing slash in the .DS_Store/ line in the .gitignore file generated by rush init. .DS_Store is a file, not a folder.
  • Support deep references to internal Apis
  • Fix an issue where rush add would ignore the ensureConsistentVersions option if that option was set in rush.json instead of in common/config/rush/common-versions.json.
  • Fix an issue where running rush add in a project can generate a package.json file that uses JSON5 syntax. Package managers expect strict JSON.
  • fix spelling of "committing" in rush.json init template and schema

5.129.6

Thu, 27 Jun 2024 00:44:32 GMT

Updates

  • Fix an edge case for workspace peer dependencies when calculating packageJsonInjectedDependenciesHash to improve its accuracy
  • Update a URL in the .pnpmfile.cjs generated by rush init.

5.129.5

Tue, 25 Jun 2024 20:13:29 GMT

Updates

  • Don't include package.json version field when calculating packageJsonInjectedDependenciesHash

5.129.4

Mon, 24 Jun 2024 23:49:10 GMT

Updates

  • Normalize the file permissions (644) for Rush plugin files that are committed to Git

5.129.3

Fri, 21 Jun 2024 00:15:54 GMT

Updates

  • Fixed an issue where DependencyAnalyzer caches the same analysis for all subspaces

5.129.2

Wed, 19 Jun 2024 23:59:09 GMT

Updates

  • Fix an issue where the rush pnpm ... command always terminates with an exit code of 1.

5.129.1

Wed, 19 Jun 2024 04:20:03 GMT

Updates

  • Add logic to remove outdated .pnpm-sync.json files during rush install or update

5.129.0

Wed, 19 Jun 2024 03:31:48 GMT

Updates

  • Add a new init-subspace command to initialize a new subspace.
  • Move the ensureConsistentVersions setting from rush.json to common/config/rush/common-versions.json, or to common/config/rush/<subspace>/common-versions.json if subspaces are enabled.

5.128.5

Tue, 18 Jun 2024 04:02:54 GMT

Updates

  • Fix a key collision for cobuild clustering for operations that share the same phase name.

5.128.4

Mon, 17 Jun 2024 23:22:49 GMT

Updates

  • Bump the @azure/identity package to ~4.2.1 to mitigate GHSA-m5vv-6r4h-3vj9.

5.128.3

Mon, 17 Jun 2024 20:46:21 GMT

Updates

  • Fixed an issue where the --make-consistent flag would affect projects outside the current subspace.

5.128.2

Mon, 17 Jun 2024 17:08:00 GMT

Updates

  • Fix an issue where rush-pnpm patch is not working for the subspace scenario
  • Fix an issue where rush update can not detect package.json changes in other subspaces for the injected installation case

5.128.1

Wed, 12 Jun 2024 20:07:44 GMT

Updates

  • Fix an issue where running rush install in a subspace with only a --from selector is treated as selecting all projects.
  • Fix an issue where not published packages are not correctly identified as not published when querying a package feed under certain versions of NPM.
  • Fix an issue where selection syntax (like --to or --from) misses project dependencies declared using workspace alias syntax (i.e. - workspace:alias@1.2.3).
  • Fix an issue where an error is thrown if a Git email address isn't configured and email validation isn't configured in rush.json via allowedEmailRegExps.
  • Display the name of the subspace when an error is emitted because a dependency hash uses the SHA1 algorithm and the "disallowInsecureSha1" option is enabled.

5.128.0

Fri, 07 Jun 2024 22:59:12 GMT

Updates

  • Graduate the phasedCommands experiment to a standard feature.
  • Improve rush init template for .gitignore
  • Remove an unnecessary condition in the logic for skipping operations when build cache is disabled.

5.127.1

Thu, 06 Jun 2024 03:05:21 GMT

Updates

  • Remove the second instance of the project name from the project operation filenames in <projectFolder>/rush-logs. This restores the log filenames to their format before Rush 5.125.0.

5.127.0

Tue, 04 Jun 2024 00:44:18 GMT

Updates

  • Fixes build cache no-op and sharded operation clustering.
  • Updated common-veresions.json schema with ensureConsistentVersions property

5.126.0

Mon, 03 Jun 2024 02:49:05 GMT

Updates

  • Fixes a string schema validation warning message when running rush deploy.
  • Update the functionality that runs external lifecycle processes to be async.
  • Move logs into the project rush-logs folder regardless of whether or not the "phasedCommands" experiment is enabled.
  • Update the nodeSupportedVersionRange in the rush init template to the LTS and current Node versions.
  • Update the pnpmVersion in the rush init template to the latest version of pnpm 8.
  • Update the .gitignore in the rush init template to include some common toolchain output files and folders.
  • Include missing type modifiers on type-only exports.

5.125.1

Wed, 29 May 2024 05:39:54 GMT

Updates

  • Fix an issue where if missingScriptBehavior is set to "error" and a script is present and empty, an error would be thrown.

5.125.0

Sat, 25 May 2024 05:12:20 GMT

Updates

  • Fixes a bug where no-op operations were treated as having build cache disabled.
  • Adds support for sharding operations during task execution.
  • Fix an issue where warnings and errors were not shown in the build summary for all cobuild agents.
  • Add a rush check --subspace parameter to specify which subspace to analyze
  • Rename the subspace level lockfile from .pnpmfile-subspace.cjs to .pnpmfile.cjs. This is a breaking change for the experimental feature.

5.124.7

Thu, 23 May 2024 02:27:13 GMT

Updates

  • Improve the usePnpmSyncForInjectedDependencies experiment to also include any dependency whose lockfile entry has the file: protocol, unless it is a tarball reference
  • Fix an issue where the build cache analysis was incorrect in rare situations due to a race condition (GitHub #4711)

5.124.6

Thu, 16 May 2024 01:12:22 GMT

Updates

  • Fix an edge case for pnpm-sync when the .pnpm folder is absent but still a valid installation.

5.124.5

Wed, 15 May 2024 23:43:15 GMT

Updates

  • Fix count of completed operations when silent operations are blocked. Add explicit message for child processes terminated by signals. Ensure that errors show up in summarized view.
  • Ensure that errors thrown in afterExecuteOperation show up in the summary at the end of the build.

5.124.4

Wed, 15 May 2024 03:05:57 GMT

Updates

  • Improve the detection of PNPM lockfile versions.
  • Fix an issue where the --subspace CLI parameter would install for all subspaces in a monorepo when passed to the install or update action

5.124.3

Wed, 15 May 2024 01:18:25 GMT

Patches

  • Ensure async telemetry tasks are flushed by error reporter

Updates

  • Fix an issue where rush install and rush update will fail with an ENAMETOOLONG error on Windows in repos with a large number of projects.
  • Fix an issue where installing multiple subspaces consecutively can cause unexpected cross-contamination between pnpmfiles.

5.124.2

Fri, 10 May 2024 06:35:26 GMT

Updates

  • Fix a recent regression where rush deploy did not correctly apply the additionalProjectsToInclude setting (GitHub #4683)

5.124.1

Fri, 10 May 2024 05:33:51 GMT

Updates

  • Fix an issue where the disallowInsecureSha1 policy failed to parse certain lockfile entries
  • Fix some minor issues with the "rush init" template files
  • Report an error if subspacesFeatureEnabled=true without useWorkspaces=true
  • Fix an issue where operation weights were not respected.

5.124.0

Wed, 08 May 2024 22:24:08 GMT

Updates

  • Add a new setting alwaysInjectDependenciesFromOtherSubspaces in pnpm-config.json
  • Fix a issue where rush install/update can not detect pnpm-sync.json is out of date
  • Improve the error message when the pnpm-sync version is outdated
  • Fixes a bug where cobuilds would cause a GC error when waiting for long periods of time.
  • Fix an issue where tab competions did not suggest parameter values.

5.123.1

Tue, 07 May 2024 22:38:00 GMT

Updates

  • Fix a recent regression where "rush install" would sometimes incorrectly determine whether to skip the install

5.123.0

Tue, 07 May 2024 18:32:36 GMT

Updates

  • Provide the file path if there is an error parsing a package.json file.
  • Timeline view will now only show terminal build statuses as cobuilt, all other statuses will reflect their original icons.
  • Add a "weight" property to the "operation" object in the project config/rush-project.json file that defines an integer weight for how much of the allowed parallelism the operation uses.
  • Optimize skipping of unnecessary installs when using filters such as "rush install --to x"

5.122.1

Tue, 30 Apr 2024 23:36:50 GMT

Updates

  • Make disallowInsecureSha1 policy a subspace-level configuration.
  • Fix an issue where rush update sometimes did not detect changes to pnpm-config.json

5.122.0

Thu, 25 Apr 2024 07:33:18 GMT

Updates

  • Support rush-pnpm for subspace feature
  • Skip determining merge base if given git hash
  • (BREAKING CHANGE) Improve the disallowInsecureSha1 policy to support exemptions for certain package versions. This is a breaking change for the disallowInsecureSha1 field in pnpm-config.json since Rush 5.119.0.

5.121.0

Mon, 22 Apr 2024 19:11:26 GMT

Updates

  • Add support for auth via microsoft/ado-codespaces-auth vscode extension in @rushstack/rush-azure-storage-build-cache-plugin

5.120.6

Thu, 18 Apr 2024 23:20:02 GMT

Updates

  • Fix an issue where "rush deploy" did not correctly deploy build outputs combining multiple Rush subspaces

5.120.5

Wed, 17 Apr 2024 21:58:17 GMT

Updates

  • Fix an issue where rush add affects all packages in a subspace

5.120.4

Tue, 16 Apr 2024 20:04:25 GMT

Updates

  • Fix an issue where rush deploy sometimes used an incorrect temp folder when the experimental subspaces feature is enabled

5.120.3

Tue, 16 Apr 2024 02:59:48 GMT

Updates

  • Fix an issue where pnpm-sync copy was skipped when a build is restored from build cache.
  • Upgrade tar dependency to 6.2.1

5.120.2

Mon, 15 Apr 2024 00:25:04 GMT

Updates

  • Fixes an issue where rush install fails in monorepos with subspaces enabled

5.120.1

Sat, 13 Apr 2024 18:31:00 GMT

Updates

  • Fix an issue where install-run-rush.js sometimes incorrectly invoked .cmd files on Windows OS due to a recent Node.js behavior change.
  • Fix an issue with the skip install logic when the experimental subspaces feature is enabled

5.120.0

Wed, 10 Apr 2024 21:59:57 GMT

Updates

  • Bump express.
  • Add support for optionalDependencies in transitive injected install in the Subspaces feature.
  • Update dependency: pnpm-sync-lib@0.2.2
  • Remove a restriction where the repo root would not be found if the CWD is >10 directory levels deep.
  • Improve the error message that is printed in a repo using PNPM workspaces when a non-workspace: version is used for a project inside the repo.
  • Include a missing space in a logging message printed when running rush add.
  • Clarify the copyright notice emitted in common/scripts/*.js
  • Fix an issue with loading of implicitly preferred versions when the experimental subspaces feature is enabled

5.119.0

Sat, 30 Mar 2024 04:32:31 GMT

Updates

  • Add a policy to forbid sha1 hashes in pnpm-lock.yaml.
  • (BREAKING API CHANGE) Refactor phased action execution to analyze the repo after the initial operations are created. This removes the projectChangeAnalyzer property from the context parameter passed to the createOperations hook.

5.118.7

Thu, 28 Mar 2024 19:55:27 GMT

Updates

  • Fix an issue where in the previous release, built-in plugins were not included.

5.118.6

Wed, 27 Mar 2024 05:31:17 GMT

Updates

  • Symlinks are now generated for workspace projects in the temp folder when subspaces and splitWorkspaceCompatibility is enabled.

5.118.5

Tue, 26 Mar 2024 19:58:40 GMT

Updates

  • Use pnpm-sync-lib logging APIs to customize the log message for pnpm-sync operations

5.118.4

Tue, 26 Mar 2024 02:39:06 GMT

Updates

  • Added warnings if there are .npmrc or .pnpmfile.cjs files in project folders after migrating to subspaces

5.118.3

Sat, 23 Mar 2024 01:41:10 GMT

Updates

  • Fix an edge case for computing the PNPM store path when the experimental subspaces feature is enabled

5.118.2

Fri, 22 Mar 2024 17:30:47 GMT

Updates

  • Fix bugs related to path operation in Windows OS for subspace feature

5.118.1

Thu, 21 Mar 2024 16:39:32 GMT

Updates

  • Support PNPM injected installation in Rush subspace feature

5.118.0

Wed, 20 Mar 2024 20:45:18 GMT

Updates

  • (BREAKING API CHANGE) Rename AzureAuthenticationBase._getCredentialFromDeviceCodeAsync to AzureAuthenticationBase._getCredentialFromTokenAsync in @rushstack/rush-azure-storage-build-cache-plugin. Adding support for InteractiveBrowserCredential.

5.117.10

Wed, 20 Mar 2024 04:57:57 GMT

Updates

  • Improve the "splitWorkspaceCompatibility" setting to simulate hoisted dependencies when the experimental Rush subspaces feature is enabled

5.117.9

Tue, 12 Mar 2024 19:15:07 GMT

Updates

  • Add functionality to disable filtered installs for specific subspaces

5.117.8

Sat, 09 Mar 2024 01:11:16 GMT

Updates

  • Fixes a bug where the syncNpmrc function incorrectly uses the folder instead of the path

5.117.7

Fri, 08 Mar 2024 23:45:24 GMT

Updates

  • Fix an issue where, when the experimental subspace feature is enabled, the subspace's ".npmrc" file did not take precedence over ".npmrc-global".

5.117.6

Thu, 07 Mar 2024 19:35:20 GMT

Updates

  • Fixes an issue where cobuilds would write success with warnings as successful cache entries.

5.117.5

Wed, 06 Mar 2024 23:03:27 GMT

Updates

  • Add filtered installs for subspaces

5.117.4

Tue, 05 Mar 2024 21:15:26 GMT

Updates

  • Add support for subspace level scoped pnpm-config.json e.g. common/config/subspaces/default/pnpm-config.json

5.117.3

Tue, 05 Mar 2024 01:19:42 GMT

Updates

  • Fix an issue where if a patch is removed from common/pnpm-patches after rush install had already been run with that patch present, pnpm would try to continue applying the patch.
  • Intercept the output printed by rush-pnpm patch to update the next step's instructions to run rush-pnpm patch-commit ... instead of pnpm patch-commit ....

5.117.2

Fri, 01 Mar 2024 23:12:43 GMT

Updates

  • Fix an issue with the experimental subspaces feature, where version checks incorrectly scanned irrelevant subspaces.

5.117.1

Thu, 29 Feb 2024 07:34:31 GMT

Updates

  • Update "rush init" template to document the new build-cache.json constants
  • Remove trailing slashes from node_modules and jspm_packages paths in the .gitignore file generated by rush init.
  • Introduce a RushCommandLine API that exposes an object representing the skeleton of the Rush command-line.
  • Fix an issue where, when the experimental subspaces feature was enabled, the lockfile validation would check irrelevant subspaces

5.117.0

Mon, 26 Feb 2024 21:39:36 GMT

Updates

  • Include the ability to add [os] and [arch] tokens to cache entry name patterns.
  • (BREAKING CHANGE) Remove the 'installation variants' feature and its related APIs, which have been superceded by the Subspaces feature.
  • Extract the "rush.json" filename to a constant as RushConstants.rushJsonFilename.

5.116.0

Mon, 26 Feb 2024 20:04:02 GMT

Updates

  • Upgrade the pnpm-sync-lib dependency version.
  • Handle workspace:~ and workspace:^ wildcard specifiers when publishing. They remain as-is in package.json but get converted to ~${current} and ^${current} in changelogs.
  • Validate that the "projectFolder" and "publishFolder" fields in the "projects" list in "rush.json" are normalized POSIX relative paths that do not end in trailing "/" or contain "\".

5.115.0

Thu, 22 Feb 2024 01:36:27 GMT

Updates

  • Add a "runWithTerminalAsync" resource lifetime helper to IOperationRunnerContext to manage the creation and cleanup of logging for operation execution.
  • Adds a new experiment useIPCScriptsInWatchMode. When this flag is enabled and Rush is running in watch mode, it will check for npm scripts named _phase:<phase-name>:ipc, and if found, use them instead of the normal invocation of _phase:<phase-name>. When doing so, it will provide an IPC channel to the child process and expect the child to outlive the current build pass.

5.114.3

Thu, 22 Feb 2024 00:10:32 GMT

Updates

  • Replace deprecated function, and fix a path bug in Windows env

5.114.2

Wed, 21 Feb 2024 21:45:46 GMT

Updates

  • Replace the dependency on the colors package with Colorize from @rushstack/terminal.

5.114.1

Wed, 21 Feb 2024 08:56:05 GMT

Updates

  • Improve rush scan to analyze APIs such as Import.lazy() and await import()
  • Fix a recent regression where @rushstack/rush-sdk did not declare its dependency on @rushstack/terminal

5.114.0

Mon, 19 Feb 2024 21:54:44 GMT

Updates

  • (EXPERIMENTAL) Add enablePnpmSyncForInjectedDependenciesMeta to experiments.json; it is part of an upcoming feature for managing PNPM "injected" dependencies: https://www.npmjs.com/package/pnpm-sync
  • Include a pnpmPatchesCommonFolderName constant for the folder name "pnpm-patches" that gets placed under "common".
  • Add a feature to generate a project-impact-graph.yaml file in the repo root. This feature is gated under the new generateProjectImpactGraphDuringRushUpdate experiment.
  • Fix a formatting issue with the LICENSE.
  • Fix an issue with filtered installs when the experimental subspaces feature is enabled

5.113.4

Wed, 31 Jan 2024 22:49:17 GMT

Updates

  • Introduce an explicit warning message during rush install or rush update about dependenciesMeta not being up-to-date.

5.113.3

Wed, 31 Jan 2024 22:25:55 GMT

Updates

  • Fix an issue where rush update would sometimes not correctly sync the pnpm-lock.yaml file back to common/config/rush/ after a project's package.json has been updated.

5.113.2

Wed, 31 Jan 2024 18:45:33 GMT

Updates

  • Fix some minor issues when the experimental subspaces feature is enabled

5.113.1

Wed, 31 Jan 2024 07:07:50 GMT

Updates

  • (EXPERIMENTAL) Enable filtered installs of subspaces and add a "preventSelectingAllSubspaces" setting

5.113.0

Tue, 30 Jan 2024 22:58:52 GMT

Updates

  • Fix an issue where Rush does not detect changes to the dependenciesMeta field in project's package.json files, so may incorrectly skip updating/installation.
  • Add ability to enable IPC channels in Utilities#executeLifeCycleCommand.
  • Update rush init template to document the "buildSkipWithAllowWarningsInSuccessfulBuild" experiment
  • (BREAKING CHANGE) Begin removal of APIs for the deprecated "installation variants" feature, since subspaces are a more robust solution for that problem
  • (EXPERIMENTAL) Implement installation for the not-yet-released "subspaces" feature (GitHub #4230)

5.112.2

Tue, 12 Dec 2023 00:20:51 GMT

Updates

  • Bring back the erroneously removed preminor bump type for lockstepped packages.
  • Fix an issue where the contents of a folder set in the "folderToCopy" field of the deploy.json config file would be copied into a subfolder instead of into the root of the deploy folder.
  • (EXPERIMENTAL) Implemented config file loader for the not-yet-released "subspaces" feature (GitHub #4230)

5.112.1

Wed, 29 Nov 2023 08:59:31 GMT

Updates

  • Allow the device code credential options to be extended Azure authentication subclasses, used in advanced authentication scenarios.

5.112.0

Mon, 27 Nov 2023 23:36:11 GMT

Updates

  • Update the @azure/identity and @azure/storage-blob dependencies of @rushstack/rush-azure-storage-build-cache-plugin to eliminate an EBADENGINE error when installing Rush on Node 20.

5.111.0

Sat, 18 Nov 2023 00:06:20 GMT

Updates

  • Add experiment buildSkipWithAllowWarningsInSuccessfulBuild to allow skipping builds that succeeded with warnings in the previous run.

5.110.2

Thu, 16 Nov 2023 01:36:10 GMT

Version update only

5.110.1

Wed, 01 Nov 2023 23:29:47 GMT

Updates

  • Fix line endings in published package.

5.110.0

Mon, 30 Oct 2023 23:37:07 GMT

Updates

  • Include the filename of the shrinkwrap file in logging messages for all package managers, not just Yarn.
  • performance improvements by running asynchronous code concurrently using Promise.all

5.109.2

Fri, 20 Oct 2023 01:54:21 GMT

Updates

  • Allow the output preservation incremental strategy if the build cache is configured but disabled. When running in verbose mode, log the incremental strategy that is being used.
  • Log the cache key in --verbose mode when the cache is successfully read from or written to.
  • Fix an issue where console colors were sometimes not enabled correctly during rush install
  • Fix an issue where running rush update-cloud-credentials --interactive sometimes used the wrong working directory when invoked in a repo configured to use the http build cache provider (GitHub #4396)

5.109.1

Sat, 07 Oct 2023 01:20:56 GMT

Updates

  • Fix incorrect capitalization in the "rush init" template

5.109.0

Sat, 07 Oct 2023 00:25:27 GMT

Updates

  • (IMPORTANT) Add a new setting autoInstallPeers in pnpm-config.json; be aware that Rush changes PNPM's default if you are using PNPM 8 or newer
  • (IMPORTANT) After upgrading, if rush install fails with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH, please run rush update --recheck
  • Improve visual formatting of custom tips
  • Add start preRushx and postRushx event hooks for monitoring the rushx command
  • Update the oldest usable Node.js version to 14.18.0, since 14.17.0 fails to load

5.108.0

Mon, 02 Oct 2023 20:23:27 GMT

Updates

  • Fix an issue where rush purge fails on Linux and Mac if the common/temp/rush-recycler folder does not exist.
  • Add "--offline" parameter for "rush install" and "rush update"
  • Ignore pause/resume watcher actions when the process is not TTY mode

5.107.4

Tue, 26 Sep 2023 21:02:52 GMT

Updates

  • Update type-only imports to include the type modifier.
  • Make the project watcher status and keyboard commands message more visible.

5.107.3

Fri, 22 Sep 2023 09:01:38 GMT

Updates

  • Fix filtered installs in pnpm@8.

5.107.2

Fri, 22 Sep 2023 00:06:12 GMT

Updates

  • Fix a bug in which an operation failing incorrectly does not block its consumers.
  • Add resolutionMode to rush init template for pnpm-config.json

5.107.1

Tue, 19 Sep 2023 21:13:23 GMT

Updates

  • Fix pnpm's install status printing when pnpm custom tips are defined.

5.107.0

Tue, 19 Sep 2023 00:36:50 GMT

Updates

  • Update @types/node from 14 to 18
  • Remove previously removed fields from the custom-tips.json schema.
  • (BREAKING API CHANGE) Refactor the CustomTipsConfiguration by removing the configuration property and adding a providedCustomTipsByTipId map property.
  • Fix an issue where pnpm would would not rewrite the current status line on a TTY console, and instead would print a series of separate status lines during installation. Note that this is only fixed when there are no custom PNPM tips provided.
  • Add "Waiting" operation status for operations that have one or more dependencies still pending. Ensure that the onOperationStatusChanged hook fires for every status change.
  • Add support for optional build status notifications over a web socket connection to @rushstack/rush-serve-plugin.
  • Add pause/resume option to project watcher

5.106.0

Thu, 14 Sep 2023 09:20:11 GMT

Updates

  • (IMPORTANT) Add a new setting resolutionMode in pnpm-config.json; be aware that Rush now overrides the default behavior if you are using PNPM 8.0.0 through 8.6.12 (GitHub #4283)
  • Support adding custom tips for pnpm-printed logs
  • (BREAKING CHANGE) Remove the "defaultMessagePrefix" config in custom-tips.json
  • Rename the PnpmStoreOptions type to PnpmStoreLocation.

5.105.0

Fri, 08 Sep 2023 04:09:06 GMT

Updates

  • Disable build cache writes in watch rebuilds.
  • Fix the instance of "ICreateOperationsContext" passed to the "beforeExecuteOperations" hook in watch mode rebuilds to match the instance passed to the "createOperations" hook.
  • Fix an issue where the error message printed when two phases have overlapping output folders did not mention both phases.
  • Update the phase output folders validation to only check for overlapping folders for phases that actually execute an operation in a given project.
  • Add the "disableBuildCache" option to the schema for phased commands (it is already present for bulk commands). Update the behavior of the "disableBuildCache" flag to also disable the legacy skip detection, in the event that the build cache is not configured.

5.104.1

Tue, 05 Sep 2023 18:53:03 GMT

Updates

  • Fix an issue where rush init generated a cobuild.json file that reported errors (GitHub #4307)

5.104.0

Fri, 01 Sep 2023 04:54:16 GMT

Updates

  • (EXPERIMENTAL) Initial release of the cobuild feature, a cheap way to distribute jobs Rush builds across multiple VMs. (GitHub #3485)

5.103.0

Thu, 31 Aug 2023 23:28:28 GMT

Updates

  • Add dependencySettings field to Rush deploy.json configurations. This will allow developers to customize how third party dependencies are processed when running rush deploy
  • Fix an issue where rush update-autoinstaller sometimes did not fully upgrade the lockfile
  • Fix an issue where "undefined" was sometimes printed instead of a blank line

5.102.0

Tue, 15 Aug 2023 20:09:40 GMT

Updates

  • Add a new config file "custom-tips.json" for customizing Rush messages (GitHub #4207)
  • Improve "rush scan" to recognize module patterns such as "import get from 'lodash.get'"
  • Update Node.js version checks to support the new LTS release
  • Update "rush init" template to use PNPM 7.33.5
  • Update the "rush init" template's .gitignore to avoid spurious diffs for files such as "autoinstaller.lock"
  • Fix an issue where a pnpm-lock file would fail to parse if a project used a package alias in a repo using pnpm 8.
  • Fix HTTP/1 backwards compatibility in rush-serve-plugin.
  • Add experiment "usePnpmLockfileOnlyThenFrozenLockfileForRushUpdate" that, when running rush update, performs first a --lockfile-only update to the lockfile, then a --frozen-lockfile installation. This mitigates issues that may arise when using the afterAllResolved hook in .pnpmfile.cjs.

5.101.1

Fri, 11 Aug 2023 17:57:55 GMT

Updates

  • Fix a regression from 5.101.0 where publishing features did not detect changes properly when running on Windows OS (GitHub #4277)
  • Add support in rush-serve-plugin for HTTP/2, gzip compression, and CORS preflight requests.

5.101.0

Tue, 08 Aug 2023 07:11:02 GMT

Updates

  • Enable the "http" option for build-cache providers
  • Switch from glob to fast-glob.
  • Reduce false positive detections of the pnpm shrinkwrap file being out of date in the presence of the globalOverrides setting in pnpm-config.json, or when a dependency is listed in both dependencies and devDependencies in the same package.
  • @rushstack/rush-sdk now exposes a secondary API for manually loading the Rush engine and monitoring installation progress
  • Add support for npm aliases in PnpmShrinkwrapFile._getPackageId.
  • Improve version resolution logic in common/scripts/install-run.js (see https://github.com/microsoft/rushstack/issues/4256)
  • Add patternsToInclude and patternsToExclude support to Rush deploy.json configurations. This will allow developers to include or exclude provided glob patterns within a local project when running rush deploy.

5.100.2

Mon, 24 Jul 2023 18:54:49 GMT

Patches

  • Fix an issue where the git pre-push hook would allow push to go through if the script exited with error.

Updates

  • Updated semver dependency

5.100.1

Wed, 14 Jun 2023 19:42:12 GMT

Updates

  • Fix an issue where Rush would attempt to open a project's log file for writing twice.
  • Fix an issue where arguments weren't passed to git hook scripts.

5.100.0

Tue, 13 Jun 2023 01:49:21 GMT

Updates

  • (BREAKING API CHANGE) Remove unused members of the BumpType API. See https://github.com/microsoft/rushstack/issues/1335 for details.
  • Add --peer flag to rush add command to add peerDependencies
  • Add support for PNPM 8.
  • Remove the dependency on lodash.
  • Add functionality for the Amazon S3 Build Cache Plugin to read credentials from common AWS_* environment variables.
  • Write cache logs to their own file(s).
  • Fix an issue where cache logging data was always written to stdout.
  • Generate scripts in the Git hooks folder referring to the actual hook implementations in-place in the Rush common/git-hooks/ folder instead of copying the scripts to the Git hooks folder.
  • Bump webpack to v5.82.1

5.99.0

Fri, 02 Jun 2023 22:08:28 GMT

Updates

  • Use a separate temrinal for logging cache subsystem
  • Expose beforeLog hook
  • Convert to multi-phase Heft
  • Use JSON.parse instead of jju to parse package.json files for faster performance.

5.98.0

Sun, 21 May 2023 00:18:35 GMT

Updates

  • Add a "forbidPhantomResolvableNodeModuleFolders" experiment that forbids node_modules folders in the repo root and in parent folders.
  • Update the RushSession.registerCloudBuildCacheProviderFactory API to allow a cache provider's factory function to return a promise.
  • Add built-in plugin rush-http-build-cache-plugin
  • Fix an issue where the last character in a project's path is ignored when determining which files contribute to the project's cache ID.
  • Fix a performance bug in rush version when using workspace: protocol.
  • (BREAKING API CHANGE) Add a property missingScriptBehavior to phase definitions that can be used to silence missing scripts to reduce log noise. This replaces the ignoreMissingScript property visible to the plugin API, although the ignoreMissingScript property is still supported in the common/config/rush/command-line.json config file for backwards compatibility.
  • Flatten watch status into a single line with TTY rewrites.

5.97.1

Tue, 18 Apr 2023 16:39:03 GMT

Updates

  • rush version will now respect the ensureConsistentVersions field in rush.json
  • Bump webpack to 5.78.0
  • Fix file watching on Windows in the presence of Git's fsmonitor by not watching the .git folder.

5.97.0

Wed, 05 Apr 2023 21:46:37 GMT

Updates

  • Convert the EnvironmentVariableNames from an enum to a const so that its values can be referred to by type.

5.96.0

Fri, 31 Mar 2023 00:27:51 GMT

Updates

  • Fix an issue where rush-sdk sometimes failed to load if the globally installed Rush version was older than rushVersion in rush.json (GitHub #4039)
  • Modify the scheduling behavior of phased commands to schedule only the expressly enumerated phases in all selected projects, adding additional phases only where needed to satisfy dependencies.

5.95.0

Fri, 24 Mar 2023 08:53:43 GMT

Updates

  • Add experiment printEventHooksOutputToConsole to allow printing outputs from event hooks to the console.

5.94.1

Wed, 22 Mar 2023 20:48:48 GMT

Updates

  • Fix an issue where rush plugin autoinstallers would fail to install because the Rush global folder had not yet been initialized.
  • Fix an issue with rush update-autoinstaller where it may fail with an Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with package.json error.

5.94.0

Mon, 20 Mar 2023 20:14:36 GMT

Updates

  • Update the nodeSupportedVersionRange in rush.json generated by rush init to remove Node 12 as it is no longer supported and include Node 18 as it is the current LTS version.
  • Extend LookupByPath to also be able to obtain the index of the remainder of the matched path.
  • Include some more hooks to allow plugins to monitor phased command execution in real-time.
  • Fix an issue where running rush update-autoinstaller without having run rush install or rush update first would cause a crash with an unhelpful error message.

5.93.2

Mon, 06 Mar 2023 20:18:01 GMT

Updates

  • Do not delete the local pnpm store after all install attempts has failed. rush purge will still delete a local store.

5.93.1

Fri, 17 Feb 2023 14:46:59 GMT

Updates

  • Fix a regression where "rush-sdk" failed to load older versions of "rush-lib" (GitHub #3979)

5.93.0

Fri, 17 Feb 2023 02:14:43 GMT

Updates

  • Add code path to @rushstack/rush-sdk for inheriting @microsoft/rush-lib location from a parent process via the RUSHLIB_PATH environment variable.

5.92.0

Sun, 12 Feb 2023 02:50:42 GMT

Updates

  • Enable @rushstack/rush-sdk to import internal APIs from the proxied @microsoft/rush-lib instance (GitHub #3895)

5.91.0

Sat, 11 Feb 2023 02:04:14 GMT

Updates

  • Remove runtime dependency on @rushstack/rush-sdk from the AzureStorageAuthentication class in @rushstack/rush-azure-storage-build-cache-plugin so that it can be used in isolation.
  • Include operation log files in the cache, and restore them during cache hits.

5.90.2

Wed, 08 Feb 2023 20:27:06 GMT

Version update only

5.90.1

Wed, 08 Feb 2023 19:58:35 GMT

Patches

  • Fix determination of the root of the current Git worktree when in a multi-worktree setup.

Updates

  • Disable unused depcheck feature for upgrade-interactive.
  • Fix an issue where deleting the common/temp/node_modules folder encounters an EPERM error and aborts.

5.90.0

Sun, 29 Jan 2023 20:10:17 GMT

Updates

  • Allow "shellCommand" to be optionally specified for bulk custom commands, so that a centralized script can be used instead of invoking package.json scripts (GitHub #3819)

5.89.1

Thu, 26 Jan 2023 02:55:30 GMT

Updates

  • Fix an issue with rush add where the approved packages files aren't updated.
  • Revert generation of scripts in the Git hooks folder due to various git-related issues
  • Upgrade to webpack 5.75.0

5.89.0

Tue, 24 Jan 2023 22:30:06 GMT

Updates

  • Fix linking error due to PNPM v7 local install path breaking change
  • Introduce "dependsOnAdditionalFiles" configuration option to operations in rush-project.json. This option allows to pass glob (minimatch) patterns pointing to files outside of .git repository. If provided, the hash values of these files will become part of the final hash when reading and writing from cache.
  • Use getRepoStateAsync to optimize performance of calculating repository state.
  • Generate scripts in the Git hooks folder referring to the actual hook implementations in-place in the Rush common/git-hooks/ folder instead of copying the scripts to the Git hooks folder.

5.88.2

Sun, 22 Jan 2023 04:18:44 GMT

Updates

  • Fix a regression where the 'dist/scripts' folder name was named 'dist/undefined'

5.88.1

Wed, 18 Jan 2023 22:44:31 GMT

Updates

  • Fix an issue where create-scripts.js does not exist during rush deploy.
  • Add install-run-rush-pnpm.js script
  • Update JSZip to 3.8.0.

5.88.0

Thu, 22 Dec 2022 20:11:58 GMT

Updates

  • Improve the experience during a rush operation when the cached credentials have expired. Now, a warning is printed instead of an error being thrown and the operation halted.
  • (BREAKING API CHANGE IN @rushstack/rush-azure-storage-build-cache-plugin) Change the signature of AzureAuthenticationBase.tryGetCachedCredentialAsync to optionally take an object describing the behavior when credentials have expired. The behavior of the function without an argument is unchanged.

5.87.0

Fri, 16 Dec 2022 19:34:26 GMT

Updates

  • Fix a typo in the artifactory.json template
  • Writing local build cache is more robust on a network drive.
  • Document default value for the "watchDebounceMs" setting
  • Add "nodeSupportedVersionInstructions" property to rush.json, allowing maintainers to provide additional instructions if the user's node version is unsupported.
  • (IMPORTANT) Fix a regression where the "strictPeerDependencies" setting wasn't applied for some versions of PNPM 7 due to unexpected changes of PNPM's default value (GitHub #3828)
  • Fix an issue where if the package manager is PNPM 6.1.0 or newer, and pnpmStore is set to "local", then a global cache was still used.
  • Write local telemetry for global script actions
  • Normalize all newlines in logging statements to LF. On Windows, some newlines were CRLF.
  • Upgrade npm-check dependency from ~5.9.2 to ~6.0.1
  • Work towards bundling the files of "@rushstack/rush-lib" (Details in GitHub #3837)

5.86.0

Tue, 29 Nov 2022 00:10:20 GMT

Updates

  • Add new commands "rush-pnpm patch" and "rush-pnpm patch-commit" for patching NPM packages when using the PNPM package manager (GitHub #3554)

5.85.1

Fri, 25 Nov 2022 21:51:32 GMT

Updates

  • Fix an intermittent issue when writing tar log files

5.85.0

Thu, 24 Nov 2022 03:57:19 GMT

Updates

  • Add support for a credentialMetadata property in the CredentialCache.
  • (BREAKING API CHANGE) Change the signature of CredentialCache.setCacheEntry to take the credential ID and an object describing the credential instead of a credential string and an expiration date. The second argument's type now matches the return value of CredentialCache.tryGetCacheEntry
  • (BREAKING API CHANGE) Change the return type of AzureAuthenticationBase.tryGetCachedCredentialAsync (and, therefore, AzureStorageAuthentication.tryGetCachedCredentialAsync) from string | undefined to ICredentialCacheEntry | undefined to include the credentialMetadata.

5.84.0

Tue, 22 Nov 2022 23:24:56 GMT

Updates

  • Add a "dependsOnEnvVars" configuration option to operations in rush-project.json. The variables specified in this option are included in the cache key hash calculation.
  • The "rush setup" user prompts can now be customized.
  • Make autoinstaller logging respect the --quiet parameter.
  • Add project filtering to the upgrade-interactive UI prompt. Also increases the default page size for project lists in UI to 12.
  • Add a feature (behind the "cleanInstallAfterNpmrcChanges" experiment) that will cause a clean install to be performed if the common/temp/.npmrc file has changed since the last install.

5.83.4

Fri, 18 Nov 2022 04:02:43 GMT

Patches

  • Fix performance regression from supporting git submodules

Updates

  • Change files and change logs can store custom fields.

5.83.3

Tue, 15 Nov 2022 18:43:51 GMT

Patches

  • Fix an issue where Git submodules were not handled correctly by the build cache (GitHub #1711)

5.83.2

Mon, 14 Nov 2022 05:15:22 GMT

Updates

  • Ensure autoinstaller lockfiles are not leftover after an error

5.83.1

Sat, 12 Nov 2022 04:40:57 GMT

Updates

  • Update the "rush init" template for command-line.json to add usage examples for integer, integer list, string list, choice list parameter kinds

5.83.0

Fri, 11 Nov 2022 03:51:49 GMT

Updates

  • Add credentialType option for rush setup command
  • Rush "setup" command works even if plugins cannot be installed
  • Add support for integer, integer list, string list, and choice list parameters in plugins.
  • Introduce a rush upgrade-interactive action that provides an interactive way to upgrade outdated dependencies.
  • Fix a regression from Rush 5.79.0 where "rush init" did not create the pnpm-config.json file automatically

5.82.1

Wed, 19 Oct 2022 23:44:02 GMT

Version update only

5.82.0

Mon, 17 Oct 2022 22:14:39 GMT

Updates

  • Replace Travis with GitHub Actions in the rush init template."
  • Handle case in ProjectWatcher where a project contains no git tracked files or status information is or was unavailable.
  • Refactor @rushstack/rush-azure-storage-build-cache-plugin to expose an API for generating and caching Azure credentials for other workloads, in addition to Storage.
  • Validate the change type in changefiles during publishing.

5.81.0

Sat, 08 Oct 2022 02:30:30 GMT

Updates

  • Add a rush remove command that removes one or more dependencies from a project.
  • Support passing a lockfile to "install-run.js" and "install-run-rush.js" to ensure stable installation on CI.
  • Add missing "environmentVariables" property to "pnpm-config.json" schema to restore feature parity with "rush.json" "pnpmOptions" field.

5.80.1

Mon, 03 Oct 2022 23:11:35 GMT

Updates

  • Add a more useful error message in cases when a merge base for rush change cannot be determined.

5.80.0

Thu, 29 Sep 2022 07:13:24 GMT

Updates

  • Include the operation duration in the telemetry data that was recorded during the non-cached run when a cache hit occurs.
  • Fix an error message that always says to run "rush update --purge" even if the user only needs to run "rush install --purge."
  • Fix an issue where a "Current PNPM store path does not match the last one used." error will erroneously get thrown on Windows with an unchanged path, but with a forward slash instead of a backslash.
  • Remove fallback from tar binary to npm 'tar' package. The npm 'tar' package would sometimes produce invalid output if the cache entry was corrupt.
  • Remove gender from the git config example in rush.json

5.79.0

Sat, 24 Sep 2022 17:37:03 GMT

Minor changes

  • Add a common/config/pnpm-config.json, which is used to specify fields like overrides, packageExtensions, and neverBuiltDependencies that would otherwise be placed in a PNPM workspace repo's root-level package.json's pnpm field.

Updates

  • Add a --commit and --commit-message flag to rush change that commits the change files automatically.

5.78.1

Fri, 23 Sep 2022 02:54:44 GMT

Updates

  • Fix Git detection when the current working directory is unrelated to the Rush workspace.
  • Fix an error that ocurred if an autoinstaller's "node_modules" folder was manually deleted (GitHub #2987)

5.78.0

Sat, 17 Sep 2022 00:56:37 GMT

Updates

  • Add a "beforeInstall" hook to the plugin API, for plugins to examine the environment immediately before "rush install" or "rush update" invoke the package manager.
  • Fix "--parallelism XX%" parsing to return a finite number of CPU cores.
  • Update the "rush init" template to include .gitignore patterns for IntellJ IDEA
  • Upgrade the @azure/identity and @azure/storage-blob packages to eliminate a deprecation message during installation.
  • Define an environment variable RUSH_PNPM_VERIFY_STORE_INTEGRITY that can be used to enable or disable PNPM's store integrity verification during installation for performance.

5.77.3

Fri, 02 Sep 2022 17:49:09 GMT

Version update only

5.77.2

Wed, 31 Aug 2022 00:43:07 GMT

Updates

  • Fix an issue where "rush add" sometimes did not work correctly if a project is nested under another project's folder

5.77.1

Tue, 30 Aug 2022 17:26:42 GMT

Updates

  • Fixed an issue where "rush add" was not updating common-versions.json when using "--make-consistent"

5.77.0

Mon, 29 Aug 2022 21:09:31 GMT

Updates

  • Add machine architecture information, dependency graph information, and individual build times and statuses to the telemetry file.
  • Add schema validation for change files.
  • Fix a minor issue with the "--rush-example-repo" template
  • Update CLI docs for "rush add"
  • Improve some config file documentation
  • Make the project tag name syntax more strict to avoid error-prone names such as "tag:$PATH" or "tag://"
  • Add validation to ensure package.json files are strict JSON and the "version" field is strict SemVer
  • Add a new setting "watchOptions.debounceMs" in command-line.json

5.76.1

Mon, 08 Aug 2022 07:32:36 GMT

Updates

  • Fix a recent regression where "rush install" would sometimes fail with "Unknown option: 'ignore-compatibility-db'"

5.76.0

Sat, 06 Aug 2022 05:35:19 GMT

Updates

  • Validate that if shouldPublish is set, private is not set
  • "rush install/update" should always set "ignore-compatibility-db=true" and print warning if the rush.json pnpmVersion specifies a version affected by this problem.
  • Reorder some initialization logic so that Rush's change analysis is not counted as part of the build time for the first project
  • (BREAKING API CHANGE) Rename cyclicDependencyProjects to decoupledLocalDependencies

5.75.0

Tue, 28 Jun 2022 03:31:01 GMT

Updates

  • Disable build cache for operations with no corresponding operationSettings entry in rush-project.json, and provide a clear message about why.
  • When the projectName:normalize token is used in a cache ID, remove the @ character from the scope.
  • Reduce default maxInstallAttempts to 1
  • Improve logging of file locations when using the Heft build tool

5.74.0

Fri, 10 Jun 2022 22:17:51 GMT

Version update only

5.73.0

Fri, 10 Jun 2022 21:54:49 GMT

Version update only

5.72.0

Fri, 10 Jun 2022 20:01:47 GMT

Updates

  • Introduce a "rush-pnpm" shell command for invoking native PNPM commands in a Rush workspace

5.71.0

Fri, 27 May 2022 00:50:06 GMT

Updates

  • Write local telemetry for all phased commands, including partial runs when running in watch mode.
  • Export the list of workspace packages to the pnpmfile shim.

5.70.0

Wed, 11 May 2022 22:21:40 GMT

Updates

  • Add a new afterExecuteOperations hook to phased command execution. This hook is used for the console timeline view and the standard result summary.

5.69.0

Tue, 10 May 2022 01:20:58 GMT

Updates

  • Fix handling of erroneous undefined values when printing rush list --detailed
  • Update watcher to only schedule operations impacted by the detected change. A behavior difference will only be observed for repositories that define a phase with no dependencies.
  • Fix handing of the strictPeerDependencies option when using PNPM >= 7.0.0.
  • Update the postRushInstall hook to always run, and move its execution to after telemetry is written.
  • (BREAKING CHANGE) Remove the "xstitchPreferredVersions" property from common-versions.json and the CommonVersionsConfiguration API.
  • Correct a warning that is printed during "rush change" to only be concerned with unstaged changes.
  • Include tags in the rush list output.

5.68.2

Fri, 06 May 2022 18:54:55 GMT

Updates

  • Provide ability for phased script commands to internally invoke "rush install" prior to execution.

5.68.1

Tue, 03 May 2022 21:52:56 GMT

Updates

  • Fix an issue where "rush list --json" prints non-json output in a repo that uses rush plugins with autoinstallers.

5.68.0

Fri, 29 Apr 2022 05:22:05 GMT

Updates

  • Disable legacy skip logic when build cache is enabled.
  • Report status of projects with an empty script as "did not define any work," instead of as "from cache."
  • Add a -- parameter to git command invocations that accept user input to prevent arbitrary arguments from being passed.
  • Remove the @deprecated label from RushConfigurationProject.packageJson.

5.67.0

Sat, 23 Apr 2022 02:13:20 GMT

Updates

  • Upgrade "tar" dependency to eliminate spurious security vulnerability for "minimist" package
  • Remove requirement that custom parameters associated with a phased command must also be associated with one or more phases. This allows for custom parameters that will only be interpreted by plugins.

5.66.2

Tue, 12 Apr 2022 02:58:47 GMT

Updates

  • Fix an issue where running the "install-run-rush" script with the "--help" parameter won't install Rush.

5.66.1

Tue, 12 Apr 2022 01:52:38 GMT

Updates

  • Fix watch-mode phased commands when rush.json is not in the repository root. Fix watch-mode change detection on Linux.

5.66.0

Sat, 09 Apr 2022 02:24:40 GMT

Updates

  • (BREAKING CHANGE) Update references to the default branch to reference "main" instead of "master".

5.65.1

Fri, 08 Apr 2022 23:10:18 GMT

Version update only

5.65.0

Fri, 08 Apr 2022 06:16:59 GMT

Updates

  • Expose APIs for managing Azure credentials from @rushstack/rush-azure-storage-build-cache-plugin.
  • Add flushTelemetry hook
  • Fix an edge case where rush update fails in a PNPM workspaces repo with no dependencies.
  • Fix some issues with "rush add"'s ability to determine which version to use when adding a dependency that is already present in the repo.
  • Add support for percentage values for --parallelism flag, eg. "50%".
  • Improve retry logic in the Amazon S3 cloud cache plugin and improve reporting when the user is not authenticated.
  • Add an additional plugin to rush-azure-storage-build-cache-plugin that can be used to prompt for Azure authentication before a command runs.
  • Change the way "rush change" prints long lists of package names to include an "(and <count> more)" line after the first five listed by name.
  • Add a "tags" field to project definitions in rush.json. These may be used to select projects, for example, "rush list --only tag:my-custom-tag".
  • Fix a typo in output of rush change -v

5.64.0

Fri, 01 Apr 2022 04:51:31 GMT

Updates

  • Add support for suppressing startup information to invocations of rush, rushx, and the install-run-rush scripts.
  • Add --timeline option for more detail generated at end of rush build
  • Expose plugin hooks for phased command execution: the "createOperations" hook allows customizing the set of operations to execute, and the "waitingForChanges" hook gives plugins an opportunity to display data to the console while output is paused.

5.63.1

Sat, 26 Mar 2022 00:47:39 GMT

Patches

  • Fix an issue where the build cache is never written to.

Updates

  • Fix broken README links for @microsoft/rush-lib documentation and API reference.

5.63.0

Tue, 15 Mar 2022 19:18:12 GMT

Updates

  • Reinstall automatically if monorepo folder is moved
  • Fix resolution of change file paths when rush.json is not in the root of the Git repository.
  • Fix the "selected operations" logging for commands that skipped projects to only display the operations that will be executed.
  • For watch mode commands, allow the command to continue even if the initial build fails.
  • Allow adding of aliased child packages.
  • Add plugin hooks for global and phased commands and allow plugins to tap into command execution by command name, or into the execution of any command by command kind.
  • Fix a typo in the "rush add" command-line help.

5.62.4

Tue, 15 Feb 2022 01:40:57 GMT

Updates

  • Remove the lib/index.mjs file from the @rushstack/rush-sdk package. This package must be CommonJS.
  • Do not load the PowerShell User Profile for running the AsyncRecycler task

5.62.3

Fri, 11 Feb 2022 02:18:05 GMT

Updates

  • Fix an issue where the git tag would not include the prerelease portion of the version, which will cause subsequent publishes of the same version to not be tagged.

5.62.2

Thu, 10 Feb 2022 03:21:41 GMT

Updates

  • Add the ability to forcibly replace bad cache entries generated by issues in a previous Rush release.
  • Fix an issue where the dependencies of lockstep-versioned projects aren't bumped when the lockstep-versioned projects' versions are bumped. This issue only arose in the scenario when the lockstep-versioned projects' version bumps are driven by the change type in the changefiles and not by the "nextBump" property in "common/config/rush/version-policies.json"
  • Fix an issue where "rush setup" reported a TypeError when invoked from Git Bash
  • Fix a bug where rush change --verify would not find the correct common/changes folder if the rush.json is not in the Git repo's root folder.
  • Add support for rush-sdk to be bundled with Webpack.
  • Add watch mode support to "phased" command definitions via the "watchOptions" property with a subfield "watchPhases". This separates the initial command phases from the phases run by the file watcher, e.g. so that the initial execution can pull from cache and the watch mode execution can use a separate incremental build phase.

5.62.1

Sun, 06 Feb 2022 04:59:08 GMT

Updates

5.62.0

Sat, 05 Feb 2022 00:55:18 GMT

Updates

  • Add support for directly invoking a script that depends on rush-sdk from inside a Rush repo.
  • Add support for a new URL-based version specifier in PNPM lockfiles.
  • Add support for specifying a custom S3 endpoint. This is useful for using a custom S3 provider.
  • Optimize invocation of tar to use stdin instead of a temporary file.
  • Revise architecture of symbolic link scan to use a queue and parallel file system calls.
  • Create separate tar logs per phase based on cache id.
  • Pack tar to a temp file, then move into the cache to ensure cache integrity.
  • Fix git-hooks folder check failing when compared paths have different drive letter casing

5.61.4

Wed, 02 Feb 2022 04:03:24 GMT

Updates

  • Bump tar dependency to have a minimum version of 5.0.10.

5.61.3

Fri, 28 Jan 2022 21:03:58 GMT

Updates

  • Update the built-in cache provider plugins (rush-amazon-s3-build-cache-plugin and rush-azure-storage-build-cache-plugin) to apply for all commands, enabling cloud caching for custom phased and bulk commands.
  • Allow build cache to be enabled for custom bulk commands.

5.61.2

Thu, 27 Jan 2022 02:30:10 GMT

Updates

  • Update node-fetch dependency version to address CVE-2022-0235

5.61.1

Sat, 22 Jan 2022 04:22:52 GMT

Updates

  • (EXPERIMENTAL) Allow common/config/rush/command-line.json to specify the build command as a phased command without specifying all of the options required by the schema. The remaining options will come from the default. This is already supported when a partially-specified build command has "commandKind" set to "bulk".
  • Fix an issue where Git Bash "tar" does not handle Windows paths correctly.
  • (EXPERIMENTAL) Improve the RUSH_BUILD_CACHE_WRITE_ALLOWED environment variable behavior so that it also affects the local build cache. This saves CPU cycles on CI machines that only run a single build. It also avoids cache writes for watch mode commands.
  • Refactoring to support upcoming watch mode improvements: Rework the task execution engine to interact with the task queue using the ECMAScript async iteration protocol (GitHub #3043)
  • Fix project change detection when a new project is added to a repo that uses PNPM with useWorkspaces=false (GitHub #3183)

5.61.0

Sat, 22 Jan 2022 03:17:59 GMT

Updates

  • (EXPERIMENTAL) Fix a regression for the plugins feature, which caused an error message "command-line.json defines a command 'build' using a name that already exists" (GitHub #3155)

5.60.0

Thu, 20 Jan 2022 02:46:15 GMT

Updates

  • Fix the "allowWarningsInSuccessfulBuild" option in bulk commands defined in common/config/command-line.json.
  • (BREAKING CHANGE) The experimental config file options "skipPhasesForCommand" and "addPhasesToCommand" have been temporarily removed until their design can be better formalized.
  • Include NodeJS 16 in the range of supported versions (nodeSupportedVersionRange) in the rush.json file generated by rush init.
  • (BREAKING CHANGE) Some experimental fields have been renamed in "config/rush-project.json". Please see UPGRADING.md for details.

5.59.2

Fri, 07 Jan 2022 02:34:59 GMT

Updates

  • Fixes a regression that broke "rush build" completely when not using the "--only" parameter.

5.59.1

Fri, 07 Jan 2022 01:21:44 GMT

Patches

  • Fixes a regression in bulk command execution when using "unsafe" selector parameters, e.g. "--only". Ensures that only the projects selected by the parameters get included in the build, rather that forcibly including all dependencies.

5.59.0

Thu, 06 Jan 2022 22:18:13 GMT

Minor changes

  • Update the "rush init" template to enable pnpm workspaces and to merge the pnpm-lock.yaml file as text.

Updates

  • Fix an issue that occurs when running a command with a selection argument with a Git ref (like --from git:main) in a repo with a pnpm lockfile larger than 1MB.
  • Fix an issue with installing Git hooks that occurs when the rush.json folder isn't at the repo's root.
  • (BREAKING CHANGE) Remove the experimental command "rush write-build-cache", since it is no longer needed and would be incompatible with phased builds. If you need this command for some reason, please create a GitHub issue.
  • Add support for phased commands behind the multiPhaseCommands experiment.
  • Update "rush init" to write files with OS-default line endings (CRLF on Windows, LF otherwise) instead of always writing CRLF line endings.

5.58.0

Thu, 16 Dec 2021 05:39:21 GMT

Updates

  • Fix an issue where Rush's Git hooks were broken if another tool such as Husky had tampered with the core.hooksPath (GitHub #3004)
  • Provide a more useful error message if the git version is too old.
  • Allow "rush list" to be invoked while other rush processes are running in the same repo.
  • For project selection parameters such as "rush build --to git:REF", improve the diff analysis to detect which individual projects are impacted by a modification of the PNPM lockfile (GitHub #3050)
  • Allow multiple remote URLs to be specified in the rush.json in the new repository.urls field.
  • (BREAKING CHANGE) Replace the RushConfiguration repositoryUrl field with repositoryUrls to support multiple remote URLs specified in rush.json.

5.57.1

Thu, 09 Dec 2021 00:24:47 GMT

Version update only

5.57.0

Fri, 03 Dec 2021 02:16:10 GMT

Updates

  • Add support for the "filterLog" hook in common/config/rush/.pnpmfile.cjs
  • (EXPERIMENTAL) Ability to load third-party plugin packages that customize the behavior of Rush
  • Fix an issue where parameter values containing spaces are incorrectly passed to global scripts.
  • Parameters such as "--to" and "--from" now accept selector expressions: "version-policy:NAME" indicates the set of projects belonging to a publishing version policy. "git:REF" detects the set of projects that have been modified since the specified Git revision; for example, this allows a Rush command to process only the projects modified by a PR branch. (GitHub #2968)
  • Improved the change detection logic to work correctly when a second rush.json appears in a subfolder.
  • (EXPERIMENTAL) Add a new NPM package "@rushstack/rush-sdk" for use by Rush plugins
  • Stop deleting the pnpm-store after failed workspace installs. Usually a multiple failure is due to a network error or a package that does not exist in the registry, not an issue with the pnpm-store.

5.56.0

Thu, 28 Oct 2021 23:49:31 GMT

Updates

  • Add CI skipping to default version & changelog commits
  • Update suggested version of NPM
  • Fix update-autoinstaller with NPM
  • Streamline rushx output and add quiet flag.
  • Include support for adding multiple packages with the "rush add" command.
  • Update the package.json repository field to include the directory property.
  • Fix the error message printed when --interactive is passed to rush update-cloud-credentials and the cloud cache provider is Amazon S3.
  • Mark Node 16 as the current latest LTS version.
  • support --debug-package-manager install options for yarn

5.55.1

Tue, 12 Oct 2021 22:26:25 GMT

Updates

  • Fix an issue where a version field isn't parsed correctly when using NPM version 7 and newer.

5.55.0

Thu, 07 Oct 2021 23:44:52 GMT

Updates

  • Fix typo when project dependencies do not match the current shrinkwrap
  • Use ITerminal in the rush-lib API instead of Terminal to allow for compatibility with other versions of @rushstack/node-core-library.
  • Add a new parameter "--detailed" for the "rush list" command
  • Print the full event hooks output if the --debug paramter is specified.
  • Upgrade the @types/node dependency to version to version 12.

5.54.0

Wed, 22 Sep 2021 22:54:17 GMT

Minor changes

  • Add ability to customize tag separator

Patches

  • Lock node-fetch dependency to 2.6.2 due to an incompatibility with 2.6.3 in the Azure Cloud Cache Provider.

Updates

  • Add a "--check-only" parameter to "rush install" to check the validity of the shrinkwrap without performing a full install.
  • Fix an issue where rush update-autoinstaller does not use the repo's .npmrc

5.53.0

Fri, 10 Sep 2021 23:20:00 GMT

Updates

  • Fix an issue where the incremental build should use caching or skipping, but not both (GitHub #2891)
  • Cache rush-project.json reads
  • Fix an issue where the build cache did not respect "allowWarningsInSuccessfulBuild" (GitHub #2803)
  • Add an experiment "buildCacheWithAllowWarningsInSuccessfulBuild" to allow caching for projects with warnings (GitHub #2803)

5.52.0

Mon, 23 Aug 2021 21:34:46 GMT

Updates

  • Add properties to the extraData section of the telemetry file for parameter usage in the install commands
  • Add .heft to .gitignore file generated by rush init

5.51.1

Fri, 13 Aug 2021 22:45:36 GMT

Updates

  • When build cache is enabled in rush build, allow projects downstream to be satisfied from the cache if applicable. Cache reads will still be disabled for rush rebuild.

5.51.0

Wed, 11 Aug 2021 23:16:09 GMT

Updates

  • The --debug flag now also shows additional diagnostic information.
  • Update JSZip dependency.
  • Adds support for the project subset selection parameters ("--to", "--from", etc., documented at https://rushjs.io/pages/developer/selecting_subsets/) to the "rush list" command.
  • Allow the tar binary path to be overridden via the RUSH_TAR_BINARY_PATH environment variable.

5.50.0

Sat, 17 Jul 2021 01:16:04 GMT

Minor changes

  • (Breaking change) Remove the experimental "--disable-build-cache" command line parameter.

Patches

  • When the experimental build cache is enabled, "rush rebuild" now forces cached projects to be rebuilt (GitHub #2802)

5.49.2

Thu, 15 Jul 2021 01:47:18 GMT

Updates

  • Fix incremental build state calculation when using filtered installs

5.49.1

Tue, 13 Jul 2021 23:03:01 GMT

Updates

  • Fix an issue where the "--no-fetch" "rush change" parameter would cause a "git fetch" and absence of that parameter wouldn't fetch.

5.49.0

Tue, 13 Jul 2021 06:22:09 GMT

Updates

  • Expose APIs useful for determining which projects have changed on the current branch compared to another branch.

5.48.0

Fri, 09 Jul 2021 01:44:18 GMT

Updates

  • Add RUSH_ALLOW_WARNINGS_IN_SUCCESSFUL_BUILD environment variable
  • Prevent "rush change" from prompting for an email address, since this feature was rarely used. To restore the old behavior, enable the "includeEmailInChangeFile" setting in version-policies.json
  • The "rushx" command now reports a warning when invoked in a project folder that is not registered in rush.json
  • Fix the build-cache.json cacheEntryNamePattern description of the [normalize] token.
  • When selection CLI parameters are specified and applying them does not select any projects, log that the selection is empty and immediately exit.
  • Fix an issue where files restored by the build cache did not have a current modification time
  • Upgrade the "rush init" template to use PNPM version 6.7.1; this avoids an important regression in PNPM 6.3.0 where .pnpmfile.cjs did not work correctly: https://github.com/pnpm/pnpm/issues/3453
  • Fix a JSON schema issue that prevented "disableBuildCache" from being specified in command-line.json
  • Removed dependency on chokidar from BulkScriptAction in watch mode, since it adds unnecessary overhead.

5.47.0

Sat, 15 May 2021 00:02:26 GMT

Updates

  • For the experimental build cache feature, eliminate the RUSH_BUILD_CACHE_WRITE_CREDENTIAL environment variable; it is replaced by several new variables RUSH_BUILD_CACHE_CREDENTIAL, RUSH_BUILD_CACHE_WRITE_ALLOWED, and RUSH_BUILD_CACHE_ENABLED
  • Take pnpm-workspace.yaml file into consideration during install skip checks for PNPM
  • Fix a build cache warning that was sometimes displayed on Windows OS: "'tar' exited with code 1 while attempting to create the cache entry" (GitHub #2622)
  • Fix an issue where "rushx" CLI arguments were not escaped properly (GitHub #2695)
  • Allow rush-project.json to specify incrementalBuildIgnoredGlobs (GitHub issue #2618)
  • Remove support for PNPM < 5.0.0 and remove the "resolutionStrategy" option
  • Update "rush init" assets to use newer versions of Rush and PNPM. If you are looking to use PNPM < 6, you must rename the initialized ".pnpmfile.cjs" file to "pnpmfile.js". For more information, see: https://pnpm.io/5.x/pnpmfile
  • Transform package.json using pnpmfile before checking if a Rush project is up-to-date
  • Add support for the Yarn "resolutions" package.json feature.

5.46.1

Tue, 04 May 2021 20:26:15 GMT

Updates

  • Fix an issue where the buildCacheEnabled setting was not applied correctly

5.46.0

Tue, 04 May 2021 02:45:20 GMT

Updates

  • Remove "buildCache" setting from experiments.json; it is superseded by "buildCacheEnabled" in build-cache.json
  • Add a "rush init" template for build-cache.json
  • Temporarily downgrade the "@azure/identity" to eliminate the keytar native dependency (GitHub issue #2492)

5.45.6

Fri, 30 Apr 2021 00:32:16 GMT

Updates

  • Fix a regression in the S3 cloud build cache provider

5.45.5

Wed, 28 Apr 2021 17:54:16 GMT

Updates

  • Improve diagnostic messages printed by the rush build cache
  • Fix an issue where Rush fails to run on Windows when the repository absolute path contains a space
  • Use simpler and more accurate check before skipping installs

5.45.4

Fri, 23 Apr 2021 22:48:23 GMT

Version update only

5.45.3

Fri, 23 Apr 2021 22:03:08 GMT

Updates

  • Allow prerelease versions of PNPM to be used in workspaces mode

5.45.2

Thu, 22 Apr 2021 23:07:51 GMT

Updates

  • Fix bad installs with when using pnpmfile in PNPM 6

5.45.1

Wed, 21 Apr 2021 23:38:22 GMT

Updates

  • Ensure that pnpm-workspace.yaml is always fully regenerated during "rush install" or "rush update"
  • Fix support for pnpmfile in PNPM 6.

5.45.0

Tue, 20 Apr 2021 19:04:04 GMT

Updates

  • Print diagnostic information to a log file "<project-root>/.rush/build-cache-tar.log" when the native "tar" is invoked.
  • The Amazon S3 build cloud cache provider can now use buckets outside the default region
  • Add support for PNPM 6

5.44.0

Sat, 17 Apr 2021 00:17:51 GMT

Updates

  • Add --json and --all param to rush scan
  • Fix "rush deploy" having "includeDevDependencies" turned on to deploy "devDependencies" for rush projects only

5.43.0

Thu, 08 Apr 2021 06:09:52 GMT

Updates

  • Add "--ignore-git-hooks" flags to "publish" and "version" commands to prevent the execution of all git hooks
  • Fix parameter name typo.
  • Eliminate a spurious warning that was displayed on Azure DevOps build agents: A phantom "node_modules" folder was found.
  • Fix an issue where "rush change" reported "Unable to find a git remote matching the repository URL" when used with SSH auth
  • Fix an issue where "rush publish" reported 403 errors if the package version included a SemVer build metadata suffix
  • Partially deprecate RUSH_TEMP_FOLDER environment variable
  • Validate changefiles against a schema when running 'rush change --verify'

5.42.4

Mon, 29 Mar 2021 05:57:18 GMT

Updates

  • Don't validate the shrinkwrap when running 'rush update'
  • Gracefully handle a simultaneous upload to Azure Storage.
  • Update rush publish -p flag description

5.42.3

Wed, 17 Mar 2021 05:07:02 GMT

Updates

  • Fix installation-time behavior of "omitImportersFromPreventManualShrinkwrapChanges" experiment.
  • Don't upload build cache entries to Azure if the cache entry already exists.
  • Replace the AWS dependencies with use of the Amazon S3 REST API.
  • Add support for anonymous read from an Amazon S3-hosted cache.

5.42.2

Tue, 16 Mar 2021 00:30:38 GMT

Updates

  • Add experiment to exclude the "importers" section of "pnpm-lock.yaml" from the "preventManualShrinkwrapChanges" feature.

5.42.1

Fri, 12 Mar 2021 02:11:24 GMT

Updates

  • Temporarily disable the AWS S3 credential provider logic to mitigate a problematic peer dependency (GitHub #2547)

5.42.0

Wed, 10 Mar 2021 06:25:44 GMT

Updates

  • Add AWS S3 support to the experimental build cache feature

5.41.0

Wed, 10 Mar 2021 05:12:41 GMT

Updates

  • Fix an issue where "rush install" could stall indefinitely because a network request did not handle timeouts properly
  • Allow merge conflicts in repo-state.json to be automatically resolved.
  • Add a RUSH_INVOKED_FOLDER environment variable so that custom scripts can determine the folder path where Rush was invoked (GitHub #2497)
  • Add preferFrozenLockfileForUpdate option to minimize lockfile churn by passing --prefer-frozen-lockfile to pnpm during default rush update.

5.40.7

Tue, 02 Mar 2021 23:27:41 GMT

Updates

  • Fix a regression where certain Rush operations reported a TypeError (GitHub #2526)

5.40.6

Tue, 02 Mar 2021 06:22:01 GMT

Updates

  • Improve cache read/write perf by attempting to use the "tar" binary.
  • Fix default text in rush.json generated by "rush init."
  • Fix an issue where Rush would fail to restore from cache but report success when Git isn't present.

5.40.5

Tue, 23 Feb 2021 03:26:25 GMT

Updates

  • Account for indirect dependencies when ordering projects in "rush build" if the intermediary dependencies are excluded by selection parameters.

5.40.4

Tue, 23 Feb 2021 00:01:20 GMT

Updates

  • Make Rush per-project manifest generation more reliable and remove PNPM shrinkwrap validation

5.40.3

Sun, 21 Feb 2021 01:05:53 GMT

Updates

  • Fix an issue where "rush setup" did not work correctly with NPM 7.x due to an NPM regression

5.40.2

Fri, 19 Feb 2021 06:28:28 GMT

Updates

  • Allow usage of Node.js 8.x since we received feedback that some projects are still supporting it

5.40.1

Fri, 19 Feb 2021 01:45:27 GMT

Updates

  • Fix a minor issue with the "rush init" template

5.40.0

Wed, 17 Feb 2021 01:35:11 GMT

Version update only

5.39.2

Wed, 17 Feb 2021 01:34:11 GMT

Updates

  • (EXPERIMENTAL) Add a "--disable-cache" parameter for disabling the build cache.
  • (EXPERIMENTAL) Add a "disableBuildCache" setting in command-line.json for disabling the build cache.
  • (EXPERIMENTAL) Add options in rush-project.json for disabling the build cache for entire projects, or for individual commands for that project.
  • Normalize selection CLI parameters for "rush install"
  • Add experimental "rush setup" command
  • Add an experimental new config file common/config/artifactory.json for enabling Artifactory integration

5.39.1

Sat, 13 Feb 2021 03:14:52 GMT

Patches

  • Convert the experimental "--watch" parameter into a "watchForChanges: true" setting in command-line.json, based on user feedback

Updates

  • Disable build cache after initial build when "--watch" is specified. This saves disk space, reduces CPU usage, and improves compatibility with downstream file watcher processes (e.g. "webpack --watch").

5.39.0

Thu, 11 Feb 2021 04:06:02 GMT

Minor changes

  • Add a new parameter "--watch" that watches for filesystem changes and rebuilds the affected Rush projects; this feature can also be used with custom bulk commands (GitHub #2458, #1122)

Updates

  • Improve the wording of some log messages

5.38.0

Mon, 01 Feb 2021 20:42:04 GMT

Updates

  • Add new command-line parameters for bulk commands: "--to-except", "--from", "--only", "--impacted-by", "--impacted-by-except", and "--from-version-policy" (GitHub #2354)
  • Change the short name for "--changed-projects-only" to be "-c" (so that "-o" can be used for the new "--only" parameter)
  • Change the "--from" parameter so that it now includes all dependencies as people expected. To skip dependencies, use the new "--impacted-by" parameter. (GitHub issue #1447)

5.37.0

Sat, 30 Jan 2021 01:50:27 GMT

Updates

  • Improve performance of association of repo file states with projects to speed up build commands in large repos.
  • Add publishFolder property to the project configuration to allow publishing a sub-folder of the project
  • Add support for --from flag for filtered installs when using workspaces
  • Fix an issue where the Rush cache feature did not correctly detect files that were both tracked by git and were expected to be cached build output.
  • Improve logging for the "rush write-build-cache" command
  • Correct some spelling mistakes in rush.json
  • Fix an error "Cannot get dependency key" sometimes reported by "rush install" (GitHub #2460)
  • Updade the "rush init" template to specify PNPM 5.15.2, which fixes a performance regression introduced in PNPM 5.13.7

5.36.2

Thu, 21 Jan 2021 04:51:19 GMT

Updates

  • Update Node.js version checks to support the new LTS release
  • Update rush.json produced by rush init to use PNPM 5.14.3
  • Use forward slashes when creating deploy zip file for Unix compatibility

5.36.1

Fri, 08 Jan 2021 06:12:37 GMT

Updates

  • Fix an issue where projects with empty scripts would still have arguments appended.

5.36.0

Fri, 08 Jan 2021 05:36:55 GMT

Updates

  • Allow the git binary path to be overridden via the RUSH_GIT_BINARY_PATH environment variable.
  • Introduce an experimental build cache feature.
  • Add the ability to customize the commit message used when "rush version" is run.
  • Remove the "experimental" label from some Rush commands that are now stable.

5.35.2

Tue, 03 Nov 2020 23:34:30 GMT

Updates

  • Fix bug where version process is using a wrong git.addChanges signature

5.35.1

Fri, 30 Oct 2020 05:17:42 GMT

Updates

  • Fix a recent "rush scan" regression (which resulted from enabling "esModuleInterop")

5.35.0

Wed, 28 Oct 2020 21:44:10 GMT

Updates

  • Adds an --ignore-hooks flag to every rush action that skips event hooks during execution of the action.
  • Fix bug where version process was not adding version-policy configuration file changes into the version commit

5.34.4

Sat, 17 Oct 2020 00:23:18 GMT

Updates

  • When running rush version --bump, only include package.json updates in the generated commit
  • Fix Rush peer dependency validation when satisfied with a package alias
  • Prevent rush unlink from breaking installs for non-workspace projects
  • Add documentation for incremental option for buld custom commands

5.34.3

Wed, 30 Sep 2020 21:04:15 GMT

Updates

  • Update to build with @rushstack/heft-node-rig
  • Update README.md
  • Upgrade compiler; the API now requires TypeScript 3.9 or newer

5.34.2

Mon, 21 Sep 2020 22:00:03 GMT

Updates

  • Fix an issue where "rush build" output was lagged due to stream-collator not activating streams aggressively enough
  • Fix incorrect "successful" exit status code

5.34.1

Thu, 17 Sep 2020 07:13:04 GMT

Updates

  • Fix a regression that reported an error "The EnvironmentConfiguration must be initialized before values can be accessed"

5.34.0

Thu, 17 Sep 2020 01:23:35 GMT

Updates

  • Big redesign of "rush build" console reporting (fixes GitHub #2135)
  • Implement RUSH_GLOBAL_FOLDER environment variable (GitHub #2187)
  • Use underscores instead of asterisks for italic formatting in changelogs to match the way Prettier formats italics in markdown.
  • In PNPM 5, --no-lock and --resolution-strategy flags have been removed. Do not pass these flags if they are not supported by the PNPM version used in the repository.

5.33.2

Fri, 21 Aug 2020 22:45:58 GMT

Updates

  • Fix an issue where PNPM would sometimes prompt for input during "rush publish" (GitHub #1940)
  • Fix an issue that prevented Rush from logging in verbose mode

5.33.1

Thu, 20 Aug 2020 18:25:41 GMT

Updates

  • Fix issues where installs could fail after running 'rush version' while the 'usePnpmFrozenLockfileForRushInstall' experiment is enabled. See PR #2116 for more details.
  • Fix an issue where "rush deploy" would sometimes report an "already exists" when using the "files" setting in package.json (GitHub #2121)
  • Allow multiple simultaneous invocations of "rush deploy" (GitHub #2125)
  • Load and validate local projects lazily to further improve Rush startup times.

5.33.0

Wed, 19 Aug 2020 00:17:48 GMT

Updates

5.32.3

Tue, 18 Aug 2020 03:48:56 GMT

Updates

  • Fix an issue where install-run.js sometimes assigned the shell PATH incorrectly due to inconsistent character case

5.32.2

Fri, 14 Aug 2020 21:03:48 GMT

Updates

  • Resolve issue with version --bump where the wrong hash would get written to the pnpm-lock file

5.32.1

Fri, 14 Aug 2020 04:06:30 GMT

Updates

  • Change method used to calculate integrity of tarballs

5.32.0

Thu, 13 Aug 2020 00:53:43 GMT

Patches

  • Update temp project tarball integrities during rush bump

5.31.0

Wed, 12 Aug 2020 19:33:44 GMT

Updates

  • Updated project to build with Heft
  • Fix an issue where "rushx" did not pass additional command-line arguments to the package.json script (GitHub #1232)

5.30.3

Fri, 07 Aug 2020 21:09:05 GMT

Updates

  • Fix an issue where Mac OS sometimes reported "An unrecognized file .DS_Store was found in the Rush config folder"

5.30.2

Wed, 05 Aug 2020 17:57:07 GMT

Updates

  • Fix an issue where a package version bump would not bump downstream packages with a workspace:* dependency specifier.

5.30.1

Thu, 23 Jul 2020 23:47:59 GMT

Updates

  • Fixed an isssue where the "rush build" incremental analysis sometimes reported a warning with large diffs (GitHub #501) or filenames that contain spaces, quotes, or other unusual characters (GitHub #2007)
  • Prevent incorrect conversion to "workspace:" notation for peer dependencies when running "rush update --full"

5.30.0

Fri, 17 Jul 2020 05:32:38 GMT

Minor changes

  • Prepare to deprecate 'rush link' and 'rush unlink' commands, as well as the '--no-link' install argument. As we move toward using package managers more directly in Rush, the package managers will perform the linking during install (if linking is even necessary). Additionally, these commands directly conflict with (and have different meanings than) their package manager counterparts. Lastly, similar goals can be accomplished by running 'rush install' and 'rush purge'. In addition to these changes, rush-link.json deprecated and is replaced with a new API which keeps the local dependency tree in memory.

5.29.1

Thu, 16 Jul 2020 02:18:39 GMT

Patches

  • Consider package.json when determining if install can be skipped for PNPM workspaces

5.29.0

Tue, 14 Jul 2020 05:20:56 GMT

Updates

  • Give "rush deploy" the ability to select a subset of dependencies to copy over (#1978)
  • Fix an issue where package binaries where not created by "rush deploy" (#1982)
  • Add a new setting "folderToCopy" and new command-line parameter "--create-archive" for use with "rush deploy"

5.28.0

Wed, 08 Jul 2020 06:56:47 GMT

Minor changes

  • Add preliminary workspaces support for PNPM

Updates

  • Add new commands "rush init-autoinstaller" and "rush update-autoinstaller"
  • Add support for filtered installs when using workspaces

5.27.3

Fri, 03 Jul 2020 06:16:09 GMT

Updates

  • Added support for new format used by pnpm for tarball URLs that now begin with an @ symbol

5.27.2

Thu, 02 Jul 2020 01:52:18 GMT

Updates

  • Improve "rush deploy" to copy PNPM workaround links (fixes GitHub #1942 and 1943)

5.27.1

Mon, 29 Jun 2020 18:39:59 GMT

Updates

  • Fix an issue where environment variable trimming for .npmrc was unnecessarily performed on comment lines
  • Add a "rush init" template for .npmrc-publish
  • Fix a regression affecting GitHub specifiers for package.json dependencies (issue #1749)

5.27.0

Sun, 21 Jun 2020 04:48:53 GMT

Updates

  • Improve "rush deploy" to apply pnpmfile.js when calculating dependencies

5.26.0

Mon, 15 Jun 2020 01:26:24 GMT

Updates

  • Breaking change for the experimental "rush deploy" feature: Simplify the config file design, based on the discussion from GitHub #1906

5.25.2

Thu, 11 Jun 2020 05:34:31 GMT

Updates

  • Fix an issue where Git hook scripts failed in some environments due to CRLF newlines

5.25.1

Thu, 11 Jun 2020 05:05:30 GMT

Updates

  • Fix some minor errors in the "rush init" template that occured when Prettier reformatted the template file macros
  • Add a sample Git hook file to the "rush init" template
  • Fix a minor issue where "rush link" failed if no projects were defined yet in rush.json
  • Add "--no-verify" for commits performed by "rush version", since Git hook scripts may fail on CI machines

5.25.0

Wed, 10 Jun 2020 23:53:27 GMT

Updates

  • Add new command-line.json setting "autoinstallerName"

5.24.4

Mon, 08 Jun 2020 18:04:35 GMT

Updates

  • Explicitly assigning the option value for --resolution-strategy. This fixes a crash with pnpm v5, which deprecated the option.
  • Fix an issue where install-run.js is not able to find its own .bin in PATH
  • Fix an issue where "rush install" sometimes skipped regenerating temporary packages, which is incompatible with PNPM's "--frozen-lockfile" feature

5.24.3

Thu, 04 Jun 2020 22:50:56 GMT

Updates

  • Fix an issue where "rush deploy" generated incorrect symlinks on Mac OS if the target folder was symlinked (GitHub #1910)

5.24.2

Wed, 03 Jun 2020 05:35:19 GMT

Updates

  • Expect error when trying to resolve optional dependency during deploy

5.24.1

Tue, 02 Jun 2020 03:11:32 GMT

Updates

  • Fix an issue where the "linkCreation" defaulted to "none" instead of "default"

5.24.0

Mon, 01 Jun 2020 08:48:49 GMT

Updates

  • Set next LTS node version to 14.
  • Add new "rush deploy" command that copies subsets of files/symlinks to a deployment folder

5.23.5

Thu, 28 May 2020 22:49:57 GMT

Updates

  • Fix an issue where Rush cannot reinstall itself on Windows

5.23.4

Thu, 21 May 2020 15:41:59 GMT

Updates

  • Add a new rush.json setting "allowMostlyStandardPackageNames"
  • Add RUSH_PARALLELISM environment variable for specifying the --parallelism default

5.23.3

Fri, 15 May 2020 08:10:59 GMT

Updates

  • Fix a few instances of missing spaces in --help documentation.
  • Provide an option to pass --frozen-lockfile to pnpm for rush install

5.23.2

Wed, 22 Apr 2020 18:44:26 GMT

Updates

  • Add common-versions.json to the set of files that, when changed, will trigger reinstallation of dependencies.

5.23.1

Wed, 15 Apr 2020 03:33:55 GMT

Updates

  • Fix a regression in Rush 5.19.0 where customizing "rush rebuild" would call the "build" script instead of the "rebuild" script.
  • Fix an issue where, on some minimal systems, Rush used a missing shell command to detect an application path.
  • Fix an issue where the common/temp/*.tgz files resulted in different shrinkwrap files on different operating systems

5.23.0

Sat, 04 Apr 2020 00:38:29 GMT

Updates

  • Add a new rush.json setting "preventManualShrinkwrapChanges" which prevents against accidental mistakes in pnpm-lock.yaml.
  • Upgrade node-tar
  • Remove some misleading log output for "rush build" (GitHub #1733)

5.22.0

Wed, 18 Mar 2020 01:23:22 GMT

Updates

  • Replace dependencies whose NPM scope was renamed from @microsoft to @rushstack
  • Support setting environment variables for package manager install processes in rush.json and expose --max-install-attempts as a parameter for rush install/update.

5.21.0

Sat, 07 Mar 2020 05:36:08 GMT

Updates

  • Make the event hook failure message print in yellow.
  • Improve phrasing of an error message.
  • Add a new command-line.json setting "required" for non-optional parameters
  • Implement pnpmOptions.pnpmStore and RUSH_PNPM_STORE_PATH, to allow the end-user to define where PNPM will place its store.
  • Add a --json flag for "rush check" to facilitate automation

5.20.0

Wed, 12 Feb 2020 21:51:19 GMT

Updates

  • Support "." as a value for the --to and --from parameters to build to the current project.
  • Improve security by allowing the "rush publish" authentication token to be specified via an environment variable.

5.19.4

Tue, 28 Jan 2020 03:57:30 GMT

Updates

  • Fix an issue where a missing "repository" property in rush.json would cause "rush change" to throw.

5.19.3

Tue, 28 Jan 2020 01:35:53 GMT

Version update only

5.19.2

Tue, 28 Jan 2020 01:08:26 GMT

Updates

  • Fix an issue where the rushx command will always report error.
  • Fixes "too many params" and "unable to find ref v<version>" issues in git tagging while publishing.

5.19.1

Sat, 25 Jan 2020 05:15:10 GMT

Updates

  • Fix an issue with install-run.js, where successful executions exit with a nonzero exit code.

5.19.0

Sat, 25 Jan 2020 04:19:23 GMT

Updates

  • Make the default branch and default remote configurable.
  • Fix an issue where the Rush process terminates without any error message during installation/linking, due to a dependency package that broke its SemVer contract (GitHub #1713)
  • Update package.json files without reformatting or reordering properties and fields during "rush add", "rush version" and "rush publish".
  • Upgrade Node typings to Node 10
  • Update the "rush init" .gitignore file to ignore .rush/temp and .DS_Store folders
  • Improve command-line.json handling so that the "rush build" and "rush rebuild" commands can be extended without having to duplicate the built-in options (GitHub #1375)
  • Add a --json flag for "rush list" to facilitate automation

5.18.0

Sat, 11 Jan 2020 05:38:55 GMT

Updates

  • Don't use the build verb when printing task failures
  • Add a --commit command-line argument to the publish command to allow the git commit to be explicitly provided for tagging.
  • Update GitHub project URL in some resource files
  • fix typo in version-policies.json

5.17.2

Tue, 26 Nov 2019 00:53:52 GMT

Updates

  • Resolve an issue where git tags were not being applied when using pack or publish with --include-all

5.17.1

Thu, 21 Nov 2019 00:50:15 GMT

Patches

  • Remove an error thrown when the --registry and --pack arguments are used on rush publish, because --registry might be required to check if a package has already been published against a custom registry.
  • Fix an issue with Rush add, where Rush was unable to add unpublished local projects as dependencies.

5.17.0

Thu, 14 Nov 2019 22:52:48 GMT

Updates

  • Add a new setting "implicitlyPreferredVersions" in common-versions.json that can be used to solve some installation failures involving peer dependencies
  • Improve the generation of shrinkwrap-deps.json to consider optional peer dependencies and implicitlyPreferredVersions=false
  • Fix an issue where certain operations did not use a stable sort when executed on older versions of NodeJS

5.16.1

Fri, 25 Oct 2019 20:15:59 GMT

Updates

  • Log to console instead of throwing when an unmet peer dependency is encountered during linking, and strictPeerDependencies is false
  • Refactor some code as part of migration from TSLint to ESLint

5.16.0

Thu, 17 Oct 2019 00:41:01 GMT

Updates

  • Support PNPM 4 on Rush
  • Add support for "rush add" for repos using the Yarn package manager.

5.15.1

Thu, 10 Oct 2019 23:47:19 GMT

Updates

  • Fix an issue where build commands can fail because git commands used to track changes can be too long.
  • Fix compatibility issue where PNPM 4 requires --no-prefer-frozen-lockfile instead of --no-prefer-frozen-shrinkwrap

5.15.0

Tue, 08 Oct 2019 22:58:33 GMT

Updates

  • Improve 'rush build' to avoid rebuilding unnecessarily when the package-lock.json file has changed (pnpm only).

5.14.0

Wed, 02 Oct 2019 01:18:02 GMT

Updates

  • Add an --all flag to "rush add" to add a dependency to all projects.
  • Add options to rush change to allow creating changefiles for all changed projects.
  • Rush update now prints a message when the approved packages files are out-of-date, and rush install exits with an error if they are out-of-date.
  • Include peerDependencies in the approved packages files.
  • Make detection of changefiles and changes in projects safer.
  • Update repository URL

5.13.1

Fri, 27 Sep 2019 22:34:50 GMT

Updates

  • Improve support for pnpm lockfile version 5.1. Also fixes a regression in Rush 5.12.0 in which rush install can fail on pnpm 3.5+ with the error message "ERROR: Invalid Version"

5.13.0

Wed, 11 Sep 2019 21:41:34 GMT

Updates

  • Add support for incremental custom commands. This change also adds a per-project .rush/temp folder that should be included in .gitignore (i.e. - .rush/temp/**).
  • Add a --from-version-policy option for bulk commands to allow running the command (like build) from packages with a version policy and their direct and indirect dependent projects
  • Update documentation
  • Do not delete the pnpm store if an installation retry fails. Delete the pnpm store if and only if all the installation retry attempts fail.

5.12.1

Tue, 10 Sep 2019 19:45:15 GMT

Updates

  • Fix an issue where Rush attempted to add Git tags for packages that had already been published when the publish command is run with the --pack and --apply-git-tags-on-pack flags. This caused a fatal error when tags already existed.

5.12.0

Wed, 04 Sep 2019 19:01:42 GMT

Updates

  • Adding --apply-git-tags-on-pack flag to the publish command to apply git tags when using --pack
  • For rush publish and rush version, change the path spec for git add to include everything from the repo root directory. This addresses https://github.com/microsoft/web-build-tools/issues/669.
  • Add support for NPM package aliases (i.e. dependency versions such as "npm:example@^1.2.3")
  • Fix an issue with rush change that occurs when rush.json isn't in the repository root.

5.11.4

Fri, 23 Aug 2019 03:31:52 GMT

Updates

  • Some optimizations for --to, --from, and cyclic dependency detection for repos with large numbers of projects.
  • Ensure install-run-rushx script is updated during "rush update"

5.11.3

Wed, 21 Aug 2019 22:13:26 GMT

Updates

  • Add support for the RUSH_PREVIEW_VERSION environment variable to the install-run-rush script.
  • Add support for the RUSH_TEMP_FOLDER environment variable in the install-run-rush script.
  • Add install-run-rushx script to enable easy execution of the rushx command in CI

5.11.2

Fri, 16 Aug 2019 05:15:17 GMT

Updates

  • Refactor build action to allow generating build graph statically
  • Security updates.
  • Fix validation of hotfix changes in a hotfix-enabled branch
  • Clarify that "rush update --full" should be run when changing certain settings

5.11.1

Fri, 26 Jul 2019 23:08:23 GMT

Updates

  • Fix critical path computation for projects
  • Normalize the casing of a temp folder specified with RUSH_TEMP_FOLDER.

5.11.0

Fri, 26 Jul 2019 08:34:03 GMT

Updates

  • Generate skeleton BuildXL script modules for each package
  • Allow building with newer versions of Node during development
  • Add experimental rush-buildxl package
  • Ensure the filesystem paths that Rush uses have the same character casing that exists on disk.
  • Tweak NodeJS version warning messages and add suppressNodeLtsWarning option to rush.json to suppress non-LTS version warning.
  • Do not terminate rush execution if a temp project lacks an entry in the PNPM shrinkwrap. Instead, allow the program to continue so that PNPM can update the outdated shrinkwrap. This fixes #1418 https://github.com/microsoft/web-build-tools/issues/1418.

5.10.3

Thu, 18 Jul 2019 00:07:46 GMT

Updates

5.10.2

Tue, 16 Jul 2019 19:36:08 GMT

Updates

5.10.1

Thu, 11 Jul 2019 22:00:50 GMT

Updates

  • Fix for issue https://github.com/microsoft/web-build-tools/issues/1349 rush install fails when there is a preferred version with a peer dependency. This was caused by file format changes in pnpm 3.x
  • Fix an issue where "rush add" erroneously believes ensureConsistentVersions is unset.
  • Fix an issue that arises when "rush add" is run and the package manager isn't installed.
  • Fix an issue where rush add -m doesn't corretly update the common-versions.json file.
  • Fix an issue where rush change will detect unrelated changes.
  • When rush change detects no changes, clarify that no relevant changes were detected in the case that changes were in a package not versioned by rush'
  • Fix https://github.com/microsoft/web-build-tools/issues/1347: rush link was failing on pnpm 3+ with the changes in shrinkwrap format with regard to peer dependencies. Rush now resolves the path to the local project accurately by referring to the shrinkwrap rather than figuring out the path on its own.

5.10.0

Sat, 29 Jun 2019 02:47:42 GMT

Updates

  • New action added to list package name for all projects
  • Add ability to opt out of changelog files for version policies.
  • Workaround for pnpm issue 1890: https://github.com/pnpm/pnpm/issues/1890. Fixes the issue of "rush update --full" not working correctly if the internal copy of the pnpm shrinkwrap "common/temp/node_modules/.shrinkwrap.yaml" exists even though Rush deletes the formal copy in "common/temp/shrinkwrap.yaml".

5.9.1

Thu, 13 Jun 2019 04:46:18 GMT

Updates

  • Fix an issue where custom command-line parameters weren't passed to projects' builds.

5.9.0

Tue, 11 Jun 2019 02:26:20 GMT

Updates

5.8.0

Tue, 11 Jun 2019 01:28:33 GMT

Updates

  • Add a new setting "ignoreDependencyOrder" in command-line.json
  • Clarify "rush change" messages.
  • Improve 'rush version' to fetch before checkout, which avoids an error in cases where the branch wasn't fetched.
  • Fix typo in command-line help for "rush add"
  • Fix an issue where "rush build" ignored changes to a project with an empty build script (GitHub #1282)

5.7.3

Mon, 06 May 2019 21:03:32 GMT

Updates

  • Allow colons in command line action names (add missing dependency from 5.7.2)

5.7.2

Mon, 06 May 2019 19:52:37 GMT

Updates

  • Allow colons in command line action names

5.7.1

Wed, 24 Apr 2019 06:32:17 GMT

Updates

  • Fix an issue where Rush sometimes failed to parse versions from PNPM 3.x's pnpm-lock.yaml
  • Update the .gitattributes file written by "rush init" to use a better syntax highlighter for JSON files

5.7.0

Tue, 23 Apr 2019 07:55:34 GMT

Updates

  • Add support for PNPM version 3 (which changed the shrinkwrap file name to "pnpm-lock.yaml")
  • Add a new rush.json setting "pnpmOptions.resolutionStrategy"

5.6.4

Mon, 15 Apr 2019 06:40:00 GMT

Updates

  • Add support for string parameter for custom commands.
  • Remove the obsolete "--release-type" option which only worked if you used a specific version of gulp-core-build-typescript
  • Adds --no-verify to git push during a rush publish

5.6.3

Mon, 25 Mar 2019 03:15:21 GMT

Updates

  • Update the "rush init" template with a .gitattributes rule to allow comments in JSON files
  • Add ability to publish partial prereleases

5.6.2

Thu, 21 Mar 2019 23:09:56 GMT

Updates

  • Publish: pass auth token through to npm view when checking if package exists

5.6.1

Mon, 18 Mar 2019 04:48:37 GMT

Updates

  • Remove the "rush check" step from the travis.yml template, since this is now handled by "ensureConsistentVersions" from rush.json
  • Improve "rush change" to ignore the ".git" file extension when appended to the "repository.url" setting in rush.json

5.6.0

Fri, 15 Mar 2019 03:21:02 GMT

Minor changes

  • Add "--set-access-level" parameter for "rush publish" to control whether NPM packages are published as "public" or "restricted"
  • Add a "dependencies" configuration property to version-policies.json to customize the way dependency versions are published and stored in source control

Updates

  • Add support for the Yarn --ignore-engines, exposed as yarnOptions.ignoreEngines in rush.json
  • Add the ability to configure the version bump and publish git commit message, exposed as gitPolicy.versionBumpCommitMessage in rush.json
  • Fix an issue with "rush publish --pack" when using yarn.
  • Remove the "rush check" step from the travis.yml template, since this is now handled by "ensureConsistentVersions" from rush.json
  • Fix an issue where "rush change" sometimes could not detect changes correctly when invoked on a forked GitHub repo
  • Fix an issue where "rushx" and "rush build" did not search for commands in the current project's local node_modules/.bin folder (GitHub issue #706)
  • The --debug parameter now automatically breaks in the debugger when an InternalError is thrown
  • Support overriding 'build' and 'rebuild' commands in command-line.json
  • Update README.md
  • Change "rush build" to print stdout if stderr is empty and a task fails. This improves Webpack support

5.5.4

Thu, 13 Dec 2018 02:58:10 GMT

Patches

  • Remove unused jju dependency

Updates

  • Properly handle Git worktrees
  • Updated to use the new InternalError class for reporting software defects

5.5.3

Wed, 05 Dec 2018 20:14:08 GMT

Updates

  • Add user read permission to copied Git hooks

5.5.2

Fri, 09 Nov 2018 02:14:11 GMT

Updates

  • Include an environment variable option to create symlinks with absolute paths.

5.5.1

Wed, 07 Nov 2018 21:04:35 GMT

Updates

  • For NodeJS 10, require at least LTS (10.13.0)
  • Install rush and package managers in a node version-specific folder under the user's home directory
  • Added support for git hooks
  • Remove all dependencies on the "rimraf" library
  • Upgrade fs-extra to eliminate the annoying "ERROR: ENOTEMPTY: directory not empty, rmdir" error that occasionally occurred during "rush link"

5.4.0

Thu, 25 Oct 2018 23:20:40 GMT

Updates

  • Remove use of a deprecated Buffer API.
  • Fix an issue with "rush change" on NodeJS 10.
  • Fix an issue where "rush install" sometimes would incorrectly ask for "rush update", when using the Yarn package manager
  • Improve sorting of @rush-temp projects, which may reduce churn of hashes in the shrinkwrap file
  • Expose safeForSimultaneousRushProcesses to custom commands
  • Add 'variants' feature and command-line parameter

5.3.4

Wed, 17 Oct 2018 03:19:43 GMT

Updates

  • Make rush purge also call rush unlink
  • Fix an issue where "rush publish" invoked the wrong command when using Yarn
  • Install optional dependencies, except w/ npm<5.0.0

5.3.3

Thu, 11 Oct 2018 23:58:16 GMT

Updates

  • Remove warning for NodeJS 10 now that it is stable (LTS)

5.3.2

Mon, 08 Oct 2018 23:19:51 GMT

Updates

  • Change "rush check" so that it considers "cyclicDependencyProjects" and ensures they are consistent or listed in "allowedAlternateVersions"
  • Fix a recent regression where "rush link" was failing for NPM/Yarn because hard links don't support relative paths
  • Make sure npm package does not exist before publishing

5.3.1

Wed, 03 Oct 2018 00:01:18 GMT

Updates

  • Fix an issue where after running "rush add" (after successfully running "rush install"), the new package was not being installed or linked.
  • Fix an incorrect default in the "rush init" template comments

5.3.0

Fri, 28 Sep 2018 20:36:48 GMT

Updates

  • Add "ensureConsistentVersions" configuration which runs "rush check" before certain commands
  • Add a new command "rush add" for managing package.json dependencies
  • Rush now detects some package.json errors such as the same package name being listed in both "dependencies" and "optionalDependencies"
  • Update "rush link" to use relative paths when creating symlinks, to facilitate building Docker images

5.2.1

Thu, 13 Sep 2018 21:57:21 GMT

Updates

  • Fix an issue where "rush init" failed because its ".gitignore" template was excluded from the package

5.2.0

Thu, 13 Sep 2018 19:34:37 GMT

Updates

  • Add a "rush init" command for scaffolding new monorepo folders
  • Allow "rush scan" to be used without a rush.json configuration

5.1.0

Sat, 08 Sep 2018 20:57:32 GMT

Updates

  • Update "repository" field in package.json
  • Add support for PNPM's --strict-peer-dependencies feature
  • Add support for the Yarn package manager (this is a "beta" feature; please report any issues you encounter!)

5.0.6

Fri, 31 Aug 2018 23:10:31 GMT

Updates

  • Add "--prefer-frozen-shrinkwrap false" to the "pnpm install" command line as a workaround for https://github.com/pnpm/pnpm/issues/1342
  • Skip validation of the Git email address if Git is not installed, or if rush.json isn't in a Git working directory, or if no policy was defined

5.0.5

Wed, 29 Aug 2018 07:05:22 GMT

Updates

  • Fix an issue where rush install will fail if git isn't installed.
  • Fix an issue where "rush -h" didn't print help for the "build" and "rebuild" commands, unless invoked under a Rush folder
  • Improve command-line help for "rush build"
  • Fix regression causing "ERROR: EEXIST: file already exists"

5.0.4

Thu, 23 Aug 2018 00:08:41 GMT

Updates

  • Fix capitalization of new "filePath" API property

5.0.3

Wed, 22 Aug 2018 20:58:58 GMT

Updates

  • git st
  • When saving config files, Rush should include the "$schema" directive
  • Fix a regression where "rush version" sometimes failed with "The value for entries[0].comments.dependency[0].author is undefined"
  • When updating common-versions.json and version-policies.json, preserve the existing comments and whitespace

5.0.2

Sat, 18 Aug 2018 01:27:39 GMT

Version update only

5.0.1

Sat, 18 Aug 2018 01:21:59 GMT

Updates

  • Fix typo in rush error message
  • Add a flag to "rush install" which runs the package manager in a verbose logging mode.
  • Remove package.json from rush-lib constants. Add public API for creating changefiles.
  • Fix an issue where "rush version" would fail with a useless error message if the Git user email is not specified.
  • Update lodash.
  • Add a "--network-concurrency" command-line option to help troubleshoot the ECONNRESET error that people occasionally have reported ( https://github.com/pnpm/pnpm/issues/1230 )

5.0.0

Sat, 30 Jun 2018 00:57:22 GMT

Updates

  • Update peerDependencies when bumping package versions (issue #668)
  • Add allowedAlternativeVersions setting to common-versions.json config file
  • Fix an issue where PNPM shrinkwrap file parser did not handle relative/absolute version paths correctly
  • Print each project's build time during the summary
  • Fix an issue where the common/temp/.npmrc file could contain missing environment variable tokens
  • Rush now creates common/scripts/install-run.js and install-run-rush.js scripts to formalize how CI jobs bootstrap tooling dependencies
  • Enable the "rush rebuild" and "rush build" commands to work without a Git repository
  • Add support for RUSH_TEMP_FOLDER environment variable to customize the location of Rush's commonTempFolder
  • Fix an issue where if package-deps.json fails to parse, the build fails
  • Improve "rush link" to create node_modules/.bin launchers for local project dependencies (not just installed external dependencies)
  • Update rush.json schema to allow requested versions (e.g. Rush or the package manager) to be a prerelease SemVer pattern
  • Fix annoyance where "rush update" (formerly "rush generate") would always change the integrity hash for tarball entries in shrinkwrap.yaml
  • Fix an issue where Rush's .npmrc configuration was not honored when spawned via an NPM lifecycle script; in general the process environment is now more isolated
  • Rush now warns when phantom node_modules folders are found
  • Relax the rush.json version check for rush-lib; future versions are now accepted as long as the major/minor parts match
  • Fix a regression where builds would sometimes fail with a zero exit code due to NodeJS's handling of uncaught Promise rejections
  • Improve "rush check" to ignore peer dependencies, since they don't need to be consistent with everything else (and generally won't be)
  • (Breaking change) Replace pinned-versions.json with a more general common-versions.json that can track other cross-project dependency versions
  • (Breaking change) In common-versions.json, rename the "pinned versions" concept to "preferred versions", and separate the XStitch versions into their own field
  • Report an error if the package manager version is too old
  • (Breaking change) Redesign command-line.json config file to support other command types
  • (Breaking change) Rename custom-commands.json to be command-line.json
  • Add support for "global" commands in custom-commands.json
  • When using PNPM, remove some NPM bug workarounds that probably caused problems for "pnpm install"
  • Add a lock file to avoid race conditions when the Rush version selector is installing rush-lib
  • Fix a problem where the "rush-recycler" folder was not getting cleaned on macOS
  • (Breaking change) Remove unused RushConfiguration.homeFolder API
  • Add RUSH_PREVIEW_VERSION environment variable for piloting new versions of Rush
  • Add new command "rush purge" for cleaning up temporary files
  • Fix an issue where rush-recycler wasn't emptied if a folder exceeded the Windows MAX_PATH
  • Minor improvements for logging
  • When installing tools, always copy the repo's .npmrc file to the target folder
  • (Breaking change) Replace the "rush generate" command with a new command "rush update"
  • (Breaking change) Replace "rush install --clean" and "--full-clean" with "rush install --purge"
  • Improve lifecycle script execution to support Unix slashes in the command name when running on Windows
  • Add "rushx" binary for single-project commands
  • (Breaking change) Eliminate extra letters from shortened command line options (renamed "-cpo" to "-o", and removed "-vp" and "-pn")
  • Add check for unpublished releases
  • Add a "--to-version-policy" option for "rush rebuild" to allow building only a particular version policy
  • Add --release-type parameter to "rush publish" to be able to create different tarballs based on release type
  • Add "--ensure-version-policy" option for "rush version" to support updating the versions directly

4.3.3

Thu, 31 May 2018 21:57:13 GMT

Updates

  • Remove the old undocumented "rush purge" command, since it conflicts with Rush 5

4.3.2

Mon, 26 Mar 2018 19:12:42 GMT

Updates

  • Change *.d.ts file path for rush-lib
  • Add "ignoreMissingScript" flag to custom command and fix other minor issues
  • Add --pack option to "rush publish" to support packing packages into tarballs instead of publishing to NPM registry
  • Upgrade colors to version ~1.2.1

4.3.1

Tue, 20 Mar 2018 20:02:56 GMT

Updates

  • Add support for overriding the default windows parallelism with 'max'.
  • Remove IPackageJson API. Consumers should now use the equivalent definition from @microsoft/node-core-library instead.
  • Move the environment checks from rush-lib to rush
  • Fix an annoyance where common/temp/shrinkwrap.yaml was formatted in a way that made diffs less readable

4.3.0

Fri, 02 Mar 2018 02:45:37 GMT

Updates

  • Fix an issue where we always deleted the pnpm store. This is not necessary since the store is transactional. We should only delete the store if it is a --clean install.
  • Fix an issue where the package manager installation could get corrupted if the Rush tool was accidentally invoked multiple times concurrently.
  • Fix issue with pnpm where store was not removed after an unsuccessful installation
  • When Rush links PNPM packages to their dependencies, it should link to the realpath, rather than linking to the symlink. This will improve performance of builds by reducing the number of file system reads that are needed.
  • Update Rush to consider the shrinkwrap file during incremental builds.
  • Add a --changed-projects-only flag to 'rush build', which will skip rebuilding of downstream packages. It will only rebuild projects that change, but not their dependents.
  • Add a locking mechanism around certain rush commands so only one process can be working in a Rush repository at a single point in time. This is useful for commands that may corrupt each other, like generate, install, link, and rebuild.
  • When using pnpm, Rush will check and see if other projects are using a dependency and will re-use it if possible. This way, a user will not have to run "rush generate" if they are adding a dependency that is already being used elsewhere in the monorepo.
  • Add a notice for unsupported versions of NodeJS runtime
  • Add a new command-line flag "--conservative" which causes "rush generate" to perform a minimal upgrade
  • Improved "rush generate" so that if interrupted, it does not leave you with a deleted shrinkwrap.yaml; the new integrity checks eliminate the need for this, and it was annoying
  • Fix Rush version increase logic to handle cyclic dependencies properly

4.2.5

Fri, 26 Jan 2018 00:36:51 GMT

Updates

  • Fix an issue when parsing scoped peer dependencies in the pnpm shrinkwrap file

4.2.4

Sun, 21 Jan 2018 06:33:59 GMT

Updates

  • Improve the error message when loading rush.json from a newer release

4.2.3

Thu, 18 Jan 2018 19:02:07 GMT

Updates

  • Avoid git errors when there are only empty change files

4.2.2

Wed, 17 Jan 2018 10:49:31 GMT

Version update only

4.2.1

Fri, 12 Jan 2018 23:35:48 GMT

Patches

  • Fix a bug in "rush change" to allow skipping changes when empty change file exists.
  • Change the way Rush prints output, to make it more readable and easy to tell how far into a build you are.

4.2.0

Mon, 11 Jan 2018 22:14:30 GMT

Minor changes

  • Introduce a new project-specific setting "skipRushCheck" to exempt certain projects from the "rush check" validation
  • Introduce a new setting "mainProject" for lockstep version policies. This enables a scenario where a group of packages share a common change log, which is associated with the main project.

4.1.1

Mon, 08 Jan 2018 20:34:30 GMT

Patches

  • Fix an issue with checking the pnpm shrinkwrap file when there are peer dependency version specifiers

4.1.0

Thu, 30 Nov 2017 20:34:30 GMT

Minor changes

  • Adding support for using PNPM with Rush

Patches

  • Fix issue where 'rush publish' was failing when the only changefiles were 'none' type
  • Add support for hotfix changes
  • Fix an issue with file locks causing exceptions during 'rush install'
  • Fix issue where 'rush install' did not invalidate node_modules after bumping package manager version

4.0.1

Mon, 13 Nov 2017 18:34:30 GMT

Patches

  • Fix the regression where "rush -h" didn't work outside a repo folder
  • Reduce the default parallelism on Windows platform
  • Force change log name to be the same as package name to handle the error case when package is renamed but change log is not

4.0.0

Sat, 4 Nov 2017 03:22:28 GMT

Breaking changes

3.0.20

Thu, 19 Oct 2017 23:01:49 GMT

Patches

  • Fix a stack overflow error that occurs when "rush rebuild" encounters a cyclic dependency
  • Fix a bug that "rush rebuild" fails if "from" parameter is provided
  • Validate versions before "rush version" commits version updates

3.0.19

Fri, 06 Oct 2017 22:44:31 GMT

Patches

  • Enable strickNullChecks
  • Fix a bug in "rush version" that devdependency does not get bumped if there is no dependency.
  • Fix a bug in "rush change" so it handles rename properly.
  • Add npm tag support in "rush publish".

3.0.18

Tue, 26 Sep 2017 13:51:05 GMT

Patches

  • Update various dependencies

3.0.17

Thu, 14 Sep 2017 18:51:05 GMT

Patches

  • Fix some issues in rush telemetry collection

3.0.16

Wed, 6 Sep 2017 18:24:39 GMT

Patches

  • Fix an issue running 'rush install' after adding a new project

3.0.15

Wed, 30 Aug 2017 18:24:39 GMT

Patches

  • Replace the temp_modules/*/package.json files with TGZ files
  • Add repositoryUrl to RushConfiguration to track remote repository
  • Use the new Json API from node-core-library
  • Add two new methods to ChangeFile class
  • Introduce an experimental "rush version" action to manage project versions based on version policy
  • Make "rush generate" not throw if there is a problem reading the shrinkwrap file

3.0.12

Fri, Jul 21, 2017 22:30:12 PM

Patches

  • Temporarily revert Rush incremental build checking files outside of the project's directory
  • Fix error message during build
  • Add a ChangeFile class to rush-lib
  • Fix an issue where rush would crash if it could not find the rush.json
  • If "rush generate" detects that all dependencies are present, it will do nothing. This is overridable with the "--force" flag.
  • Promote Changelog interfaces to an @alpha API in rush-lib

3.0.11

Mon, Jul 3, 2017 10:53:12 PM

Patches

  • Add support for non-SemVer dependency specifiers in package.json; for example, "github:gulpjs/gulp#4.0" or "git://github.com/user/project.git#commit-ish"

3.0.10

Tue, 27 Jun 2017 21:44:50 GMT

Patches

  • Fix an issue with 'rush rebuild' where it fails on non-windows platforms
  • Fix an issue with 'rush -help' where it throws if rush.json is not available.

3.0.9

Thu, June 8, 2017 03:30:27 GMT

Patches

  • Fix issue with 'rush check' where it sometimes threw exceptions.

3.0.8

Thu, June 8, 2017 03:00:27 GMT

Patches

  • Fix issue with 'rush check' so it no longer considers cyclic dependencies as a mismatch.

3.0.7

Tue, May 23, 2017 00:55:27 GMT

Patches

  • Fix a regression for packages with an empty script (no-op)

3.0.6

Sat, May 20, 2017 00:55:27 GMT

Patches

  • Revert major break with rush build

3.0.5

Fri, May 19, 2017 10:55:27 GMT

Patches

  • Fix the Rush build error due to 'SyntaxError: Unexpected token u in JSON at position 0'
  • Fix a minor bug where Rush complained about extra directories.

3.0.4

Tue, May 17, 2017 01:48:27 GMT

Patches

  • Improved the "rush build" change detection: if any file outside a project folder has changed, rebuild all projects.
  • The "rush build" command now stores the command-line options used during a build, and forces a full rebuild if the options have changed.
  • Fix for a "rush publish" bug involving command line option quoting.

3.0.3

Tue, May 16, 2017 00:43:27 GMT

Patches

  • Fix a regression where "rush install" sometimes failed to install the NPM tool

3.0.2

Sun, May 14, 2017 19:22:16 GMT

Patches

  • Fix some minor documentation issues

3.0.1

Sun, May 14, 2017 18:30:35 GMT

Breaking changes

  • THIS IS A BREAKING CHANGE - see the web-build-tools news page for migration instructions
  • The "rush install" now automatically detects when you need to run "rush generate", and the algorithm has been redesigned so that many package.json updates can skip "rush generate" entirely - hurray!
  • Major restructing of common folder; the "temp_modules" folder is no longer tracked by Git
  • Greatly simplified .gitignore; all of Rush's temporary files are now under common/temp
  • The rush.json file format has been simplified, and auxiliary config files are now consolidated in common/config/rush
  • The "packageReviewFile" feature has been overhauled - see wiki documentation on GitHub
  • The "rush check" command was renamed to "rush scan", and "rush check-versions" was shortened to "rush check"

Minor changes

  • The change log file format was expanded to support subset publishing (coming soon!)
  • More operations now use the AsyncRecycleBin feature
  • The "rush link" command now skips if nothing has changed

Patches

  • Numerous small fixes and enhancments

2.5.0

Tue, 11 Apr 2017 21:20:58 GMT

Minor changes

  • Deprecate the pinnedVersions field of rush.json in favor of a standalone pinnedVer sions.json

Patches

  • Bump stream-collator to 2.0.0
  • Publish: Improve detection of already published package versions
  • Publish: Fix a bug where not all project versions get updated for prerelease

2.4.0

Thu, 30 Mar 2017 18:25:38 GMT

Minor changes

  • The 'link' action will be automatically ran after 'install' or 'generate'.
  • Support adding a suffix during rush generate

Patches

  • Fixing an issue where install was not detecting changes to the shrinkwrap
  • Registry should not be hardcoded when auth token is provided

2.3.0

Fri, 24 Feb 2017 22:54:16 GMT

Minor changes

  • Minor version

2.2.1

Fri, 24 Feb 2017 22:53:18 GMT

Version update only

2.2.0

Fri, 24 Feb 2017 22:44:31 GMT

Minor changes

  • Add a "pinnedVersions" option to rush.json, which will add dependencies to the common package.json. Since these dependencies are installed first, this mechanism can be used to control versions of unconstrained second-level dependencies.
  • Make --quiet builds the default. Deprecate the --quiet parameter. Add a --verbose parameter which displays the build logs.

Patches

  • Rush install checks to ensure that generate has been run.

1.8.2

Wed, 15 Feb 2017 08:54:44 GMT

Patches

  • Temporarily reverting the new temp_modules validation feature, because it is incompatible with some usage scenarios

1.8.1

Tue, 14 Feb 2017 23:40:44 GMT

Patches

  • Fixing a bug with install where it preemptively returned before installing.

1.8.0

Tue, 14 Feb 2017 22:53:30 GMT

Minor changes

  • Install will error if the temp_modules have drifted out of sync with the package's package.json files

1.7.0

Tue, 14 Feb 2017 02:31:40 GMT

Minor changes

  • Adds an extra command (rush check-versions), which can find inconsistencies in package.json dependency versions across a repository.

1.6.0

Sun, 05 Feb 2017 01:21:30 GMT

Minor changes

  • Add support for pre-release build

Patches

  • When the git policy fails, rush should return a non-zero error code.
  • Lock version numbers for @types packages
  • Ensure world readiness
  • Update .npmignore
  • Cyclic dependency should not have version bumped when changes are applied.

1.5.1

Tue, 24 Jan 2017 03:26:05 GMT

Patches

  • The 'link' command should display elapsed time when finished executing.
  • Minor fix so "allowedEmailRegExps" works on Mac/Linux
  • Fixed a small bug where "rush publish -a" was not deleting changelog files

1.5.0

Sun, 22 Jan 2017 02:04:57 GMT

Minor changes

  • Implemented a new rush.json option "gitPolicy" to avoid incorrect commit e-mails

Patches

  • Update temp_modules when versions are bumped.

1.4.1

Tue, 03 Jan 2017 21:52:49 GMT

Patches

  • Fixing rush publish changelog code to reference projects correctly.
  • rush publish now only updates changelogs for projects that are marked as shouldPublish=true.

1.4.0

Tue, 06 Dec 2016 20:44:26 GMT

Minor changes

  • Changes for RC0 release.

1.3.0

Sat, 03 Dec 2016 07:47:39 GMT

Minor changes

  • Adding support for changelog generation to rush publish.
  • Refactoring "config" into "configuration."

Patches

  • Converting node and webpack-env typings to use @types, and cleaning them up.
  • The cache should be cleaned unless we are using the global cache
  • Fixed a regression where "rush install" would sometimes corrupt the node_modules folder. Also, common/package.json is now sorted deterministically.

1.2.4

Patches

  • If the test, clean, or build commands are defined in the package.json, but are empty strings, then do a no-op during the build.

1.2.3

Patches

  • Make deletion of node_modules folder more cautious to improve failure rate on automated builds.
  • Updating Rush generate to more efficiently delete folders.

1.2.2

Patches

  • Updating the deps hash dependency, which includes a fix which resolves a bug where changes were not being recalculated when multiple files were changed.

1.2.1

Patches

  • Updating the rush change with better verification logic.

1.2.0

Minor changes

  • Adding the 'build' action, which support incremental build.

1.1.3

Patches

  • Partially reverting changes for treating success with warnings differently.
  • Making Rush install transactional.

1.1.2

Patches

  • Fix a bug in rush change

1.1.1

Patches

  • correcting casing of files and imports

1.1.0

Minor changes

  • The "packageReviewFile" feature now supports a setting "ignoredNpmScopes" that can be used e.g. to ignore the "@types" scope

Patches

  • Fixing Rush to run on UNIX and Linux.

1.0.10

Breaking changes

  • Rename shouldTrackChanges to shouldPublish which indicates whether a package should be included for the publish workflow.

Minor changes

  • Updating rush install to be transactional.

Patches

  • Updating the publish workflow.

1.0.9

Patches

  • Updating the publish workflow.

1.0.7

Patches

  • Renaming the local-npm directory to npm-local.
  • Include NPM --cache and NPM --tmp options in the rush.json file.
  • Limit Rush Rebuild parallelism to 'number-of-cores' simultaneous builds, optionally overridable on command line

1.0.5

Patches

  • Fixed a bug in Rush Generate which showed: ERROR: Input file not found: undefined when packageReviewFile is omitted

1.0.4

Minor changes

  • Added optional support for a "packageReviewFile" that helps detect when new NPM package dependencies are introduced

Patches

  • Replaced JSON.parse() with jju for improved error handling.

1.0.3

Patches

  • Fix Mac OS X compatibility issue

1.0.0

Initial release