|
16 | 16 | * path segment in the "$schema" field for all your Rush config files. This will ensure |
17 | 17 | * correct error-underlining and tab-completion for editors such as VS Code. |
18 | 18 | */ |
19 | | - "rushVersion": "5.6.1", |
| 19 | + "rushVersion": "5.7.0", |
20 | 20 |
|
21 | 21 | /** |
22 | 22 | * The next field selects which package manager should be installed and determines its version. |
|
26 | 26 | * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation |
27 | 27 | * for details about these alternatives. |
28 | 28 | */ |
29 | | - "pnpmVersion": "2.25.7", |
| 29 | + "pnpmVersion": "3.1.1", |
30 | 30 |
|
31 | 31 | // "npmVersion": "4.5.0", |
32 | 32 | // "yarnVersion": "1.9.4", |
|
46 | 46 | * The default value is false to avoid legacy compatibility issues. |
47 | 47 | * It is strongly recommended to set strictPeerDependencies=true. |
48 | 48 | */ |
49 | | - "strictPeerDependencies": true |
| 49 | + // "strictPeerDependencies": true, |
| 50 | + |
| 51 | + |
| 52 | + /** |
| 53 | + * Configures the strategy used to select versions during installation. |
| 54 | + * |
| 55 | + * This feature requires PNPM version 3.1 or newer. It corresponds to the "--resolution-strategy" command-line |
| 56 | + * option for PNPM. Possible values are "fast" and "fewer-dependencies". PNPM's default is "fast", but this may |
| 57 | + * be incompatible with certain packages, for example the "@types" packages from DefinitelyTyped. Rush's default |
| 58 | + * is "fewer-dependencies", which causes PNPM to avoid installing a newer version if an already installed version |
| 59 | + * can be reused; this is more similar to NPM's algorithm. |
| 60 | + */ |
| 61 | + // "resolutionStrategy": "fast" |
50 | 62 | }, |
51 | 63 |
|
52 | 64 | /** |
|
61 | 73 |
|
62 | 74 | /** |
63 | 75 | * If you would like the version specifiers for your dependencies to be consistent, then |
64 | | - * uncomment this line. Note this is effectively like running "rush check" before the following: |
| 76 | + * uncomment this line. This is effectively similar to running "rush check" before any |
| 77 | + * of the following commands: |
| 78 | + * |
65 | 79 | * rush install, rush update, rush link, rush version, rush publish |
66 | | - * In some cases you may want this turned on, but need to allow some packages to use a different |
| 80 | + * |
| 81 | + * In some cases you may want this turned on, but need to allow certain packages to use a different |
67 | 82 | * version. In those cases, you will need to add an entry to the "allowedAlternativeVersions" |
68 | 83 | * section of the common-versions.json. |
69 | 84 | */ |
|
87 | 102 | * that brings people together, and maybe also identifies poor coding practices (e.g. file |
88 | 103 | * references that reach into other project's folders without using NodeJS module resolution). |
89 | 104 | * |
90 | | - * The defaults are projectFolderMinDepth=2 and projectFolderMaxDepth=2. |
| 105 | + * The defaults are projectFolderMinDepth=1 and projectFolderMaxDepth=2. |
91 | 106 | * |
92 | 107 | * To remove these restrictions, you could set projectFolderMinDepth=1 |
93 | 108 | * and set projectFolderMaxDepth to a large number. |
|
126 | 141 | * if the underlying package was already approved, this would imply that the typings |
127 | 142 | * are also approved. |
128 | 143 | */ |
129 | | - "ignoredNpmScopes": [ "@types" ] |
| 144 | + "ignoredNpmScopes": [ "@types" ] |
130 | 145 | }, |
131 | 146 |
|
132 | 147 | /** |
|
146 | 161 | * RegExp escapes need two backspashes, and ordinary periods should be "\\.". |
147 | 162 | */ |
148 | 163 | // "allowedEmailRegExps": [ |
149 | | - // "[^@]+@users\\.noreply\\.github\\.com", |
150 | | - // "travis@example\\.org" |
| 164 | + // "[^@]+@users\\.noreply\\.github\\.com", |
| 165 | + // "travis@example\\.org" |
151 | 166 | // ], |
152 | 167 | "allowedEmailRegExps": [ |
153 | 168 | "[^@]+@users\\.noreply\\.github\\.com", |
|
160 | 175 | * expressions. |
161 | 176 | */ |
162 | 177 | "sampleEmail": "mrexample@users.noreply.github.com" |
| 178 | + |
| 179 | + /** |
| 180 | + * The commit message to use when committing changes during 'rush publish'. |
| 181 | + * |
| 182 | + * For example, if you want to prevent these commits from triggering a CI build, |
| 183 | + * you might configure your system's trigger to look for a special string such as "[skip-ci]" |
| 184 | + * in the commit message, and then customize Rush's message to contain that string. |
| 185 | + */ |
| 186 | + // "versionBumpCommitMessage": "Applying package updates. [skip-ci]" |
163 | 187 | }, |
164 | 188 |
|
165 | 189 | "repository": { |
|
208 | 232 | "postRushBuild": [] |
209 | 233 | }, |
210 | 234 |
|
| 235 | + /** |
| 236 | + * Installation variants allow you to maintain a parallel set of configuration files that can be |
| 237 | + * used to build the entire monorepo with an alternate set of dependencies. For example, suppose |
| 238 | + * you upgrade all your projects to use a new release of an important framework, but during a transition period |
| 239 | + * you intend to maintain compability with the old release. In this situation, you probably want your |
| 240 | + * CI validation to build the entire repo twice: once with the old release, and once with the new release. |
| 241 | + * |
| 242 | + * Rush "installation variants" correspond to sets of config files located under this folder: |
| 243 | + * |
| 244 | + * common/config/rush/variants/<variant_name> |
| 245 | + * |
| 246 | + * The variant folder can contain an alternate common-versions.json file. Its "preferredVersions" field can be used |
| 247 | + * to select older versions of dependencies (within a loose SemVer range specified in your package.json files). |
| 248 | + * To install a variant, run "rush install --variant <variant_name>". |
| 249 | + * |
| 250 | + * For more details and instructions, see this article: https://rushjs.io/pages/advanced/installation_variants/ |
| 251 | + */ |
| 252 | + "variants": [ |
| 253 | + // { |
| 254 | + // /** |
| 255 | + // * The folder name for this variant. |
| 256 | + // */ |
| 257 | + // "variantName": "old-sdk", |
| 258 | + // |
| 259 | + // /** |
| 260 | + // * An informative description |
| 261 | + // */ |
| 262 | + // "description": "Build this repo using the previous release of the SDK" |
| 263 | + // } |
| 264 | + ], |
| 265 | + |
211 | 266 | /** |
212 | 267 | * Rush can collect anonymous telemetry about everyday developer activity such as |
213 | 268 | * success/failure of installs, builds, and other operations. You can use this to identify |
|
237 | 292 | // * The NPM package name of the project (must match package.json) |
238 | 293 | // */ |
239 | 294 | // "packageName": "my-app", |
240 | | - // |
| 295 | + // |
241 | 296 | // /** |
242 | 297 | // * The path to the project folder, relative to the rush.json config file. |
243 | 298 | // */ |
244 | 299 | // "projectFolder": "apps/my-app", |
245 | | - // |
| 300 | + // |
246 | 301 | // /** |
247 | 302 | // * An optional category for usage in the "browser-approved-packages.json" |
248 | 303 | // * and "nonbrowser-approved-packages.json" files. The value must be one of the |
249 | 304 | // * strings from the "reviewCategories" defined above. |
250 | 305 | // */ |
251 | 306 | // "reviewCategory": "production", |
252 | | - // |
| 307 | + // |
253 | 308 | // /** |
254 | 309 | // * A list of local projects that appear as devDependencies for this project, but cannot be |
255 | 310 | // * locally linked because it would create a cyclic dependency; instead, the last published |
|
258 | 313 | // "cyclicDependencyProjects": [ |
259 | 314 | // // "my-toolchain" |
260 | 315 | // ], |
261 | | - // |
| 316 | + // |
262 | 317 | // /** |
263 | 318 | // * If true, then this project will be ignored by the "rush check" command. |
264 | 319 | // * The default value is false. |
265 | 320 | // */ |
266 | 321 | // // "skipRushCheck": false, |
267 | | - // |
| 322 | + // |
268 | 323 | // /** |
269 | 324 | // * A flag indicating that changes to this project will be published to npm, which affects |
270 | 325 | // * the Rush change and publish workflows. The default value is false. |
271 | 326 | // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. |
272 | 327 | // */ |
273 | 328 | // // "shouldPublish": false, |
274 | | - // |
| 329 | + // |
275 | 330 | // /** |
276 | 331 | // * An optional version policy associated with the project. Version policies are defined |
277 | 332 | // * in "version-policies.json" file. See the "rush publish" documentation for more info. |
278 | 333 | // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. |
279 | 334 | // */ |
280 | 335 | // // "versionPolicyName": "" |
281 | 336 | // }, |
282 | | - // |
| 337 | + // |
283 | 338 | // "apps" folder (alphabetical order) |
284 | 339 | { |
285 | 340 | "packageName": "@microsoft/api-extractor", |
|
0 commit comments