[rush] Follow-ups to #5123.#5179
Conversation
…._createSymlinkAsync, which handles quirks between Windows and non-Windows.
…Manager._createSymlinkAsync, which handles quirks between Windows and non-Windows.
| }); | ||
| }) | ||
| }, | ||
| { concurrency: 10 } |
There was a problem hiding this comment.
Why do you use concurrency: 10 instead of Promise.all to implement concurrency
There was a problem hiding this comment.
Promise.all doesn't limit concurrency at all, so can cause excessive resource consumption for disk and network operations.
| return 'Caching has been disabled for this project because it is a linked package.'; | ||
| const rushConnect: RushConnect = RushConnect.loadFromRushConfiguration(rushConfiguration); | ||
| if (rushConnect.hasAnyLinksInSubspace(this.project.subspace.subspaceName)) { | ||
| return 'Caching has been disabled for this project because it is in a subspace that has a link.'; |
There was a problem hiding this comment.
"Caching has been disabled for this project because it is in a subspace that has a link."
Has a link? What kind of link?
Maybe this feature would benefit from a special terminology like "hotlink" or "live link" or "devlink" etc. The key concepts being:
- The symlink is temporary, for testing purposes, and reset when you run "rush install" again.
- The symlink is not reflected in the lockfile or committed to Git.
- The symlink may violate SemVer expectations.
There was a problem hiding this comment.
Sample usage of such a term:
"The rush link-package and rush bridge-package commands both facilitate testing locally built changes by creating hotlinks to library project folders."
"Caching has been disabled for this project because it is in a subspace that has a hotlink."
|
@iclanton |
|
@iclanton |
|
@iclanton |
|
I think both of them are expected |
@L-Qun has said he will address this in a second PR before we publish |
Rename BaseSymlinkPackageAction --> BaseHotlinkPackageAction
|
Merged via #5182 |





Summary
Follow-ups to #5123. I put some comments on that PR after it went in, and addressed most of them here.
@L-Qun, FYI.
An issue I noticed: the help text for
rush bridge-packagesays:This sounds like
rush bridge-pacakge --path /path/to/local/react --version 1.2.3will replace all instances ofreact@1.2.3in the workspace with a symlink to/path/to/local/react, but that isn't what it does. It seems to do the same thing thatrush link-packagedoes in a single project or in specified projects, but by replacing dependencies. Perhaps that would be better conveyed with a--use-repo-dependenciesflag onrush link-package?How it was tested
Tested by linking and bridging a local copy of a package called "react" into this repo.