Skip to content

Commit 239739f

Browse files
committed
Upgrade Rush
1 parent 79fc78f commit 239739f

File tree

6 files changed

+158
-17
lines changed

6 files changed

+158
-17
lines changed

common/config/rush/artifactory.json

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/**
2+
* This configuration file manages Rush integration with JFrog Artifactory services.
3+
* More documentation is available on the Rush website: https://rushjs.io
4+
*/
5+
{
6+
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/artifactory.schema.json",
7+
8+
"packageRegistry": {
9+
/**
10+
* (Required) Set this to "true" to enable Rush to manage tokens for an Artifactory NPM registry.
11+
* When enabled, "rush install" will automatically detect when the user's ~/.npmrc
12+
* authentication token is missing or expired. And "rush setup" will prompt the user to
13+
* renew their token.
14+
*
15+
* The default value is false.
16+
*/
17+
"enabled": false,
18+
19+
/**
20+
* (Required) Specify the URL of your NPM registry. This is the same URL that appears in
21+
* your .npmrc file. It should look something like this example:
22+
*
23+
* https://your-company.jfrog.io/your-project/api/npm/npm-private/
24+
*/
25+
"registryUrl": "",
26+
27+
/**
28+
* A list of custom strings that "rush setup" should add to the user's ~/.npmrc file at the time
29+
* when the token is updated. This could be used for example to configure the company registry
30+
* to be used whenever NPM is invoked as a standalone command (but it's not needed for Rush
31+
* operations like "rush add" and "rush install", which get their mappings from the monorepo's
32+
* common/config/rush/.npmrc file).
33+
*
34+
* NOTE: The ~/.npmrc settings are global for the user account on a given machine, so be careful
35+
* about adding settings that may interfere with other work outside the monorepo.
36+
*/
37+
"userNpmrcLinesToAdd": [
38+
// "@example:registry=https://your-company.jfrog.io/your-project/api/npm/npm-private/"
39+
],
40+
41+
/**
42+
* (Required) Specifies the URL of the Artifactory control panel where the user can generate
43+
* an API key. This URL is printed after the "visitWebsite" message.
44+
* It should look something like this example: https://your-company.jfrog.io/
45+
* Specify an empty string to suppress this line entirely.
46+
*/
47+
"artifactoryWebsiteUrl": "",
48+
49+
/**
50+
* These settings allow the "rush setup" interactive prompts to be customized, for
51+
* example with messages specific to your team or configuration. Specify an empty string
52+
* to suppress that message entirely.
53+
*/
54+
"messageOverrides": {
55+
/**
56+
* Overrides the message that normally says:
57+
* "This monorepo consumes packages from an Artifactory private NPM registry."
58+
*/
59+
// "introduction": "",
60+
/**
61+
* Overrides the message that normally says:
62+
* "Please contact the repository maintainers for help with setting up an Artifactory user account."
63+
*/
64+
// "obtainAnAccount": "",
65+
/**
66+
* Overrides the message that normally says:
67+
* "Please open this URL in your web browser:"
68+
*
69+
* The "artifactoryWebsiteUrl" string is printed after this message.
70+
*/
71+
// "visitWebsite": "",
72+
/**
73+
* Overrides the message that normally says:
74+
* "Your user name appears in the upper-right corner of the JFrog website."
75+
*/
76+
// "locateUserName": "",
77+
/**
78+
* Overrides the message that normally says:
79+
* "Click 'Edit Profile' on the JFrog website. Click the 'Generate API Key'
80+
* button if you haven't already done so previously."
81+
*/
82+
// "locateApiKey": ""
83+
}
84+
}
85+
}

