Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
1976 lines (1269 sloc) 67.1 KB

Change Log - @microsoft/rush

This log was last generated on Sat, 22 Jan 2022 04:22:52 GMT and should not be manually modified.


Sat, 22 Jan 2022 04:22:52 GMT


  • (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)


Sat, 22 Jan 2022 03:17:59 GMT


  • (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)


Thu, 20 Jan 2022 02:46:15 GMT


  • 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 for details.


Fri, 07 Jan 2022 02:34:59 GMT


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


Fri, 07 Jan 2022 01:21:44 GMT


  • 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.


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.


  • 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.


Thu, 16 Dec 2021 05:39:21 GMT


  • 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.


Thu, 09 Dec 2021 00:24:47 GMT

Version update only


Fri, 03 Dec 2021 02:16:10 GMT


  • 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.


Thu, 28 Oct 2021 23:49:31 GMT


  • 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


Tue, 12 Oct 2021 22:26:25 GMT


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


Thu, 07 Oct 2021 23:44:52 GMT


  • 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.


Wed, 22 Sep 2021 22:54:17 GMT

Minor changes

  • Add ability to customize tag separator


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


  • 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


Fri, 10 Sep 2021 23:20:00 GMT


  • 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)


Mon, 23 Aug 2021 21:34:46 GMT


  • 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


Fri, 13 Aug 2021 22:45:36 GMT


  • 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.


Wed, 11 Aug 2021 23:16:09 GMT


  • 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 to the "rush list" command.
  • Allow the tar binary path to be overridden via the RUSH_TAR_BINARY_PATH environment variable.


Sat, 17 Jul 2021 01:16:04 GMT

Minor changes

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


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


Thu, 15 Jul 2021 01:47:18 GMT


  • Fix incremental build state calculation when using filtered installs


Tue, 13 Jul 2021 23:03:01 GMT


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


Tue, 13 Jul 2021 06:22:09 GMT


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


Fri, 09 Jul 2021 01:44:18 GMT


  • 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:
  • 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.


Sat, 15 May 2021 00:02:26 GMT


  • 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:
  • Transform package.json using pnpmfile before checking if a Rush project is up-to-date
  • Add support for the Yarn "resolutions" package.json feature.


Tue, 04 May 2021 20:26:15 GMT


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


Tue, 04 May 2021 02:45:20 GMT


  • 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)


Fri, 30 Apr 2021 00:32:16 GMT


  • Fix a regression in the S3 cloud build cache provider


Wed, 28 Apr 2021 17:54:16 GMT


  • 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


Fri, 23 Apr 2021 22:48:23 GMT

Version update only


Fri, 23 Apr 2021 22:03:08 GMT


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


Thu, 22 Apr 2021 23:07:51 GMT


  • Fix bad installs with when using pnpmfile in PNPM 6


Wed, 21 Apr 2021 23:38:22 GMT


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


Tue, 20 Apr 2021 19:04:04 GMT


  • Print diagnostic information to a log file "/.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


Sat, 17 Apr 2021 00:17:51 GMT


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


Thu, 08 Apr 2021 06:09:52 GMT


  • 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'


Mon, 29 Mar 2021 05:57:18 GMT


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


Wed, 17 Mar 2021 05:07:02 GMT


  • 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.


Tue, 16 Mar 2021 00:30:38 GMT


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


Fri, 12 Mar 2021 02:11:24 GMT


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


Wed, 10 Mar 2021 06:25:44 GMT


  • Add AWS S3 support to the experimental build cache feature


Wed, 10 Mar 2021 05:12:41 GMT


  • 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.


Tue, 02 Mar 2021 23:27:41 GMT


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


Tue, 02 Mar 2021 06:22:01 GMT


  • 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.


Tue, 23 Feb 2021 03:26:25 GMT


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


Tue, 23 Feb 2021 00:01:20 GMT


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


Sun, 21 Feb 2021 01:05:53 GMT


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


