Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-1614, GH-4532: Various dev experience enhancements for win32 #6893

Merged
merged 3 commits into from
Jan 19, 2020

Conversation

kittaakos
Copy link
Contributor

@kittaakos kittaakos commented Jan 16, 2020

What it does

Please read the individual commit messages for more details or ask.

How to test

The CI should test it.

Review checklist

Reminder for reviewers

Akos Kitta added 3 commits January 14, 2020 18:41
Got rid of `choco` and simplified the steps with `scoop`.

The steps now include headless commands for installing the followings:
 - `nvm`,
 - Node.js,
 - `yarn`, and optionally
 - `git`.

Closes #1614

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
So `webpack` does not try to detect module cycles under `node_modules`.

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
 - Aug 7, 2017: The parallel execution was bugusly introduced: e8beacc.
 - Nov 9, 2018: The logic was fixed: 5a60919.

`lerna` ran perfecetly without the sequential restriction for a year.
No need to punish Windows users with this build penalty.

This commit reverts e8beacc.

Closes #4532

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
@kittaakos kittaakos added OS/Windows issues related to the Windows OS ci issues related to CI / tests labels Jan 16, 2020
@kittaakos
Copy link
Contributor Author

  • Fixes the exclusion path

See, no more node_modules.

Before:

@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\inversify\lib\syntax\binding_on_syntax.js -> ..\..\node_modules\inversify\lib\syntax\binding_when_syntax.js -> ..\..\node_modules\inversify\lib\syntax\binding_on_syntax.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\inversify\lib\syntax\binding_when_syntax.js -> ..\..\node_modules\inversify\lib\syntax\binding_on_syntax.js -> ..\..\node_modules\inversify\lib\syntax\binding_when_syntax.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\monaco-languageclient\lib\vscode-api.js -> ..\..\node_modules\monaco-languageclient\lib\vscode-compatibility.js -> ..\..\node_modules\monaco-languageclient\lib\vscode-api.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\monaco-languageclient\lib\vscode-compatibility.js -> ..\..\node_modules\monaco-languageclient\lib\vscode-api.js -> ..\..\node_modules\monaco-languageclient\lib\vscode-compatibility.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\react-virtualized\dist\es\Grid\types.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\utils\ScalingCellSizeAndPositionManager.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\utils\CellSizeAndPositionManager.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\types.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\react-virtualized\dist\es\Grid\utils\CellSizeAndPositionManager.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\types.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\utils\ScalingCellSizeAndPositionManager.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\utils\CellSizeAndPositionManager.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\react-virtualized\dist\es\Grid\utils\ScalingCellSizeAndPositionManager.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\utils\CellSizeAndPositionManager.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\types.js -> ..\..\node_modules\react-virtualized\dist\es\Grid\utils\ScalingCellSizeAndPositionManager.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\react-virtualized\dist\es\WindowScroller\WindowScroller.js -> ..\..\node_modules\react-virtualized\dist\es\WindowScroller\utils\onScroll.js -> ..\..\node_modules\react-virtualized\dist\es\WindowScroller\WindowScroller.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\react-virtualized\dist\es\WindowScroller\utils\onScroll.js -> ..\..\node_modules\react-virtualized\dist\es\WindowScroller\WindowScroller.js -> ..\..\node_modules\react-virtualized\dist\es\WindowScroller\utils\onScroll.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\xterm\lib\Buffer.js -> ..\..\node_modules\xterm\lib\BufferLine.js -> ..\..\node_modules\xterm\lib\Buffer.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\node_modules\xterm\lib\BufferLine.js -> ..\..\node_modules\xterm\lib\Buffer.js -> ..\..\node_modules\xterm\lib\BufferLine.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\tree\tree-widget-selection.js -> ..\..\packages\core\lib\browser\tree\tree-widget.js -> ..\..\packages\core\lib\browser\tree\tree-widget-selection.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\tree\tree-widget.js -> ..\..\packages\core\lib\browser\tree\tree-widget-selection.js -> ..\..\packages\core\lib\browser\tree\tree-widget.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js -> ..\..\packages\debug\lib\browser\view\debug-widget.js -> ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js -> ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js -> ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js -> ..\..\packages\debug\lib\browser\view\debug-widget.js -> ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\debug\lib\browser\view\debug-widget.js -> ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js -> ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js -> ..\..\packages\debug\lib\browser\view\debug-widget.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\plugin-ext\lib\main\browser\debug\debug-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\debug\debug-main.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js
@theia/example-browser: WARNING in Circular dependency detected:
@theia/example-browser: ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js