common/config/rush/command-line.json

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* This configuration file defines custom commands for the "rush" command-line.
3-
* For full documentation, please see https://rushjs.io
3+
* More documentation is available on the Rush website: https://rushjs.io
44
*/
55
{
66
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json",
@@ -107,7 +107,23 @@
107107
// /**
108108
// * If true then this command will be incremental like the built-in "build" command
109109
// */
110-
// "incremental": false
110+
// "incremental": false,
111+
//
112+
// /**
113+
// * (EXPERIMENTAL) Normally Rush terminates after the command finishes. If this option is set to "true" Rush
114+
// * will instead enter a loop where it watches the file system for changes to the selected projects. Whenever a
115+
// * change is detected, the command will be invoked again for the changed project and any selected projects that
116+
// * directly or indirectly depend on it.
117+
// *
118+
// * For details, refer to the website article "Using watch mode".
119+
// */
120+
// "watchForChanges": false,
121+
//
122+
// /**
123+
// * (EXPERIMENTAL) Disable cache for this action. This may be useful if this command affects state outside of
124+
// * projects' own folders.
125+
// */
126+
// "disableBuildCache ": false
111127
// },
112128
//
113129
// {

common/config/rush/common-versions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* This configuration file specifies NPM dependency version selections that affect all projects
3-
* in a Rush repo. For full documentation, please see https://rushjs.io
3+
* in a Rush repo. More documentation is available on the Rush website: https://rushjs.io
44
*/
55
{
66
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/common-versions.schema.json",

common/config/rush/experiments.json

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* This configuration file allows repo maintainers to enable and disable experimental
3-
* Rush features. For full documentation, please see https://rushjs.io
3+
* Rush features. More documentation is available on the Rush website: https://rushjs.io
44
*/
55
{
66
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/experiments.schema.json"
@@ -15,14 +15,35 @@
1515
// "legacyIncrementalBuildDependencyDetection": true,
1616

1717
/**
18-
* By default, rush passes --no-prefer-frozen-lockfile to 'pnpm install'.
19-
* Set this option to true to pass '--frozen-lockfile' instead.
18+
* By default, 'rush install' passes --no-prefer-frozen-lockfile to 'pnpm install'.
19+
* Set this option to true to pass '--frozen-lockfile' instead for faster installs.
2020
*/
2121
// "usePnpmFrozenLockfileForRushInstall": true,
2222

23+
/**
24+
* By default, 'rush update' passes --no-prefer-frozen-lockfile to 'pnpm install'.
25+
* Set this option to true to pass '--prefer-frozen-lockfile' instead to minimize shrinkwrap changes.
26+
*/
27+
// "usePnpmPreferFrozenLockfileForRushUpdate": true,
28+
29+
/**
30+
* If using the 'preventManualShrinkwrapChanges' option, restricts the hash to only include the layout of external dependencies.
31+
* Used to allow links between workspace projects or the addition/removal of references to existing dependency versions to not
32+
* cause hash changes.
33+
*/
34+
// "omitImportersFromPreventManualShrinkwrapChanges": true,
35+
2336
/**
2437
* If true, the chmod field in temporary project tar headers will not be normalized.
2538
* This normalization can help ensure consistent tarball integrity across platforms.
2639
*/
27-
// "noChmodFieldInTarHeaderNormalization": true
40+
// "noChmodFieldInTarHeaderNormalization": true,
41+
42+
/**
43+
* If true, the build cache feature is enabled. To use this feature, a common/config/rush/build-cache.json
44+
* file must be created with configuration options.
45+
*
46+
* See https://github.com/microsoft/rushstack/issues/2393 for details about this experimental feature.
47+
*/
48+
// "buildCache": true
2849
}

common/config/rush/version-policies.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* This is configuration file is used for advanced publishing configurations with Rush.
3-
* For full documentation, please see https://rushjs.io
3+
* More documentation is available on the Rush website: https://rushjs.io
44
*/
55

66
/**

rush.json

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* path segment in the "$schema" field for all your Rush config files. This will ensure
1717
* correct error-underlining and tab-completion for editors such as VS Code.
1818
*/
19-
"rushVersion": "5.35.2",
19+
"rushVersion": "5.44.0",
2020

2121
/**
2222
* The next field selects which package manager should be installed and determines its version.
@@ -26,7 +26,7 @@
2626
* Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation
2727
* for details about these alternatives.
2828
*/
29-
"pnpmVersion": "5.13.4",
29+
"pnpmVersion": "5.15.2",
3030

3131
// "npmVersion": "4.5.0",
3232
// "yarnVersion": "1.9.4",
@@ -100,7 +100,7 @@
100100
* If true, then `rush install` will use the PNPM workspaces feature to perform the
101101
* install.
102102
*
103-
* This feature uses PNPM to peform the entire monorepo install. When using workspaces, Rush will
103+
* This feature uses PNPM to perform the entire monorepo install. When using workspaces, Rush will
104104
* generate a "pnpm-workspace.yaml" file referencing all local projects to install. Rush will
105105
* also generate a "pnpmfile.js" which is used to provide preferred versions support. When install
106106
* is run, this pnpmfile will be used to replace dependency version ranges with a smaller subset
@@ -120,9 +120,11 @@
120120
*
121121
* Specify a SemVer range to ensure developers use a Node.js version that is appropriate
122122
* for your repo.
123+
*
124+
* LTS schedule: https://nodejs.org/en/about/releases/
125+
* LTS versions: https://nodejs.org/en/download/releases/
123126
*/
124-
// "nodeSupportedVersionRange": ">=12.13.0 <13.0.0",
125-
"nodeSupportedVersionRange": ">=10.13.0 <11.0.0 || >=12.13.0 <13.0.0 || >=14.0.0 <15.0.0",
127+
"nodeSupportedVersionRange": ">=12.13.0 <13.0.0 || >=14.15.0 <15.0.0",
126128

127129
/**
128130
* Odd-numbered major versions of Node.js are experimental. Even-numbered releases
@@ -158,7 +160,7 @@
158160
*
159161
* The Rush developers recommend a "category folder" model, where buildable project folders
160162
* must always be exactly two levels below the repo root. The parent folder acts as the category.
161-
* This provides a basic facility for grouping related projects (e.g. "apps", "libaries",
163+
* This provides a basic facility for grouping related projects (e.g. "apps", "libraries",
162164
* "tools", "prototypes") while still encouraging teams to organize their projects into
163165
* a unified taxonomy. Limiting to 2 levels seems very restrictive at first, but if you have
164166
* 20 categories and 20 projects in each category, this scheme can easily accommodate hundreds
@@ -239,7 +241,7 @@
239241
* They are case-insensitive anchored JavaScript RegExps. Example: ".*@example\.com"
240242
*
241243
* IMPORTANT: Because these are regular expressions encoded as JSON string literals,
242-
* RegExp escapes need two backspashes, and ordinary periods should be "\\.".
244+
* RegExp escapes need two backslashes, and ordinary periods should be "\\.".
243245
*/
244246
"allowedEmailRegExps": ["[^@]+@users\\.noreply\\.github\\.com"],
245247

@@ -257,7 +259,15 @@
257259
* you might configure your system's trigger to look for a special string such as "[skip-ci]"
258260
* in the commit message, and then customize Rush's message to contain that string.
259261
*/
260-
// "versionBumpCommitMessage": "Applying package updates. [skip-ci]"
262+
// "versionBumpCommitMessage": "Applying package updates. [skip-ci]",
263+
/**
264+
* The commit message to use when committing changes during 'rush version'.
265+
*
266+
* For example, if you want to prevent these commits from triggering a CI build,
267+
* you might configure your system's trigger to look for a special string such as "[skip-ci]"
268+
* in the commit message, and then customize Rush's message to contain that string.
269+
*/
270+
// "changeLogUpdateCommitMessage": "Deleting change files and updating change logs for package updates. [skip-ci]"
261271
},
262272

263273
"repository": {
@@ -322,7 +332,7 @@
322332
* Installation variants allow you to maintain a parallel set of configuration files that can be
323333
* used to build the entire monorepo with an alternate set of dependencies. For example, suppose
324334
* you upgrade all your projects to use a new release of an important framework, but during a transition period
325-
* you intend to maintain compability with the old release. In this situation, you probably want your
335+
* you intend to maintain compatibility with the old release. In this situation, you probably want your
326336
* CI validation to build the entire repo twice: once with the old release, and once with the new release.
327337
*
328338
* Rush "installation variants" correspond to sets of config files located under this folder:
@@ -416,6 +426,15 @@
416426
// // "shouldPublish": false,
417427
//
418428
// /**
429+
// * Facilitates postprocessing of a project's files prior to publishing.
430+
// *
431+
// * If specified, the "publishFolder" is the relative path to a subfolder of the project folder.
432+
// * The "rush publish" command will publish the subfolder instead of the project folder. The subfolder
433+
// * must contain its own package.json file, which is typically a build output.
434+
// */
435+
// // "publishFolder": "temp/publish",
436+
//
437+
// /**
419438
// * An optional version policy associated with the project. Version policies are defined
420439
// * in "version-policies.json" file. See the "rush publish" documentation for more info.
421440
// * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both.

0 commit comments

Comments
 (0)