Fri, 19 Feb 2021 06:28:28 GMT


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


Fri, 19 Feb 2021 01:45:27 GMT


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


Wed, 17 Feb 2021 01:35:11 GMT

Version update only


Wed, 17 Feb 2021 01:34:11 GMT


  • (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


Sat, 13 Feb 2021 03:14:52 GMT


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


  • 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").


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)


  • Improve the wording of some log messages


Mon, 01 Feb 2021 20:42:04 GMT


  • 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)


Sat, 30 Jan 2021 01:50:27 GMT


  • 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


Thu, 21 Jan 2021 04:51:19 GMT


  • 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


Fri, 08 Jan 2021 06:12:37 GMT


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


Fri, 08 Jan 2021 05:36:55 GMT


  • 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.


Tue, 03 Nov 2020 23:34:30 GMT


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


Fri, 30 Oct 2020 05:17:42 GMT


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


Wed, 28 Oct 2020 21:44:10 GMT


  • 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


Sat, 17 Oct 2020 00:23:18 GMT


  • 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


Wed, 30 Sep 2020 21:04:15 GMT


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


Mon, 21 Sep 2020 22:00:03 GMT


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


Thu, 17 Sep 2020 07:13:04 GMT


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


Thu, 17 Sep 2020 01:23:35 GMT


  • 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.


Fri, 21 Aug 2020 22:45:58 GMT


  • 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


Thu, 20 Aug 2020 18:25:41 GMT


  • 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.


Wed, 19 Aug 2020 00:17:48 GMT



Tue, 18 Aug 2020 03:48:56 GMT


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


Fri, 14 Aug 2020 21:03:48 GMT


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


Fri, 14 Aug 2020 04:06:30 GMT


  • Change method used to calculate integrity of tarballs


Thu, 13 Aug 2020 00:53:43 GMT


  • Update temp project tarball integrities during rush bump


Wed, 12 Aug 2020 19:33:44 GMT


  • 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)


Fri, 07 Aug 2020 21:09:05 GMT


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


Wed, 05 Aug 2020 17:57:07 GMT


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


Thu, 23 Jul 2020 23:47:59 GMT


  • 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"


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.


Thu, 16 Jul 2020 02:18:39 GMT


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


Tue, 14 Jul 2020 05:20:56 GMT


  • 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"


Wed, 08 Jul 2020 06:56:47 GMT

Minor changes

  • Add preliminary workspaces support for PNPM


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


Fri, 03 Jul 2020 06:16:09 GMT


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


Thu, 02 Jul 2020 01:52:18 GMT


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


Mon, 29 Jun 2020 18:39:59 GMT


  • 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)


Sun, 21 Jun 2020 04:48:53 GMT


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


Mon, 15 Jun 2020 01:26:24 GMT


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


Thu, 11 Jun 2020 05:34:31 GMT


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


Thu, 11 Jun 2020 05:05:30 GMT


  • 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


Wed, 10 Jun 2020 23:53:27 GMT


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


Mon, 08 Jun 2020 18:04:35 GMT


  • 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


Thu, 04 Jun 2020 22:50:56 GMT


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


Wed, 03 Jun 2020 05:35:19 GMT


  • Expect error when trying to resolve optional dependency during deploy


Tue, 02 Jun 2020 03:11:32 GMT


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


Mon, 01 Jun 2020 08:48:49 GMT


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


Thu, 28 May 2020 22:49:57 GMT


  • Fix an issue where Rush cannot reinstall itself on Windows


Thu, 21 May 2020 15:41:59 GMT


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


Fri, 15 May 2020 08:10:59 GMT


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


Wed, 22 Apr 2020 18:44:26 GMT


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


Wed, 15 Apr 2020 03:33:55 GMT


  • 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


Sat, 04 Apr 2020 00:38:29 GMT


  • 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)


Wed, 18 Mar 2020 01:23:22 GMT


  • 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.


