Details: #106537 (comment)
Today: The workbench depends on user env to be resolved. Resolving user env envolves spawning a shell and executing the user's init scripts. This can take long.
Ideally: The user env is only required for specific features: opening terminals, spawning tasks, spawning extension host. Until it's resolved, many other features should actually work, ie explorer, editor, etc.
Related:
Adoption
I made a pass over usages of process environment by looking at:
- direct use of
process.env
- usages of
IProcessEnvironment
- clients of
vs/base/parts/ipc/node/ipc.cp that spawn child processes
Assigning people based on areas and usages. Feel free to remove yourself and your items when this change needs no adoption in your area.
Child Processes
Details: #106537 (comment)
Today: The workbench depends on user env to be resolved. Resolving user env envolves spawning a shell and executing the user's init scripts. This can take long.
Ideally: The user env is only required for specific features: opening terminals, spawning tasks, spawning extension host. Until it's resolved, many other features should actually work, ie explorer, editor, etc.
Related:
Adoption
I made a pass over usages of process environment by looking at:
process.envIProcessEnvironmentvs/base/parts/ipc/node/ipc.cpthat spawn child processesAssigning people based on areas and usages. Feel free to remove yourself and your items when this change needs no adoption in your area.
Terminal @Tyriar @meganrogge
vs/base/node/shell.ts@TylerLeonhardtDebug @weinand
vs/workbench/contrib/debug/browser/rawDebugSession.tsvs/workbench/contrib/debug/node/debugAdapter.ts(only runs in EH -> nothing to do)Tasks @alexr00
vs/workbench/contrib/tasks/browser/terminalTaskSystem.tsvs/workbench/services/configurationResolver/electron-sandbox/configurationResolverService.tsProxy @chrmarti
vs/platform/request/node/proxy.tsvs/workbench/services/extensions/node/proxyResolver.tsChild Processes