After:

@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\quick-view-service.js -> ..\..\packages\core\lib\browser\quick-open\index.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-service.js -> ..\..\packages\core\lib\browser\quick-open\quick-command-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\quick-view-service.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\tree\tree-widget-selection.js -> ..\..\packages\core\lib\browser\tree\tree-widget.js -> ..\..\packages\core\lib\browser\tree\tree-widget-selection.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\tree\tree-widget.js -> ..\..\packages\core\lib\browser\tree\tree-widget-selection.js -> ..\..\packages\core\lib\browser\tree\tree-widget.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\core\lib\browser\widget-open-handler.js -> ..\..\packages\core\lib\browser\shell\index.js -> ..\..\packages\core\lib\browser\shell\view-contribution.js -> ..\..\packages\core\lib\browser\common-frontend-contribution.js -> ..\..\packages\core\lib\browser\navigatable.js -> ..\..\packages\core\lib\browser\widget-open-handler.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js -> ..\..\packages\debug\lib\browser\view\debug-widget.js -> ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js -> ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js -> ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js -> ..\..\packages\debug\lib\browser\view\debug-widget.js -> ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\debug\lib\browser\view\debug-widget.js -> ..\..\packages\debug\lib\browser\view\debug-configuration-widget.js -> ..\..\packages\debug\lib\browser\debug-frontend-application-contribution.js -> ..\..\packages\debug\lib\browser\view\debug-widget.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\plugin-ext\lib\main\browser\debug\debug-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\debug\debug-main.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js
@theia/example-electron: WARNING in Circular dependency detected:
@theia/example-electron: ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js -> ..\..\packages\plugin-ext\lib\hosted\browser\hosted-plugin.js -> ..\..\packages\plugin-ext\lib\main\browser\main-context.js -> ..\..\packages\plugin-ext\lib\main\browser\webviews-main.js

@kittaakos kittaakos changed the title [WIP]: GH-1614, GH-4532: Various dev experience enhancements for win32 GH-1614, GH-4532: Various dev experience enhancements for win32 Jan 17, 2020
@vince-fugnitto
Copy link
Member

Pinging @marechal-p since he has a Windows machine to test on 😃

@kittaakos
Copy link
Contributor Author

By the way, here are some performance numbers for the build (yarn). I would say the speed up is insignificant on the CIs but looks much better on a local notebook with multiple cores:

  • CI build before: Done in 750.73s,
  • CI build after: Done in 737.61s,
  • Local build before: Done in 446.32s, and
  • Local build after: Done in 322.80s.

Copy link
Member

@paul-marechal paul-marechal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works great on my Windows machine, CI is green too.

@paul-marechal
Copy link
Member

paul-marechal commented Jan 17, 2020

Ah, pinged Rob since I know Mbed Studio is an electron app on Windows, might not really impact his team though. Feel free to wait or merge.

@thegecko
Copy link
Member

Thanks @marechal-p We use a separate set of scripts to build, so this is unlikely to impact. Likely we can steal some of the ideas, though :)

Please go ahead and merge.

@westbury @mcgordonite Is there anything in here which can help with Windows build speed?

@kittaakos kittaakos merged commit fd2d384 into master Jan 19, 2020
@kittaakos kittaakos deleted the GH-1614 branch January 19, 2020 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci issues related to CI / tests OS/Windows issues related to the Windows OS
Projects
None yet
4 participants