Sat, 07 Mar 2020 05:36:08 GMT


  • 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


Wed, 12 Feb 2020 21:51:19 GMT


  • 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.


Tue, 28 Jan 2020 03:57:30 GMT


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


Tue, 28 Jan 2020 01:35:53 GMT

Version update only


Tue, 28 Jan 2020 01:08:26 GMT


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


Sat, 25 Jan 2020 05:15:10 GMT


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


Sat, 25 Jan 2020 04:19:23 GMT


  • 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


Sat, 11 Jan 2020 05:38:55 GMT


  • 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


Tue, 26 Nov 2019 00:53:52 GMT


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


Thu, 21 Nov 2019 00:50:15 GMT


  • Fix an issue with Rush add, where Rush was unable to add unpublished local projects as dependencies.


Thu, 14 Nov 2019 22:52:48 GMT


  • 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


Fri, 25 Oct 2019 20:15:59 GMT


  • 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


Thu, 17 Oct 2019 00:41:01 GMT


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


Thu, 10 Oct 2019 23:47:19 GMT


  • 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


Tue, 08 Oct 2019 22:58:33 GMT


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


Wed, 02 Oct 2019 01:18:02 GMT


  • 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


Fri, 27 Sep 2019 22:34:50 GMT


  • 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"


Wed, 11 Sep 2019 21:41:34 GMT


  • 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.


Tue, 10 Sep 2019 19:45:15 GMT


  • 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.


Wed, 04 Sep 2019 19:01:42 GMT


  • 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
  • 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.


Fri, 23 Aug 2019 03:31:52 GMT


  • 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"


Wed, 21 Aug 2019 22:13:26 GMT


  • 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


Fri, 16 Aug 2019 05:15:17 GMT


  • 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


Fri, 26 Jul 2019 23:08:23 GMT


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


Fri, 26 Jul 2019 08:34:03 GMT


  • 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


Thu, 18 Jul 2019 00:07:46 GMT



Tue, 16 Jul 2019 19:36:08 GMT



Thu, 11 Jul 2019 22:00:50 GMT


  • Fix for issue 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 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.


Sat, 29 Jun 2019 02:47:42 GMT


  • 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: 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".


Thu, 13 Jun 2019 04:46:18 GMT


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


Tue, 11 Jun 2019 02:26:20 GMT



Tue, 11 Jun 2019 01:28:33 GMT


  • 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)


Mon, 06 May 2019 21:03:32 GMT


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


Mon, 06 May 2019 19:52:37 GMT


  • Allow colons in command line action names


Wed, 24 Apr 2019 06:32:17 GMT


  • 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


Tue, 23 Apr 2019 07:55:34 GMT


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


Mon, 15 Apr 2019 06:40:00 GMT


  • 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


Mon, 25 Mar 2019 03:15:21 GMT


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


Thu, 21 Mar 2019 23:09:56 GMT


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


Mon, 18 Mar 2019 04:48:37 GMT


  • 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


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


  • 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
  • Change "rush build" to print stdout if stderr is empty and a task fails. This improves Webpack support


Thu, 13 Dec 2018 02:58:10 GMT


  • Remove unused jju dependency


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


Wed, 05 Dec 2018 20:14:08 GMT


  • Add user read permission to copied Git hooks


Fri, 09 Nov 2018 02:14:11 GMT


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


Wed, 07 Nov 2018 21:04:35 GMT


  • 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"


Thu, 25 Oct 2018 23:20:40 GMT


  • 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


Wed, 17 Oct 2018 03:19:43 GMT


  • 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


Thu, 11 Oct 2018 23:58:16 GMT


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


Mon, 08 Oct 2018 23:19:51 GMT


  • 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


Wed, 03 Oct 2018 00:01:18 GMT


  • 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


Fri, 28 Sep 2018 20:36:48 GMT


  • 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


Thu, 13 Sep 2018 21:57:21 GMT


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


Thu, 13 Sep 2018 19:34:37 GMT


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


