Skip to content

Commit 8a5da07

Browse files
authored
Merge pull request #4722 from microsoft/octogonz/rush-5.124.6
Upgrade to Rush 5.124.6
2 parents f29305d + c952f8f commit 8a5da07

File tree

3 files changed

+74
-3
lines changed

3 files changed

+74
-3
lines changed

common/config/rush/custom-tips.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@
77
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/custom-tips.schema.json",
88

99
/**
10-
* Specifies the custom tips to be displayed by Rush.
10+
* Custom tips allow you to annotate Rush's console messages with advice tailored for
11+
* your specific monorepo.
1112
*/
1213
"customTips": [
1314
// {
1415
// /**
1516
// * (REQUIRED) An identifier indicating a message that may be printed by Rush.
1617
// * If that message is printed, then this custom tip will be shown.
17-
// * Consult the Rush documentation for the current list of possible identifiers.
18+
// * The list of available tip identifiers can be found on this page:
19+
// * https://rushjs.io/pages/maintainer/custom_tips/
1820
// */
1921
// "tipId": "TIP_RUSH_INCONSISTENT_VERSIONS",
2022
//

common/config/rush/pnpm-config.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,68 @@
119119
*/
120120
"preventManualShrinkwrapChanges": true,
121121

122+
/**
123+
* When a project uses `workspace:` to depend on another Rush project, PNPM normally installs
124+
* it by creating a symlink under `node_modules`. This generally works well, but in certain
125+
* cases such as differing `peerDependencies` versions, symlinking may cause trouble
126+
* such as incorrectly satisfied versions. For such cases, the dependency can be declared
127+
* as "injected", causing PNPM to copy its built output into `node_modules` like a real
128+
* install from a registry. Details here: https://rushjs.io/pages/advanced/injected_deps/
129+
*
130+
* When using Rush subspaces, these sorts of versioning problems are much more likely if
131+
* `workspace:` refers to a project from a different subspace. This is because the symlink
132+
* would point to a separate `node_modules` tree installed by a different PNPM lockfile.
133+
* A comprehensive solution is to enable `alwaysInjectDependenciesFromOtherSubspaces`,
134+
* which automatically treats all projects from other subspaces as injected dependencies
135+
* without having to manually configure them.
136+
*
137+
* NOTE: Use carefully -- excessive file copying can slow down the `rush install` and
138+
* `pnpm-sync` operations if too many dependencies become injected.
139+
*
140+
* The default value is false.
141+
*/
142+
// "alwaysInjectDependenciesFromOtherSubspaces": false,
143+
144+
/**
145+
* Defines the policies to be checked for the `pnpm-lock.yaml` file.
146+
*/
147+
"pnpmLockfilePolicies": {
148+
/**
149+
* This policy will cause "rush update" to report an error if `pnpm-lock.yaml` contains
150+
* any SHA1 integrity hashes.
151+
*
152+
* For each NPM dependency, `pnpm-lock.yaml` normally stores an `integrity` hash. Although
153+
* its main purpose is to detect corrupted or truncated network requests, this hash can also
154+
* serve as a security fingerprint to protect against attacks that would substitute a
155+
* malicious tarball, for example if a misconfigured .npmrc caused a machine to accidentally
156+
* download a matching package name+version from npmjs.com instead of the private NPM registry.
157+
* NPM originally used a SHA1 hash; this was insecure because an attacker can too easily craft
158+
* a tarball with a matching fingerprint. For this reason, NPM later deprecated SHA1 and
159+
* instead adopted a cryptographically strong SHA512 hash. Nonetheless, SHA1 hashes can
160+
* occasionally reappear during "rush update", for example due to missing metadata fallbacks
161+
* (https://github.com/orgs/pnpm/discussions/6194) or an incompletely migrated private registry.
162+
* The `disallowInsecureSha1` policy prevents this, avoiding potential security/compliance alerts.
163+
*/
164+
// "disallowInsecureSha1": {
165+
// /**
166+
// * Enables the "disallowInsecureSha1" policy. The default value is false.
167+
// */
168+
// "enabled": true,
169+
//
170+
// /**
171+
// * In rare cases, a private NPM registry may continue to serve SHA1 hashes for very old
172+
// * package versions, perhaps due to a caching issue or database migration glitch. To avoid
173+
// * having to disable the "disallowInsecureSha1" policy for the entire monorepo, the problematic
174+
// * package versions can be individually ignored. The "exemptPackageVersions" key is the
175+
// * package name, and the array value lists exact version numbers to be ignored.
176+
// */
177+
// "exemptPackageVersions": {
178+
// "example1": ["1.0.0"],
179+
// "example2": ["2.0.0", "2.0.1"]
180+
// }
181+
// }
182+
},
183+
122184
/**
123185
* The "globalOverrides" setting provides a simple mechanism for overriding version selections
124186
* for all dependencies of all projects in the monorepo workspace. The settings are copied

rush.json

Lines changed: 8 additions & 1 deletion
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.122.0",
19+
"rushVersion": "5.124.6",
2020

2121
/**
2222
* The next field selects which package manager should be installed and determines its version.
@@ -319,6 +319,13 @@
319319
// "projectFolder": "apps/my-app",
320320
//
321321
// /**
322+
// * This field is only used if "subspacesEnabled" is true in subspaces.json.
323+
// * It specifies the subspace that this project belongs to. If omitted, then the
324+
// * project belongs to the "default" subspace.
325+
// */
326+
// // "subspaceName": "my-subspace",
327+
//
328+
// /**
322329
// * An optional category for usage in the "browser-approved-packages.json"
323330
// * and "nonbrowser-approved-packages.json" files. The value must be one of the
324331
// * strings from the "reviewCategories" defined above.

0 commit comments

Comments
 (0)