Sat, 08 Sep 2018 20:57:32 GMT


  • 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!)


Fri, 31 Aug 2018 23:10:31 GMT


  • Add "--prefer-frozen-shrinkwrap false" to the "pnpm install" command line as a workaround for
  • 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


Wed, 29 Aug 2018 07:05:22 GMT


  • 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"


Thu, 23 Aug 2018 00:08:41 GMT


  • Fix capitalization of new "filePath" API property


Wed, 22 Aug 2018 20:58:58 GMT


  • 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


Sat, 18 Aug 2018 01:27:39 GMT

Version update only


Sat, 18 Aug 2018 01:21:59 GMT


  • 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 ( )


Sat, 30 Jun 2018 00:57:22 GMT


  • 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


Thu, 31 May 2018 21:57:13 GMT


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


Mon, 26 Mar 2018 19:12:42 GMT


  • 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


Tue, 20 Mar 2018 20:02:56 GMT


  • 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


Fri, 02 Mar 2018 02:45:37 GMT


  • 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


Fri, 26 Jan 2018 00:36:51 GMT


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


Sun, 21 Jan 2018 06:33:59 GMT


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


Thu, 18 Jan 2018 19:02:07 GMT


  • Avoid git errors when there are only empty change files


Wed, 17 Jan 2018 10:49:31 GMT

Version update only


Fri, 12 Jan 2018 23:35:48 GMT


  • 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.


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.


Mon, 08 Jan 2018 20:34:30 GMT


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


Thu, 30 Nov 2017 20:34:30 GMT

Minor changes

  • Adding support for using PNPM with Rush


  • 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


Mon, 13 Nov 2017 18:34:30 GMT


  • 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


Sat, 4 Nov 2017 03:22:28 GMT

Breaking changes


Thu, 19 Oct 2017 23:01:49 GMT


  • 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


Fri, 06 Oct 2017 22:44:31 GMT


  • 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".


Tue, 26 Sep 2017 13:51:05 GMT


  • Update various dependencies


Thu, 14 Sep 2017 18:51:05 GMT


  • Fix some issues in rush telemetry collection


Wed, 6 Sep 2017 18:24:39 GMT


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


Wed, 30 Aug 2017 18:24:39 GMT


  • 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


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


  • 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


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


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


Tue, 27 Jun 2017 21:44:50 GMT


  • 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.


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


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


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


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


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


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


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


  • Revert major break with rush build


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


  • 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.


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


  • 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.


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


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


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


  • Fix some minor documentation issues


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


  • Numerous small fixes and enhancments


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


  • 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


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


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


Fri, 24 Feb 2017 22:54:16 GMT

Minor changes

  • Minor version


Fri, 24 Feb 2017 22:53:18 GMT

Version update only


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.


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


Wed, 15 Feb 2017 08:54:44 GMT


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


Tue, 14 Feb 2017 23:40:44 GMT


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


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


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.


Sun, 05 Feb 2017 01:21:30 GMT

Minor changes

  • Add support for pre-release build


  • 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.


Tue, 24 Jan 2017 03:26:05 GMT


  • 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


Sun, 22 Jan 2017 02:04:57 GMT

Minor changes

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


  • Update temp_modules when versions are bumped.


Tue, 03 Jan 2017 21:52:49 GMT


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


Tue, 06 Dec 2016 20:44:26 GMT

Minor changes

  • Changes for RC0 release.


Sat, 03 Dec 2016 07:47:39 GMT

Minor changes

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


  • 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.



  • 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.



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



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



  • Updating the rush change with better verification logic.


Minor changes

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



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



  • Fix a bug in rush change



  • correcting casing of files and imports


Minor changes

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


  • Fixing Rush to run on UNIX and Linux.


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.


  • Updating the publish workflow.



  • Updating the publish workflow.



  • 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



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


Minor changes

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


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



  • Fix Mac OS X compatibility issue


Initial release