Squashed 'lib/vscode/' changes from 3e344b17b7b..622cb03f7e0

622cb03f7e0 Merge pull request #116444 from microsoft/alex/stable-fix-116060
5933e313e5d Fixes #116060: Clone minimap options before changing them
f3a12e053e1 Pick up TS 4.1.5 (#116380)
3b9cef2b8d1 Bump Emmet (#116230)
8757f67bcda fix #116049 (#116319)
73c0a56bbd2 Merge pull request #116311 from microsoft/joh/fix/116094
5cf34afa107 Use weak shell quoting for npm tasks with -- (#116309)
6635ca9a64e Merge pull request #116245 from microsoft/connor4312/debug-repl-fix
65406fcea58 fix https://github.com/microsoft/vscode/issues/116094
43e11faf4ee fix: CreateFile ERROR_FILE_NOT_FOUND from crashpad handler (#116256)
17d65083f6c debug: replace element when appending text to ensure updates in repl
9d194eac0d7 This reverts us to the previous distro commit (#116218)
1fe57f42761 Merge pull request #115789 from microsoft/rebornix/fix-notebook-runstate
d63ab6acdbd bump version to 1.53.2 (#116228)
4aff7304539 Merge pull request #115772 from microsoft/misolori/1.53/create-pr-icon
678843ff3ad fixes #115810 (#115943)
e1ec11f5183 always fallback to plain text (#115860) (#116177)
615ea78d96a status - update background color (#115886) (#116181)
00d7f953055 add changes (#116223)
3c19fc731cb Pick up the official TS 4.1.4 build (#116222)
5d424b828ad Pick up new distro version and bump version (#116149)
ee2c947e064 ci: update newer 11.2.1 for CVE-2021-21148 (#115951)
e23884b9476 re #115717
5da053f081f Update Codicons: add 'git-pull-request-create' 686357b717
7f04ecd68be use PersistKeySet (#115744)
8490d3dde47 Merge pull request #115701 from microsoft/sandy081/fix115699
1d6c8826375 Fix #115699
f84decb78f3 Merge pull request #115686 from microsoft/isidorn/openEditorsCollapsed
203b86d14c5 fixes 115685
83f7a99bd95 Azure DevOps - Add global variable for VSCODE_QUALITY (#115636) (#115673)
e1c818a1711 Merge pull request #115655 from microsoft/rebornix/fix-jupyter-activation
761dd469c13 chore: bump distro
8d779a4fada Merge pull request #115609 from microsoft/joh/fix115353
30fe91131c9 Merge pull request #115611 from microsoft/isidorn/selectForCompareUntitled
8dbf3d717b2 Revert do not show compare for markdown preivew
bc38ed1b5a3 fix https://github.com/microsoft/vscode/issues/115353
65006668d07 Merge pull request #115547 from microsoft/aeschli/installProductIconTheme
b99487f4168 Fix keybinding for Search view missing from view and sidebar (#115558)
feda473d978 Enable 'Install Additional Product Icon Themes'
565dc9704f2 Use label as tooltip fallback properly (#115537)
c02643e3c95 Properly set port label from ports attributes
ae05392454a Merge pull request #115536 from microsoft/isidorn/debugConsoleCheckmark
e4a65573a89 render "Debug Console" action after a separator
a62c65bdb74 ignore focus when toggling debug console visibility
4d98741552d debug: do not render checkmark in view menu for the debug console
ad232b0ac13 Fix #115509, register a separate action for opening serch editor from view (#115514)
4eb39372949 Fix #115511 Search Mode setting does not open editors unless search view is visible (#115513)
861a88ebadb Fixes #114201
da2adf433d8 Fixes microsoft/monaco-editor#2327
52f437953d5 add my paper cuts
090200d5aea fix https://github.com/microsoft/vscode/issues/115402
b36f9993162 Revert "fixes #114908"
99c406699ff fix mixed cells
384ef202510 🆙 vscode-gulp-watch (fixes high CPU on Apple SI)
e5b02b0610c liberate papercut usages
5a52bc29d5e Update working for default external opener
d27b3130d92 Center notebook actions (run, stop, renderer, collapse, etc.) fixes #115087
38783a261a6 update version
36cabc4c123 🕺 One more time (refs #114219)
9934dea6888 Fixes microsoft/monaco-editor#2175: Improve hit testing code on FF
9d9aebd2e64 Add vscode-emmet-helper and restrict some labels
76adcde8743 Add `onDidChangeMarkers` (fixes microsoft/monaco-editor#313)
de3b3ac5496 Don't exclude all unless there are no includes at all
791930308f0 Fixes microsoft/monaco-editor#2171
29c5c523023 Also apply #114709 to the extension editor
8c5e805d3a5 Fix spelling
662a698ef9e Skip failing test #115244
4d0a3637f29 Fix #115318: Getting started "Tweak My Settings" resets the getting started page
f54b4fe5771 Fixes microsoft/monaco-editor#2168
d7821d5fb05 Remove console log
ed4bd04c904 add other duplicate label to my endgame notebook
3fe4b0eb2f7 fix #115293, #113933
a7c0b43e1b5 Fix notebook action descriptions
d045bc6ed1d Update color name for 'notebook.inactiveFocusCellBorder' (refs #114219)
660d6b82f85 Use unix style paths in includes always
4a338fd0d44 Merge pull request #115269 from microsoft/misolori/notebook-inactive-focus
588c3c49509 Merge branch 'master' into misolori/notebook-inactive-focus
12b56d878be Update color token name 'notebook.inactiveFocusedCellBorder' => 'notebook.inactiveFocus'
7ce63bef177 fix #115290
cbcfaa00f45 fixes #114914
8e22ecf4c85 fic unnecessary import
e86befc8a9f Status bar: setting invalid color sets opacity 100%. Fixes #115292
b8bff49c9ae update distro
33e804f211f update milestone
3b87c36e2dc fix https://github.com/microsoft/vscode/issues/115207
631802d5cec comment out arm snaps
8aab6bc62d7 fixes #115219
3da57861612 fixes #114908
bb226913c5f Fix #115240
c8a90a48267 Merge pull request #115302 from microsoft/sandy081/remoteCLI
b2a34770f01 #115294 also handle medium exe tip
724888adc76 Fix #115294
05568474922 remote cli: show host label
f10dc2a548e more polish
4d3b15fda09 make sure to cancel continuation of `_handleEditorChanged`, related to https://github.com/microsoft/vscode/issues/115219, fyi @joaomoreno
971fa2cc9c6 Fixes #115304
0a943766a5f Fix monaco checks
9545d582360 Do not use the global `monaco` inside the editor
bb841e3bbee fix https://github.com/microsoft/vscode/issues/115301
2ce26643d85 have a separate setting code cells in breadcrumbs, hide code cells in outline by default
17c617039b1 Squashed commit of the following:
3a287ee1eae Fixes microsoft/monaco-editor#2302: Only define global monaco if asked to do so or if using AMD
a2bcb0608f1 fixes #114804
9519a5cb5a5 💄 clean nuget.config file
dcf0c56a796 node-debug@1.44.16
1d15b2fe17a use final DAP spec 1.44
6be5904d199 polish
1c1df3eaee5 fix #115050 flickering tabs when wrapped (#115273)
bb931908832 fixes #113703
5d63134de9e web - fix compile
4b5a9c4b5f0 change remote cli to manage only remtoe
19cbd870aaf web api - expose env as API from facade (#115295)
ee4516a4851 always on trusted-types for yarn web, fyi @bpasero
03902d48417 Revert "fix #113933."
70de88696c0 d'oh, forgot to adjust anyScore to new data format of FuzzyScore, fixes https://github.com/microsoft/vscode/issues/115250
7a9e56510d2 Not requiring NPM for typings (fixes #115228)
fb5bc5dd2ce fix typo: ResourcEditorInput → ResourceEditorInput (#115208)
f73c011ae3f fix: disable rosetta option for universal build (#115280)
ee7e0ad0933 fix #115107.
5e5f2f3b6ba feat: add identifier for universal app in issue reporter and about dialog (#115277)
d42bed7957a fix #113933.
d09508d9cb8 re #115012.
e48b3d3cad5 Update codespace-related getting started images & wording
64c4f7f49c8 feature insights for notebook.
5aac4f44562 fixes #115267
014aaa1047f Fix #115271: Search in Open Editors triggers errors when done without files
848896a75eb update distro
98da2b151c1 Remove unused variable
dfb86c5fa13 Add 'notebook.inactiveFocusedCellBorder' color token
b1ba0c70eaf Fixes #114172: adopt latest loader
4febf1e6c38 Add missing class to fix view items For microsoft/vssaas-planning#2286
4378b7f0201 fix #115169.
e6d5a209440 Fixes `getBranch` when name is fully qualified
ba428fe1029 fix #114225.
ed8043effb7 Save only open editors toggle state
8dcebbaf54f path => fsPath again
949a20d14f7 Merge pull request #115253 from microsoft:jackson/open-editors-fix
20f8e59d696 fixes #112347
a1bdcf6aed3 fixes #115121
3d66ab98eb9 path => fsPath
e3b0eae7403 Test fix for #114795
22960ca0155 fixes #115073
e375d137174 fixes #114869
cdbc22a9cbd Fix #115234: Cannot view search results when one is in an Untitled editor
977b2f6a1ca fix https://github.com/microsoft/vscode/issues/115201
ff27ea9437d Fixes #115148: Indent new line when using `IndentOutdent` and `appendText`
e4f1833d79b Use x64 node for darwin-arm64. Fixes #115009
96fa81bb74a Forward arguments when click is invoked via `makeContextAwareClickHandler` (fixes #115026)
4bd2d367e7c Remote smoketest timeout (fixes #115159)
e4022fb0e27 Expose a `TestCodeEditor` that could be used by the workbench tests
030c9d52233 cap notebook outline elements at 64 characters, fixes https://github.com/microsoft/vscode/issues/115199
ee65f21c4f7 use marked lexer to find headings, render MD as plain text before, fixes https://github.com/microsoft/vscode/issues/115205, fixes https://github.com/microsoft/vscode/issues/115206, fixes https://github.com/microsoft/vscode/issues/115118
c789c22efa7 Fixes #115224: Adopt Trusted Types in DiffReview
a552ebc1f8b Revert "diffReview: use insertAdajentText instead of insertAdjacentHTML"
eb1cf4b0bae diffReview: use insertAdajentText instead of insertAdjacentHTML
e06ef891b70 Fix #114379
096d70ce18e fixes #114990
35c5689d292 fixes #114914
0f59f684a1a Fix #114982
bb6014df3b4 tabs - let the overflow gradient not draw over borders (#115129)
676e8d62a3e chore: remove universal build from its separate stage (#115203)
99e7aea4a82 PR template - remove pull requests link full stop (#115090)
c246b5704f7 fix https://github.com/microsoft/vscode/issues/115124
7b0cfdd04ad fix git askpass
93830fbe3d2 cleanup #113562
8e68e0c4331 log source
f434f853aaf pfs - workaround broken reparse points on windows (fix #115113)
1718be68d0f Fallback to default opener when selected
5662b3b6a25 Log exceptions and continue in calls to ExternalOpener.canOpen
9ee751e859d Error if registering an unsupported scheme for external opener
9421e50aa8e Improve documentation for ExternalUriOpenerPriority
c4c5f45ce0e fix #115150.
39d9b04f2c3 re #115018.
a56bc0c6711 Don't write preferredLocation into workspace settings for find file references
0ede5243261 Reword multiple external opener error
e5c4f426fee Fix setting decription and remove unused setting
d9e4f5cf97b Add new icon for open editors view
005db8394c4 throw an error with a clear message when a notebook document is missing, https://github.com/microsoft/vscode/issues/115018
0a0537961c7 tree: do not break fully when you can not collapse an unexisting node
bdd2f1628e2 callStack view: set callStackItemType context properly
b7e87c1bf27 💄
9788e81e98d Log individual events because `extensionIds` gets clamped sometimes
d5bdb0efb21 fix #115011.
c3746fa0aed Fixes #114983
21e970473c3 Fixes #114998: Fall back to a document range semantic tokens provider
58624bfcb16 Fixes #115032: Add description
db92af7429d Fixes #115033: respect indent action when using appendText
774f887a985 update notebook
578e2dc4ee7 Fixes #115026: Adopt `KeyboardEvent.triggeredByAccelerator`
c1afd7c238b Add `_debugComposition` flag
9e07bfd5946 related to #115037
75ff8b11310 fixes #115037
1f1ed78f7db Use ;; instead of ; for line comments (#115036)
960a93f0e2e add unit test for #114971
09ef3735975 Merge pull request #114972 from enagic/master
371629106b3 #114031 fix user data sync tests
08a2f9c5e36 fix enablement handler
0540478dc72 Reduce getting started for codespaces
1a9dd758530 Don't error out on unknown provider.
25f6e3e2540 debug: update js-debug
a331c2b515e Revert test changes
684459c8dc6 Refactor searching in open editors logic
17685a9db95 fix #108950.
a46fd0ee934 fix: update `isUri()` to compare `fsPath` as `string`
8fa1417e309 run oss too 1.53, update distro
88af66bceed testing: accessibility round 2
500d514ecfa Add fall back to default option for when external uri opener fails
8b1feaed3e6 Documentation clean up for ExternalUriOpener
0e5b47fa43c Use object instead of array for `workbench.externalUriOpeners`
ed98eb19685 Fix spelling
ae8bd3216f0 💂 tests for selecting kernel.
2f6c928b209 Fixes `getBranch` issue with remote branches Improves perf by reducing git calls from 3 to 1
748b2e5a854 Remove `#` from typescript deprecation warnings (#114787)
60f3919b26a fix #114959.
7e3d5a0ce0f fix #114048. do not update active kernel if kernel is executed.
c7cf663d0c4 fix #106362. Keep runstate when undo/redo cell.
b112052169c fix #114171
8d7740fe3b3 Merge pull request #114944 from microsoft/merogge/integration
fd1ba8c9692 chore: bump electron@11.2.1
2433b0eaf3c update distro
f21a3b95e6a Merge pull request #114854 from susiwen8/hover-scroll
a3131249625 update distro
58e88ff3ac0 testing: accessibility in explorer round 1
72172ed06c6 Merge branch 'master' into hover-scroll
68b7e79867e fix test-product icon
89e152635ab Limit spin to sync and loading (for #112298)
4ae47297a3e Merge branch 'master' into merogge/integration
bd7dff7f071 testing: add test result to proposed api, ids for correlation
ff08b2509f6 testing: fix not subscribing to first open workspace document
cb69f5c9bca testing: add line background decorations
582ea371c2b [microsoft-authentication] Extend authentication session to return id tokens (#114675)
5a3fedf0c45 Merge pull request #114628 from microsoft/alex/python-language-configuration
dac8d916d56 fix #110936
62093ff022b [html/json/css] update services & dependencies
d877e86bdd3 Merge branch 'master' into alex/python-language-configuration
e451364da15 Update Codicons version
51d19635946 reset template display when switching models.
b18634fe902 fix #111587 Apply enablement to command links in welcome views (#113841)
07c3e907eb6 Improve glob module to support OS separator agnostic matching (#114810)
7468a060129 Revert "fix #114171."
c708e3d5cf0 Move `workbench.startupEditor` to RESOURCE settings to allow setting to gettingStarted on a per repo basis Make sure to disallow setting to readme via workspace settings to prevent tracking attempts.
644d108f0d9 Do not reveal `FindOptionsWidget` all the time (fixes #114630)
f3136a25fab Merge pull request #114934 from microsoft/merogge/terminalDimensions
60bce0f6287 feat: add macos universal build ci config (#114446)
19d87449a7b Add option to override 'pinned' when setting list selection Fix #114651
88fd9d9d178 fix #107239, set terminal dimensions
d21d85a3fc2 Fix precommit hook on Windows
c79a0282da3 Fixes microsoft/monaco-editor#2301
95227b3e10d Fixes microsoft/monaco-editor#2311
bf93e45b9c6 files - document file modes we use
1eb89d7da18 Add telemetry in the area of reconnection
3b03189afae Restore extensions in core (#114921)
5fcd9f74845 update distro
1aa795f2ff1 update jsdoc for #114908
415398e3995 tests - only use 'junction' for folders
604e231d371 fix strictEqual problem
7a89df95922 some more strict asserting tests
3cb3624be97 fix build
b2242cc5ebf rename notebook outline settings to `notebook.outline.showCodeCells`
fa7d5e7def0 fix `breadcrumbs.symbolPath` setting
830a7589e2a tests - enable symlink tests for windows again via 'junction' that do not require admin privilges
14cc5263711  Cannot open a remote workspace via --remote syntax. Fixes #114900
e60e0eab352 Cleanup some file related unit tests (#114895)
a38cc82a154 fix mock, fixes tests
5592ed02fb3 rsource -> resource (#114837)
bc3a770b78e perf - suggest status shouldn't listen when hidden
dcda88e5a69 fix https://github.com/microsoft/vscode/issues/114798
eb5f9becd90 make SubmenuEntryActionViewItem not eagerly fetch/create the actual actions
137b6f5a464 Update endgame notebooks
da0a04fffb9 Copy function fails over dangling symbolic links (fix #111621)
c8ff3471b59 Do not attempt to open a workspace/folder that no longer exists when reloading window (fix #110982)
d2cbc66835f Add empty problem matchers to build tasks so they don't ask me questions
1f8b429635d chore: custom protocols will also be intercepted by webRequest
62fcf3cce7e chore: cleanup webrequest filter for svg files
228459cc63a Fix: show hover when mouse control hover scroll
79be0a07248 Fix #114794
7b317afd931 Fix starting scroll for URIs with fragment (#111126)
98ec233c77e Fix: release note don't use editor style (#114709)
e91fd3bd40b Updated Getting Started images with transparency instead of blur
f0bd7eee100 only create processEnvironment once, now tests pass Co-authored by: Daniel Imms <daimms@microsoft.com>
4300e6c7d2c Fix #105177 get terminal environment variable to show up in remote container
a095d7fcf74 Make sure altClickMovesCursor gets refreshed
c2d09aaeac1 Open Language Mode picker for new file (fixes #110330)
885e66edf9e Open Language Mode picker for new file (fixes #110330)
cd6fa35fb94 fix #114233.
add5b32d959 testing: initial implementation of test decorations
3e55989cca8 testing: move test filter to action bar
2c19f7fb988 Fix #105177 get terminal environment variable to show up in remote co… (#114721)
d8a3c5f61c8 fix integration tests.
88d66caf686 fix #114782
ed72c64b87e Remove unused constant
de11a7dec60 Rename `isEdge` to `isEdgeLegacy` (see https://support.microsoft.com/en-us/help/4533505/what-is-microsoft-edge-legacy)
007f704eaa9 Remove IME special cases for Edge Legacy
4fac328d03d ok I'm out
86d96faaaf8 extract menu entry view item creation logic, fyi @joaomoreno prep for https://github.com/microsoft/vscode/issues/114123
bd929b33de6 logging - put storage tracing behind a flag to reduce spam
b9c67304807 add some docs for workaround for #114227
a07327a430d better default for PeekViewWidget#_getActionBarOptions
3f3b4136060 maybe this is it
4b7f41a732e Merge pull request #114544 from microsoft/aeschli/114542
67c9ab0d514 test all extensions if system/builtin
a4a9a5e69db debt - use css variables instead of dynamically injected style sheets
534d5b08948 💄
89855f0fcdb web - editor context menu sometimes wrong (#109166)
7bb55c99943 Merge pull request #112169 from chenjigeng/fix/debug-auto-decode-link
da48ddc5fea upgrade gulp-atom-electron
b57017797cf debt - adopt some strictEqual in tests
f123c904b17 remote cli: do not sync installed extensions
5809e9eb031 testresolver: support server extensions
dcc1e9df991 workspaces - shuffle some code around
b3807b04f22 Merge branch 'master' into fix/debug-auto-decode-link
ebf351d04b3 workspaces code cleanup
4937aee5ed5 repl: on debugConsole.wordWrap change recreate the tree, do not require a restart
1e0f94f9009 Fixes #114468
6f9c818900d 💄
0d8ec8f09fe Ports attributes open -> openBrowser
1be6d22ebca add setting `outline.showNotebookCodeCells` to control if code cells should show or not
37c162ed6df revert
37a4b96ae18 simplify FuzzyScore structure, fix high, low match
9939537ea44 debt - use main in main side services consistently (workspaces)
d7ddcd1e08c debt - cleanup WebFileSystemAccess#supported
6b1675af7e7 Open Language Mode picker for new file (fixes #110330)
affac2b5ae0 Fixes #104004: Do not attempt to run extension tests in web worker extension host
2ef14cf785a fix workspace tests on windows
1848d3111fc Add workaround for #114227
ed00aebc389 Link names
98b4661b002 💄
fed0eb5fd9a web - remove old API interfaces
c7cb19ed216 Merge pull request #114749 from microsoft/ben/folder-id
e5dd4b6e4b1 Add mock support for public ports to test resolver
4c0a4179e6e workspace - more tests for identifiers
106f26b27bc bulkEditService: dispose of listener in finally
1285843e55e When a tree resource has a tooltip it takes precedent
3ee49fa3f86 explorer: when new file system provider registered set whole explorer input
05bf7b0afcf Merge branch 'master' into ben/folder-id
ec337988dd6 parseUri/Path => resolveUri/Path
f9d16c3b3c2 fix tests
3f26fd17ba5 workspaces - some final 💄
cf4c4a0ece7 drop gulp-cssnano, use gulp-postcss
b87d56c5332 distro
2e5034a74b2 Retry downloading playwright when hitting ECONNRESET
f1e62c1190f upgrade dev dependencies
9321b2f141b bulkEditService: veto shutdown if bulkEdit is in progress
dca2d81c652 upgrade build azure-storage
70a3118892b Allow svg files to load from Schemas.vscodeRemoteResource
4f2341834e6 fix nls problem, fyi @JacksonKearl
70f4451001a remove unwanted #region comment from vscode.d.ts
2fd18ac793f workspaces - reduce stat calls
e61d0ba267c mark secretState field as private
4b9ccf578c3 fix #114727. load preloads when switching kernels.
167b920831c Enable searchInOpenEditors by default when not in stable
7e55fa0c543 Search In Open Editors (#107756)
9f9d1a76d97 support kernel id and extension
a8145f67dcc testing: polyfill test heirarchies (#114601)
572bc1810dc Make sure we dispose of the open with picker after an item is selected
542de8e0093 Move schemes to opener metadata
885585c7f87 Remove test math formula from readme
793f2e06af4 Fix weight of terminal search workspace keybinding
3d641d9d35b fix #111889.
d972bfc3266 Update elliptic and nwmatcher (#114670)
7310b17e25f Merge pull request #114669 from microsoft/merogge/altClick
dec03c4a714 Improve doc wording
219d323100f improve setting description and make setting true by default and add ===
821afe5e929 fix #111885. avoid duplicated execution placeholder status bar item on split editors
59fac4862da Merge pull request #114665 from microsoft/sana-gettingstarted
3003bde2214 revert "Open" to "Focus Terminal"
4b9b2ab9a60 Fix #114707
dbd4ede23f8 add api lint rule for region comments
41d8bb26110 Merge branch 'master' into sana-gettingstarted
e7d3eb87cb0 💄
565f3a59e6c @ for CI failures
98ee1c6efda update distro
3ec90672006 Simplify local port logic in test resolver + OS check
f2b2854a6b2 (for now) have tab decoration off by default, https://github.com/microsoft/vscode/issues/49382
67f1ada71a6 chore - a few more strict assertions in tests
e8f6c273819 Use random port if privileged in test resolver
bdc3b07f428 Fixes microsoft/monaco-editor#2305: Account for padding when computing the content height and having scroll beyond last line enabled
fcccc85ff97 Add more to test resolver tunnel factory and fix port filtering
ad437ef958c Fixes microsoft/monaco-editor#2313: navigator.clipboard is not defined when loading not secure, via http
d3fbbece829 💄
5a95cd26e4f Fix #114708
3ad7af3ab6b 💄
9b7323a7efe cleanup types
d8831220ff1 Update showCandidatePort for test resolver
f6490bfa5fc 💄 getFolderId
758f66b5986 workspaces - actually use workspace
79230501646 Don't await remote env before setting up process manager
9ca50fbb47c Merge pull request #114702 from microsoft/tyriar/109600
4877478fb6e Hook up alt buffer active ctx key
b5f36a24b63 testresolver: start a test server
a49455b5286 💄 isCurrentWorkspace
af915f0bc4c Create terminalAltBufferActive ctx key
6755b6bb3e9 electron - need to check if window is destroyed before accessing webcontents
b1cb3b1cbb1 Merge branch 'master' into ben/folder-id
37ea1d82847 Merge pull request #114660 from microsoft/isidorn/async-tree-diffIdentity
19e390d5b58 polish
04ca5c80d3f Merge pull request #114593 from jeanp413/fix-111572
0249c31a59b testResolve: more tunnelservice fixes
c735c8b2913 Merge branch 'master' into alex/python-language-configuration
67bf6577b4d testResolver: fix for tunnel server
b6f19ccf3fa CI notifications
7d5052a8fce Merge pull request #114687 from microsoft/alex/ci-windows-cache
15e58cea4d3 test resolver: add tunnel server
18c8a3f0482 workspaces - compute workspace ID and check for existance in window service
e9967519db1 chore - strict asserting in snippet tests
515f179c98a decrease repl refresh timeout
f63310750f6 Even more tunnel provider logging
44e020ac02b Trigger CI
05e4d593c23 workspaces - move id computation to main
f5d760b48f3 Merge branch 'master' into isidorn/async-tree-diffIdentity
831d1942874 Create .build directory
e8473247567 distro
4f98d9c0be7 no double reveal of notebook symbols
232052d7e63 Create our own node modules archive (#114516)
33789a59919 workspaces - drop duplicated payload interfaces
dd84387f9e6 window - merge workspace and folderUri into one
0c02f245f07 bust node module caches
914d8dff29e add notebook for notebook paper cuts
c71edb7d883 get marketplace extensions in `yarn web`
f4a0c209bea formatting
c8ce53e492e window - reduce to one property for opened workspace
f19f4a1b908 Fix Keep activity bar icons stable on reload (Web & Remote window) #114144
9cfba546810 move build/dependencies.js to typescript
acaed317263 workspaces - add identifier to single folder identifier
7e2d8b48e36 Merge pull request #114581 from microsoft/chrisdias/solongsofar
3207692dbbd Merge branch 'master' into chrisdias/solongsofar
44eb775d1db further remove single workspace identifier traces
46b964b1b7c workspaces - remove ISingleFolderWorkspaceIdentifier requirement from workspace service
47a6682df6f fix: allow svg from devtools scheme
eaaf647c8c5 workspaces - remove ISingleFolderWorkspaceIdentifier requirement from history
aa774aeeb79 💄 regions
71feb05bfba 💄 workspace payload
6b241a6845d Closes #111210 - adds openRepository api
5bcd2220750 Fixes checking for rebase against wrong branch Refs: #1866
1a4b35c2023 💂
26aaaeb11ca re #114583.
6e56202803c pin notebook editor when execution triggered.
ece4eeb0647 only handle override when id is provided.
a2830f41653 execute notebook with args
1c755a4fca2 fix #114674.
9a55eff36fa testing: make filtering work correctly
847c52e69fa testing: add hover titles for items
0e9e4e46774 testing: show stats about the last test run
aa14d823df5 testing: show badge for running/failed tests
c2a2e9cabf8 testing: show test progress, implement result service
48c7596e909 testing: fix swapped run and debug actions
c6e62500779 Merge branch 'master' into chrisdias/solongsofar
1123ea5791b set false by default and consider multiCursor
de24392e690 fix #114583.
79ec33ab1eb Merge branch 'master' into chrisdias/solongsofar
f087f82a3b8 allow reopen notebook with another view type if not dirty.
559a63373fc fix active notebook editor in repen with quick pick
3fef8c795c5 Update gettingStartedContent.ts
d591739670c Fix #97564 (#114438)
5717c0396ad update distro
1509770d10d Fixes #58440: Finalize `OnEnterRule.previousLineText` API
aab5336e534 polish
9b1d85bad8c repl and explorer adopt diffIdentityProvider
be4d10efa1b async tree pass on diffIdentityProvider to regular tree
28b221faa8b Bump concat-with-sourcemaps from 1.0.4 to 1.1.0 (#114648)
2e40c684ecf Bump fstream from 1.0.11 to 1.0.12 (#114649)
bc3a873ee6f Bump macaddress from 0.2.8 to 0.2.9 (#114647)
f9109f4464c Bump sshpk from 1.13.1 to 1.16.1 (#114645)
d3965a2b4dd Finalize secrets API, closes #112249
699b02d3ae3 Bump hoek from 4.2.0 to 4.2.1 (#114643)
93ae815ba14 Feedback on secrets API #112249
64fa272029d Bump stringstream from 0.0.5 to 0.0.6 (#114618)
1266a4e4d05 Support git-cmd.exe as a git bash shell
cbbf2d09904 Correctly resolve mapped drive on Windows
7139a93a8c7 Bump mixin-deep from 1.3.1 to 1.3.2 (#114619)
a011dab93e6 Fix #114639
ec1eda0d96c Rename `OnEnterRule.oneLineAboveText` to `previousLineText` after API call feedback (#58440)
38c051bf865 Catch errors in tunnel providers and log
947626dfa4b fixes #114616
bab7a83909b shared process - check for destroyed webcontents before calling postMessage
b0883ec87a9 Properly call dispose in tunnel factory We really need a lint rule or something for awaiting/not calling functions
02f7983156e More tunnel logging
a7980b630c0 some initial 💄
0b038406a95 🆙 distro
6c4203f7482 Modernize CLI main (#114623)
aaf5a7fee3b Merge pull request #110912 from Wscats/enoyao-Environemt2Environment
e2bce32da4b #114627 complete fix
0fbab387483 💄 strict assertions in extHost, mainThread tests
5cec4e2da6e don't expand outline tree when just updating, fixes https://github.com/microsoft/vscode/issues/114386
845a4d4268d add new rule to enforce Thenable over Promise, adopt in vscode.d.ts and vscode.proposed.d.ts
dfc8f5ab91b comment-out console.log fyi @connor4312
e9263cc8269 some API proposal for open editors
543af670531 fixes #114607
2d5f7fd0726 Move `onEnterRules` to `language-configuration.json`
87dba0db6b2 Fix #114627
368c03fdc8a Fixes #114348: Allow `onEnterRules` to be defined in the language configuration file
390dac56a51 debug dynamic configs: Use the type of the provider, not of the config since config sometimes have subtypes
f9f87fb6fa1 Add logging for tunnel creation
37c4d4b0a83 fix https://github.com/microsoft/vscode/issues/114621
b675fa18cb4 'Resolving your shell environement is taking very long' shown in every window (fix #114622)
06ab012baa5 state service - actually implement interface
9deba1b10ae code catchup
4d0d36c6ab1 update distro
b31660dccc7 update distro
f3c865334d4 use real tsec instead of vscode-tsec fork
c0a0a35a87c more clarifying comments for shell env resolve
6effd9dce9c better fix #114564
a16beb16509 testing: fix run all tests command
b50bd5d0944 Close #114342
1f8643ef760 Refresh Images In Markdown Preview On Change (#114083)
686cd7df530 testing: clean up actions, add run/debug all, rm duplication
bb1c05e62e2 testing: unify testing view
f37dd663235 Revert "window - do not send IPC messages to destroyed windows (fix #114563)"
16ea22eea19 Update Codicons: Add 'combine' icon
7f4d67c94cb Fix #110812 (#114553)
049735e8d96 A case for 'Shift+Insert' added. Fixes #114103 (#114520)
a11dd7cd48d fixes #114199
3ed456050c7 Fixes #111572
6d6fec82092 Finalize product icon theme contributions. Fixes #113828
c42b385bcea Disable contributed openers by default in calls to openExternal
fe81f9f5b26 Add link opening getting started task action. Closes #114582
3e4552ffcc7 Remove unneeded mapping from cintainers to disposableStore
3411ae55cc8 Allow splitting gettingStarted editors fixes #114321
fa2dbc16ca8 spacing
82a21e5a032 🌲
239213eaeb1 push it real good
3c4f06dc98a update distro
010e1d0e4a3 open in new tab
74f31a68598 Fix #111299 (#114441)
36cb0bde33a ci: disable exploration sync on PRs
aef623dc1d3 remove "so far" from Problems message (which assumes you'll have problems later)
eba7c23da0c trees: rename option to diffDepth
b32d137681d Merge branch 'test-tree-testing'
c100b5c26ac add clearUnacknowledgedChars flow control
6815e754602 Merge pull request #114237 from microsoft/smarter-indexed-setchildren
bc84f07dc53 navigationActions: remove dependency to notebooks
81ec098e60e Merge remote-tracking branch 'origin/master' into smarter-indexed-setchildren
88835344408 trees: don't use diff identity provider for resort
7ae39d955d4 fix https://github.com/microsoft/vscode/issues/114576
ee4f4dbf97a make trusted types policy strict
bcb5f3c77b7 update mkdirp
fe1fdf0b4fe Use correct value to enable port finding
616fb1cfed2 Merge pull request #112317 from plainerman/fix-99072
c0c033ff4f7 Use port auto forwarding setting to disable port finding (#114574)
b0b4bc4e338 add grammars scripts
15a285fd5ae Change "Requires Sudo" to "May Require Sudo"
c6145fc3065 ext (un)link
4ff784e1fbf promise 💄
cf4111f6f89 show a modal dialog when no default formatter is configured, https://github.com/microsoft/vscode/issues/113903
dbf36e4cfb6 Change aria label when attaching
f8df6a7e47d oops do not have .only
5a4d90a550a window - do not send IPC messages to destroyed windows (fix #114564)
635d7af6385 update ext types
7a34c6d6227 update tests
36929d3b59e exception widget: allow to tab over each link, enter to navigate to link
3c49afeaafa fix hygiene
867a52fc090 ext each: allowUnknownOption
ff393a3349e add open tunnels to test resolver
af2bcd4d461 bring back vscode-colorize-tests
0e7f3d0d8cb Revert "remove colorize-tests extension usage"
971190e4d0f fix region comment
81eccfbf68e cleanup native modules test
28ad78e7dc8 fix https://github.com/microsoft/vscode/issues/114537
af59db28c8d stream - some cleanup of observer
78d5286adb9 Bump sshpk from 1.13.1 to 1.16.1 in /build (#114534)
9af9580bf0a Bump stringstream from 0.0.5 to 0.0.6 in /build (#114533)
b165e20587d InlineHint#hoverMessage becomes description (maybe better tooltip?) and support string OR markdown strings
b47aa19443c FileService improvements (#114428)
2d9a0d12131 inline hints: tweak colors, react to theme change, add rounded corners to hints
d29bb624a40 Merge pull request #113285 from Kingwl/signaure_arguments_label
caa87e0b523 editor status 💄
2472798cd57 Fix: selecting entry should focus back to editor (#114493)
32b28f6f8f9 And again bump distro
ce106c3924a Bump distro again.
ced398d18a8 Bump distro
30f17c9572a Merge branch 'master' into signaure_arguments_label
dc588389507 remote install-extension with VSIX
18aa3199c23 Avoid `ERR_STREAM_WRITE_AFTER_END`
847300e49a9 support vsix for install-extension
92083ed3e18 yarn ext
085317e932e dev: ls
d6ca7769f42 create extension workspaces
bcf514160be uninstall-extension should remove both local and remote extension
a40b4e72d08 add API command `vscode.executeInlineHintProvider` and some end-to-end tests
ac85fb8a74b fixes #112045
7a938679f82 clamp font size at editor font size, don't go bigger
d65ab8dcd9a use all of context decoration as decoration type key
4af282ea26d explorer: download report progress in the explorer due to rich download progress to not get double notifications
1d3b03bd551 padding should depend on font size too
4651f66cca1 simpler decoration type management (rely on internal ref counting)
dab702a135e extManCliService: Sort listExtensions, fix output
f101028176c Fixes #114299: Add commands for invoking semantic tokens provider
5087b08c6d1 💄
1981776d0f9 less state inside InlineHintsController-type, only have one type of decorations, and much 💄
d427deac780 explorer: adopt confirmBeforeUndo
74f272fbb7d update distro
c27642c76d6 Merge pull request #114421 from microsoft/aeschli/remoteCLIExtensionsManagement
0d4bf785b6c remove hover (should come via decoration) and action/menu (should be self contained if at all)
97f237272c9 rename remote commands to _remoteCLI
ae67879ed5d don't propose new API on ThemableDecorationAttachmentRenderOptions
756337d48af Merge branch 'master' into signaure_arguments_label
2bb41a14025 dev script
2388c80c74c Add `confirmBeforeUndo` option on the undo redo element
407557ca234 Save file dialog: sort file types alphabetically (#114487)
bf90bd15185 cliProgressMain: add LocalizationsService to ServiceCollection
911a54273ce Merge branch 'joao/fix-web'
9995d128240 missing build output
09bc6fc64b1 Migrate to new deb repo (#114527)
ed8655201ae fix web extensions
7fa8f1aa7fb Remove plug icon from ports view Part of https://github.com/microsoft/vscode-internalbacklog/issues/1689
667e41626f1 explorer: if you can not undo, pass undo to editor
85f1501c861 update distro
d3611cbb634 fix toString
2ef04b24f42 💄
c208ec384c9 💄 move all scoring logic into _doScore
9441f1c6457 Add support for npm scripts with a space (#113840)
253d99a16f8 update distro
84865c05ecc Merge branch 'master' into aeschli/remoteCLIExtensionsManagement
22e02e00804 use URI for VSIX paths
96001455045 Fix tunnel creation in web
1c131cf2657 Avoid extra fields
ebac10e0a56 Avoid conflict error
3c2c937f991 Merge branch 'master' into signaure_arguments_label
fcc00b29f5e Avoid ts changes (#2)
08f3bcec33d fix https://github.com/microsoft/vscode/issues/114518
c16956439b3 Bust node module cache
5560c9f4da0 Fix #114455
0a2b6d4a1c6 inline collapse all actions
141b275c41f Merge pull request #114260 from microsoft/sandy081/comments/fix92038
ff309d2a239 Merge branch 'master' into sandy081/comments/fix92038
39edf4351b9 Trigger GH CI
12ef541b365 🆙 distro
ff9fbcb077b telemetry - lift some helpers to electron-sandbox
93b5a0591f7 sandbox - lift remote agent service to electron-sandbox
9cea4954aa5 notifications 💄
691951c3b1c editor title - no need to update menu onDidRegisterExtensions
ec5d1c2ab93 debt - push more window related things to window helper class
eaa959d34b8 fix #114273
253e9e32261 shared process - consolidate services
0c8cf08b44b shared process - drop management service
1caaf1b2dbd 💄 path labels
61312f3708d Remove instantiation service accessor
2e89c2d4ba5 Add 'key' to onDidChange of secrets API, #112249
c5f0bac2a81 Create issue directly if signed in, fixes #95165
0faf1550289 Disable on enter test
48b726e39e7 Fix regex
5f6acfb68e1 Move jsdoc completion tests to smoke tests
800e173c403 Split ts into unit and smoke tests
b813d5dd300 Leave the local extension host running when connection is lost to the remote extension host
3a9daf3e34a Adopt new vscode-userdata path format
bec5afa2923 fix: remove unnessary asar files from mac arm64
a31b0617e24 expose altClickMovesCursor as setting (#114429)
b2575665d82 Emmet wrap update, fixes #113930
21c11ba864c Fixes #114433 - adds setting to avoid git config
79cfca5aa29 fix #114416 LabelService.getUriLabel bad relative path if in root workspace (#114419)
5a25a566959 workbench.action.debug.start => workbench.action.debug.selectandstart
a3febc56143 Potential new formatter for userdata in serverless. (#114296)
663532c3173 Skipping unreliable test
a68f1326e87 Update built markdown preview code
308a4f6a484 Make sure ts extension has loaded before running on-enter tests
d87041eddef Downgrade simple browser to prompt instead of being the default on web
3310d3ac2d4 sort notebook content providers in the list.
03dd7bf1d91 testing: polish and unit tests for the test tree
337b3e8d055 turn on flow control by default
7c4248780c8 adopt useCustom for permanent connection failure
2137a7f8508 implement useCustom in dialogService
5b8f78a1570 Move sync-enabled trigger to gettingStartedService
67c988005f9 Do not wait for the first reconnection attempt in the reconnection loop
b64a4ae1aa3 Scaffold `MessageOptions.useCustom`
6d50c71f41c add editor command, fyi @dbaeumer
ff042e9fa40 fixes #114203
381b99f6415 Also run the output based auto port forwarding (#114424)
f7e7a95479e Merge branch 'joao/remove-grammar-extensions'
bf764f1ce6a wip: sync-extensions dev script
c198925570c extensionsManagement for remote CLI
4974a335112 smoke tests are tests too
f745a912ae1 fixes #114420
62bb9b3d3fd shared process - adopt toggle method from management service
65582ba33d4 Fix #114326
0442b734227 remove devops ci badge
d472f9d503c remove devops continuous build
f8dbf7dd079 Merge pull request #114359 from microsoft/ben/shared-process-message-port
4af3c1c0576 get grammar extensions from marketplace
217aab28fac breakpoint polish condition context keys
6ca430e6a6f Merge branch 'master' into ben/shared-process-message-port
55325988a07 shared process - basic message port tests
d952c818176 Fix #114379
6f9f6f806c1 Azure DevOps pipeline artifacts (#114405)
d577c4b18da remove colorize-tests extension usage
bc7d3c9ea6d remove grammar extensions
be2732570ac Include tunnel service canElevate check
6889ed3ab17 Notification for elevating when using privileged port from openTunnel
25a9fcdb918 Merge pull request #114388 from jeanp413/watch-copy-value-selection
98acb74149d shared process - fix --status invocation
addb6b9b53a 💄
55e10fd785a shared process - introduce a separate service for management
22c1c0b486d update distro again
ba7f5c60a5e update distro
5d620dc8466 Update Linux publish script
45e8d6ebc65 Update distro commit
c082930a439 shared process - introduce platform/sharedProcess
ec2a8e5b9ee shared process - rely on "close" event for disconnects
9e1863ec2dc shared process - 💄
98d2d74ba07 Revert "Publish scripts update (#114375)"
99f0ab9f732 Publish scripts update (#114375)
2bf5b56f115 shared process - move the shared process back to IPC folder
8dff4cfa55d Expanding Getting Started text based on first round of feedback.
bcb33ef6290 Merge branch 'master' into ben/shared-process-message-port
9c7128d8fab Fixes #114384 - recheck resources after save/add
746c455458c Respect multi selection when Copy value in Watch Expression View. Fix #114353
1894765dd17 Merge branch 'master' into smarter-indexed-setchildren
1a6eef3170b Update image ref
54cb0ed544e Clean up settings sync entry
4207c4ee13e Move defaultExternalUriOpenerId into configuration to avoid cycle
5c39159acb4 Fix cycle
4566eebe4fa Fix typo in markdown sanitizer (#111258)
a34e751b017 Fix scrolling of markdown preview. Close #65504 (#111094)
64496f82196 Allow using 'default' to force fall back to VS Code's default opener
6cceb4eab08 Remove enabled setting and try to open simple browser to side of current editor
1e3a23b4e0a Fix simple browser button color for light themes
cc5e8b22faf Continue work on url opener api
a590d4fac36 Only show "Open in VSCode..." when isWeb.
67c889e3941 Merge and restructure menu (#114383)
56a6279a1c8 Don't use getActions in search view #92038
856277c8590 Github Login => Setting Sync
ad3974ad88a 💄
e32e353bfde fix #114171.
255853d1714 Remove emptyWorkspaceSupport when conditions
11d18c2c094 `remoteName == codespaces` for codespaces section
9f3832dc688 Bust the node module cache
5029b4f362d Fixes #112552: Set server marks to `ITimerService`
9cb4f1e2ae4 update distro
43d111c0a48 Getting started content (#114305)
a4b13661009 Add performance marks to `IRemoteAgentEnvironmentDTO`
cbb94cfb607 Revert "fixes #114203"
8dfc81fedc1 Small tweaks
ff7aabe3fca fix #114215
c8a6ddba9d0 Enable forceConsistentCasingInFileNames flag (#114334)
6525b42f479 remove unused file
e12a9d74a62 #114144 fix remote explorer icon flickering
d03490f3532 fixes #114203
f34a3ace3f9 update distro
55960b7d61e add flowControl to terminalConfig
7ae54ca2d6f breakpoint widget: use same mode for coloring as the underlying editor
835a1ce6efd allow execution against a hidden notebook editor.
5d6cba5cbc2 Reworking external opener implementation to allow configured openers to be called directly without a canOpen check
5b1e59c636c explorer: hide open editors for new users
e1d8b926583 update distro
30f61c2449b part of #114214 serverSpawn=true
c4d5b055d37 Merge pull request #114269 from microsoft/alex/fuzzy-score-improvements
d4f993de63e Saving an untitled file closes it (fix #114272)
e44fb4ab927 update distro
526f826ac14 fix #114192
634ebecb8b7 Refactor code to use `await`
3e6535d882c shared process - implement message port connections and wire in
d6f27b92719 Polishing/fixing/addressing feedback for portsAttributes Includes: - fix in json schema - use object instead of array - change label of already forwarded ports when setting changed - fix for merging ranges
c972009ef68 Merge pull request #114214 from microsoft/tyriar/flow_control
cc8c9a2230d No need to store scores
a79276dc649 Move to log service
f8ec60aa06f Add flow control setting, remove fake latency
98038a8835d Merge pull request #114208 from gjsjohnmurray/fix-37570
065f0e46405 Auto forwarding fix
7a9bb5a44f9 breakpoints: inline action to edit condition. Render conditions for function breakpoints. Allow to edit conditions for function breakpoints
e9f6c35c17c Fixes #114146: Increase max BracketSelectionRangeProvider duration to 5s in unit tests
4e4d2484a74 Extract `TestTextResourcePropertiesService` to its own file
00f8540d793 Fixes #114332
f1cb1b27f3e format
40e3106e5fa fix list drag affordance
7899bfe3eee Merge pull request #113315 from qchateau/fix-semantic-highlight
db30147068f Add test for case to assert that fetch should be scheduled again when a text buffer change occurs while the provider runs and the provider returns null
44278132f4f fix peek view alignment
cd906568752 shared process - document electron IPC
96b44121f98 shared process - add error handler and graceful-fs
2964fcbb846 shared process - extract more cleanup helpers to contrib
f1c510b4a88 Merge branch 'master' into ben/shared-process-message-ports
c265dff48a2 chore: bump electron@11.2.0
a8dd7f60a62 update collapsible when children change
710846866f7 Activate extension on simpleBrowser.api.open
b7f9eddf043 Allow passing viewColumn to simpleBrowser.api.open
9b83eb6eb50 smarter depth selection
a1d5ea876c3 Polish, also fix #113930
2b5ae783bf6 testing: add full json reporter to show more complete output
d39eefd1b0d update distro
59891debcf0 Wait for outstanding zlib flushes when draining a WebSocketNodeSocket (#114314)
ea13176ee96 Enable image preview for avif images
7da421d99bd fixup! make it work for compressed trees, recurse
6c4a00ce747 Make default text editor replace existing editors for resource (#112848)
a59f30011c1 Add a 30min cap to CI jobs
e7aa009ac3c Remove enabledHosts setting
61ec57016c4 Fix spelling
47aa3ad09ab Continue work on opener service
d6936dd524c Add mechanism for snippets to overwrite Auto-closing pairs in some cases (#114235)
2ca7b5426a7 💄
fb6a9b4824b fix #114289. notebook.selectKernel takes kernel id.
2156b8cc758 check and ignore not found error
31a15b5b9a3 Add command to kill server and trigger handled error
23be24d8289 Allow theming getting started page progress bars closes #114303
2774f79df3f Do not show "Cannot reconnect. Please reload the window" if the cause is a handled RemoteAuthorityResolverError
56e05127690 move to browser namespace
e5e791003f4 Merge remote-tracking branch 'origin/master' into smarter-indexed-setchildren
2d892ae9c7f Fix arch check for PowerShell enumeration (#114292)
3ca55d031b1 Update Codicons: increase gap around plus icon (fixes #114016)
b903748b833 Fix candidate filter and auto forwarding wiring (#114290)
d66db5cc754 fix https://github.com/microsoft/vscode/issues/114220
c88a51e10a8 Merge branch 'master' into fix/debug-auto-decode-link
4450e1d827d Azure DevOps - publish Windows artifacts (#114285)
42d7d3a47d7 breakpoints view: render edit action inline for exception breakpoints
40d6f79875b MenuItemAction: make sure to respec item.icon
a198be16f93 shared process - some 💄
67f8c0ca5a2 Merge branch 'master' into ben/shared-process-message-ports
daa7afebd06 remove undefined from outline data source
cf03ef33f45 allow to clear input of data trees, fyi @joaomoreno
0ecb7735496 shared process - more cleanup
dea0095e83e Add icon for public vs private ports
212a9434541 Merge remote-tracking branch 'origin/master' into alex/fuzzy-score-improvements
36a9cb8645e Improve `fuzzyScore`
475d3464e87 Have single outline config and let outline creator know for what they create outlines
9266fc49839 mock a label service to avoid breaking layers in tests
9af036b8274 Fix comments
b4e4bd16421 Allow tunnel providers to support making a tunnel public
9853c8fe6d7 Fix cr issues
a4f9e607619 fix https://github.com/microsoft/vscode/issues/114266
2376bed71e1 💄 some region-comment polish
64f32932c68 debug console: fix error in console, do not bind to same htmlelement a scoped context key service
75ea87a2636 shared process - introduce platform/sharedprocess
dcce02644ea fix https://github.com/microsoft/vscode/issues/109658
5ce7b02b6e8 refresh the remote indicator when actions change
5db4708e99d shared process - avoid payload IPC roundtrip and enable console based logger
6fef673683f update distro
de4463874c4 callStack: do not use getActions()
152d0ec8f05 finalize CancellationError API, fixes https://github.com/microsoft/vscode/issues/93686
adb037b74d8 fixes #114137
e59dc77d0d2 shared process - more cleanup
3f37b664fcb adhere to DAP spec; fixes #114229
e776f87e140 fix --builtin
7285f791ee5 Use menu
1fae5211635 shared process - more cleanup
9bfa4c1d558 Merge branch 'joao/extract-extensions/themes'
9c6e10497b5 use in-mem fsp
7eb52e75e08 shared process - more renames
eba7707d382 shared process - clean up some types and imports
675e5da76b1 shared process - expose methods for message channel API
d0749f8c9a3 use in-mem fsp
936e77761b5 include error into startup error dialog (#112846)
68ba207260a List still dirty files when backup fails (#114064)
d4be66da200 Fixes #112487 - avoid using stale cache for render
d78fad382aa skip failing test on win32 (#114248)
fd0a3a12e7b Update wrapper class name for paramter hints
8f384b51a93 Fixes #114204 - always renders the input box
27b824b32c8 Adds ability to pass remote/refspec to pushTo cmds
d076ee1b943 Adds force push mode to push api
02380e70149 Removes repo hint from args
7f489f589d8 Hide warnings for settings groups that have dynamically registered settings Fix #113747
d7d5f20047c Fix #114218
145bcd3a732 Insert new code cell should always use available languages.
d536903a2b0 💄
d88b60ceca6 languages in notebook document metadata.
8a2b9e9047d trees: add diffIdentityProvider for efficient setChildren updates
b6435bc4240 Remove unused import
47a135e715e Rework opener api proposal
6184addcd1d fall back to homepath if home unset. closes #112775
b3d57e69b02 Update PHP grammar, fix #113185
92833fca559 fix #114233.
04efea43fa3 testing: peek diff test outputs
989f2eb812e setImmediate => setTimeout
02276814922 Add new external uri opener service
22c88cfaaeb Batch ack events coming from client
3232112f9ba Only resume if it's paused
60e46eb8756 Delay animating until content is prepared to prevent weird flying elements.
0738f76daca pull themes from the marketplace
0a19f7702a9 Rename ackId to charCount
bf52d50a0a3 Remove ackId from data events going to client
7aee462b8a3 Use char count instead of ack ids
7e5c01208dd Start of low-high watermark flow control
69a6e6ac937 #113757 show panel move and hide actions only for panel views
3a4dcf4890d Fix unit test for Win32 release (#114212)
a04802f5865 #113757 show panel move and hide actions on view context menu
f29502563bb #113757 allign reset location action
f1ee68fc468 add tests for RELATIVE_FILEPATH snippet variable
c6c7ddd4437 Merge branch 'master' into tyriar/flow_control
6430ee1efce Basic flow control for ext host processes
9d39f4e6cb7 don't auto insert semicolons
169269a3f07 fix tests
3767f97bc32 Adds onDidPublish to Git api
8832366467e Closes #110881 - adds possibly rebased warning
eba4da27278 #113757 show sidebar actions only on sidebar views
2e279d37e7e Property preview text wraps lines in debug console
554ae13fa9a Fix address for port open attribute Part of https://github.com/microsoft/vscode-remote-release/issues/4046
b7b36bb1908 remove some tests
9ecba1b468e Merge pull request #114039 from microsoft/isidorn/bulkFileEditsUseTextFileService
1e9b86da1f9 Finalize adding a cancellation token to resolveTreeItem Fixes #111614
161ce44ddae Azure DevOps - Move release into a separate stage (#114205)
d3e4bdb6177 Merge branch 'master' into joao/wsl
c644f3788d0 revert wsl and distro
3a1c42c150e textFileService make getEncodedReadable public
67f9988bdc4 Support to define additional attributes for ports Part of microsoft/vscode-remote-release#4046
53be807cb4d throw nice error (and prevent stackoverflow) when instantiating services recrusively
3653f34dbab Do not instantiate hover widgets in the `onModelDecorationsChanged` event
0a28ec7fb14 fix #37570 add RELATIVE_FILEPATH snippet variable
868271067e6 filter perf marks that don't start with 'code/'
675638196d2 debt - remove duplicate drive letter implementations
4816a253eaa Revert "use PerformanceObserver in node's perf-util"
05c4659e096 use PerformanceObserver in node's perf-util
e500f76d9cc remove test dependency on theme extensions
0324150670f Merge branch 'master' into isidorn/bulkFileEditsUseTextFileService
d88c1b4a64c Merge branch 'master' into isidorn/bulkFileEditsUseTextFileService
22bd999e86b debt - use provider extUri in file service
4b3ab7048fc 💄
b90166177bf reuse stats collector for EchoRunner, fix missing titlePath-property, fixes https://github.com/microsoft/vscode/issues/114190
7a8c7f57312 activity bar - use IAction in more places
b5b160e015e activity bar - show a "Hide" entry for accounts and home indicator (fix #113757)
7ab5c2a90ae activity bar - consistently show right click menu everywhere (#113757)
f675564c5dc fix #114028
e17aea136d3 Fix #114189 - disable caching
b9aaba047c6 activity bar - remove "Hide" from left click menus (#113757)
2b0132d09f1 activity bar - update order of entries to reflect visual order (#113757)
b33b28dd078 Activate onStartupFinished (#110031)
d61eb64745c activity bar - change visibility of entries to checkboxes (#113757)
6dc779565e1 🆙 distro
913fff96a3c testing: fix error when test view is hidden after showing
f5665378fd2 testing: start of diff peek view
09d99f7d71b resolve kernel providers and kernels.
732d4ff89e8 Make PowerShell 7 default if available and show in choose shell menu (#112768)
74038b7e0d8 do not use file scheme
c88ab9e0b63 use in-mem fsp - remote folder config tests
506ae4a53e7 use in-mem fsp - multi root workspace config tests
da3a21ee4e6 Merge pull request #112602 from microsoft/rebornix/output-view-model
041a5c3b6b9 fix tests - do not use file scheme
f92251d8e61 use in-mem fsp - workspace folder config tests
1e44ae5da86 Merge branch 'master' into rebornix/output-view-model
03450bf0941 Update Codicons: Update '+' modifier location (fixes #114016)
84f2cf6449a use in-mem fsp - workspace init tests
722a6664f84 use in-mem fsp - workspace editing tests
a2efefd3713 use in-mem fsp - workspace tests
e3b18fa3efb testing: add filter box
676bb6b100e Merge pull request #114127 from shskwmt/fix/113603
990906a1655 Adopt strict assertions
00a781f926e debug: use mnemonicTitle and avoid dupliacte registration
c38c1f497f2 use in-mem fsp - workspace folder tests
42221c900ba Set override to false when reopening editors after dragging them to a different editor group. This fixes #109000. (#114093)
31e33c478e5 Fixes #114042: Use Buffer only when it is available
cef7004a46a activate search result extension onLanguage:search-result #110031
39619a136b6 minor polish
e8fb4fd30da bulkFileEdits: use textFileService only for creating empty files
c85297669ee Move id, label, and options to authentication provider registration
e9ae0082963 use in-mem fsp in tests
3f3e35bf17e Add boundary for right arrow typeahead and fix bug with resetting Terminal (#113863)
61c6334a3f8 Fixes #112373: The hover should always consume mouse wheel events
3d500ebd8b4 Adopt proposed `CancellationError` (#93686)
5c1543b556c File name in editor tab reverts casing on save (fix #114096)
76c22d48c82 Merge branch 'master' into fix-semantic-highlight
e149bdb42ac Merge pull request #113837 from HaoboGu/HaoboGu/issue113404
1551d1f1ff0 Fixes microsoft/vscode-remote-release#1485: Make sure to only render Reload Window prompt once
c9bae24fb70 More UX feedback
7cf2ad082f9 Render remote name when reconnecting
cba1d1b1848 Prefix all `performance.mark` calls with `code/`
64947067ab7 💄 unit tests
533d094020f Allow logging FS access with stacks
8ec95fa3b7a tests - improve ext path tests
55bd92dd538 tests - extpath tasks are flaky
ea7b8ddda3e Can't open, rename or delete files that contains ":" on linux (fix microsoft/vscode-remote-release#4227)
e3f5b3dfe47 Merge branch 'master' into HaoboGu/issue113404
bd5c20448c5 Merge pull request #114129 from microsoft/alex/configuration-editing-tests-improvements
c173fb7d72a #114144 revert showing cached theme icons
088304c9968 #114144 - Do not cache only uri icon
efb833ab7c7 Merge branch 'master' into HaoboGu/issue113404
5755d943ca6 Tests must be compiled even when `yarn` is executed
acb0a35629d cache icon paths in web
73b4dabb2d4 Make lint happy
d1cfec44472 💄
8b288893a92 Merge pull request #114101 from shskwmt/fix/113807_parse_args
d541d7c64c6 make SubmenuAction strict: don't allow changing its properties, make it not disposable
ea756907598 - Make cached configurations not disposables - use workspace configuration disposables
31a53bb2427 💄
43310230886 Merge branch 'master' into signaure_arguments_label
175e2c0b1d1 `yarn` is already installed (fixes #114140)
b57739f4a24 tests - more use of getRandomTestPath
64a14963f7b Expose actions to duplicate editor groups (fix #114132)
60bc00ff63d webpack config typing fix
f6bbc8b68d4 update tsec tool
cfb2ad879a3 Update src/vs/workbench/services/configuration/browser/configuration.ts
e25cbb45e7a Dispose all Disposables from tests (fixes #114125)
2fd00ba9fef Add a way to troubleshoot fs calls
57c405c24c3 Change reason for moveWordCommand to CursorChangeReason.Explicit
7c3aacb40aa Add a mechanism to track disposables from unit tests
11ac71b2722 editors - cache previously used layout and return it
03cb2d2a236 Dispose `PieceTreeTextBuffer` instances
e114a24d9f9 Improve usage of Disposable
e71f31abe9c editors - copied group is missing to register editor listeners
313f4bfecdc fix #113620
db701d281f7 Fixed not to skip determination of option type starting with "_"
3ceb3a100ed tabs - improve logic of previously used dimensions and relayout
6bd7b70515d Revert "Enable webview tests (#114059)"
0a3a9ce7bb9 State of tabs is not fully updated when toggling workbench.editor.wrapTabs (fix #113808)
b0e96922417 tests - selectively enable some previously skipped tests
ea1b3f27db4 Fixes window border causes webviews to be positioned slightly off (#114061)
01c6003c295 Enable webview tests (#114059)
a12a996d780 Retry idb tests. Ref #114025.
7a7d11fcc6d Merge branch 'testing-group-by-result'
5f2036033c0 testing: improve projection logic, add state grouping
e3509b62fe6 Add search.mode option to control default search experience (#114015)
d110d503425 Remove webviewHasOwnEditFunctions context
50dd2dd3f9e Add context for when the webview  supports find
d8a3dd44be1 Removed unused param
0fafaab62e2 mnemonicTitle in native menubarControl
d95e22d0a8d make menubarControl prefer mnemonicTitle, make MenuItemAction only implement IAction
8d8ee957418 options for getActions() are optional
c88c207e6c0 fixes #114028
6828ae1ab50 Removes trim & fixes regex
c45eac1a819 tests - use explicit skip over handling within test
8d46328a407 more 💄
832afd1276d 💄
15cd2a1abd2 #115025 hash the uri and create css rule
aa5064d4fd4 Lift some tests to browser (#114041)
d6a63fc79ea FS improvements for unit tests (#114026)
a2251a3b6b9 do not use mnemonicTitle for all action titles, #102361
3898af5db3d typos
10592747998 refs #102361 mnemonic as command model property
8ae693bee2c bulk file edits: make sure to use textFileService when creating files
bebd0664073 Fix gulp task provider so that it doesn't always try to run
29e0cfd8beb Always elevate (if needed) for openTunnel API
e7c84aab5b1 Fix privileged port elevation flow from UI
61187660af3 Fix #114031
114e38f175e suggest - add min height when persisting widget height
2042a0e4c23 Add new terminal link text for tunnels (#114033)
174259eec8f Log when lsof fails and return initial
fe175afdb80 list widget should not remove rows from DOM when reusing
91a0d07f3e7 Improve `canTunnel` Part of microsoft/vscode-internalbacklog#1709
288e8c233a8 Fix #110525
5ed73f6e850 don't theme icon for MD elements
6d2e0aa21d3 rename tsc config file for better intellisense
ec4c9f4c8f7 Merge pull request #112833 from homebysix/list-extensions
7b16f15d005 Merge branch 'master' into list-extensions
a5a0c1527d1 add tsec config and exemption file (defunct?)
ca6a7a69989 💄
5adcd2521e9 Fix #113257
ed6c343edb7 gracefull fallback for TrustedFunction
44c9b4bb7f3 use TrustedFunction workaround when loading extension sources inside web worker
eb940d4ed6d Fix #113988
adc68dc3561 Add `canTunnel` to tunnel service Part of microsoft/vscode-internalbacklog#1709
128987f575e remove duplicate step
4c42e6c111b Fix #114013
35766c616cb #113757 show sidebar actions also on view title context menu
e4dc7b4d796 Clarify OpenDialogOptions note (#113831) (#113998)
eb409622888 tests (unit, electron) - set forbidOnly when running on build machine
691da329d66 Revert "refs: mnemonic as command model property #102361"
96e2981c91c skip failing test (#113882)
82dc292811a Merge branch 'master' into HaoboGu/issue113404
0949d5b794f Remove unused var
acda4aed821 Make the external opener a two phase process
aa73c2d435d Fix random focus lost issues on CTRL+1/2 for a webview (#111676)
045b0fc4c09 Fixes #110509 - handles markdown escaping & spaces
31d5e48d92a Fixes #114002: Finish writing any outstanding messages before disposing
d36b3616e70 Change Emmet to onStartupFinished #110031
b041f460ce6 Show a disconnection dialog only after 40-50 seconds
455b029ad1a Render "Reconnecting..." in status bar and use "Disconnected" only for permanent disconnection
5d9e867aa4f refs: mnemonic as command model property #102361
3dc0203e021 testing: auto reveal selected tests
e2c305f3a3b Allow registering additional external uri openers
bdf57b45ced Remove button background in simple browser
aa85ab9d03e Make sure we also log event when creating a iframe based webview
d964664da29 Disable dynamic cwd resolution on Big Sur
d68056d9072 Improvements to batched testing. Ref #113911, #109271
8c3f5dd3fad Support to start multiple debug sessions from a single launch config
80f369b7bee reduce number of entires in test batch. ref #113911
2b20162d227 Avoid hostname resolution in lsof
70e37bec1be Fix #113920: Codicon => ThemeIcon
16452c54f38 Merge pull request #113938 from microsoft/alex/terminal-exthost-improvements
98cc02c097d change default zenMode.restore to true
bbb0aadc87d enable trusted types by keep a yelling default policy for a day to two, https://github.com/microsoft/vscode/issues/103699
23ac286dccc #113975 use insance to remove svgs tags
e803459d4ad fixes #113921
8ad08b04f5e Do not compile `/test/` and `/build/` scripts during postinstall, the scripts get compiled explicitly during CI
fa701a373b7 update references viewlet
aa48a4eff7b `monaco-compile-check` is covered by the GitHub CI
b1877cd33e2 Merge pull request #112033 from solomatov/error-handling-in-terminal-start
a7cf03de2db Add elevation message to ports UI (#113990)
efd298ccbdb Fix #113760
a78fffbdb01 remove unused eslint mocha
72572c59cfb bust the node modules cache
578c3d5374e fix #113781
d4c32800737 tabs - polish how to detect that scrollbar needs update
683a30f74c4 Revert "better fix for https://github.com/microsoft/vscode/issues/113852"
7222c005ca9 update loader, event better fix for https://github.com/microsoft/vscode/issues/113852
c1930b6baf6 make default policy strict, https://github.com/microsoft/vscode/issues/113975
cdb373186cd refince CSP for trusted types but don't yet enable it, https://github.com/microsoft/vscode/issues/103699
a9dc6d28fde use default tt policy to workaround electron webview innerHTML-usage, https://github.com/microsoft/vscode/issues/113975
d5fc23ce6ce Wrapping tabs: editor toolbar bleeds into tab when space is limited (fix #113926)
14bb2fdc128 Tunnels from a tunnel factory can have async dispose
a84603f49ff fix condition
f2dd0954925 add (disabled but almost ready) CSP for trusted types, https://github.com/microsoft/vscode/issues/103699
4aff4b99239 trusted types - loader should use trusted script url when using script tags, https://github.com/microsoft/vscode/issues/103699
de9e9c414ef fix path in tsec-compile-check
df10825f69e fix yaml
5e673678ebd Merge branch 'joao/build/single-compile-job'
575f87306f9 Merge branch 'joao/build/esbuild'
fb4a88e4037 rename
ab3297dd136 only run terrapin on cache miss
11b79ba7ebb parameters
d495358b01d add parameter display names
d944b91cd1b remove no-exclusive-tests
39810d812ef Sandbox: adopt forcefullyCrashRenderer when reloading unhealthy renderer (fix #112485)
2b7435c389c window - focus() window that opens from protocolHandler
af5adb530a3 Revert "add arch to cached data path, https://github.com/microsoft/vscode/issues/113852"
d687818f8e1 better fix for https://github.com/microsoft/vscode/issues/113852
2d114755e83 update distro
4149b09417d parallelize eslint and hygiene in product-compile
a4f9970924b Merge pull request #113826 from nrayburn-tech/issue-109438
74bc1d2672e re-enable test for https://github.com/microsoft/vscode/issues/111867
c6ceb1ab2ea isolate eslint from hygiene
519f8691bad fix typo
935cbe6aff3 update test cases
3759568789d support more unicode chars in isSeparatorAtPos
685999bcf35 Merge branch 'master' into HaoboGu/issue113404
e269e5e2c6c revert back using switch for isSeparatorAtPos, add several cases
f3b2680ee3a Merge branch 'master' into alex/terminal-exthost-improvements
01089c0a505 testing: fix unit tests
e2c91378410 testing: fix unit tests
59091157571 testing: code lens and diagnostic information for tests
3d8888779d9 Fixes #112446: Avoid timeouts in mirroring terminals to the extension host by assigning a temporary UUID to terminals created on the extension host side
f1151f84ff7 Adds userAgent to clone, pull, fetch - #111909 Changes to use env
6802a656e26 Use cast instead of generic
271d9b8c007 better hygiene task definition
809d2f63d0e Added show options to simple browser open command
2fed7ba374d Adding settings to control which schemes simple browser is enabled for
ba67d1bea44 Add more explicit type for TS 4.2
af6d164f73e single compile job
cb67fffb94b improve hygiene glob patterns
27e26536f12 💄
e4fe157544f equal => strictEqual
f489602633a Merge pull request #113919 from microsoft/isidorn/workingCopyFileService
4aca944132c make sure to not fire any events for empty opertaions array
4f109404604 minor polish
de8b6772761 Skip batching test due to failing on build machines. Ref #113911.
ac10e57f6cf fix: The git commit message field is cropped with negative zoom (#112316)
a7267aa0935 Update distro
e8edff5eb7e xterm@4.10.0-beta.39
3259985c7af rename random_uuid to just uuid
1ace7e34995 remove console.error on commands for noisy tests
6763d82fdd1 also filter before debouncing when menus change
6c12d89415b 💄
9293f64e937 :perf: first filter and only then debounce event handling
43aebefbf62 use Date.now() in stop watch
c8d91038302 💄
39dbcfcfbce Set remote.restoreForwardedPorts default to true
c6cc7d61401 workginCopyFileService: only one event for multiple operations
4d4b9225d2c Fixes #113917: Add square brackets around ipv6 addresses
83b4d6c8ce0 💄
7a27b248841 fixes #113815
8389f072696 Azure Pipeline - Adopt pipeline parameters in favour of pipeline variables (#113902)
bb4cbce9699 Revert "publish linux builds"
c49ef6df61d [html] update auto-rename-tag to linkedEditing migration
4fe3f75c6d3 Use `nodeSocketFactory` for tunnels for now (#113914)
1228854b4ae Adds support for gulpfiles using ESM. (#113505)
169a0ec047f sandbox - allow to enable vscode-file protocol via argv or environment (#98682)
b1659198f62 fix incomplete stub, fixes tests
448d0497e68 Revisit how activity bar items and status bar items can be hidden by the user (fix #113757)
ca2e7d8527f publish linux builds
0cb7dad36f0 adopt creation of N resources at once, https://github.com/microsoft/vscode/issues/111867
b99e9bc2990 apply file edits in bulks of equal edits, https://github.com/microsoft/vscode/issues/111867
841f6c9938e align source-map dependencies
c8ef4ecd835 remove deprecated settings sync settings
27ff5760893 🆙 playwright
f054767eb4e remove unnecessary line
22b9a2b1e8b update esbuild
f8a07fa6a9d Revert "build on mac11.1: upgrade version of playwright to 1.7.1 (#113906)"
63a0638d4cf build on mac11.1: upgrade version of playwright to 1.7.1 (#113906)
983bd69effc Update problemMatcher.ts (#113834)
0402f76ace4 Workbench has white background, then flashes black, then flashes white again. Fixes #112816
c6a1eda3315 themes: add ThemeSettingTarget
d51e1fa4718 workingCopyFileService: create and createFolder support multiple resources
e153ed6b3fc 💄
16da2c5f0e5 change create, delete, copy, and rename operations so that they can handle multiple files at once, https://github.com/microsoft/vscode/issues/111867
fa593d83ad1 use vscode-tsec instead of tsec
007eb56ca84 yarn.lock leftover
6503475091f chore: bump chokidar@3.5.0 (#113886)
72095f86036 add arch to cached data path, https://github.com/microsoft/vscode/issues/113852
5ed76e3da7b Merge pull request #113842 from nrayburn-tech/issue-113809
296ba5464ba Remove obsolete chrome debugger recommendation
aaa8fa92c67 empty
f1a0aa9378d Fixes #113866 - removes transform optimization
9b6aaf1e86c Fixes #112481 - missing refs (because of trim)
4167837cb85 Show hover for comments, fixes #108396
dc5a3da3abd Upgrade to latest Emmet (#113848)
6f56b47c696 fix typeahead regex for move (#113850)
98f1ed6c758 Fix rewriteWorkspaceFileForNewLocation test. Fixes #113762
20950d65268 testing: update old import
cfc8c5d3d77 extension webpack: do not copy .ts files as resources
ed3989b069d Add some recovery from a missing compositionend event (#112621)
2c5c0a3be14 testing: fix loading indicators, add progress during initial test discovery
2112a99fd9d testing: migrate from actions to menu contributions
52bdc14cc6d Copy of translated errors for js/ts web build
d29388d2554 Reenable test, fix #113768
485c5fc0093 Revert "extension webpack: do not copy .ts files as resources"
3aa41899aaf Unable to change to another theme if the theme file does not exist. Fixes #113661
66482b368eb Sequencer.queue: support failing tasks (for #113661)
63deed1c6e0 💄
41d01ec14e9 don't leak emitters of context key services
87d2b3d07cb add support for event profiling
45f79f85735 Scope gitignore out* pattern microsoft/vscode#113823
9be7f7fb655 file name incrementing for files without extensions
ced3bb4bb9e Secrets API feedback
037708a33f6 Avoid textual codicon references in gettingStarted Fixes #112657
c8fbf3aca54 Fix #112735
0319fedae10 add lint rule for missing cancellation token in resolve and provide methods, fyi @alexr00 please remove surpression comment
eed13efcc36 fixes #111413
d0f68b3ec9a IndexedDbFSP Perf/Correctness Improvements & Tests (#109271)
76dd27c3be1 fix https://github.com/microsoft/vscode/issues/113829
064fc7a5267 api comments, fyi @RMacfarlane
265bd0b5b9a Open Editor Sorting: fix issue when untitled editor changes name and list does not resort
c1274981145 Fix #101738
3f435ff6c1f fix #113404
ab1aeb6b73d extension webpack: do not copy .ts files as resources
0a3e23a5b2f new html settings not it in the settings UI
c41302c5ab1 Relax worker.onerror after a successful worker start
6c95b041ea6 test: add tests for #113403
c907b8fff85 no vscode-imports
b99faeeb3ce fix minification target
51ea16966b6 💄 remove appendChildren infavor of append, fyi @bpasero
c46eca1dd34 Merge pull request #113518 from nrayburn-tech/update-dom
37b0d344c7b add a RANDOM_UUID snippet variable
2d1b63d6a3e Fix showing views submenu when view is merged with view container and view has secondary actions.
48dbb328998 fix https://github.com/microsoft/vscode/issues/113819
e8ad195f3e0 Revert "revert pool"
13e313c2b58 fix compile and hygiene cache miss
f06ebe74253 💄
f90c518b03c debug: remove enableBreakpointsFor since php-debug now moved to new api
e008e41d27b fixes #113242
0652b9cbec2 debug toolbar docked actions only appear in debug viewlet
750948b7b5c fix hygiene as well
dd9e52a40d9 libs
a96a29b7535 pkg-config
035e15b7712 revert pool
cefe06d375f build-essential
09e281c091a Fix #113732
7449d86b89c use esbuild for minification
ded513b20b2 Make cancellation token in resolveTreeItem required Part of #111614
7814ffc41ec Fix #112663
699d736d785 distro
82b99b3286f skip flaky test (#113620)
a9ed4e9b0a4 Fix quick input button height Fixes #113745
c4aeb68a68a debt - introduce and adopt flakySuite
174bfe9b528 simplify gitignore
008f8dcdeea missing compilation
503a2458dc4 Merge branch 'joao/build/agentpool'
b5ccd30c95d css - less generic rules to prevent leaks
f64cf2922f9 Fix remote explorer views getting changed across windows (#113237)
c4ea0b55906 fix some spelling mistakes
6659f8dfe58 use compile agent pool
fe795313d8e Revert "parallelize hygiene"
bdbd644c27d parallelize hygiene
a1760b1a6c2 Merge branch 'master' into update-dom
998e5e2ea67 onDidChangePassword -> onDidChange in secrets API
1bb2ae0e365 Allow ResourceCommandResolver.getRightResource() to return undefined (#113364)
7db413d4c10 Move secrets API to extension context
a48ef56fbf7 Fix compile for current TS version
3ed300eb9db Add simple browser extension (#109276)
69dfa670ef1 Fix compile error if using older ts version
4d8895c7b72 Just kidding, keep proposed onDidChangeAuthenticationProviders API for now
942c3bad6b8 Sort contribitions
b565c422aa3 Add find all references command for JS/TS
0f9ee988467 Remove deprecated parts of proposed auth provider API
13317a96944 Merge pull request #113618 from shskwmt/113318-diff-empty-files
87c2cf1b590 Merge the Monaco Editor job into the hygiene and layering check job
604e2466d90 Merge branch 'master' into 113318-diff-empty-files
48742bd3a10 Update ts grammar pinning tests
3bdf2825d07 parallelize
79fd01a78b4 use yarn task again
74623bc93c5 Update JS/TS grammars
2b040e87633 Unskip tests Fix #113761
714f85fc189 update build pool
fee7cdacf72 add provider naming rule
4649e1205f0 fixes #113725
726acc51308 use vscode build agent pool
9d5f04fa0bd #100700 remove the skipped test
e4bb3ff7295 fix #113217
414a4c0f511 list added view descriptors in ascending order in the event
8a0058b9e3b Merge pull request #113549 from nrayburn-tech/issue-107028
fc4b40b6338 fix type casts
f4ab083c28e update todos
ca370bdb0ae update my work query
f93a2b62ef0 fix cr issues
00181ad8951 Fixes microsoft/monaco-editor#2292: `model.dispose()` should work just as well as `modelService.destroyModel()`
f02af16530c Remove sync property
d883d379d11 Merge pull request #113303 from microsoft/joh/toc
ceb8da0be04 tabs - disable badge decorations for compact sticky tabs that have fixed width
4f34edadd65 Merge branch 'master' into joh/toc
b62ec5c0eeb move shared config key into workbench layer
dce7b0cd63b simplify outline model again
ea51fb1bddf fix tests
b948e42373c 🆙 distro
64eb716d57e env - fully qualify our own variables
c03bc427cf7 some 💄 and refactorings
1e5b337c02b move document symbols command to right contrib
fd23a8e3280 Have condition of test publishing match the condition for test execution
8986870317a Merge branch 'master' into joh/toc
9b66dc4ad2c debug console: to string of simple values should duplicate value for each count
baf15f1041a Allow tabs to wrap to multi-line (#106448)
8ed509056a9 Merge pull request #113710 from mitsuhiko/patch-1
0490bb1e9ae Merge pull request #113716 from noritada/doc-fix
5bf42c9acd8 Merge branch 'master' into joh/toc
b6c601b4fc8 Remove duplicate 'the's
8fc5e370f65 Fix a typo in a log message in extHostCommands.ts
98106c48a07 No need to create fake workspace folder for query builder Fix #111348
3283ade7649 Don't use 'expandPatterns' for workspaceContains search Fix #110510
da4784eaa84 Don't miss creating a new default terminal when reconnection is disabled Fix #113564
4e7e21233e3 Have `computeSync` return an array of results
5edb6102629 Extract all MarkdownHover computation to MarkdownHoverParticipant
408539d8fa5 More cleanup
18982d441bb Fix compilation error
d3b643c8a48 💄
923f34a80d1 Extract `MarkdownHoverParticipant` from the editor hover
2f817caf6e7 Move more marker specific logic to markerHoverParticipant
28795976207 Extract `MarkerHoverParticipant` to its own file
765947c205a Extract marker related hover logic to `MarkerHoverParticipant`
7e7775705ee Fixes #113318: Show having no change  when diffing two empty files
72420829833 Fixes #112834: Ensure the markdown link provider is registered before invoking `vscode.executeLinkProvider`
262a7157ab5 revert webview preload changes.
56c808a66a9 Emmet flatten DocumentStreamReader (#113602)
b84858babef Emmet remove dependency on vscode-html-languageservice (#113599)
94facfcf06a Merge `ModesContentHoverWidget` and `ContentHoverWidget`
3564f180616 Fixes #40926: Inherit visibility from the previous line
95cfa9ede4e Fixes microsoft/monaco-editor#2276: Check pixel ratio after each render
19b5e736fa7 💄
689fbbd9607 Increase timeouts
5cc0aa28496 Add support for including line feeds at the end of lines (microsoft/monaco-editor#2265)
4a121608e8c Add test for microsoft/monaco-editor#1235
92d4b14e293 Update rust grammar
afb6a0c56ef Fix CSP
15561c41399 Emmet polish
15ba9aee0e9 Emmet improve Expand Abbreviation perf (#113558)
b5cd082cd47 Emmet refactor toggle comment (#113557)
f1ea605a695 Use blob urls instead of data: to maintain current origin
e6daf340852 Better simulate real-life CORS in code-web server
58852eaa854 Add a timeout to the editor tests step
5ea96ec9cd7 Fix `_colorMapOverride` usage before initialization
67bff68034c Add `monaco.editor.setColorMap`
433833fbe02 Emmet refactor reflect CSS and update image commands (#113550)
a6bb30b41f7 lazier loading of windowsProcessTree
c1bf6e0307b no need to update api
05be32f0551 turn on renderer view
7c11754ad4f avoid duplicated text model.
6a7f07f8b61 update height without scrolling the view
ebb316a2881 Fix incorrect icon hiding for files in tree view
5dbfe32be31 Allow tree item command to be resolved later Part of #110498
3a70241a0bf Merge pull request #113536 from microsoft/alex/build-compile-no-container
3e945d092c2 Trigger build
321b407de55 No need to use containers for compilation and hygiene jobs
5b75a42575f Cancellation proposal for resolveTreeItem
d746f2d2772 Fixes microsoft/monaco-editor#2220
0dc7faff87e Fixes microsoft/monaco-editor#2222
cbea242dcbb Fixes microsoft/monaco-editor#2236: Avoid using `wrapper` as a css class name
7c937a7a383 Fixes microsoft/monaco-editor#2237: Add API to register commands
0439aef7b3c update dom to use newer methods
c44b7d25d91 Refactor Emmet merge lines and select item commands (#113516)
c7dbab59ff4 Emmet create new html-matcher override instead of using LS (#113508)
a1ea4df9596 Empty output view style update and layout change
4b6280aa8ce Skip webkit
9945754a620 Add editor smoke test (ported from `monaco-editor`)
4df5d59e021 force update metadata diff editor for the first time.
cd836bb54f6 Fix process explorer styling issues, fixes #113399
3c518e43d39 Update distro
f19eb28477e Avoid installing typescript
2ca3e67f32d Rearrange CI jobs
802a36b0970 Add typings validation
4df5991023a Adopt latest setup-node action
cead2666633 Align all yarn caching steps
2a8140c5e8a Let debug wait for tasks to get input Fixes #108443
ffef9abe924 Hide auto forwarded port notification
82fe1e7d0df Avoid touching passed in options object (fixes microsoft/monaco-editor#2210) and avoid deep cloning overflowWidgetsDomNode (fixes microsoft/monaco-editor#2184)
da8549b7323 Merge pull request #113376 from microsoft/alex/use-builtin-cache-action
4804bbcdff7 Tunnel factory can return undefined (#113232)
1c0efed5a67 Test cached node modules
9c9e1075826 Fix semantic highlight scheduling
413b5d47057 Avoid ts changes
b4789ecf849 Fix typo
2b380bf8c34 Support whitespace options
d20f8ed37d4 Add style controls
4b3d54ceb32 Avoid changes
7222b357f75 Fix cr issues
d26dbae6cdd Adjust request schedule
0c697b2e334 Merge branch 'master' into alex/use-builtin-cache-action
ddb88dac9b8 Avoid touching continuous-build-*
4248e3f7e82 Add Download Playwright step
2697a42ee71 add range WIP
2db89c75e6f rename to inline hints
1954e938504 Adjust hint label styles
df24d0153d8 Trigger a build to test caching
1b713df9b61 One more try
941b3513c91 fix view state being stored after picking an element
ff5245ea45a Enable playwright debugging
0d671ccb2a7 remove unused context keys
a747b66c1ec naming: Outline -> DocumentSymbol when it's a symbol, some cleanup
86dd04ecfc4 fix some outline settings so that they are also language overridable
fcba2ef5891 simplify filter updates
61965e6bc50 Use fast 7z compression level
674877fc173 properly implement `revealFocusedFromTreeAside` command
5162c8e8563 Add "Loading..." to custom tree hover Fixes #111615
4468307af3a Fix themeIcon + resource in tree view Fixes #113374
ed87c35de9a Show more port cmdline when wide And add pid. Fixes #112796, microsoft/vscode-remote-release#4120
0b1892f877e Start candidate finding later (#113377)
5b9ea8d3780 fix/workaround rendering issues with codicons and quick pick
02b72216d7c Merge branch 'master' into joh/toc
ce02917f666 change cell uri fragment format so that opener service doesn't interpret it as line number, also throw error when trying to resolve a cell as notebook, https://github.com/microsoft/vscode/issues/113307
7b6bca0bf59 modes hover must not bread fragments, https://github.com/microsoft/vscode/issues/113307,  fyi @sandy081
bbaff3d568b Adopt `Cache@2` for node modules caching
97ae453378e honour outline problems settings in notebook outline
88bafd443d1 Merge branch 'master' into joh/toc
d24ab0a201a Improve comments and code style
ff8ae0b93ff Avoid changes
bf4e2371d4e Avoid generated file
a6fd2cc1088 Use utils type converter
caaf2a07a94 Merge pull request #113341 from microsoft/alex/node-modules-cache-key
8b7c6622339 also use outline view state for qiuck pick
4140affee2c breadcrumbs picker must restore view state when being dismissed
7cc87833199 trim MD headings syntax from outline element
adc8c296ee8 move more things into outlinePane-land
1b8be429cda properly cleanup notebook outline marker
b884f75fa6f fix stale breadcrumbs issue
cb020e68a04 tweak (reused) rendering for breadcrumbs
4fa97186146 fix and tweak sorting
9c861dc5fd5 update outline as soon as it becomes visible
871f167341c add IOutlineComparator as concept, remove `outline.symbolSortOrder`
68257573641 More tweaks
382a8740a91 Fix that `VSCODE_ARCH` is not taken into account on Windows
40fb699b6f4 style tweaks
63acd85f702 render markers with outline elements
7728010c73b Invoke `mkdir` with `-Force`
05a5209b4c5 Fix candidate port finding (more async, better timing) (#113342)
f23ed65688e Compute node modules cache key in JS to avoid globbing
a5360f21b81 Merge branch 'master' into joh/toc
fe70487f14b 💄
d75115ee9c7 breadcrumbs - make sure to dispose current outline when editor changes
f39f31d2ca3 protect breadcrumbs widget from rendering bugs
c459ca37441 Merge pull request #113332 from microsoft/alex/modules-list
3de96fd2372 Simplify code
b7a5fcdc6d5 show a default entry when a cell is empty
ea633831d49 workaround https://github.com/microsoft/vscode/issues/113333
07b28e284ba Bust the node modules cache
76c974bfebd Have a clear list of directories where yarn should be executed
1d7fb0e757b notebooks quick pick should contain all elements
698ed864114 fix issues when user state changes
25709313284 make notebooks outline a tree (using folding logic), also fix notebook outline icons
9f5cfc246bf Add dummy support
434f63192e8 Revert "Avoid generated files"
96b889a113b pre calcuate output height.
ec3f4088e71 restore view state
df64bfe7f7c avoid view state npe
f98fabae6ce Merge pull request #113279 from microsoft/alex/remote-websocket
9a7e8372ea6 update distro
102e69c975b Merge pull request #113311 from microsoft/alex/gulp-lazy-load
da802ca8909 style polish
98e05820b89 update distro
1ee7a0e015f Merge remote-tracking branch 'origin/master' into alex/gulp-lazy-load
1630db29bf8 indexOf
baac11d5f58 Merge pull request #113296 from microsoft/alex/gulp-no-respawn
c1eb24b027f Load expensive node modules lazily
11e600ce2c1 remove console.log
d14c8de672f event dispatcher for cell layout.
4afc1ee4406 retore awol feature and fix tests with that
52c1cce2597 Add controller
6fa83ab26d9 move deprecated style into IconLabel, move/rename outlineTree to outline
54da36d181b proper disposing of outline objects
d7644dc25ad replace IOutline#resource with #outlineKind
a54c02aedd4 add setting: outline.symbolSortOrder
515550212b4 move sort order
088b21038e8 properly layout tree
661c741c302 make sure outline is all expanded
277a8262e0e Avoid gulp having to respawn
310a9ff90fa Merge branch 'master' into joh/toc
22c5527f96c fix compilo
9699993f161 use outline service in outline pane
cfccae30dbf Fix layer breaker
fd8b68457b5 Exit immediately when a cycle is found and running on the build
9c2a1dc473c Don't restore ports that are already detected Part of microsoft/vscode-remote-release#4112
741a568bfd5 Avoid generated files
8476ff1a9de WIP
d2ee88ba3fd add config per UX (breadcrumb, tree, quick pick)
1922771f2e8 move delay "after big change" heuristic to new outline model
1478078ee30 Update task services doc link (fixes #112591) (#113170)
445f259e34c Add sorting to npm scripts (#112725)
297567be0c1 move document symbols breadcrumbs logic into its own data source
f2fd0ec094e Use the browser's WebSocket for remote connections
17573d22216 move outline view state into its own file
ca08df3de54 fix compilo
1844c541870 testing: forgotten push to enable debugging
84903a3f400 revert outputs should trigger output rerender.
64c38324e65 no outputs to render
ede4de744d9 vertical alignment
23658cc8753 empty cell outputs placeholder
597ec5f0573 padding polish for mimetype switcher
d345d1bd827 mime type switcher
8b23b938a38 split point takes renderOverviewRuler into account
cb5f9b5294d Merge remote-tracking branch 'origin/master' into rebornix/output-view-model
6f11d34f677 resolveNotebook API command takes no argument
9ac5131833c Have the `TunnelService` use `IRemoteAgentService.socketFactory`
11f838c144c fix #112747.
af92a731fa0 Fix #113250
0e2a0f9013c Prompt when there is an AMD module cycle
d63aa232d93 update distro
e8bb7a938ee fix #113243.
f0376ac1312 Add `permessage-deflate` support
609d547db1f also show cell-file icons in quick pick
7593c56fdd8 use file icon (if applicable) for cells, otherwise use default icons
5ebbd9a77cf re-use css classes for better icon support
19cf2d424e0 render highlights in breadcrumbs picker
68da4f16d67 remove onDidChangeActive-event
358f3909620 simplify model, add keyboard nav support for notebooks
822a45f6072 add outline target and adjust sorting, filtering for document symbols outline accordingly
cece1a4fcf4 use identity provider, some cleanup
88c271c3f71 remove ITableOfContentsProvider, remove duplicated code, add quick picks to IOutline
4d47c40dde4 delete old tocProvider
7cc71d65361 Fix broken remote explorer drop down Partial fix for https://github.com/microsoft/vscode/issues/112750
513055e2e0d show a root element where there is outline-breadcrumbs but none are currently selected
ebb69237016 reveal vs expand folder vs select folder...
c51830e8efa better revealing and previewing
48c2ad6493b Temporary workaround for #112843
add8753c74c Only terminate after 3 EPERM errors
dee0c84e7f0 update distro
a512c86f10e Revert "fixes #112750"
57e3aba4e16 Have `/build/` compilation and `createAsset.js` be runnable independent of the root `package.json`
baadb591bd0 update nb breadcrumbs as you type
c6f70a3a019 💄
c2f1a367ef0 Adjust node module path
29f556a724c styles for notebook outline elements
ec6087fe180 Merge pull request #112837 from microsoft/alex/node-modules-build2
a8d9a5eedc7 Merge remote-tracking branch 'origin/master' into alex/node-modules-build2
5c1ff8158b7 Avoid lookbehind (not supported in Safari)
b71972bbb00 Support open in background for 'open with'
f0c758bdcc9 Support open to side from the 'open editor with' quick pick
64888cafe07 Merge remote-tracking branch 'origin/master' into alex/node-modules-build2
09ca712fe7f Fix compilation errors
d78c8689d0a Give browser unit tests even more time, the build agents are having a bad day
36d09208f19 Fix whitespace issues from github merge UI
72cf134322e Don't transform viewColumn used when creating extHostWebviewPanel programatically
32d935ebf4f Extract type guard
186792cadbb #27498 restore extension editor webview scroll positions (#85982)
fc35c4275f8 fix #112778.
768cd308c62 typeahead: fix invalidation on 2nd char in zsh
aa8962f5dcd Fixes #112353
54dc2d786e1 Merge pull request #112384 from myovan/master
25212c95eba Merge remote-tracking branch 'origin/master' into alex/node-modules-build2
563664f3491 Increase macOS browser unit test time because it continuously times out
16c2193e3ff eng: avoid duplicate prelaunch task runs
afafd5e8358 Merge remote-tracking branch 'origin/master' into rebornix/output-view-model
a207b50937d dispose webview scroll event when switching models.
4fa0f309ab8 webview cover.
9970299016a dispose webviews after switching models.
361877735ce 💄
71a733b4aa0 finally fixed the OutputViewModel leak
eb154856a38 fixes #112366
87629065098 💄
6ad37a351ff cache metadata and output height.
11d5c625d1f fixes #112750
20831dd3df4 Keep only `@types/*` deps in `/build/` and share `terser` (#112718)
8fdb44467c7 update distro
273a5cdf5aa Emmet comment spacing fixup, fixes #112835
a8cadd39129 Merge pull request #112812 from microsoft/alex/node-modules-build
b4a22eba377 recompute output height in diff view model.
6ad2dccc786 Emmet Toggle Comment HTML 💄
775bf46bad4 Adjust references to --list-extensions option
ea15eb4e5ab Strengthen sameNodes check 💪 fixes #112829
94fbbb38ae6 tricky selection listening
58985749f9a memory leak
e064043f7a8 wire up outline service with breadcrumbs control, WIP
202a8fa3eb0 Merge pull request #110961 from a5hk/snake
d5bed1d4a7c fixes #112792
db27c552056 Adopt `ICodeEditor.executeEdits`
c2044d680f4 bust the node module cache
dc169ce06df Merge remote-tracking branch 'origin/master' into alex/node-modules-build
da4192d2879 Leave sorting deps up to yarn
3e8b2d86d17 bring back css integration tests
6d552620316 update vscode-uri
c1b988bcf86 Merge remote-tracking branch 'origin/master' into pr/a5hk/110961
2df64d27dd2 Merge pull request #112777 from microsoft/alex/prof-v8-extensions
f294e4a9cc4 Merge pull request #112810 from microsoft/alex/node-modules-types
ff744b4fa8a fixes #112281
7cd137263a8 Fixes #112382: Assume that control characters are wide
ec9ba0edb68 debug: Focus child session instead if it is stopped
02443d02f5a Fixes #112412: update comments to match placeholders
b0af35c8104 Merge remote-tracking branch 'origin/master' into alex/node-modules-types
711ec31c7ea Make sure to call done() from unit test
8c5966fc770 Merge remote-tracking branch 'origin/master' into alex/node-modules-build
75fc5cf5258 update distro
14cb2089dc2 update distro
2c4988b7639 Fixes #112301: Wrapped lines contain the wrapping whitespace in the line content
295912f7d50 update distro
4fc14314b69 Fix compilation problem
3bff49d2468 More tweaks to Windows cache exclusions
b3e390baa7f Merge pull request #112760 from microsoft/isidorn/workingCopyServiceMulti
c78bd5bd783 createFile and createFolder only allow single operation until there are more use cases
60c263ce1ce Merge remote-tracking branch 'origin/master' into alex/node-modules-build
318ff7e94a8 Merge remote-tracking branch 'origin/master' into alex/node-modules-types
8dc8025cd48 comment out css tests on windows
4efb4a2e8db decorations - show them next to the editor label when tabs and breadcrumbs disabled
edd37076b4b Adopt new mocha types
7971d627ce8 first version of outline service, outline creators, and implementations for document symbols and notebooks
db82bc13aa6 Move /build/ dev dependencies to root (#112718)
f74ad9692f6 Align `@types/*` dev dependencies (#112718)
9034b769fa8 fix #112805
0adc15c4bb8 configureCrashReporter should check whether we are on Electron
b069dbe0aeb Tab decorations need to update scrollbar (fix #112799)
9c30a0e98cc null guard
780ae767608 workingCopyService: create and createFolder also use IOperation interfaces
e588e04b5ef Merge pull request #112803 from thebinarysearchtree/master
34f1e7ae207 Revert 0d14d3e38a8aba6e2bcd6d5dd729c4d47b3d4f97
1585a290afc Merge remote-tracking branch 'origin/master' into pr/thebinarysearchtree/112803
4db298aab63 Avoid text flickering, just render &nbsp; to have a height
eb3cfcda015 chore: bump electron@11.1.0
d4e98289a34 [css] revert changes to test runner
5d6f7a65d38 Use IFileOperationUndoRedoInfo
abf082cf74a Log more details when exiting
65c59b509b6 Merge pull request #112798 from microsoft/alex/node-modules-types-keytar
3d9d6b34204 trigger layout when resource labels have rendered, fixes https://github.com/microsoft/vscode/issues/112799
daad75c2c6b [css] update to vscode-uri@3.0
d6a6b44a130 Remove all `yarn` warnings
aa2864d53f7 Remove most of the `yarn` license warnings
90f9a7de885 Execute `yarn --ignore-engines` for extensions
1141224b80f Remove debug console log
13ea3e08a1e Fix hover widget.
1324dcf085c fix #110982
63d49f6a135 don't disable the current remote resolve when bisect'ing extensions, fixes https://github.com/microsoft/vscode/issues/112473
2dd359c7153 Use the root typings for keytar since we are loading the root node module (#112718)
2c83509a154 Fixes #112666: Recompute minimap options (which hold the background color) when the tokens color change
df53f46ac2e Merge pull request #112670 from chenjigeng/fix/hover-link-encode-unnecessary
98166ea0b19 update distro
0d14d3e38a8 Fixes #112391: (Re)layout the hover widget after adding async content
7f1af9efb1f remove more unused code
5e865477065 only show render style switcher when the property is expanded
141572a2b21 render outputs in text by default.
d46abd43537 avoid plain/text being rendered multiple times
71d63c7f741 no transform for ITransformOutput
3337693651f dedup.
8d5b2904fa2 💄
1c2d88e68ba fewer weird as cast
6d378dbadea no more casting for Single/SidebySide diff view model.
819161c7bca DiffSide enum to replace boolean.
6dd6d4e5138 Add `--prof-v8-extensions` flag (see #112393)
681a3e413d0 :build:
c927a8015b9 Merge pull request #112771 from microsoft/alex/node-modules-vscode
e48a21c44bd 💄
e9abb31537a Reduce height of notebook add new cell toolbar
2292bb0283f Make notebook add new cell toolbar visible on hover/focus
25cb0d70d4a Update removeTag command
d03c18661cb Windows CI: Do not cache symbol files
fee6dbf4e0e Merge remote-tracking branch 'origin/master' into alex/node-modules-vscode
e461782061e Fix compilation problem
5e3dfd3bb8c Merge pull request #112765 from microsoft/alex/node-modules-typescript
7ca71e763d6 Move away from deprecated 'vscode' node module (#112718)
c5d42b27722 renderers layout update
88f32df1d71 Merge branch 'mocha-update'
e0498f0cdd3 Share typescript node module (#112718)
dadb18c39e8 Upgrade Emmet removetag perf + behaviour, fixes #104173
04d74117859 eng: update mocha 2 -> 8
877dad976eb load renderers.
bcef72ddd01 hygiene: switch to terrapin
434bbbde983 workingCopyService: take options alongside each argument
710360b7db4 resolveNotebookContentProviders does not take arguments.
cb2167fdb22 Output transformers take ICommonNotebookEditor
3551968d69a update distro
2b25e675eb7 Merge pull request #112722 from microsoft/alex/node-modules-webpack
6112cc76f79 Move asClassNameArray/asClassName/asCSSSelector to CSSIcon
03a3e114151 No more spinning of loading progress. Fixes #112711
e42440bd357 Merge remote-tracking branch 'origin/master' into alex/node-modules-webpack
3072f2dd5cc Merge pull request #112719 from microsoft/alex/node-modules-mocha
fba51d8422c 💄 async-await
ebb94b4795e remove unused code
65e1707d19d format js/ts on save
3697925e5bc Use menuService across all views for context menus. Breakpoints.
a341f800668 fix https://github.com/microsoft/vscode/issues/112745
d5d6096b65c tweak wording for participants https://github.com/microsoft/vscode/issues/111878
5ff434d97f1 debt - use localized string for bisect title
79d6bf6ca82 allow commands to specific a mnemonic title in additon to "normal" title
6efbb251b5a debt - tool tip never has a non localized variant
b34a71e2279 Fix view order in remote explorer Fixes #112200
cbc47b1d7be Do not share `terser`
14440356e52 Merge remote-tracking branch 'origin/master' into alex/node-modules-mocha
438feb87d58 Merge remote-tracking branch 'origin/master' into alex/node-modules-webpack
4fae21b64d3 don't show dialogs when running tests
0e68af72989 fixes #112603
5c386371d8f Merge branch 'joao/build/compile-artifact'
d981cf5b81b Revert "Revert "Merge branch 'joao/build/compile-artifact'""
804c90cc49f Adopt more breaking changes from copy-webpack-plugin
77f4fb49952 Do not upgrade mocha
49962373131 fix tar
d07422ec301 rename workspace action for duplicate
b7aa0f7d406 fix template usage
af42aa5bff8 show diaglog when extensions participate in file operations, have "don't show again" option and command to reset choice, add logging
2aa92c6e83b Adopt copy-webpack-plugin breaking change
3c4de451b48 ux - distinguish folders from workspaces when opening (#77718)
4f4ba928851 debug console: use menuService
29eb3fbc6a1 build: tarball compilation output first
6de06bc8c86 update distro
fd85ae4f4a2 Avoid recompiling remote native node modules (#112644)
1cada18542a Share webpack related node modules (#112718)
ed19f6082f3 Share mocha related node modules (#112718)
83c47f90d0d debug: move Debug Console action to the `...` menu
adf764617e9 remove unused keybinding id
e3612f789be Use registerAction2 in markers view
bb157721fbb `/build/` and `/test/` should only have `devDependencies`
0929ea86cd3 don't suppress preview when handling onWill-events anymore, https://github.com/microsoft/vscode/issues/111878
a7fbcc27b75 Merge pull request #111222 from microsoft/joh/tabDecorations
a09cbd1b118 timer mark sources must not be unique, fixes https://github.com/microsoft/vscode/issues/112708
834488bd7a1 merge last stages into Publish
c757f9c70a1 merge macos jobs into same stage
c8aaeb75137 Revert "Merge branch 'joao/build/compile-artifact'"
6d683afb84f build: compile smoke tests
2445f698949 fix hygiene
7aee2c7d45e Fixed issue -filtering by extension in Change Language Mode (#112435)
d8a7c31aba3 testing: structural and perf improvements
cf94178b897 testing: improved test explorer, cancellation
201112e9948 testing: continued work on test explorer
732c73ef796 diffBrowser.
7c4757dd0ce private _
0055e658c99 style polish
d6e8feb7744 Check in additional file for uri opener api  change
13770874831 Ignore case while checking pressed keys in webview
ecd2325f863 Escape backslashes in keybindings for release notes
423076ab493 Pass schemes to main thread
a28b7022e0b Emmet fix edit point commands #112691
ae1077255c1 adjust test for removed process env key
1248ddadb8c fix #112683
bd38c65afc7 Add workspace tagging for java (#111303)
847fd19b026 Merge branch 'joao/build/compile-artifact'
21b1da3fb08 absolute layout for side by side output diffing
bd131b85785 dynamic .artifactignore
a8b4e9817f5 finish compile artifact
581ae611c2b debug: watch expression use menus
483bd40550d Update several Emmet commands (#112597)
2156931d38b Better side scrolling
41f450129ff fix: hover link encode unnecessarily
9474102e7b2 debug: more transition to commands, get rid of StartAction
bffa4045489 Have TentativeBoundary trigger rollback (#112510)
9f27d99af01 Update isVSO check with new remote authority
af7edd782e1 move progress and cancellation of file operation participants into its only customer so that progress stop when applying a workspace edit and showing its preview
6a342fe0a47 update original webview based on original text model.
cee8cbd9f29 fix cyclic dependency
b8ddffe7b41 rename setting
fc6bf56844a Fix executeTask for composite tasks Fixes #112545
e5e25a027e3 Update src/vs/workbench/browser/parts/editor/media/titlecontrol.css
c78bc564604 update references viewlet
3776ba6be2f Fix activity badge on ports view not going away
7d0d3835e6e cleanup hygien
fb2a5e18bb2 fix build
df0eda5adbb build
24a98f06442 debug viewlet: use registerAction2 and restructure the whole debug toolbar
cda701edbd7 debug: move colors to debugColors.ts from debugToolBar
d14fb9da0fb fix build
6236a5bf8b5 compile: use artifacts instead of cache
ad362089bea add proposal of CancellationError, https://github.com/microsoft/vscode/issues/93686
b4b8bcda479 tweak padding-right for decorations
d5a632e6fcf empty
0cee1531f79 Merge branch 'joao/build/remove-postinstall'
7db8e3b08c0 fix https://github.com/microsoft/vscode/issues/112418
ce1ffe0e7f8 link webkit issue for missing timeOrigin support
a780c7d4515 spell out GDPR types instead of using mapped types
018b924fee2 add logging for #112649
3b5cdf3a0eb backup - move progress reporting into place where save actually happens
c7d468d8ee3 empty
6260e655bc6 codicons -> iconLabels
a1b6de93363 Fix markdown span style filter Fixes #112606
1abefb9be2a Fixes #112652: A disposed IPC channel should reject all requests with a canceled error, not resolve them
39bd9df739f Show a clear dialog on web when the remote connection fails
aaf73920aea Ensure task executions get cleaned up Fixes #112247
6f08397de0f Enable fileWorkspaceFolder variable for remote tasks Fixes #112514
78fc9abd92e explain why ::after "inherits" italic rendering
21c8c9f768e Merge branch 'master' into joh/tabDecorations
f75e0388adc remove passing user target
8fbe27ae9aa Do not touch the perf marks names
ec2d8d67725 Try to give a good stack trace in case loading code fails
ac7eb534b82 Increase web worker extension host timeout from 10s to 60s
1100f276812 fix build
77221e5f604 Allow strings as host name for port forwarding
af519ea93f7 Merge branch 'joao/build/merge-distro-directly'
9fe0d3c372f Merge branch 'joao/build/child-concurrency'
2f8dee4d87c Add logging for calls of `process.exit` in the extension host
20920160792 don't show loader stats in perf view editor anymore
25d6642db52 debug: preserve focus in editor when integrated terminal is shown so match debug console behavior and to make sense for accessibility
d833f8bc10d quick pick - use Alt as modifier to open to side
3229991032c 💄
083d38475c9 Tab bar not rendered on first load of only a welcome editor (fix #112618)
ede8d447025 Bump distro
8a2ec350bd9 Restore terminal UI state and layout when reconnecting to remote terminals Fix microsoft/vscode#109244
fd6debbde2b hide inset and update layout for the left webview.
1741bbf7e6f render deleted output
2118388b0e1 two webviews
fec4672c27a output diff container css class clearing
09d72bfaec8 💂
d2aebcd2c58 absolute positioned borders elements
f91b8f2e7ae More scrolling in getting started
01b04218586 Take ownership of workbench-welcome
03081f5a3a8 Polish skip location
6d3c2e68355 Adding proposed external uri opener API
542670762fd Make sure we dispose of webview revivers when the main thread extension host is disposed of
03c528450f3 Small formatting cleanup
bd8e81d122e Merge remote-tracking branch 'origin/master' into rebornix/output-view-model
f6a796b6693 grouping types in notebookBrowser
86838823e3b move genericTypes into notebookBrowser
706b8ddf983 single backlayerwebview!
05f69f7bbd3 share the logic for renderers in webview
64f7c1b0444 💄
b56da5e92aa align backlayer 1 and 2
c7616704115 fix build errors
fa464a731cc 💂
9694d9f5c96 move output layout update logic out of back layer webview.
e2458c2d705 Fixes #112483: Use `JSON.parse` and fall back to the tolerant parser only to extract better errors
9c70421d476 IDisplayOutputLayoutUpdateRequest.
a7cac806230 no need to pass in cell for updateViewScrollTop. it only talks about output and offsets.
e3cf33470d6 link clicking in the output webview
65bc4153aed support scroll position syncing.
15ba91d098c Massage mark name to align
fbe4aa28ff4 Collect and deliver perf marks from extension hosts (#112552)
691a2ce4ecd add timeOrigin as implict mark whenever possible
976b9b5cda2 💄
0ff71d32138 update output in webview position when list view layout change.
c782b708b18 cell body height to 0 so I can click into the webview
adaa7d6d638 Update codicons: use new loading icon and animation (fixes #112593) ca2658d797
7284389d4bc Update Codicons: Make circle-large-outline 1px outline (fixes #112310) 7a530b493a
bd67f0d0cab 💄
ff02224c1bc move output layout info into genericCellViewModel shared by notebook and diff.
179adc5f7fd support removing a setting from all targets
284ace0bb6f Cleqn up codicons
35be51e43d9 open editors: adopt registerAction2
bbb797d3e4d clear static outputs when collapse outputs panel
caa595fc066 absolute position of mixed static and dynamic webview
3080c3e88c4 webview output first load
f158da4d7c4 Fix microsoft/vscode-remote-release/issues/1801
063ecfe0768 explorer: adopt registerAction2
66bf5744fa5 🆙 distro
5b33fdd6507 API: finalize status bar backgroundColor (#110214)
2daa49098b1 Catch all localhost duplicates when forwarding a port Part of #112571
41628e33267 merge distro in a single command
dfeaeb5740a debug: check if languageIds is there
e2f6cc5a965 breakpoints: use registerAction2
d79f4e7b887 add test timeouts
208380cf766 Dispose a permanent failed connection and fail any further requests through a disposed `ChannelClient` (#112278 , #112568)
834b2b1570f bump cache salt
b7d648a8739 remove CHILD_CONCURRENCY=1 for all except windows
9293efd7e7d build: remove postinstall script invocation
be2d9834342 debug console: use registerAction2
c97d5e10337 build: use PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD
5ae66f37a89 build: use ELECTRON_SKIP_BINARY_DOWNLOAD
e135eee1f1d add perf mark when file systems are registered, fyi @bpasero
d782f11c7b2 do not restore theme if setting has changed
6aa034b1ca4 fix build
43c613c7009 timer mark event should also include unix timestamp
02bf5807169 remove migrating sync settings
3a8b161dcc8 #103869 remove user value if set to default and target is not passed
181d5dafba6 editors - show progress when waiting for auto save to complete to take long (fix #112278)
175c1298b84 remove all usage of concurrently
7743d971b10 concurrently -> run-run-all
d444826441a Revert "debug: stop supporting enableBreakpointsFor"
6c5916cafe1 web api - document some methods I forgot
607a0b8f133 in addition to file watching, use text file service onDidSave, fixes https://github.com/microsoft/vscode/issues/112477
0716eb086a6 Merge pull request #112306 from microsoft/aeschli/remoteIcons
0f56b9b6868 add embedder API to retrieve (startup) performance marks
6eb9b8938fc debug watch: use registerAction2
092b1365c76 variables view: use registerAction2
8ddbdd338a1 Merge branch 'master' into joh/tabDecorations
690e9f1e02f add ITimerService#whenReady
bee1e648979 Fix Configure Task for workspace w/ 0 folders Fixes #111815
aa587fe40a3 Catch bad progress location in extension trees Fixes #112211
b54f979ccbb Merge branch 'master' into aeschli/remoteIcons
05b94398d5a update distro
27cefc2a818 Rename `Protocol.onClose` to `Protocol.onDidDispose`
9cc0fb57434 windows - add helper method to know used window
460b6e720ef in browsers perf util is just a wrapper around native performance
1537b5bcc25 windows - cleanup hack for empty windows when restoring
afbd2e826c7 Remove Build jobs for now
c42e44e756b 💄 settings descriptions referencing other settings
a1f815a4c9a add option for preview navigation behavior (#112389)
f3e95ede9e4 Remove unused import
29e3f670384 config - careful with undefined/null config props
6b950b3d685 💄
d36f19d1d3d quick pick - configure openEditorPinned properly
f9bb8e62001 fix #112467
5114f5d76a1 Merge remote-tracking branch 'origin/master' into rebornix/output-view-model
89fd7be7fbd test
9ca7b4ed4df DiffElement
cbf9234d4fd hook modified webview
a9c5d7cc3c6 chore: fix CXX export
6361cfab60c Add scrolling to getting started page (#112500)
b2c0291c254 expose notebook text diff editor list row container
cf242ccaa83 prep for webview renderers
ca4601deba4 no unnecessary as any
f656636cc38 💄
14b7df48c39 do not restore default theme
dcda9032e78 output height calculation in view model by reading folding state.
239c211326d positioning for dynamic height output
4d0195152fa Add a slice to fix compilation
f76b1c25e7e remove quotes since we don't spawn shell
79a42e72217 use menu registry for sidebar actions
9565cf54c63 chore: bump electron@11.0.5
b44750d551d use menu registry for views visibility actions
387f4f4b112 Skip electron binary download
7989b98326e separate side by side and single side viewmodel
428008f3a56 Align versions across `package.json` files
d6e0a5424f2 Use directly `yarn compile`
3ba967fd7eb ext: log errors running contributed commands to the console for debugger vis
d583e26cd09 fix show view submenu in debug
0f33afa9f96 fix #112217 by replacing look behinds
42e31e92e29 cursor and user select update for output
5431ddb506f Bump distro
4263025dcdd Merge pull request #112279 from chenjigeng/feat/builtin-extension-report-issue
287137afbcf fixes #112415
8fca5328ac5 Merge branch 'roblou/shellEnvVar'
dce22cf74b5 Fall back on node API when $SHELL is not set, for user shell and shell environment discovery See github/codespaces#1639
8fbaf86e4b1 fixes #112413
3ee9eb9be4a fixes #112417
a22b5d54ad4 [json/css/html] adopt lsp 316
c2a8940127b simpler perf mark for didLoadExtensions
17c777b1119 update distro
e2ba0809426 fix typo per #112437
29edd0d2a90 Use panel title context menu for contextMenu actions
d766e6baa8d =revert changes to themes.contribution.ts
6d8f5bf363a Merge remote-tracking branch 'origin/master'
f7d9fe9b720 no trigger specification
8876c6debba enable master ci for production build
5b2015c9a00 telemetry for raw timer marks
72e82ba7b25 Make simple file dialog more predictable for screen readers Fixes #109722
9ac0fc87902 remove unused/duplicated perf.mark
a6f2524e4a8 - introduce panel title menu id - move view container menu acitons
43017777275 Update grammars
c87c95a1a04 prefix our performance marks with `code/`, e.g `code/didStartRenderer` etc
7381f53fd18 windows - move out more state code into separate class
f9b89066c7a remove dependencies stage
5f31a6ddc66 Revert "fix yaml"
064e1d19dfd fix yaml
2f2004f5fa8 faster dependencies check
d67e33f0b0d split compile & hygiene
2af62a03fe3 simplify continuous build
b1524d6b34e build: VSCODE_PUBLISH
200d60cc13c Do not create issue on failure
c7df7d91f42 Move actual gulpfile logic to `/build/`
ac6cadf8ee2 Fix gulpfile
e56597ab7a6 Save 1.5 seconds from `gulp` startup time
5f20ce95815 Increase yarn's network timeout
7d4c5a2c0fb Add a dedicated `Build: macOS Node Modules` job
90f0cf5b313 Force cacheNodeModules to fail
28776ec1a28 Cache yarn cache directory
704393a57cf fixes #112410
7168a1bf157 remove unused measure `ellapsedTimersToTimersComputed`
8b5984e7b83 Windows state deprecations. Fixes #112443
4df387f5ad1 add a way to read marks with source, adopt in perf view editor
c666c1d72f2 Save remote Help&Feedback enablement globally Fixes microsoft/vscode-remote-release#4165
3aa342ff68e Remove use of `getActions` from tunnelView.ts Part of #92038
4ba273fddaa name marks with source when importing them
51a3943093b Delete PR workflow stub
814bf82b853 Split compilation job into core compilation and extensions compilation
672216afdab Fix auto-generated link
c7319db91ce Remove use of getActions in remote.ts
16e715dc38e Bump ini from 1.3.4 to 1.3.7 (#112276)
45c7cae914d Bump ini from 1.3.5 to 1.3.7 in /extensions/markdown-language-features (#112275)
d1fff1a0836 Check in `.js` files from the `/build/` folder to improve build speeds
ec5da6d09c1 remove direct writes to `globalThis.MonacoPerformanceMarks`, use native performance instead, import native performance entries into timer service, fyi @bpasero
4b88174158f notebook: use icon names in  registerThemingParticipant
d55a3f0bcaf Merge pull request #112296 from yeswolf/master
71aa067bbd3 Fix intentional failing test
e25373f16ea One last try at automatic issue creation
eeded3b8c45 fix #112447
614e183e9a2 Attempt to avoid skipping steps on failure
cb84c32f5ac fix #112448
db4264eb3f8 Fix variable
b7f7b9fb8bd Intentionally fail to test issue creation
a861e22c7cc Switch to using `github.sha`
b742a4c8ea1 Create issue on test failure
707afc26d6f Skip compilation if the cache is hit
36b48f49849 milestone update
f413b81fcda windows - move state handling into own class
75eeac01049 Split Linux Build, add macOS jobs
6f08741eb91 separate viewPane and viewPaneContainer
a4206d19b0d rework perf-util, only allow for marks, separate perf-marks from renderer and main process (and future other processes)
24b18f1bd1f add perfEntries2
75f3a503fc1 create and dispose menu for context menu actions
18ded3c91b2 windows - shuffle state interfaces over
9489147837e Re-enable build jobs
51f18c087dd windows main service 💄
d8a48910053 windows - first cut cleanup of windows finding logic
1a1db8f00e7 bootstrap - add more typing info
1a2132f16ee web - show dispose dialog only upon user interaction
28964872e7b lifecycle - log long running operations preventing shutdown (for #112278)
87b4380045d Merge branch 'master' into master
96b426ef1da Remove dupe context key service registration in cell Fix #111280
873f23dc4cf Fix line highlight when navigating to search results Fix #106209
7e16a1e72ed Fixed issue with dragging to select text on Hover should not hide it
fad4717a787 Fix issue with dragging to select text on Hover should not hide it
5954c8366d9 Fix #112267 - Revert listener inside Submenu action - Create listner for submenu action changes in view menu actions
ced21a0abcc 💄
fd44d15c223 fix #112337.
fe4f9a9e6fb testing: add to i18n
91bb3857ac9 Use tree widget in the process explorer, fixes #104013
75dd72eeff5 move layout info into diff cell view model.
a9bf16e0019 testing: base test explorer
f30948328de update distro
70a67a1b844 Convert to use `for ... of`
c5c6c824113 Add Windows
7ae944e4b04 load static renderers
70355b66765 Add macOS
374e7487bd2 Run unit tests concurrently
58e88100755 Try `yarn concurrently`
73c050511b5 Avoid respawning
ba16f865b22 Remove compile and linux build for now
44b918b6248 Avoid "&"
0059c4cbfe0 Tweak combined step
072d922c450 Revert "Revert "Pick up offical TS build for web server""
5b8a6ee21b4 Add more logging to resource loading for webviews
771068e9978 Remove unused function
3bad41ff3c3 Attempt to run things in parallel
0dd9cdbb45f Fix env variable usages
e2e23aeb777 Add a compile and a linux build step
f79e3aea635 Fix notebook status bar icon colors (fixes #112323)
e3e3f8802ff Abandon composite actions since they cannot actually compose on other actions
d1d4143971a Attempt using absolute path
7e7c1de5697 Follow the expected naming scheme
623440c55c1 Extract cached yarn logic to a separate file
01ea0ecc098 Remove playwright caching
eb5c4388c74 Revert "Pick up offical TS build for web server"
92723a8a2c8 Bump markdown-it and highlight versions
52d2132e8d9 Move valid layers check together with the hygiene check
4942f242050 quick fix for setting description typo (#112327)
641abd4170d Extract the hygiene check to its own job
0ec1755aa9b Simplify caching strategy
d819caf1d27 Fix if condition
c7fa4ef0218 Troubleshoot expression
b2444f539bc Open Search Editor Action Bar item should clone search view's config Closes #112209
e1bc069d6ab Push workflow stub file
e8922b83b11 Update arial-label when renaming a terminal. Fixes #99072
baacaaca3e1 feat: use baseUrl first
fd45ba86b05 chore: remove git suffix
c197be4ef74 externalize remote icons
76436a4d435 Cache the /build/ folder compilation
2554c8c14e0 Remove the `linux-node-modules` job
a0122361111 Define `path` for the Cache node modules step
dc99b1ab774 Add the key property to the Cache node modules action
5e6152dcb39 Introduce a `linux-node-modules` job
50d0d5f0d25 Theme icon modifiers should work everywhere. Fixes #112298
2fc36a7d386 enum all breakpoint icons, avoid css selectors with patterns
824df4da78f Fix duplicate name
00c3a0bc9dc Gotta love yaml
b95feff0398 Fix indentation
27dee688674 Attempt to revive linux github action
b9b1b6156f9 Run compile on the `/build/` folder if the node_modules cache is hit
ed584f486eb use tt policy for nested workers, https://github.com/microsoft/vscode/issues/108400
d39671e7cb1 Convert to use `for ... of`
6d79a70a362 Add more frequently-used Ruby filenames to Ruby bundle (based on the actual TextMate bundle)
8f78f153fe0 Fix #112221
bfaaca632f3 Fix array syntax
d9f2b49323c Attempt to cache all node_modules folders
8af387dddd7 Fix #112287
b857599fb9b Attempt to cache root node modules
887bc527439 remove extra separator
684ceea0ed6 🆙 distro
c350d8b4238 #92038 Move panel actions to use menu registry
f211a2bbe96 clarify docs, fixes https://github.com/microsoft/vscode/issues/111686
fff6f7414f0 💄 remove commented code
eea0681288d adopt `actions/setup-node@v2-beta`
af74fd420bf nuke getSecondaryActions from outline, https://github.com/microsoft/vscode/issues/92038
56e35cf038f #92038 Create view and viewPaneContainer util actions
136df0d897d nuke getActions in outline pane, https://github.com/microsoft/vscode/issues/92038
d94ba914134 #92038 dispose actions on change
84e5cdec293 #92038 Use menu registry
a029dda2fe7 move suppress logic, https://github.com/microsoft/vscode/issues/111878
0a2cb7630f3 apply workspace edit from onWill-handler from within renderer, https://github.com/microsoft/vscode/issues/111878
61af2b26daa feat: support Report Issue capability for built-in module
1d5611c9d8f No need to install anything
f201645d8f7 Do not configure `xvfb`
019b5ab4c99 Remove yarn `CHILD_CONCURRENCY` limit
124b4bd151d Try newer `actions/checkout@v2`
3b34ea9f163 Update commands.ts (#112222)
32cc71c4a73 web - do not ask for clipboard access in ext tests (fix #112264)
bb68097d15f add extra check to understand https://github.com/microsoft/vscode/issues/112263
fdbd7bf6bbc web - tweak dispose dialog
86deb14fd3c make slow timeout event slower, fixes https://github.com/microsoft/vscode/issues/112262
6a03e96bfe3 Merge pull request #112206 from engelsdamien/master
69edf83c14d Merge pull request #112224 from microsoft/joh/worker
38a89809051 Avoids triggering autofetch unless setting changes
83f43bee1d5 Changing autofetch to a string config which has "current", "all" and (#111090)
39f78228fa6 Add missing file to commit
4d4f3a305c2 Observe the confirmBeforeClose setting for webviews
08e6047a050 Remove extra lines
0370a6ebf5f add explicit jsdoc types
618bf22ca5e remove !.
ed0634933e2 💄
29bc5baadc9 Only prompt if input (#112113)
4586eb012f9 renders all deal with output view model.
a416c1534bb #92038 Use menu to register actions - Extensions View
996c3495b49 #92038 use menu registry to provide view actions
f46cb57055d move picked mimetype to its view model.
a5f84617e22 chore: fix run-on values for snap build (#112248)
6424b09b2c8 Fixes #111909 - adds user agent to push
42cdda5ab0f Erase types to avoid using lib.dom.ts types from `/common/`
92adef0bac1 Fixes #108822: Do not render the minimap shadow on Safari
c503386ee3c refs #111463
41c6b79537b [GettingStarted] Slow down animation when expanding/collapsing items on sublists
9823eb0bf34 Avoid endless loop (fixes #110392)
d8fce51aed8 Tweak getting started
354d5ff8cd4 Tweak get started detail pane (#111840)
50ada457c55 change name back
308e723e181 yet another tweak to startup timer telemetry
de2c02eb504 use css variables for code lens font, https://github.com/microsoft/vscode-internalbacklog/issues/1674
10e40063d9d Delete is no longer irreverisible
ed04ea29d3a print nested worker errors onto console
1fb86647518 support nested worker when running without iframe
4dce67232d7 add failing Worker ctor inside nested polyfill worker
32ba217a5b0 support https-iframe
b3d95fea2ab web - inform user if workbench gets shutdown
91f00c7c285 web - allow to retry clipboard access (#112089)
61995eab4aa fix linux deb repo pointer
e6d238e251a web - clipboard warning when failing access
86a23116059 Set tunnel information for embedders Fixes #112213
e5664f1678e restore and update CSP header
49b84b4bd97 💄
d90179bef2f some simplifications
b44f2b3db2b Merge pull request #112144 from microsoft/isidorn/replFontFamily
4a76840f7f1 fix setting --vscode-relp-font-family variable
caf0943a994 Merge branch 'master' into joh/worker
bc95e893efa web - fix window open
90f2d386c82 Updates tsec to latest version using TS4.1.2
6c9dab1259f web - register external opener to prevent unload on expected href changes
039f15a0f93 💄
c7fa31fc926 [bot] make *duplicates link to a query for issues with matching tags. Closes #111903. Closes #49912.
5fe4f5583cb fix yarn.lock leftover
d2965c18bf6 Prompt web users when they try using ctrl+w/cmd+w when focused on a webview
04ec120e2c3 Exclude dist from eslint and hygine
ee64fdae8b7 Use dispose directly instead of loop
c3d8989b24e Enable going to stdlib on serverless
582f8f6bb0a Bump Static version of web TS version
e6a13fb134b Remove work around for TS not supporting paths on its own
71fad5aa411 Enable preferConst in TS project
16334048831 Remove unused types
45283df1fda Merge pull request #112176 from microsoft/rebornix/nb-diff-perf
f29a3cabc47 Pick up offical TS build for web server
79557ebbd2f Make sure markdown preview is updated if on disk file is updated
6ad6905f981 Re-enable *.integrationTest on windows
542fa93eae7 Pick up new TS version for building VS Code
864e80dc480 fix #112178.
4fe04b10a4c Assign rzhao271 to emmet tasks
1f528e7de40 💄
2c9bcb8b14c Merge remote-tracking branch 'origin/master' into rebornix/nb-diff-perf
9ccbebed752 revert change to grooming notebook
a33e1d617e8 Revert "Fixes #104004: Only run tests if the tests belong to a known extension"
f9134083e5d delay cell text model disposing.
4fefd1030ac limit editor contribs in notebook diff view
daca95ea065 fix: disable shm usage in container builds (#111787)
31d11a37299 fix memory leak
180506d8844 feat: support open local file
b36ec60ac4e notebook: adopt trusted types for renderer scripts
b1e7f915d49 notebook: adopt trusted types for renderer
90724cd823a Use `trustedTypes` where using `new Worker()` (#108400)
f9d6df8ea1e Fix port forwarded nofication showing for the wrong port Fixes #112159
83993fb92c5 Fix run npm script in folder command Fixes #112152
52cc4e6a0d5 #108793 check casing and use proper extUri
8b9b8df0247 explorer: smarter handling of file events
ea7bed08f1b debt - escape quotes
9ce3f9462d2 disable proposed API checks on top-level getters
1aa76d792f6 repl: improve height estimate
b8101e698c2 Fixes #106581: Do not react to Win/Super key for mouse wheel zoom on Linux
7951e1f9138 🆙 web dev
e24db417b2e update my-work notebook
2c74aeb5b6b fix #112146
eec97b824f0 Use the future scroll position to compute the scroll top and reuse the current smooth scrolling animation (#104144, #107704, #104284)
5df492ff594 up references-viewlet
db2d6820b19 introduce vscode-repl-font-family
a0cbecb188c Merge pull request #112069 from engelsdamien/master
c6f4565a203 notebook.selectedCellBorder: fix typo
e6fc328247b update iconRegistry doc generation
785097e4618 Merge pull request #111644 from chenjigeng/master
49dc593a83e Merge branch 'master' into master
b3c053d44b2 Preserve whitespace in tree hover Part of #112124
59ba6494b9e Better timing for multiple lock files warning Fixes #111635
6643750275a Fix #108647
bdb0ef4d489 Fix #108793
5ee430bf26d Deduce secondary host from the request if possible
aef539adfca Remove unused import 'UriIdentityService'. (#112112)
bdd890380ef Fix #112121.
82974e8cda6 exthost: use marker to avoid duplicating written log messages
7491d391907 Merge remote-tracking branch 'origin/master' into connor4312/native-exthost-log
d66e65fcdd9 fix: Param helper hover getting cut off at bottom (#112019)
3c9a4554702 no longer render overview ruler.
f86fd13b2c6 fix #110357.
c643c433e82 Remove extra whitespace in dom.ts
759375429eb refs #110392
1cc1f166170 Use uriIdentityService to compare uris, fixes #107779
9ee7e1e87a7 Fix #111871, 'openReporter' should resolve
353227400a9 fix: Debug Console Linker automatically decodes link
71ba241fb01 Merge pull request #111897 from microsoft/alex/111128
2ef8227aacd Log extensions query telemetry data
838b3949ec8 Add workaround for #101754
ad10dc75901 Improve `writeFileIfDifferent` logic
88f09bd5f25 Move `getElectronAcceleratorForKeyBinding` to `WindowsKeyboardMapper` (#101754)
2add9e300c7 Uncomment test
3a47fc387a5 bug fix, see  #112013 (#112015)
b2eedd8ee09 Add `wss:` / `ws:` to the CSP
affd21e65ac tabs - partially take changes from PR 106448 to reduce diff
b3a3dc9c0a5 Debt: Test findPorts (#112092)
5e5ae15b22c debug: show the hover not so eagarly (do it twice as slow as editor hover)
768bcf45422 Fixed tab switching too fast when wheeling/scrolling (#112034)
c8b592a57a3 debug editor decorations: always decorate top stack frame, and decorate focused stack frame if it is not the top stack frame
92d6f00d6e2 debug console: color the debug group elements
9edc69706f8 Just set textContent for custom hover Fixes #111643
46ee31fce0f Try to fix markdown tooltip for Safari #111756
208bfc9970c fixes #112046
66f5e9294e3 path lib usage 💄
08e29d24b4b Remove duplicate (case sensitive) recent workspace/folder names on the welcome screen (fix #111954)
bb480d2c4f6 Merge pull request #111916 from microsoft/alex/104004
861e7bcc1b2 Wait for the remote configuration before creating remote terminal processes
0e885aaf70c retry all cosmosdb ops
3212ddbc76f multibyteAwareBtoa - add commented out failing test for #112013
a6946159d4e 💄 layers checker
6f5448afac5 Include candidate pull requests
5865aeaa7b9 Rewrites Trusted Types sink assignements
2c937725db0 Updates tsec
aa18ca68276 Unable to find the registered languages while saving the file. (fix #111788)
91c7834e926 debug: update js-debug
f79bb79d2b6 Suggest a different description (#112049)
3655a82edcb add log to createAsset retry
3136ecb1d31 Do not ignore errors from $spawnExtHostProcess
ab8c8dbd8e5 Fix #112030
cf8ed37206e fixes #111850
c2de3a602e8 Tweak candidates notebook query
4250e343e0f use proper repos for linux arm
d0475711090 Prompt to save untitled file before run/debug
de22e951f9e more cleanup for #111177
ffdc1096fa5 Windows - Taskbar entry context menu is empty (fix #111177)
36628d73b91 add exponential backoff
66aab34216f retry createAsset sproc due to ECONNRESET
c4d77ea6193 #89559 Set logsPath in window configuration
3835563e123 Fix #112012
64f63a3dd70 Fix #108266
ea0b7fd29af Revert "build: create asset should still try to add asset"
267188e90de highlightModifiedTabs and pinned tabs issue (fix #111641)
04b9a571b84 fix #111898 on master
878bf135043 debt - shuffle some electron-main code to better layers
25cbe382515 proxy - rename proxy2 to proxy
428d5b1d302 proxy - remove old proxy auth dialog
f5da8e346fc :lipsticky: async
fc9ff5d569b ci: avoid overwriting CC variables for arm arch
eeed0fd5692 update distro
eb189c703c7 Fix #111946
86d779284b6 ci: fix condition for linux builds
7a7d27397a3 chore: fix cache condition for native modules
b0d4a08e3e0 chore: bump distro
94142bd7e0d chore: bump electron@11.0.3 (#111931)
962bedc4f47 Update version to 1.53.0
423bdb2e263 Fixes #104004: Only run tests if the tests belong to a known extension
707ca0a06c6 nested worker in worker
b8aa4141d28 Fixes #111128: Do not touch current line's indentation when pressing Enter
c8e490e5e68 chore: optimized code
3e22e6f4120 feat: add the rename test cases of html-language-features
8f712866cf3 fix: check canRename before findRenameLocations
81610ca5b61 bootstrap tweaks
cc502ffc10b Merge branch 'master' into joh/worker
5458e760b98 wip
94b2772f8c2 feat: add rename symbol within <script> tags
2c306f762bf Merge branch 'master' into joh/tabDecorations
8298927b3e2 add settings to toggle/tweak editor tab file decorations
f7a2368ae8e tweak padding of file decorations in editor titles
6da3c138aa4 apply no tab background style on container, not label
4858682abd5 render file decorations italic when main label is italic
2eef0d6288f Merge branch 'master' into joh/tabDecorations
a53d75097a1 add file decorations to editor titles (tab and no tab)
206fbe0bb38 debug: use native logging in extension host
fc393cae1bb readability and test improvements
43418e212de update selection, better multiline support
3182ea7f89a snake case
2926b2c1f19 use latest wsl
4e32124f9f3 Merge commit 'a36c68b9ec3d6a0aca9799d7a10be741a6658a51' into joao/wsl
13612c3cdb1 DisabledByEnvironment
26b51b5fb53 Merge branch 'master' into joao/wsl
46b61186de0 Merge branch 'master' into joao/wsl
2e2b0d1895a distro
adb24c6486a use clientOnly for remote wsl extension
9f9c0e71ad6 distro
357fe395aef fix buil
44c81d3c33d Merge remote-tracking branch 'origin/master' into joao/wsl
8a5f6fa5ce5 include remote-wsl by default
8836c8bfeee reuse source code editor
3b796c62129 allow init dimension for the diff editor and left/right side editors.
REVERT: 3e344b17b7b Remove extrenuous file. (#113825)
REVERT: 36f9eaf1e7b Merge pull request #113596 from Ry0taK/release/1.52
REVERT: e73a6b082cd Create ryotak.txt
REVERT: ea3859d4ba2 Bump version number to 1.52.1 (#112659)
REVERT: 608dfc13634 Catch all localhost duplicates when forwarding a port (#112575)
REVERT: 8b5ece7c203 Merge pull request #112431 from microsoft/misolori/notebook-color-icons
REVERT: c11e9282d8f Merge pull request #112565 from microsoft/isidorn/enableBreakpointsFor
REVERT: 2b6973a35d2 debug: check for existence of enableBreakpointsFor.languageIds
REVERT: 374d05c17cf Revert "debug: stop supporting enableBreakpointsFor"
REVERT: f93c8a0386a Fix notebook status bar icon colors (fixes #112323)
REVERT: 940b5f4bb5f chore: fix run-on values for snap build (#112245)
REVERT: dbbf7079b20 Make sure that tunnel information isn't set on desktop (#112228)
REVERT: 99edf4ff0fe fix linux deb repo pointer (#112226)
REVERT: 91a50e30223 Set tunnel information for embedders (#112215)
REVERT: c6cb5415399 Fix port forwarded nofication showing for the wrong port (#112160)
REVERT: 6caba069206 Merge pull request #112141 from microsoft/joh/fix/111913
REVERT: cb971b8ffd8 Preserve whitespace in tree hover (#112133)
REVERT: e4af2d8ad65 disable proposed API checks on top-level getters
REVERT: 6f933020e8d Just set textContent for custom hover (#112075)
REVERT: d66e3740a4a Merge pull request #112054 from microsoft/connor4312/js-debug-1.52.2
REVERT: b4ec131cff7 retry all cosmosdb ops (#112072)
REVERT: 5e585c5fb4f use proper repos for linux arm (#112026)
REVERT: 37c2de252eb debug: bump js-debug
REVERT: bc13785d3dd Retry createAsset sproc due to ECONNRESET (#112020)
REVERT: 559a78eaaa9 Mitigate #109728 (#112008)
REVERT: 62d6b82a6f9 Revert "build: create asset should still try to add asset" (#112009)
REVERT: 30e0c5784b3 fix #111898 (#111928)

git-subtree-dir: lib/vscode
git-subtree-split: 622cb03f7e070a9670c94bae1a45d78d7181fbd4
This commit is contained in:
Joe Previte 2021-02-25 11:26:29 -07:00
parent e4a830e9b7
commit 89b6e0164f
1900 changed files with 82419 additions and 66188 deletions

View File

@ -14,3 +14,4 @@
**/extensions/**/build/**
**/extensions/markdown-language-features/media/**
**/extensions/typescript-basics/test/colorize-fixtures/**
**/extensions/**/dist/**

File diff suppressed because it is too large Load Diff

2
.github/actions/build-chat/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
dist
node_modules

10
.github/actions/build-chat/action.yml vendored Normal file
View File

@ -0,0 +1,10 @@
name: 'Build Chat'
description: 'Notify in chat about build results.'
author: 'Christof Marti'
inputs:
workflow_run_url:
description: 'Workflow run URL of the completed build.'
required: true
runs:
using: 'node12'
main: 'dist/main.js'

23
.github/actions/build-chat/package.json vendored Normal file
View File

@ -0,0 +1,23 @@
{
"name": "build-chat",
"version": "0.0.0",
"author": "Microsoft Corporation",
"license": "MIT",
"description": "A GitHub action to create a Windows Package Manager manifest file.",
"main": "dist/main.js",
"scripts": {
"build": "tsc"
},
"dependencies": {
"@actions/core": "^1.2.6",
"@octokit/rest": "^18.0.12",
"@slack/web-api": "^6.0.0",
"azure-storage": "^2.10.3",
"stream-buffers": "^3.0.2"
},
"devDependencies": {
"@types/node": "^14.14.22",
"@types/stream-buffers": "^3.0.3",
"typescript": "^4.1.3"
}
}

217
.github/actions/build-chat/src/main.ts vendored Normal file
View File

@ -0,0 +1,217 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as core from '@actions/core';
import { Octokit, RestEndpointMethodTypes } from '@octokit/rest';
import { WebClient } from '@slack/web-api';
import * as storage from 'azure-storage';
import { WritableStreamBuffer } from 'stream-buffers';
(async () => {
const actionUrl = core.getInput('workflow_run_url');
const url = actionUrl || 'https://api.github.com/repos/microsoft/vscode/actions/runs/503514090';
console.log(url);
const parts = url.split('/');
const owner = parts[parts.length - 5];
const repo = parts[parts.length - 4];
const runId = parseInt(parts[parts.length - 1], 10);
if (actionUrl) {
await handleNotification(owner, repo, runId);
} else {
const results = await buildComplete(owner, repo, runId);
for (const message of [...results.logMessages, ...results.messages]) {
console.log(message);
}
}
})()
.then(null, console.error);
const testChannels = ['bot-log', 'bot-test-log'];
async function handleNotification(owner: string, repo: string, runId: number) {
const results = await buildComplete(owner, repo, runId);
if (results.logMessages.length || results.messages.length) {
const web = new WebClient(process.env.SLACK_TOKEN);
const memberships = await listAllMemberships(web);
const memberTestChannels = memberships.filter(m => testChannels.indexOf(m.name) !== -1);
for (const message of results.logMessages) {
for (const testChannel of memberTestChannels) {
await web.chat.postMessage({
text: message,
link_names: true,
channel: testChannel.id,
});
}
}
for (const message of results.messages) {
for (const channel of memberships) {
await web.chat.postMessage({
text: message,
link_names: true,
channel: channel.id,
});
}
}
}
}
async function buildComplete(owner: string, repo: string, runId: number) {
console.log(`buildComplete: https://github.com/${owner}/${repo}/actions/runs/${runId}`);
const auth = `token ${process.env.GITHUB_TOKEN}`;
const octokit = new Octokit({ auth });
const buildResult = (await octokit.actions.getWorkflowRun({
owner,
repo,
run_id: runId,
})).data;
if (buildResult.head_branch !== 'master' && !buildResult.head_branch?.startsWith('release/')) {
console.error('Private branch. Terminating.')
return { logMessages: [], messages: [] };
}
// const buildQuery = `${buildsApiUrl}?$top=10&maxTime=${buildResult.finishTime}&definitions=${buildResult.definition.id}&branchName=${buildResult.sourceBranch}&resultFilter=${results.join(',')}&api-version=5.0-preview.4`;
const buildResults = (await octokit.actions.listWorkflowRuns({
owner,
repo,
workflow_id: buildResult.workflow_id,
branch: buildResult.head_branch || undefined,
per_page: 5, // More returns 502s.
})).data.workflow_runs
.filter(run => run.status === 'completed');
const currentBuildIndex = buildResults.findIndex(build => build.id === buildResult.id);
if (currentBuildIndex === -1) {
console.error('Build not on first page. Terminating.')
console.error(buildResults.map(({ id, status, conclusion }) => ({ id, status, conclusion })));
return { logMessages: [], messages: [] };
}
const slicedResults = buildResults.slice(currentBuildIndex, currentBuildIndex + 2);
const builds = slicedResults
.map<Build>((build, i, array) => ({
data: build,
previousSourceVersion: i < array.length - 1 ? array[i + 1].head_sha : undefined,
authors: [],
buildHtmlUrl: build.html_url,
changesHtmlUrl: '',
}));
const logMessages = builds.slice(0, 1)
.map(build => `Id: ${build.data.id} | Branch: ${build.data.head_branch} | Conclusion: ${build.data.conclusion} | Created: ${build.data.created_at} | Updated: ${build.data.updated_at}`);
const transitionedBuilds = builds.filter((build, i, array) => i < array.length - 1 && transitioned(build, array[i + 1]));
await Promise.all(transitionedBuilds
.map(async build => {
if (build.previousSourceVersion) {
const cmp = await compareCommits(octokit, owner, repo, build.previousSourceVersion, build.data.head_sha);
const commits = cmp.data.commits;
const authors = new Set<string>([
...commits.map((c: any) => c.author.login),
...commits.map((c: any) => c.committer.login),
]);
authors.delete('web-flow'); // GitHub Web UI committer
build.authors = [...authors];
build.changesHtmlUrl = `https://github.com/${owner}/${repo}/compare/${build.previousSourceVersion.substr(0, 7)}...${build.data.head_sha.substr(0, 7)}`; // Shorter than: cmp.data.html_url
}
}));
const vscode = repo === 'vscode';
const name = vscode ? `VS Code ${buildResult.name} Build` : buildResult.name;
// TBD: `Requester: ${vstsToSlackUser(build.requester, build.degraded)}${pingBenForSmokeTests && releaseBuild && build.result === 'partiallySucceeded' ? ' | Ping: @bpasero' : ''}`
const accounts = await readAccounts();
const githubAccountMap = githubToAccounts(accounts);
const messages = transitionedBuilds.map(build => `${name}
Result: ${build.data.conclusion} | Branch: ${build.data.head_branch} | Authors: ${githubToSlackUsers(githubAccountMap, build.authors, build.degraded).sort().join(', ') || `None (rebuild)`}
Build: ${build.buildHtmlUrl}
Changes: ${build.changesHtmlUrl}`);
return { logMessages, messages };
}
const conclusions = ['success', 'failure']
function transitioned(newer: Build, older: Build) {
const newerResult = newer.data.conclusion || 'success';
const olderResult = older.data.conclusion || 'success';
if (newerResult === olderResult) {
return false;
}
if (conclusions.indexOf(newerResult) > conclusions.indexOf(olderResult)) {
newer.degraded = true;
}
return true;
}
async function compareCommits(octokit: Octokit, owner: string, repo: string, base: string, head: string) {
return octokit.repos.compareCommits({ owner, repo, base, head });
}
function githubToSlackUsers(githubToAccounts: Record<string, Accounts>, githubUsers: string[], at?: boolean) {
return githubUsers.map(g => githubToAccounts[g] ? `${at ? '@' : ''}${githubToAccounts[g].slack}` : g);
}
interface Accounts {
github: string;
slack: string;
vsts: string;
}
function githubToAccounts(accounts: Accounts[]) {
return accounts.reduce((m, e) => {
m[e.github] = e;
return m;
}, <Record<string, Accounts>>{});
}
async function readAccounts() {
const connectionString = process.env.BUILD_CHAT_STORAGE_CONNECTION_STRING;
if (!connectionString) {
console.error('Connection string missing.');
return [];
}
const buf = await readFile(connectionString, 'config', '/', 'accounts.json');
return JSON.parse(buf.toString()) as Accounts[];
}
async function readFile(connectionString: string, share: string, directory: string, filename: string) {
return new Promise<Buffer>((resolve, reject) => {
const stream = new WritableStreamBuffer()
const fileService = storage.createFileService(connectionString);
fileService.getFileToStream(share, directory, filename, stream, err => {
if (err) {
reject(err);
} else {
const contents = stream.getContents();
if (contents) {
resolve(contents);
} else {
reject(new Error('No content'));
}
}
});
});
}
interface AllChannels {
channels: {
id: string;
name: string;
is_member: boolean;
}[];
}
async function listAllMemberships(web: WebClient) {
const groups = await web.conversations.list({ types: 'public_channel,private_channel' }) as unknown as AllChannels;
return groups.channels
.filter(c => c.is_member);
}
interface Build {
data: RestEndpointMethodTypes['actions']['getWorkflowRun']['response']['data'];
previousSourceVersion: string | undefined;
authors: string[];
buildHtmlUrl: string;
changesHtmlUrl: string;
degraded?: boolean;
}

View File

@ -0,0 +1,18 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es2017",
"strict": true,
"noUnusedLocals": true,
"resolveJsonModule": true,
"lib": [
"es2017"
],
"sourceMap": true,
"outDir": "./dist",
"rootDir": "./src",
},
"exclude": [
"node_modules"
]
}

728
.github/actions/build-chat/yarn.lock vendored Normal file
View File

@ -0,0 +1,728 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@actions/core@^1.2.6":
version "1.2.6"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09"
integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==
"@octokit/auth-token@^2.4.4":
version "2.4.4"
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56"
integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==
dependencies:
"@octokit/types" "^6.0.0"
"@octokit/core@^3.2.3":
version "3.2.4"
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.2.4.tgz#5791256057a962eca972e31818f02454897fd106"
integrity sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg==
dependencies:
"@octokit/auth-token" "^2.4.4"
"@octokit/graphql" "^4.5.8"
"@octokit/request" "^5.4.12"
"@octokit/types" "^6.0.3"
before-after-hook "^2.1.0"
universal-user-agent "^6.0.0"
"@octokit/endpoint@^6.0.1":
version "6.0.10"
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.10.tgz#741ce1fa2f4fb77ce8ebe0c6eaf5ce63f565f8e8"
integrity sha512-9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==
dependencies:
"@octokit/types" "^6.0.0"
is-plain-object "^5.0.0"
universal-user-agent "^6.0.0"
"@octokit/graphql@^4.5.8":
version "4.5.8"
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.8.tgz#d42373633c3015d0eafce64a8ce196be167fdd9b"
integrity sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA==
dependencies:
"@octokit/request" "^5.3.0"
"@octokit/types" "^6.0.0"
universal-user-agent "^6.0.0"
"@octokit/openapi-types@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-3.0.0.tgz#f73d48af2d21bf4f97fbf38fae43b54699e0dbba"
integrity sha512-jOp1CVRw+OBJaZtG9QzZggvJXvyzgDXuW948SWsDiwmyDuCjeYCiF3TDD/qvhpF580RfP7iBIos4AVU6yhgMlA==
"@octokit/plugin-paginate-rest@^2.6.2":
version "2.8.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.8.0.tgz#2b41e12b494e895bf5fb5b12565d2c80a0ecc6ae"
integrity sha512-HtuEQ2AYE4YFEBQN0iHmMsIvVucd5RsnwJmRKIsfAg1/ZeoMaU+jXMnTAZqIUEmcVJA27LjHUm3f1hxf8Fpdxw==
dependencies:
"@octokit/types" "^6.4.0"
"@octokit/plugin-request-log@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44"
integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==
"@octokit/plugin-rest-endpoint-methods@4.4.1":
version "4.4.1"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.4.1.tgz#105cf93255432155de078c9efc33bd4e14d1cd63"
integrity sha512-+v5PcvrUcDeFXf8hv1gnNvNLdm4C0+2EiuWt9EatjjUmfriM1pTMM+r4j1lLHxeBQ9bVDmbywb11e3KjuavieA==
dependencies:
"@octokit/types" "^6.1.0"
deprecation "^2.3.1"
"@octokit/request-error@^2.0.0":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.4.tgz#07dd5c0521d2ee975201274c472a127917741262"
integrity sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==
dependencies:
"@octokit/types" "^6.0.0"
deprecation "^2.0.0"
once "^1.4.0"
"@octokit/request@^5.3.0", "@octokit/request@^5.4.12":
version "5.4.12"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.12.tgz#b04826fa934670c56b135a81447be2c1723a2ffc"
integrity sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==
dependencies:
"@octokit/endpoint" "^6.0.1"
"@octokit/request-error" "^2.0.0"
"@octokit/types" "^6.0.3"
deprecation "^2.0.0"
is-plain-object "^5.0.0"
node-fetch "^2.6.1"
once "^1.4.0"
universal-user-agent "^6.0.0"
"@octokit/rest@^18.0.12":
version "18.0.12"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.0.12.tgz#278bd41358c56d87c201e787e8adc0cac132503a"
integrity sha512-hNRCZfKPpeaIjOVuNJzkEL6zacfZlBPV8vw8ReNeyUkVvbuCvvrrx8K8Gw2eyHHsmd4dPlAxIXIZ9oHhJfkJpw==
dependencies:
"@octokit/core" "^3.2.3"
"@octokit/plugin-paginate-rest" "^2.6.2"
"@octokit/plugin-request-log" "^1.0.2"
"@octokit/plugin-rest-endpoint-methods" "4.4.1"
"@octokit/types@^6.0.0", "@octokit/types@^6.0.3", "@octokit/types@^6.1.0", "@octokit/types@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.4.0.tgz#f3f47be70bcdb3c26f2c2619f3dd0ced466a265c"
integrity sha512-1FEmuVppZE2zG0rBdQlviRz5cp0udyI63zyhBVPrm0FRNAsQkAXU7IYWQg1XvhChFut8YbFYN1usQpk54D6/4w==
dependencies:
"@octokit/openapi-types" "^3.0.0"
"@types/node" ">= 8"
"@slack/logger@>=1.0.0 <3.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@slack/logger/-/logger-2.0.0.tgz#6a4e1c755849bc0f66dac08a8be54ce790ec0e6b"
integrity sha512-OkIJpiU2fz6HOJujhlhfIGrc8hB4ibqtf7nnbJQDerG0BqwZCfmgtK5sWzZ0TkXVRBKD5MpLrTmCYyMxoMCgPw==
dependencies:
"@types/node" ">=8.9.0"
"@slack/types@^1.7.0":
version "1.10.0"
resolved "https://registry.yarnpkg.com/@slack/types/-/types-1.10.0.tgz#cbf7d83e1027f4cbfd13d6b429f120c7fb09127a"
integrity sha512-tA7GG7Tj479vojfV3AoxbckalA48aK6giGjNtgH6ihpLwTyHE3fIgRrvt8TWfLwW8X8dyu7vgmAsGLRG7hWWOg==
"@slack/web-api@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@slack/web-api/-/web-api-6.0.0.tgz#14c65ed73c66a187e5f20e12c3898dfd8d5cbf7c"
integrity sha512-YD1wqWuzrYPf4RQyD7OnYS5lImUmNWn+G5V6Qt0N97fPYxqhT72YJtRdSnsTc3VkH5R5imKOhYxb+wqI9hiHnA==
dependencies:
"@slack/logger" ">=1.0.0 <3.0.0"
"@slack/types" "^1.7.0"
"@types/is-stream" "^1.1.0"
"@types/node" ">=12.0.0"
axios "^0.21.1"
eventemitter3 "^3.1.0"
form-data "^2.5.0"
is-stream "^1.1.0"
p-queue "^6.6.1"
p-retry "^4.0.0"
"@types/is-stream@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@types/is-stream/-/is-stream-1.1.0.tgz#b84d7bb207a210f2af9bed431dc0fbe9c4143be1"
integrity sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==
dependencies:
"@types/node" "*"
"@types/node@*", "@types/node@>= 8", "@types/node@>=12.0.0", "@types/node@>=8.9.0", "@types/node@^14.14.22":
version "14.14.22"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18"
integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==
"@types/retry@^0.12.0":
version "0.12.0"
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
"@types/stream-buffers@^3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/stream-buffers/-/stream-buffers-3.0.3.tgz#34e565bf64e3e4bdeee23fd4aa58d4636014a02b"
integrity sha512-NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ==
dependencies:
"@types/node" "*"
ajv@^6.12.3:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
dependencies:
safer-buffer "~2.1.0"
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.8.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
axios@^0.21.1:
version "0.21.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
dependencies:
follow-redirects "^1.10.0"
azure-storage@^2.10.3:
version "2.10.3"
resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.10.3.tgz#c5966bf929d87587d78f6847040ea9a4b1d4a50a"
integrity sha512-IGLs5Xj6kO8Ii90KerQrrwuJKexLgSwYC4oLWmc11mzKe7Jt2E5IVg+ZQ8K53YWZACtVTMBNO3iGuA+4ipjJxQ==
dependencies:
browserify-mime "~1.2.9"
extend "^3.0.2"
json-edm-parser "0.1.2"
md5.js "1.3.4"
readable-stream "~2.0.0"
request "^2.86.0"
underscore "~1.8.3"
uuid "^3.0.0"
validator "~9.4.1"
xml2js "0.2.8"
xmlbuilder "^9.0.7"
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
dependencies:
tweetnacl "^0.14.3"
before-after-hook@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
browserify-mime@~1.2.9:
version "1.2.9"
resolved "https://registry.yarnpkg.com/browserify-mime/-/browserify-mime-1.2.9.tgz#aeb1af28de6c0d7a6a2ce40adb68ff18422af31f"
integrity sha1-rrGvKN5sDXpqLOQK22j/GEIq8x8=
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
dependencies:
assert-plus "^1.0.0"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
deprecation@^2.0.0, deprecation@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
dependencies:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
eventemitter3@^3.1.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
eventemitter3@^4.0.4:
version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
extend@^3.0.2, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
fast-deep-equal@^3.1.1:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
follow-redirects@^1.10.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7"
integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4"
integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.6"
mime-types "^2.1.12"
form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.6"
mime-types "^2.1.12"
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
dependencies:
assert-plus "^1.0.0"
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
har-validator@~5.1.3:
version "5.1.5"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
dependencies:
ajv "^6.12.3"
har-schema "^2.0.0"
hash-base@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
dependencies:
inherits "^2.0.4"
readable-stream "^3.6.0"
safe-buffer "^5.2.0"
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
dependencies:
assert-plus "^1.0.0"
jsprim "^1.2.2"
sshpk "^1.7.0"
inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
is-plain-object@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
json-edm-parser@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/json-edm-parser/-/json-edm-parser-0.1.2.tgz#1e60b0fef1bc0af67bc0d146dfdde5486cd615b4"
integrity sha1-HmCw/vG8CvZ7wNFG393lSGzWFbQ=
dependencies:
jsonparse "~1.2.0"
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
jsonparse@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.2.0.tgz#5c0c5685107160e72fe7489bddea0b44c2bc67bd"
integrity sha1-XAxWhRBxYOcv50ib3eoLRMK8Z70=
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
dependencies:
assert-plus "1.0.0"
extsprintf "1.3.0"
json-schema "0.2.3"
verror "1.10.0"
md5.js@1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0=
dependencies:
hash-base "^3.0.0"
inherits "^2.0.1"
mime-db@1.45.0:
version "1.45.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
mime-types@^2.1.12, mime-types@~2.1.19:
version "2.1.28"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
dependencies:
mime-db "1.45.0"
node-fetch@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
p-queue@^6.6.1:
version "6.6.2"
resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426"
integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==
dependencies:
eventemitter3 "^4.0.4"
p-timeout "^3.2.0"
p-retry@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.2.0.tgz#ea9066c6b44f23cab4cd42f6147cdbbc6604da5d"
integrity sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==
dependencies:
"@types/retry" "^0.12.0"
retry "^0.12.0"
p-timeout@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
dependencies:
p-finally "^1.0.0"
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
psl@^1.1.28:
version "1.8.0"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readable-stream@~2.0.0:
version "2.0.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
integrity sha1-j5A0HmilPMySh4jaz80Rs265t44=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "~1.0.0"
process-nextick-args "~1.0.6"
string_decoder "~0.10.x"
util-deprecate "~1.0.1"
request@^2.86.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
caseless "~0.12.0"
combined-stream "~1.0.6"
extend "~3.0.2"
forever-agent "~0.6.1"
form-data "~2.3.2"
har-validator "~5.1.3"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.19"
oauth-sign "~0.9.0"
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
uuid "^3.3.2"
retry@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sax@0.5.x:
version "0.5.8"
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
sshpk@^1.7.0:
version "1.16.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
bcrypt-pbkdf "^1.0.0"
dashdash "^1.12.0"
ecc-jsbn "~0.1.1"
getpass "^0.1.1"
jsbn "~0.1.0"
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
stream-buffers@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521"
integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
dependencies:
psl "^1.1.28"
punycode "^2.1.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
typescript@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"
integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==
underscore@~1.8.3:
version "1.8.3"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=
universal-user-agent@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
uuid@^3.0.0, uuid@^3.3.2:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
validator@~9.4.1:
version "9.4.1"
resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
integrity sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA==
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
extsprintf "^1.2.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
xml2js@0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.8.tgz#9b81690931631ff09d1957549faf54f4f980b3c2"
integrity sha1-m4FpCTFjH/CdGVdUn69U9PmAs8I=
dependencies:
sax "0.5.x"
xmlbuilder@^9.0.7:
version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=

View File

@ -57,7 +57,7 @@
"editor-theming": {"assign": []},
"editor-wordnav": {"assign": ["alexdima"]},
"editor-wrapping": {"assign": ["alexdima"]},
"emmet": {"assign": []},
"emmet": {"assign": ["rzhao271"]},
"error-list": {"assign": ["sandy081"]},
"explorer-custom": {"assign": ["sandy081"]},
"extension-host": {"assign": []},
@ -172,7 +172,7 @@
"workbench-tabs": {"assign": ["bpasero"]},
"workbench-touchbar": {"assign": ["bpasero"]},
"workbench-views": {"assign": ["sbatten"]},
"workbench-welcome": {"assign": ["chrmarti"]},
"workbench-welcome": {"assign": ["JacksonKearl"]},
"workbench-window": {"assign": ["bpasero"]},
"workbench-zen": {"assign": ["isidorn"]},
"workspace-edit": {"assign": ["jrieken"]},

View File

@ -81,7 +81,7 @@
"type": "label",
"name": "*duplicate",
"action": "close",
"comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues [here](https://aka.ms/vscodeissuesearch). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
"comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues [here](${duplicateQuery}). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "comment",

View File

@ -1,6 +1,6 @@
<!-- Thank you for submitting a Pull Request. Please:
* Read our Pull Request guidelines:
https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests.
https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests
* Associate an issue with the Pull Request.
* Ensure that the code is up-to-date with the `master` branch.
* Include a description of the proposed changes and how to test them.

View File

@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'author-verification-requested')

36
.github/workflows/build-chat.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: "Build Chat"
on:
workflow_run:
workflows:
- CI
types:
- completed
branches:
- master
- release/*
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js 12.x
uses: actions/setup-node@v1.4.4
with:
node-version: "12.x"
- name: Build
run: yarn install && yarn run build
working-directory: .github/actions/build-chat
- name: Build Chat
uses: ./.github/actions/build-chat
with:
workflow_run_url: ${{ github.event.workflow_run.url }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
BUILD_CHAT_STORAGE_CONNECTION_STRING: ${{ secrets.BUILD_CHAT_STORAGE_CONNECTION_STRING }}

View File

@ -11,134 +11,269 @@ on:
- release/*
jobs:
# linux:
# runs-on: ubuntu-latest
# env:
# CHILD_CONCURRENCY: "1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/checkout@v1
# # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
# - run: |
# sudo apt-get update
# sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
# sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
# sudo chmod +x /etc/init.d/xvfb
# sudo update-rc.d xvfb defaults
# sudo service xvfb start
# name: Setup Build Environment
# - uses: actions/setup-node@v1
# with:
# node-version: 10
# # TODO: cache node modules
# - run: yarn --frozen-lockfile
# name: Install Dependencies
# - run: yarn electron x64
# name: Download Electron
# - run: yarn gulp hygiene
# name: Run Hygiene Checks
# - run: yarn monaco-compile-check
# name: Run Monaco Editor Checks
# - run: yarn valid-layers-check
# name: Run Valid Layers Checks
# - run: yarn compile
# name: Compile Sources
# - run: yarn download-builtin-extensions
# name: Download Built-in Extensions
# - run: DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
# name: Run Unit Tests (Electron)
# - run: DISPLAY=:10 yarn test-browser --browser chromium
# name: Run Unit Tests (Browser)
# - run: DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
# name: Run Integration Tests (Electron)
# windows:
# runs-on: windows-2016
# env:
# CHILD_CONCURRENCY: "1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/checkout@v1
# - uses: actions/setup-node@v1
# with:
# node-version: 10
# - uses: actions/setup-python@v1
# with:
# python-version: '2.x'
# - run: yarn --frozen-lockfile
# name: Install Dependencies
# - run: yarn electron
# name: Download Electron
# - run: yarn gulp hygiene
# name: Run Hygiene Checks
# - run: yarn monaco-compile-check
# name: Run Monaco Editor Checks
# - run: yarn valid-layers-check
# name: Run Valid Layers Checks
# - run: yarn compile
# name: Compile Sources
# - run: yarn download-builtin-extensions
# name: Download Built-in Extensions
# - run: .\scripts\test.bat --tfs "Unit Tests"
# name: Run Unit Tests (Electron)
# - run: yarn test-browser --browser chromium
# name: Run Unit Tests (Browser)
# - run: .\scripts\test-integration.bat --tfs "Integration Tests"
# name: Run Integration Tests (Electron)
# darwin:
# runs-on: macos-latest
# env:
# CHILD_CONCURRENCY: "1"
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# steps:
# - uses: actions/checkout@v1
# - uses: actions/setup-node@v1
# with:
# node-version: 10
# - run: yarn --frozen-lockfile
# name: Install Dependencies
# - run: yarn electron x64
# name: Download Electron
# - run: yarn gulp hygiene
# name: Run Hygiene Checks
# - run: yarn monaco-compile-check
# name: Run Monaco Editor Checks
# - run: yarn valid-layers-check
# name: Run Valid Layers Checks
# - run: yarn compile
# name: Compile Sources
# - run: yarn download-builtin-extensions
# name: Download Built-in Extensions
# - run: ./scripts/test.sh --tfs "Unit Tests"
# name: Run Unit Tests (Electron)
# - run: yarn test-browser --browser chromium --browser webkit
# name: Run Unit Tests (Browser)
# - run: ./scripts/test-integration.sh --tfs "Integration Tests"
# name: Run Integration Tests (Electron)
monaco:
runs-on: ubuntu-latest
windows:
name: Windows
runs-on: windows-latest
timeout-minutes: 30
env:
CHILD_CONCURRENCY: "1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 12
- uses: actions/setup-python@v2
with:
python-version: "2.x"
- name: Compute node modules cache key
id: nodeModulesCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
- name: Cache node_modules archive
id: cacheNodeModules
uses: actions/cache@v2
with:
path: ".build/node_modules_cache"
key: "${{ runner.os }}-cacheNodeModulesArchive-${{ steps.nodeModulesCacheKey.outputs.value }}"
- name: Extract node_modules archive
if: ${{ steps.cacheNodeModules.outputs.cache-hit == 'true' }}
run: 7z.exe x .build/node_modules_cache/cache.7z -aos
- name: Get yarn cache directory path
id: yarnCacheDirPath
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache yarn directory
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
uses: actions/cache@v2
with:
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-yarnCacheDir-
- name: Execute yarn
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
run: yarn --frozen-lockfile --network-timeout 180000
- name: Create node_modules archive
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
run: |
mkdir -Force .build
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
mkdir -Force .build/node_modules_cache
7z.exe a .build/node_modules_cache/cache.7z -mx3 `@.build/node_modules_list.txt
- name: Compile and Download
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
- name: Run Unit Tests (Electron)
run: .\scripts\test.bat
- name: Run Unit Tests (Browser)
run: yarn test-browser --browser chromium
- name: Run Integration Tests (Electron)
run: .\scripts\test-integration.bat
linux:
name: Linux
runs-on: ubuntu-latest
timeout-minutes: 30
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
# TODO: rename azure-pipelines/linux/xvfb.init to github-actions
- run: |
- name: Setup Build Environment
run: |
sudo apt-get update
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
sudo chmod +x /etc/init.d/xvfb
sudo update-rc.d xvfb defaults
sudo service xvfb start
name: Setup Build Environment
- uses: actions/setup-node@v1
- uses: actions/setup-node@v2
with:
node-version: 10
- run: yarn --frozen-lockfile
name: Install Dependencies
- run: yarn monaco-compile-check
name: Run Monaco Editor Checks
- run: yarn gulp editor-esm-bundle
name: Editor Distro & ESM Bundle
node-version: 12
- name: Compute node modules cache key
id: nodeModulesCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
- name: Cache node modules
id: cacheNodeModules
uses: actions/cache@v2
with:
path: "**/node_modules"
key: ${{ runner.os }}-cacheNodeModules11-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-cacheNodeModules11-
- name: Get yarn cache directory path
id: yarnCacheDirPath
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache yarn directory
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
uses: actions/cache@v2
with:
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-yarnCacheDir-
- name: Execute yarn
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
run: yarn --frozen-lockfile --network-timeout 180000
- name: Compile and Download
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
- name: Run Unit Tests (Electron)
id: electron-unit-tests
run: DISPLAY=:10 ./scripts/test.sh
- name: Run Unit Tests (Browser)
id: browser-unit-tests
run: DISPLAY=:10 yarn test-browser --browser chromium
- name: Run Integration Tests (Electron)
id: electron-integration-tests
run: DISPLAY=:10 ./scripts/test-integration.sh
darwin:
name: macOS
runs-on: macos-latest
timeout-minutes: 30
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 12
- name: Compute node modules cache key
id: nodeModulesCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
- name: Cache node modules
id: cacheNodeModules
uses: actions/cache@v2
with:
path: "**/node_modules"
key: ${{ runner.os }}-cacheNodeModules11-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-cacheNodeModules11-
- name: Get yarn cache directory path
id: yarnCacheDirPath
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache yarn directory
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
uses: actions/cache@v2
with:
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-yarnCacheDir-
- name: Execute yarn
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
run: yarn --frozen-lockfile --network-timeout 180000
- name: Compile and Download
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
- name: Run Unit Tests (Electron)
run: DISPLAY=:10 ./scripts/test.sh
- name: Run Unit Tests (Browser)
run: DISPLAY=:10 yarn test-browser --browser chromium
- name: Run Integration Tests (Electron)
run: DISPLAY=:10 ./scripts/test-integration.sh
hygiene:
name: Hygiene, Layering and Monaco Editor
runs-on: ubuntu-latest
timeout-minutes: 30
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 12
- name: Compute node modules cache key
id: nodeModulesCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
- name: Cache node modules
id: cacheNodeModules
uses: actions/cache@v2
with:
path: "**/node_modules"
key: ${{ runner.os }}-cacheNodeModules11-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-cacheNodeModules11-
- name: Get yarn cache directory path
id: yarnCacheDirPath
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache yarn directory
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
uses: actions/cache@v2
with:
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
restore-keys: ${{ runner.os }}-yarnCacheDir-
- name: Execute yarn
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
run: yarn --frozen-lockfile --network-timeout 180000
- name: Run Hygiene Checks
run: yarn gulp hygiene
- name: Run Valid Layers Checks
run: yarn valid-layers-check
- name: Run Monaco Editor Checks
run: yarn monaco-compile-check
- name: Editor Distro & ESM Bundle
run: yarn gulp editor-esm-bundle
- name: Typings validation prep
run: |
mkdir typings-test
- name: Typings validation
working-directory: ./typings-test
run: |
yarn init -yp
../node_modules/.bin/tsc --init
echo "import '../out-monaco-editor-core';" > a.ts
../node_modules/.bin/tsc --noEmit
- name: Webpack Editor
working-directory: ./test/monaco
run: yarn run bundle
- name: Compile Editor Tests
working-directory: ./test/monaco
run: yarn run compile
- name: Download Playwright
run: yarn playwright-install
- name: Run Editor Tests
timeout-minutes: 5
working-directory: ./test/monaco
run: yarn test

View File

@ -13,7 +13,7 @@ jobs:
with:
repository: "microsoft/vscode-github-triage-actions"
path: ./actions
ref: v41
ref: v42
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run Commands

View File

@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions

View File

@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions

View File

@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions

View File

@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
if: contains(github.event.issue.labels.*.name, '*english-please')

View File

@ -18,7 +18,7 @@ jobs:
with:
repository: "microsoft/vscode-github-triage-actions"
path: ./actions
ref: v41
ref: v42
- name: Install Actions
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'feature-request')
run: npm install --production --prefix ./actions

View File

@ -14,7 +14,7 @@ jobs:
with:
repository: "microsoft/vscode-github-triage-actions"
path: ./actions
ref: v41
ref: v42
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Install Storage Module

View File

@ -14,7 +14,7 @@ jobs:
with:
repository: "microsoft/vscode-github-triage-actions"
path: ./actions
ref: v41
ref: v42
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run Locker

View File

@ -14,7 +14,7 @@ jobs:
with:
repository: "microsoft/vscode-github-triage-actions"
path: ./actions
ref: v41
ref: v42
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run Needs More Info Closer

View File

@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions

View File

@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions

View File

@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: v41
ref: v42
path: ./actions
- name: Checkout Repo
if: github.event_name != 'issues'

View File

@ -14,7 +14,7 @@ jobs:
with:
repository: "microsoft/vscode-github-triage-actions"
path: ./actions
ref: v41
ref: v42
- name: Install Actions
if: contains(github.event.issue.labels.*.name, 'testplan-item') || contains(github.event.issue.labels.*.name, 'invalid-testplan-item')
run: npm install --production --prefix ./actions

22
.gitignore vendored
View File

@ -5,26 +5,8 @@ Thumbs.db
node_modules/
.build/
extensions/**/dist/
out/
out-build/
out-editor/
out-editor-src/
out-editor-build/
out-editor-esm/
out-editor-esm-bundle/
out-editor-min/
out-monaco-editor-core/
out-vscode/
out-vscode-min/
out-vscode-reh/
out-vscode-reh-min/
out-vscode-reh-pkg/
out-vscode-reh-web/
out-vscode-reh-web-min/
out-vscode-reh-web-pkg/
out-vscode-web/
out-vscode-web-min/
out-vscode-web-pkg/
/out*/
/extensions/**/out/
src/vs/server
resources/server
build/node_modules

View File

@ -3,7 +3,6 @@
// for the documentation about the extensions.json format
"recommendations": [
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"msjsdiag.debugger-for-chrome"
"EditorConfig.EditorConfig"
]
}

22
.vscode/launch.json vendored
View File

@ -203,7 +203,7 @@
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch VS Code",
"name": "Launch VS Code Internal",
"windows": {
"runtimeExecutable": "${workspaceFolder}/scripts/code.bat"
},
@ -235,7 +235,9 @@
"${workspaceFolder}/out/**/*.js"
],
"browserLaunchLocation": "workspace",
"preLaunchTask": "Ensure Prelaunch Dependencies",
"presentation": {
"hidden": true,
}
},
{
"type": "node",
@ -472,7 +474,7 @@
"name": "VS Code",
"stopAll": true,
"configurations": [
"Launch VS Code",
"Launch VS Code Internal",
"Attach to Main Process",
"Attach to Extension Host",
"Attach to Shared Process",
@ -486,7 +488,7 @@
{
"name": "Search and Renderer processes",
"configurations": [
"Launch VS Code",
"Launch VS Code Internal",
"Attach to Search Process"
],
"presentation": {
@ -497,7 +499,7 @@
{
"name": "Renderer and Extension Host processes",
"configurations": [
"Launch VS Code",
"Launch VS Code Internal",
"Attach to Extension Host"
],
"presentation": {
@ -526,6 +528,14 @@
"group": "1_vscode",
"order": 2
}
}
},
{
"name": "Launch VS Code",
"stopAll": true,
"configurations": [
"Launch VS Code Internal",
],
"preLaunchTask": "Ensure Prelaunch Dependencies"
},
]
}

View File

@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"November 2020\"",
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"January 2021\"",
"editable": true
},
{

View File

@ -8,8 +8,8 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server\n\n$MILESTONE=milestone:\"November 2020\"",
"editable": false
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-emmet-helper\n\n$MILESTONE=milestone:\"January 2021\"",
"editable": true
},
{
"kind": 1,
@ -92,7 +92,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS $MILESTONE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
"value": "$REPOS $MILESTONE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found -label:z-author-verified -label:unreleased",
"editable": true
},
{
@ -104,7 +104,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS $MILESTONE label:candidate",
"value": "$REPOS $MILESTONE is:open label:candidate",
"editable": true
}
]

View File

@ -8,8 +8,8 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server\n\n$MILESTONE=milestone:\"November 2020\"\n\n$MINE=assignee:@me",
"editable": false
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server\n\n$MILESTONE=milestone:\"January 2021\"\n\n$MINE=assignee:@me",
"editable": true
},
{
"kind": 1,
@ -176,7 +176,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
"editable": true
},
{
@ -188,7 +188,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found -author:aeschli -author:alexdima -author:alexr00 -author:AmandaSilver -author:bamurtaugh -author:bpasero -author:btholt -author:chrisdias -author:chrmarti -author:Chuxel -author:connor4312 -author:dbaeumer -author:deepak1556 -author:devinvalenciano -author:digitarald -author:eamodio -author:egamma -author:fiveisprime -author:gregvanl -author:isidorn -author:ItalyPaleAle -author:JacksonKearl -author:joaomoreno -author:jrieken -author:kieferrm -author:lszomoru -author:meganrogge -author:misolori -author:mjbvz -author:ornellaalt -author:orta -author:rebornix -author:RMacfarlane -author:roblourens -author:rzhao271 -author:sana-ajani -author:sandy081 -author:sbatten -author:stevencl -author:Tyriar -author:weinand",
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found -author:aeschli -author:alexdima -author:alexr00 -author:AmandaSilver -author:bamurtaugh -author:bpasero -author:btholt -author:chrisdias -author:chrmarti -author:Chuxel -author:connor4312 -author:dbaeumer -author:deepak1556 -author:devinvalenciano -author:digitarald -author:eamodio -author:egamma -author:fiveisprime -author:gregvanl -author:isidorn -author:ItalyPaleAle -author:JacksonKearl -author:joaomoreno -author:jrieken -author:kieferrm -author:lszomoru -author:meganrogge -author:misolori -author:mjbvz -author:ornellaalt -author:orta -author:rebornix -author:RMacfarlane -author:roblourens -author:rzhao271 -author:sana-ajani -author:sandy081 -author:sbatten -author:stevencl -author:Tyriar -author:weinand -author:TylerLeonhardt -author:lramos15",
"editable": true
},
{
@ -200,7 +200,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed -author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed -author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
"editable": true
},
{

View File

@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog\n\n// current milestone name\n$milestone=milestone:\"November 2020\"",
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog\n\n// current milestone name\n$milestone=milestone:\"January 2021\"",
"editable": true
},
{
@ -83,6 +83,24 @@
"value": "$repos assignee:@me is:open milestone:\"Backlog Candidates\"",
"editable": false
},
{
"kind": 1,
"language": "markdown",
"value": "### Personal Inbox\n",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "\n#### Missing Type label",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repos assignee:@me is:open type:issue -label:bug -label:\"needs more info\" -label:feature-request -label:under-discussion -label:debt -label:plan-item -label:upstream",
"editable": true
},
{
"kind": 1,
"language": "markdown",

View File

@ -0,0 +1,44 @@
[
{
"kind": 1,
"language": "markdown",
"value": "## Papercuts\n\nThis notebook serves as an ongoing collection of paper cut issues that we encounter while dogfooding. With that in mind only promote issues that really turn you off, e.g issues that make you wanna stop use VS Code or its extensions. To mark an issue (bug, feature-request, etc) as paper cut add the labels: `papercut :drop_of_blood:`",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "## All Papercuts\n\nThese are all papercut issues that we encounter while dogfoodingf vscode or extensions that we author. ",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "repo:microsoft/vscode is:open -label:notebook label:\"papercut :drop_of_blood:\"",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "## Native Notebook",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "repo:microsoft/vscode is:open label:notebook label:\"papercut :drop_of_blood:\"",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "### My Papercuts",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "repo:microsoft/vscode is:open assignee:@me label:\"papercut :drop_of_blood:\"",
"editable": true
}
]

View File

@ -14,7 +14,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"November 2020\"",
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"January 2021\"",
"editable": true
},
{

View File

@ -71,10 +71,12 @@
"files.insertFinalNewline": false,
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.formatOnSave": true,
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.formatOnSave": true,
},
"typescript.tsc.autoDetect": "off"
}

8
.vscode/tasks.json vendored
View File

@ -62,7 +62,8 @@
"group": {
"kind": "build",
"isDefault": true
}
},
"problemMatcher": []
},
{
"type": "npm",
@ -90,7 +91,8 @@
"Kill Build VS Code Core",
"Kill Build VS Code Extensions"
],
"group": "build"
"group": "build",
"problemMatcher": []
},
{
"type": "npm",
@ -203,7 +205,7 @@
"base": "$tsc",
"applyTo": "allDocuments",
"owner": "tsec"
},
}
],
"group": "build",
"label": "npm: tsec-compile-check",

View File

@ -1,3 +1,3 @@
disturl "https://electronjs.org/headers"
target "9.3.5"
target "11.2.1"
runtime "electron"

View File

@ -1,5 +1,4 @@
# Visual Studio Code - Open Source ("Code - OSS")
[![Build Status](https://dev.azure.com/vscode/VSCode/_apis/build/status/VS%20Code?branchName=master)](https://aka.ms/vscode-builds)
[![Feature Requests](https://img.shields.io/github/issues/microsoft/vscode/feature-request.svg)](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc)
[![Bugs](https://img.shields.io/github/issues/microsoft/vscode/bug.svg)](https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug)
[![Gitter](https://img.shields.io/badge/chat-on%20gitter-yellow.svg)](https://gitter.im/Microsoft/vscode)

View File

@ -28,23 +28,23 @@ This project incorporates components from the projects listed below. The origina
21. Ionic documentation version 1.2.4 (https://github.com/ionic-team/ionic-site)
22. ionide/ionide-fsgrammar (https://github.com/ionide/ionide-fsgrammar)
23. jeff-hykin/cpp-textmate-grammar version 1.12.11 (https://github.com/jeff-hykin/cpp-textmate-grammar)
24. jeff-hykin/cpp-textmate-grammar version 1.15.3 (https://github.com/jeff-hykin/cpp-textmate-grammar)
24. jeff-hykin/cpp-textmate-grammar version 1.15.5 (https://github.com/jeff-hykin/cpp-textmate-grammar)
25. js-beautify version 1.6.8 (https://github.com/beautify-web/js-beautify)
26. Jxck/assert version 1.0.0 (https://github.com/Jxck/assert)
27. language-docker (https://github.com/moby/moby)
28. language-less version 0.34.2 (https://github.com/atom/language-less)
29. language-php version 0.44.5 (https://github.com/atom/language-php)
29. language-php version 0.46.0 (https://github.com/atom/language-php)
30. MagicStack/MagicPython version 1.1.1 (https://github.com/MagicStack/MagicPython)
31. marked version 1.1.0 (https://github.com/markedjs/marked)
32. mdn-data version 1.1.12 (https://github.com/mdn/data)
33. microsoft/TypeScript-TmLanguage version 0.0.1 (https://github.com/microsoft/TypeScript-TmLanguage)
34. microsoft/vscode-JSON.tmLanguage (https://github.com/microsoft/vscode-JSON.tmLanguage)
35. microsoft/vscode-markdown-tm-grammar (https://github.com/microsoft/vscode-markdown-tm-grammar)
35. microsoft/vscode-markdown-tm-grammar version 1.0.0 (https://github.com/microsoft/vscode-markdown-tm-grammar)
36. microsoft/vscode-mssql version 1.9.0 (https://github.com/microsoft/vscode-mssql)
37. mmims/language-batchfile version 0.7.5 (https://github.com/mmims/language-batchfile)
38. octref/language-css version 0.42.11 (https://github.com/octref/language-css)
39. PowerShell/EditorSyntax version 1.0.0 (https://github.com/PowerShell/EditorSyntax)
40. rust-syntax version 0.2.13 (https://github.com/dustypomerleau/rust-syntax)
40. rust-syntax version 0.4.3 (https://github.com/dustypomerleau/rust-syntax)
41. seti-ui version 0.1.0 (https://github.com/jesseweed/seti-ui)
42. shaders-tmLanguage version 0.1.0 (https://github.com/tgjones/shaders-tmLanguage)
43. textmate/asp.vb.net.tmbundle (https://github.com/textmate/asp.vb.net.tmbundle)
@ -64,7 +64,7 @@ This project incorporates components from the projects listed below. The origina
57. TypeScript-TmLanguage version 1.0.0 (https://github.com/microsoft/TypeScript-TmLanguage)
58. Unicode version 12.0.0 (https://home.unicode.org/)
59. vscode-codicons version 0.0.1 (https://github.com/microsoft/vscode-codicons)
60. vscode-logfile-highlighter version 2.8.0 (https://github.com/emilast/vscode-logfile-highlighter)
60. vscode-logfile-highlighter version 2.9.0 (https://github.com/emilast/vscode-logfile-highlighter)
61. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift)
62. Web Background Synchronization (https://github.com/WICG/background-sync)

View File

@ -1,23 +0,0 @@
jobs:
- job: Windows
pool:
vmImage: VS2017-Win2016
steps:
- template: build/azure-pipelines/win32/continuous-build-win32.yml
- job: Linux
pool:
vmImage: 'Ubuntu-16.04'
steps:
- template: build/azure-pipelines/linux/continuous-build-linux.yml
- job: macOS
pool:
vmImage: macOS-latest
steps:
- template: build/azure-pipelines/darwin/continuous-build-darwin.yml
trigger:
branches:
exclude:
- electron-11.x.y

View File

@ -1 +1 @@
2020-11-30T16:21:34.566Z
2021-01-28T11:52:11.376Z

3
build/.gitignore vendored
View File

@ -1,3 +0,0 @@
azure-pipelines/**/*.js
darwin/**/*.js
lib/**/*.js

View File

@ -1,2 +0,0 @@
node_modules/
*.js

View File

@ -0,0 +1,25 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const path = require("path");
const crypto = require("crypto");
const { dirs } = require('../../npm/dirs');
const ROOT = path.join(__dirname, '../../../');
const shasum = crypto.createHash('sha1');
shasum.update(fs.readFileSync(path.join(ROOT, 'build/.cachesalt')));
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
// Add `yarn.lock` files
for (let dir of dirs) {
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
shasum.update(fs.readFileSync(yarnLockPath));
}
// Add any other command line arguments
for (let i = 2; i < process.argv.length; i++) {
shasum.update(process.argv[i]);
}
process.stdout.write(shasum.digest('hex'));

View File

@ -0,0 +1,32 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as fs from 'fs';
import * as path from 'path';
import * as crypto from 'crypto';
const { dirs } = require('../../npm/dirs');
const ROOT = path.join(__dirname, '../../../');
const shasum = crypto.createHash('sha1');
shasum.update(fs.readFileSync(path.join(ROOT, 'build/.cachesalt')));
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
// Add `yarn.lock` files
for (let dir of dirs) {
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
shasum.update(fs.readFileSync(yarnLockPath));
}
// Add any other command line arguments
for (let i = 2; i < process.argv.length; i++) {
shasum.update(process.argv[i]);
}
process.stdout.write(shasum.digest('hex'));

View File

@ -0,0 +1,94 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const crypto = require("crypto");
const azure = require("azure-storage");
const mime = require("mime");
const cosmos_1 = require("@azure/cosmos");
const retry_1 = require("./retry");
if (process.argv.length !== 6) {
console.error('Usage: node createAsset.js PLATFORM TYPE NAME FILE');
process.exit(-1);
}
function hashStream(hashName, stream) {
return new Promise((c, e) => {
const shasum = crypto.createHash(hashName);
stream
.on('data', shasum.update.bind(shasum))
.on('error', e)
.on('close', () => c(shasum.digest('hex')));
});
}
async function doesAssetExist(blobService, quality, blobName) {
const existsResult = await new Promise((c, e) => blobService.doesBlobExist(quality, blobName, (err, r) => err ? e(err) : c(r)));
return existsResult.exists;
}
async function uploadBlob(blobService, quality, blobName, filePath, fileName) {
const blobOptions = {
contentSettings: {
contentType: mime.lookup(filePath),
contentDisposition: `attachment; filename="${fileName}"`,
cacheControl: 'max-age=31536000, public'
}
};
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(quality, blobName, filePath, blobOptions, err => err ? e(err) : c()));
}
function getEnv(name) {
const result = process.env[name];
if (typeof result === 'undefined') {
throw new Error('Missing env: ' + name);
}
return result;
}
async function main() {
const [, , platform, type, fileName, filePath] = process.argv;
const quality = getEnv('VSCODE_QUALITY');
const commit = getEnv('BUILD_SOURCEVERSION');
console.log('Creating asset...');
const stat = await new Promise((c, e) => fs.stat(filePath, (err, stat) => err ? e(err) : c(stat)));
const size = stat.size;
console.log('Size:', size);
const stream = fs.createReadStream(filePath);
const [sha1hash, sha256hash] = await Promise.all([hashStream('sha1', stream), hashStream('sha256', stream)]);
console.log('SHA1:', sha1hash);
console.log('SHA256:', sha256hash);
const blobName = commit + '/' + fileName;
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2'];
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2'])
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
const blobExists = await doesAssetExist(blobService, quality, blobName);
if (blobExists) {
console.log(`Blob ${quality}, ${blobName} already exists, not publishing again.`);
return;
}
console.log('Uploading blobs to Azure storage...');
await uploadBlob(blobService, quality, blobName, filePath, fileName);
console.log('Blobs successfully uploaded.');
const asset = {
platform,
type,
url: `${process.env['AZURE_CDN_URL']}/${quality}/${blobName}`,
hash: sha1hash,
sha256hash,
size
};
// Remove this if we ever need to rollback fast updates for windows
if (/win32/.test(platform)) {
asset.supportsFastUpdate = true;
}
console.log('Asset:', JSON.stringify(asset, null, ' '));
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
const scripts = client.database('builds').container(quality).scripts;
await retry_1.retry(() => scripts.storedProcedure('createAsset').execute('', [commit, asset, true]));
}
main().then(() => {
console.log('Asset successfully created');
process.exit(0);
}, err => {
console.error(err);
process.exit(1);
});

View File

@ -0,0 +1,51 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const cosmos_1 = require("@azure/cosmos");
const retry_1 = require("./retry");
if (process.argv.length !== 3) {
console.error('Usage: node createBuild.js VERSION');
process.exit(-1);
}
function getEnv(name) {
const result = process.env[name];
if (typeof result === 'undefined') {
throw new Error('Missing env: ' + name);
}
return result;
}
async function main() {
const [, , _version] = process.argv;
const quality = getEnv('VSCODE_QUALITY');
const commit = getEnv('BUILD_SOURCEVERSION');
const queuedBy = getEnv('BUILD_QUEUEDBY');
const sourceBranch = getEnv('BUILD_SOURCEBRANCH');
const version = _version + (quality === 'stable' ? '' : `-${quality}`);
console.log('Creating build...');
console.log('Quality:', quality);
console.log('Version:', version);
console.log('Commit:', commit);
const build = {
id: commit,
timestamp: (new Date()).getTime(),
version,
isReleased: false,
sourceBranch,
queuedBy,
assets: [],
updates: {}
};
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
const scripts = client.database('builds').container(quality).scripts;
await retry_1.retry(() => scripts.storedProcedure('createBuild').execute('', [Object.assign(Object.assign({}, build), { _partitionKey: '' })]));
}
main().then(() => {
console.log('Build successfully created');
process.exit(0);
}, err => {
console.error(err);
process.exit(1);
});

View File

@ -10,8 +10,8 @@ git clone --depth 1 https://github.com/microsoft/vscode-node-debug2.git
git clone --depth 1 https://github.com/microsoft/vscode-node-debug.git
git clone --depth 1 https://github.com/microsoft/vscode-html-languageservice.git
git clone --depth 1 https://github.com/microsoft/vscode-json-languageservice.git
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
node $BUILD_SOURCESDIRECTORY/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
node $BUILD_SOURCESDIRECTORY/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry
mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json
mv config-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json

View File

@ -0,0 +1,14 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const retry_1 = require("./retry");
const { installBrowsersWithProgressBar } = require('playwright/lib/install/installer');
const playwrightPath = path.dirname(require.resolve('playwright'));
async function install() {
await retry_1.retry(() => installBrowsersWithProgressBar(playwrightPath));
}
install();

View File

@ -0,0 +1,15 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as path from 'path';
import { retry } from './retry';
const { installBrowsersWithProgressBar } = require('playwright/lib/install/installer');
const playwrightPath = path.dirname(require.resolve('playwright'));
async function install() {
await retry(() => installBrowsersWithProgressBar(playwrightPath));
}
install();

View File

@ -0,0 +1,40 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const path = require("path");
if (process.argv.length !== 3) {
console.error('Usage: node listNodeModules.js OUTPUT_FILE');
process.exit(-1);
}
const ROOT = path.join(__dirname, '../../../');
function findNodeModulesFiles(location, inNodeModules, result) {
const entries = fs.readdirSync(path.join(ROOT, location));
for (const entry of entries) {
const entryPath = `${location}/${entry}`;
if (/(^\/out)|(^\/src$)|(^\/.git$)|(^\/.build$)/.test(entryPath)) {
continue;
}
let stat;
try {
stat = fs.statSync(path.join(ROOT, entryPath));
}
catch (err) {
continue;
}
if (stat.isDirectory()) {
findNodeModulesFiles(entryPath, inNodeModules || (entry === 'node_modules'), result);
}
else {
if (inNodeModules) {
result.push(entryPath.substr(1));
}
}
}
}
const result = [];
findNodeModulesFiles('', false, result);
fs.writeFileSync(process.argv[2], result.join('\n') + '\n');

View File

@ -0,0 +1,46 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as fs from 'fs';
import * as path from 'path';
if (process.argv.length !== 3) {
console.error('Usage: node listNodeModules.js OUTPUT_FILE');
process.exit(-1);
}
const ROOT = path.join(__dirname, '../../../');
function findNodeModulesFiles(location: string, inNodeModules: boolean, result: string[]) {
const entries = fs.readdirSync(path.join(ROOT, location));
for (const entry of entries) {
const entryPath = `${location}/${entry}`;
if (/(^\/out)|(^\/src$)|(^\/.git$)|(^\/.build$)/.test(entryPath)) {
continue;
}
let stat: fs.Stats;
try {
stat = fs.statSync(path.join(ROOT, entryPath));
} catch (err) {
continue;
}
if (stat.isDirectory()) {
findNodeModulesFiles(entryPath, inNodeModules || (entry === 'node_modules'), result);
} else {
if (inNodeModules) {
result.push(entryPath.substr(1));
}
}
}
}
const result: string[] = [];
findNodeModulesFiles('', false, result);
fs.writeFileSync(process.argv[2], result.join('\n') + '\n');

View File

@ -0,0 +1,71 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const azure = require("azure-storage");
const mime = require("mime");
const minimist = require("minimist");
const path_1 = require("path");
const fileNames = [
'fake.html',
'host.js',
'index.html',
'main.js',
'service-worker.js'
];
async function assertContainer(blobService, container) {
await new Promise((c, e) => blobService.createContainerIfNotExists(container, { publicAccessLevel: 'blob' }, err => err ? e(err) : c()));
}
async function doesBlobExist(blobService, container, blobName) {
const existsResult = await new Promise((c, e) => blobService.doesBlobExist(container, blobName, (err, r) => err ? e(err) : c(r)));
return existsResult.exists;
}
async function uploadBlob(blobService, container, blobName, file) {
const blobOptions = {
contentSettings: {
contentType: mime.lookup(file),
cacheControl: 'max-age=31536000, public'
}
};
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(container, blobName, file, blobOptions, err => err ? e(err) : c()));
}
async function publish(commit, files) {
console.log('Publishing...');
console.log('Commit:', commit);
const storageAccount = process.env['AZURE_WEBVIEW_STORAGE_ACCOUNT'];
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_WEBVIEW_STORAGE_ACCESS_KEY'])
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
await assertContainer(blobService, commit);
for (const file of files) {
const blobName = path_1.basename(file);
const blobExists = await doesBlobExist(blobService, commit, blobName);
if (blobExists) {
console.log(`Blob ${commit}, ${blobName} already exists, not publishing again.`);
continue;
}
console.log('Uploading blob to Azure storage...');
await uploadBlob(blobService, commit, blobName, file);
}
console.log('Blobs successfully uploaded.');
}
function main() {
const commit = process.env['BUILD_SOURCEVERSION'];
if (!commit) {
console.warn('Skipping publish due to missing BUILD_SOURCEVERSION');
return;
}
const opts = minimist(process.argv.slice(2));
const [directory] = opts._;
const files = fileNames.map(fileName => path_1.join(directory, fileName));
publish(commit, files).catch(err => {
console.error(err);
process.exit(1);
});
}
if (process.argv.length < 3) {
console.error('Usage: node publish.js <directory>');
process.exit(-1);
}
main();

View File

@ -0,0 +1,50 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const cosmos_1 = require("@azure/cosmos");
const retry_1 = require("./retry");
function getEnv(name) {
const result = process.env[name];
if (typeof result === 'undefined') {
throw new Error('Missing env: ' + name);
}
return result;
}
function createDefaultConfig(quality) {
return {
id: quality,
frozen: false
};
}
async function getConfig(client, quality) {
const query = `SELECT TOP 1 * FROM c WHERE c.id = "${quality}"`;
const res = await client.database('builds').container('config').items.query(query).fetchAll();
if (res.resources.length === 0) {
return createDefaultConfig(quality);
}
return res.resources[0];
}
async function main() {
const commit = getEnv('BUILD_SOURCEVERSION');
const quality = getEnv('VSCODE_QUALITY');
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
const config = await getConfig(client, quality);
console.log('Quality config:', config);
if (config.frozen) {
console.log(`Skipping release because quality ${quality} is frozen.`);
return;
}
console.log(`Releasing build ${commit}...`);
const scripts = client.database('builds').container(quality).scripts;
await retry_1.retry(() => scripts.storedProcedure('releaseBuild').execute('', [commit]));
}
main().then(() => {
console.log('Build successfully released');
process.exit(0);
}, err => {
console.error(err);
process.exit(1);
});

View File

@ -0,0 +1,25 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.retry = void 0;
async function retry(fn) {
for (let run = 1; run <= 10; run++) {
try {
return await fn();
}
catch (err) {
if (!/ECONNRESET/.test(err.message)) {
throw err;
}
const millis = (Math.random() * 200) + (50 * Math.pow(1.5, run));
console.log(`Failed with ECONNRESET, retrying in ${millis}ms...`);
// maximum delay is 10th retry: ~3 seconds
await new Promise(c => setTimeout(c, millis));
}
}
throw new Error('Retried too many times');
}
exports.retry = retry;

View File

@ -0,0 +1,87 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const url = require("url");
const azure = require("azure-storage");
const mime = require("mime");
const cosmos_1 = require("@azure/cosmos");
const retry_1 = require("./retry");
function log(...args) {
console.log(...[`[${new Date().toISOString()}]`, ...args]);
}
function error(...args) {
console.error(...[`[${new Date().toISOString()}]`, ...args]);
}
if (process.argv.length < 3) {
error('Usage: node sync-mooncake.js <quality>');
process.exit(-1);
}
async function sync(commit, quality) {
log(`Synchronizing Mooncake assets for ${quality}, ${commit}...`);
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
const container = client.database('builds').container(quality);
const query = `SELECT TOP 1 * FROM c WHERE c.id = "${commit}"`;
const res = await container.items.query(query, {}).fetchAll();
if (res.resources.length !== 1) {
throw new Error(`No builds found for ${commit}`);
}
const build = res.resources[0];
log(`Found build for ${commit}, with ${build.assets.length} assets`);
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2'];
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2'])
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
const mooncakeBlobService = azure.createBlobService(storageAccount, process.env['MOONCAKE_STORAGE_ACCESS_KEY'], `${storageAccount}.blob.core.chinacloudapi.cn`)
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
// mooncake is fussy and far away, this is needed!
blobService.defaultClientRequestTimeoutInMs = 10 * 60 * 1000;
mooncakeBlobService.defaultClientRequestTimeoutInMs = 10 * 60 * 1000;
for (const asset of build.assets) {
try {
const blobPath = url.parse(asset.url).path;
if (!blobPath) {
throw new Error(`Failed to parse URL: ${asset.url}`);
}
const blobName = blobPath.replace(/^\/\w+\//, '');
log(`Found ${blobName}`);
if (asset.mooncakeUrl) {
log(` Already in Mooncake ✔️`);
continue;
}
const readStream = blobService.createReadStream(quality, blobName, undefined);
const blobOptions = {
contentSettings: {
contentType: mime.lookup(blobPath),
cacheControl: 'max-age=31536000, public'
}
};
const writeStream = mooncakeBlobService.createWriteStreamToBlockBlob(quality, blobName, blobOptions, undefined);
log(` Uploading to Mooncake...`);
await new Promise((c, e) => readStream.pipe(writeStream).on('finish', c).on('error', e));
log(` Updating build in DB...`);
const mooncakeUrl = `${process.env['MOONCAKE_CDN_URL']}${blobPath}`;
await retry_1.retry(() => container.scripts.storedProcedure('setAssetMooncakeUrl')
.execute('', [commit, asset.platform, asset.type, mooncakeUrl]));
log(` Done ✔️`);
}
catch (err) {
error(err);
}
}
log(`All done ✔️`);
}
function main() {
const commit = process.env['BUILD_SOURCEVERSION'];
if (!commit) {
error('Skipping publish due to missing BUILD_SOURCEVERSION');
return;
}
const quality = process.argv[2];
sync(commit, quality).catch(err => {
error(err);
process.exit(1);
});
}
main();

View File

@ -1,79 +0,0 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
versionSpec: "1.x"
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "vscode-build-cache"
- script: |
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "vscode-build-cache"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
- script: |
yarn electron x64
displayName: Download Electron
- script: |
yarn monaco-compile-check
displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- script: |
yarn compile
displayName: Compile Sources
- script: |
yarn download-builtin-extensions
displayName: Download Built-in Extensions
- script: |
./scripts/test.sh --tfs "Unit Tests"
displayName: Run Unit Tests (Electron)
- script: |
yarn test-browser --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
displayName: Run Unit Tests (Browser)
- script: |
./scripts/test-integration.sh --tfs "Integration Tests"
displayName: Run Integration Tests (Electron)
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-macos
targetPath: .build/crashes
displayName: "Publish Crash Reports"
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: "*-results.xml"
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
condition: succeededOrFailed()

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>

View File

@ -1,32 +1,7 @@
steps:
- script: |
mkdir -p .build
echo -n $BUILD_SOURCEVERSION > .build/commit
echo -n $VSCODE_QUALITY > .build/quality
echo -n $ENABLE_TERRAPIN > .build/terrapin
displayName: Prepare compilation cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
- script: |
set -e
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
versionSpec: "1.x"
versionSpec: "12.18.3"
- task: AzureKeyVault@1
displayName: "Azure Key Vault: Get Secrets"
@ -34,9 +9,21 @@ steps:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode
- task: DownloadPipelineArtifact@2
inputs:
artifact: Compilation
path: $(Build.ArtifactStagingDirectory)
displayName: Download compilation output
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'))
- script: |
set -e
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
displayName: Extract compilation output
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'))
- script: |
set -e
cat << EOF > ~/.netrc
machine github.com
login vscode
@ -55,40 +42,45 @@ steps:
- script: |
set -e
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
git merge $(node -p "require('./package.json').distro")
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
displayName: Merge distro
- script: |
npx https://aka.ms/enablesecurefeed standAlone
displayName: Switch to Terrapin packages
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
- script: |
echo -n $(VSCODE_ARCH) > .build/arch
mkdir -p .build
node build/azure-pipelines/common/computeNodeModulesCacheKey.js $VSCODE_ARCH $ENABLE_TERRAPIN > .build/yarnlockhash
displayName: Prepare yarn cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- task: Cache@2
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
- script: |
set -e
npm install -g node-gyp@7.1.0
tar -xzf .build/node_modules_cache/cache.tgz
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Extract node_modules cache
- script: |
set -e
npm install -g node-gyp@latest
node-gyp --version
displayName: Update node-gyp
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
npx https://aka.ms/enablesecurefeed standAlone
timeoutInMinutes: 5
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
displayName: Switch to Terrapin packages
- script: |
set -e
export npm_config_arch=$(VSCODE_ARCH)
export npm_config_node_gyp=$(which node-gyp)
export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
export CHILD_CONCURRENCY="1"
for i in {1..3}; do # try 3 times, for Terrapin
yarn --frozen-lockfile && break
@ -98,25 +90,19 @@ steps:
fi
echo "Yarn failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
set -e
export npm_config_arch=$(VSCODE_ARCH)
export npm_config_node_gyp=$(which node-gyp)
export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
ls /Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
mkdir -p .build/node_modules_cache
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Create node_modules archive
- script: |
set -e
@ -126,10 +112,21 @@ steps:
export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
ls /Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
yarn electron-rebuild
# remove once https://github.com/prebuild/prebuild-install/pull/140 is merged and found in keytar
cd ./node_modules/keytar
node-gyp rebuild
displayName: Rebuild native modules for ARM64
condition: eq(variables['VSCODE_ARCH'], 'arm64')
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'arm64'))
- download: current
artifact: vscode-darwin-x64
displayName: Download x64 artifact
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'universal'))
- download: current
artifact: vscode-darwin-arm64
displayName: Download arm64 artifact
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'universal'))
- script: |
set -e
@ -141,6 +138,7 @@ steps:
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-darwin-$(VSCODE_ARCH)-min-ci
displayName: Build
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'))
- script: |
set -e
@ -148,14 +146,23 @@ steps:
yarn gulp vscode-reh-darwin-min-ci
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-web-darwin-min-ci
displayName: Build reh
displayName: Build Server
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
- script: |
set -e
yarn electron $(VSCODE_ARCH)
displayName: Download Electron
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
unzip $(Pipeline.Workspace)/vscode-darwin-x64/VSCode-darwin-x64.zip -d $(agent.builddirectory)/vscode-x64
unzip $(Pipeline.Workspace)/vscode-darwin-arm64/VSCode-darwin-arm64.zip -d $(agent.builddirectory)/vscode-arm64
DEBUG=* node build/darwin/create-universal-app.js
displayName: Create Universal App
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'universal'))
- script: |
set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
displayName: Download Electron and Playwright
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
@ -167,17 +174,26 @@ steps:
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd $(agent.tempdirectory)/buildagent.keychain
VSCODE_ARCH="$(VSCODE_ARCH)" DEBUG=electron-osx-sign* node build/darwin/sign.js
displayName: Set Hardened Entitlements
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
./scripts/test.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn test-browser --build --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn --cwd test/integration/browser compile
displayName: Compile integration tests
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@ -191,13 +207,15 @@ steps:
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin" \
./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
./resources/server/test/test-web-integration.sh --browser webkit
displayName: Run integration tests (Browser)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@ -208,22 +226,29 @@ steps:
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin" \
./resources/server/test/test-remote-integration.sh
displayName: Run remote integration tests (Electron)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn --cwd test/smoke compile
displayName: Compile smoke tests
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME"
continueOnError: true
yarn smoketest-no-compile --build "$APP_ROOT/$APP_NAME"
timeoutInMinutes: 5
displayName: Run smoke tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
yarn smoketest --web --headless
continueOnError: true
yarn smoketest-no-compile --web --headless
timeoutInMinutes: 5
displayName: Run smoke tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@ -240,12 +265,13 @@ steps:
inputs:
testResultsFiles: "*-results.xml"
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
condition: succeededOrFailed()
condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
pushd $(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH) && zip -r -X -y $(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH).zip * && popd
displayName: Archive build
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
@ -270,10 +296,12 @@ steps:
]
SessionTimeout: 60
displayName: Codesign
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
zip -d $(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH).zip "*.pkg"
displayName: Clean Archive
displayName: Clean
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
@ -281,6 +309,7 @@ steps:
BUNDLE_IDENTIFIER=$(node -p "require(\"$APP_ROOT/$APP_NAME/Contents/Resources/app/product.json\").darwinBundleIdentifier")
echo "##vso[task.setvariable variable=BundleIdentifier]$BUNDLE_IDENTIFIER"
displayName: Export bundle identifier
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
@ -305,6 +334,7 @@ steps:
]
SessionTimeout: 60
displayName: Notarization
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
@ -312,7 +342,7 @@ steps:
APP_NAME="`ls $APP_ROOT | head -n 1`"
"$APP_ROOT/$APP_NAME/Contents/Resources/app/bin/code" --export-default-configuration=.build
displayName: Verify start after signing (export configuration)
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
@ -323,13 +353,29 @@ steps:
VSCODE_ARCH="$(VSCODE_ARCH)" \
./build/azure-pipelines/darwin/publish.sh
displayName: Publish
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/VSCode-darwin-$(VSCODE_ARCH).zip
artifact: vscode-darwin-$(VSCODE_ARCH)
displayName: Publish archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/vscode-server-darwin.zip
artifact: vscode-server-darwin-$(VSCODE_ARCH)
displayName: Publish server archive
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/vscode-server-darwin-web.zip
artifact: vscode-server-darwin-$(VSCODE_ARCH)-web
displayName: Publish web server archive
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
VSCODE_ARCH="$(VSCODE_ARCH)" \
yarn gulp upload-vscode-configuration
displayName: Upload configuration (for Bing settings search)
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false'))
continueOnError: true
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0

View File

@ -5,6 +5,7 @@ set -e
case $VSCODE_ARCH in
x64) ASSET_ID="darwin" ;;
arm64) ASSET_ID="darwin-arm64" ;;
universal) ASSET_ID="darwin-universal" ;;
esac
# publish the build

View File

@ -8,7 +8,7 @@ pr:
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: AzureKeyVault@1
displayName: "Azure Key Vault: Get Secrets"

View File

@ -2,11 +2,12 @@ pool:
vmImage: "Ubuntu-16.04"
trigger: none
pr: none
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: AzureKeyVault@1
displayName: "Azure Key Vault: Get Secrets"

View File

@ -22,7 +22,7 @@ SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web"
SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz"
SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME"
rm -rf $ROOT/vscode-server-*.tar.*
rm -rf $ROOT/vscode-server-*-web.tar.*
(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"

View File

@ -1,92 +0,0 @@
steps:
- script: |
set -e
sudo apt-get update
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
sudo chmod +x /etc/init.d/xvfb
sudo update-rc.d xvfb defaults
sudo service xvfb start
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
versionSpec: "1.x"
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "vscode-build-cache"
- script: |
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "vscode-build-cache"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
- script: |
yarn electron x64
displayName: Download Electron
- script: |
yarn gulp hygiene
displayName: Run Hygiene Checks
- script: |
yarn monaco-compile-check
displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- script: |
yarn compile
displayName: Compile Sources
- script: |
yarn download-builtin-extensions
displayName: Download Built-in Extensions
- script: |
DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
displayName: Run Unit Tests (Electron)
- script: |
DISPLAY=:10 yarn test-browser --browser chromium --tfs "Browser Unit Tests"
displayName: Run Unit Tests (Browser)
- script: |
DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
displayName: Run Integration Tests (Electron)
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-linux
targetPath: .build/crashes
displayName: "Publish Crash Reports"
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: "*-results.xml"
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
condition: succeededOrFailed()

View File

@ -1,28 +1,7 @@
steps:
- script: |
mkdir -p .build
echo -n $BUILD_SOURCEVERSION > .build/commit
echo -n $VSCODE_QUALITY > .build/quality
echo -n $ENABLE_TERRAPIN > .build/terrapin
displayName: Prepare compilation cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
- script: |
set -e
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@ -34,6 +13,17 @@ steps:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode
- task: DownloadPipelineArtifact@2
inputs:
artifact: Compilation
path: $(Build.ArtifactStagingDirectory)
displayName: Download compilation output
- script: |
set -e
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
displayName: Extract compilation output
- task: Docker@1
displayName: "Pull image"
inputs:
@ -45,7 +35,6 @@ steps:
- script: |
set -e
cat << EOF > ~/.netrc
machine github.com
login vscode
@ -58,30 +47,35 @@ steps:
- script: |
set -e
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
git merge $(node -p "require('./package.json').distro")
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
displayName: Merge distro
- script: |
npx https://aka.ms/enablesecurefeed standAlone
displayName: Switch to Terrapin packages
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
- script: |
echo -n "alpine" > .build/arch
mkdir -p .build
node build/azure-pipelines/common/computeNodeModulesCacheKey.js "alpine" $ENABLE_TERRAPIN > .build/yarnlockhash
displayName: Prepare yarn cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- task: Cache@2
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
- script: |
set -e
tar -xzf .build/node_modules_cache/cache.tgz
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Extract node_modules cache
- script: |
npx https://aka.ms/enablesecurefeed standAlone
timeoutInMinutes: 5
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
displayName: Switch to Terrapin packages
- script: |
set -e
export CHILD_CONCURRENCY="1"
for i in {1..3}; do # try 3 times, for Terrapin
yarn --frozen-lockfile && break
if [ $i -eq 3 ]; then
@ -90,21 +84,19 @@ steps:
fi
echo "Yarn failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
mkdir -p .build/node_modules_cache
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Create node_modules archive
- script: |
set -e
@ -113,7 +105,7 @@ steps:
- script: |
set -e
docker run -e VSCODE_QUALITY -e CHILD_CONCURRENCY=1 -v $(pwd):/root/vscode -v ~/.netrc:/root/.netrc vscodehub.azurecr.io/vscode-linux-build-agent:alpine /root/vscode/build/azure-pipelines/linux/alpine/install-dependencies.sh
docker run -e VSCODE_QUALITY -v $(pwd):/root/vscode -v ~/.netrc:/root/.netrc vscodehub.azurecr.io/vscode-linux-build-agent:alpine /root/vscode/build/azure-pipelines/linux/alpine/install-dependencies.sh
displayName: Prebuild
- script: |
@ -129,6 +121,17 @@ steps:
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
./build/azure-pipelines/linux/alpine/publish.sh
displayName: Publish
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/vscode-server-linux-alpine.tar.gz
artifact: vscode-server-linux-alpine
displayName: Publish server archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/vscode-server-linux-alpine-web.tar.gz
artifact: vscode-server-linux-alpine-web
displayName: Publish web server archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: "Component Detection"

View File

@ -1,28 +1,7 @@
steps:
- script: |
mkdir -p .build
echo -n $BUILD_SOURCEVERSION > .build/commit
echo -n $VSCODE_QUALITY > .build/quality
echo -n $ENABLE_TERRAPIN > .build/terrapin
displayName: Prepare compilation cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
- script: |
set -e
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@ -34,6 +13,17 @@ steps:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode
- task: DownloadPipelineArtifact@2
inputs:
artifact: Compilation
path: $(Build.ArtifactStagingDirectory)
displayName: Download compilation output
- script: |
set -e
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
displayName: Extract compilation output
- script: |
set -e
cat << EOF > ~/.netrc
@ -48,31 +38,56 @@ steps:
- script: |
set -e
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
git merge $(node -p "require('./package.json').distro")
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
displayName: Merge distro
- script: |
npx https://aka.ms/enablesecurefeed standAlone
displayName: Switch to Terrapin packages
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
- script: |
echo -n $(VSCODE_ARCH) > .build/arch
mkdir -p .build
node build/azure-pipelines/common/computeNodeModulesCacheKey.js $VSCODE_ARCH $ENABLE_TERRAPIN > .build/yarnlockhash
displayName: Prepare yarn cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- task: Cache@2
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
- script: |
set -e
tar -xzf .build/node_modules_cache/cache.tgz
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Extract node_modules cache
- script: |
set -e
npm install -g node-gyp@latest
node-gyp --version
displayName: Update node-gyp
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['VSCODE_ARCH'], 'x64'))
- script: |
npx https://aka.ms/enablesecurefeed standAlone
timeoutInMinutes: 5
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
displayName: Switch to Terrapin packages
- script: |
set -e
export npm_config_arch=$(NPM_ARCH)
export CHILD_CONCURRENCY="1"
export npm_config_build_from_source=true
if [ -z "$CC" ] || [ -z "$CXX" ]; then
export CC=$(which gcc-5)
export CXX=$(which g++-5)
fi
if [ "$VSCODE_ARCH" == "x64" ]; then
export VSCODE_REMOTE_CC=$(which gcc-4.8)
export VSCODE_REMOTE_CXX=$(which g++-4.8)
export VSCODE_REMOTE_NODE_GYP=$(which node-gyp)
fi
for i in {1..3}; do # try 3 times, for Terrapin
yarn --frozen-lockfile && break
if [ $i -eq 3 ]; then
@ -81,21 +96,23 @@ steps:
fi
echo "Yarn failed $i, trying again..."
done
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
# remove once https://github.com/prebuild/prebuild-install/pull/140 is merged and found in keytar
cd ./node_modules/keytar
npx node-gyp rebuild
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
mkdir -p .build/node_modules_cache
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Create node_modules archive
- script: |
set -e
@ -106,28 +123,41 @@ steps:
set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
displayName: Build
- script: |
set -e
service xvfb start
displayName: Start xvfb
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
displayName: Build Server
- script: |
set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
displayName: Download Electron and Playwright
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
yarn --cwd test/integration/browser compile
displayName: Compile integration tests
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@ -142,6 +172,7 @@ steps:
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@ -149,6 +180,7 @@ steps:
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
displayName: Run integration tests (Browser)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
@ -160,6 +192,7 @@ steps:
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
DISPLAY=:10 ./resources/server/test/test-remote-integration.sh
displayName: Run remote integration tests (Electron)
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
@ -182,17 +215,20 @@ steps:
yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-deb"
yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-rpm"
displayName: Build deb, rpm packages
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
displayName: Prepare snap package
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
# needed for code signing
- task: UseDotNet@2
displayName: "Install .NET Core SDK 2.x"
inputs:
version: 2.x
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
@ -212,6 +248,7 @@ steps:
]
SessionTimeout: 120
displayName: Codesign rpm
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
@ -221,12 +258,34 @@ steps:
VSCODE_ARCH="$(VSCODE_ARCH)" \
./build/azure-pipelines/linux/publish.sh
displayName: Publish
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(DEB_PATH)
artifact: vscode-linux-deb-$(VSCODE_ARCH)
displayName: Publish deb package
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(RPM_PATH)
artifact: vscode-linux-rpm-$(VSCODE_ARCH)
displayName: Publish rpm package
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/vscode-server-linux-$(VSCODE_ARCH).tar.gz
artifact: vscode-server-linux-$(VSCODE_ARCH)
displayName: Publish server archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(Agent.BuildDirectory)/vscode-server-linux-$(VSCODE_ARCH)-web.tar.gz
artifact: vscode-server-linux-$(VSCODE_ARCH)-web
displayName: Publish web server archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: PublishPipelineArtifact@0
displayName: "Publish Pipeline Artifact"
inputs:
artifactName: "snap-$(VSCODE_ARCH)"
targetPath: .build/linux/snap-tarball
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: "Component Detection"

View File

@ -26,6 +26,17 @@ rm -rf $ROOT/vscode-server-*.tar.*
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
# Publish Remote Extension Host (Web)
LEGACY_SERVER_BUILD_NAME="vscode-reh-web-$PLATFORM_LINUX"
SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web"
SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz"
SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME"
rm -rf $ROOT/vscode-server-*-web.tar.*
(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
# Publish DEB
case $VSCODE_ARCH in
x64) DEB_ARCH="amd64" ;;
@ -58,3 +69,7 @@ mkdir -p $REPO/.build/linux/snap-tarball
SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-$VSCODE_ARCH.tar.gz"
rm -rf $SNAP_TARBALL_PATH
(cd .build/linux && tar -czf $SNAP_TARBALL_PATH snap)
# Export DEB_PATH, RPM_PATH
echo "##vso[task.setvariable variable=DEB_PATH]$DEB_PATH"
echo "##vso[task.setvariable variable=RPM_PATH]$RPM_PATH"

View File

@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@ -54,3 +54,11 @@ steps:
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
node build/azure-pipelines/common/createAsset.js "linux-snap-$(VSCODE_ARCH)" package "$SNAP_FILENAME" "$SNAP_PATH"
# Export SNAP_PATH
echo "##vso[task.setvariable variable=SNAP_PATH]$SNAP_PATH"
- publish: $(SNAP_PATH)
artifact: vscode-linux-snap-$(VSCODE_ARCH)
displayName: Publish snap package
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))

View File

@ -0,0 +1,58 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const json = require("gulp-json-editor");
const buffer = require('gulp-buffer');
const filter = require("gulp-filter");
const es = require("event-stream");
const vfs = require("vinyl-fs");
const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
const fs = require("fs");
const path = require("path");
function main() {
const quality = process.env['VSCODE_QUALITY'];
if (!quality) {
console.log('Missing VSCODE_QUALITY, skipping mixin');
return;
}
const productJsonFilter = filter(f => f.relative === 'product.json', { restore: true });
fancyLog(ansiColors.blue('[mixin]'), `Mixing in sources:`);
return vfs
.src(`quality/${quality}/**`, { base: `quality/${quality}` })
.pipe(filter(f => !f.isDirectory()))
.pipe(productJsonFilter)
.pipe(buffer())
.pipe(json((o) => {
const ossProduct = JSON.parse(fs.readFileSync(path.join(__dirname, '..', '..', 'product.json'), 'utf8'));
let builtInExtensions = ossProduct.builtInExtensions;
if (Array.isArray(o.builtInExtensions)) {
fancyLog(ansiColors.blue('[mixin]'), 'Overwriting built-in extensions:', o.builtInExtensions.map(e => e.name));
builtInExtensions = o.builtInExtensions;
}
else if (o.builtInExtensions) {
const include = o.builtInExtensions['include'] || [];
const exclude = o.builtInExtensions['exclude'] || [];
fancyLog(ansiColors.blue('[mixin]'), 'OSS built-in extensions:', builtInExtensions.map(e => e.name));
fancyLog(ansiColors.blue('[mixin]'), 'Including built-in extensions:', include.map(e => e.name));
fancyLog(ansiColors.blue('[mixin]'), 'Excluding built-in extensions:', exclude);
builtInExtensions = builtInExtensions.filter(ext => !include.find(e => e.name === ext.name) && !exclude.find(name => name === ext.name));
builtInExtensions = [...builtInExtensions, ...include];
fancyLog(ansiColors.blue('[mixin]'), 'Final built-in extensions:', builtInExtensions.map(e => e.name));
}
else {
fancyLog(ansiColors.blue('[mixin]'), 'Inheriting OSS built-in extensions', builtInExtensions.map(e => e.name));
}
return Object.assign(Object.assign({ webBuiltInExtensions: ossProduct.webBuiltInExtensions }, o), { builtInExtensions });
}))
.pipe(productJsonFilter.restore)
.pipe(es.mapSync(function (f) {
fancyLog(ansiColors.blue('[mixin]'), f.relative, ansiColors.green('✔︎'));
return f;
}))
.pipe(vfs.dest('.'));
}
main();

View File

@ -1,4 +1,3 @@
trigger: none
pr: none
schedules:
@ -8,11 +7,108 @@ schedules:
include:
- master
parameters:
- name: VSCODE_QUALITY
displayName: Quality
type: string
default: insider
values:
- exploration
- insider
- stable
- name: ENABLE_TERRAPIN
displayName: "Enable Terrapin"
type: boolean
default: true
- name: VSCODE_BUILD_WIN32
displayName: "🎯 Windows x64"
type: boolean
default: true
- name: VSCODE_BUILD_WIN32_32BIT
displayName: "🎯 Windows ia32"
type: boolean
default: true
- name: VSCODE_BUILD_WIN32_ARM64
displayName: "🎯 Windows arm64"
type: boolean
default: true
- name: VSCODE_BUILD_LINUX
displayName: "🎯 Linux x64"
type: boolean
default: true
- name: VSCODE_BUILD_LINUX_ARM64
displayName: "🎯 Linux arm64"
type: boolean
default: true
- name: VSCODE_BUILD_LINUX_ARMHF
displayName: "🎯 Linux armhf"
type: boolean
default: true
- name: VSCODE_BUILD_LINUX_ALPINE
displayName: "🎯 Alpine Linux"
type: boolean
default: true
- name: VSCODE_BUILD_MACOS
displayName: "🎯 macOS x64"
type: boolean
default: true
- name: VSCODE_BUILD_MACOS_ARM64
displayName: "🎯 macOS arm64"
type: boolean
default: true
- name: VSCODE_BUILD_MACOS_UNIVERSAL
displayName: "🎯 macOS universal"
type: boolean
default: true
- name: VSCODE_BUILD_WEB
displayName: "🎯 Web"
type: boolean
default: true
- name: VSCODE_PUBLISH
displayName: "Publish to builds.code.visualstudio.com"
type: boolean
default: true
- name: VSCODE_RELEASE
displayName: "Release build if successful"
type: boolean
default: false
- name: VSCODE_COMPILE_ONLY
displayName: "Run Compile stage exclusively"
type: boolean
default: false
- name: VSCODE_STEP_ON_IT
displayName: "Skip tests"
type: boolean
default: false
variables:
- name: ENABLE_TERRAPIN
value: ${{ eq(parameters.ENABLE_TERRAPIN, true) }}
- name: VSCODE_QUALITY
value: ${{ parameters.VSCODE_QUALITY }}
- name: VSCODE_BUILD_STAGE_WINDOWS
value: ${{ or(eq(parameters.VSCODE_BUILD_WIN32, true), eq(parameters.VSCODE_BUILD_WIN32_32BIT, true), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}
- name: VSCODE_BUILD_STAGE_LINUX
value: ${{ or(eq(parameters.VSCODE_BUILD_LINUX, true), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true), eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true), eq(parameters.VSCODE_BUILD_WEB, true)) }}
- name: VSCODE_BUILD_STAGE_MACOS
value: ${{ or(eq(parameters.VSCODE_BUILD_MACOS, true), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}
- name: VSCODE_CIBUILD
value: ${{ in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI') }}
- name: VSCODE_PUBLISH
value: ${{ and(eq(parameters.VSCODE_PUBLISH, true), eq(variables.VSCODE_CIBUILD, false)) }}
- name: VSCODE_SCHEDULEDBUILD
value: ${{ eq(variables['Build.Reason'], 'Schedule') }}
- name: VSCODE_STEP_ON_IT
value: ${{ eq(parameters.VSCODE_STEP_ON_IT, true) }}
- name: VSCODE_BUILD_MACOS_UNIVERSAL
value: ${{ and(eq(variables['VSCODE_PUBLISH'], true), eq(parameters.VSCODE_BUILD_MACOS, true), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true), eq(parameters.VSCODE_BUILD_MACOS_UNIVERSAL, true)) }}
resources:
containers:
- container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:bionic-x64
endpoint: VSCodeHub
options: --user 0:0
- container: vscode-arm64
image: vscodehub.azurecr.io/vscode-linux-build-agent:stretch-arm64
endpoint: VSCodeHub
@ -26,177 +122,189 @@ stages:
- stage: Compile
jobs:
- job: Compile
pool:
vmImage: "Ubuntu-16.04"
container: vscode-x64
pool: compile
variables:
VSCODE_ARCH: x64
steps:
- template: product-compile.yml
- stage: Windows
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: VS2017-Win2016
jobs:
- job: Windows
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
timeoutInMinutes: 90
variables:
VSCODE_ARCH: x64
steps:
- template: win32/product-build-win32.yml
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true)) }}:
- stage: Windows
dependsOn:
- Compile
pool:
vmImage: VS2017-Win2016
jobs:
- job: Windows32
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
timeoutInMinutes: 90
variables:
VSCODE_ARCH: ia32
steps:
- template: win32/product-build-win32.yml
- ${{ if eq(parameters.VSCODE_BUILD_WIN32, true) }}:
- job: Windows
timeoutInMinutes: 90
variables:
VSCODE_ARCH: x64
steps:
- template: win32/product-build-win32.yml
- job: WindowsARM64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
timeoutInMinutes: 90
variables:
VSCODE_ARCH: arm64
steps:
- template: win32/product-build-win32.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32_32BIT, true)) }}:
- job: Windows32
timeoutInMinutes: 90
variables:
VSCODE_ARCH: ia32
steps:
- template: win32/product-build-win32.yml
- stage: Linux
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: "Ubuntu-16.04"
jobs:
- job: Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: vscode-x64
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
steps:
- template: linux/product-build-linux.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:
- job: WindowsARM64
timeoutInMinutes: 90
variables:
VSCODE_ARCH: arm64
steps:
- template: win32/product-build-win32.yml
- job: LinuxSnap
dependsOn:
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_LINUX'], true)) }}:
- stage: Linux
dependsOn:
- Compile
pool:
vmImage: "Ubuntu-18.04"
jobs:
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
- job: Linux
container: vscode-x64
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
steps:
- template: linux/product-build-linux.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX, true)) }}:
- job: LinuxSnap
dependsOn:
- Linux
container: snapcraft
variables:
VSCODE_ARCH: x64
steps:
- template: linux/snap-build-linux.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:
- job: LinuxArmhf
container: vscode-armhf
variables:
VSCODE_ARCH: armhf
NPM_ARCH: armv7l
steps:
- template: linux/product-build-linux.yml
# TODO@joaomoreno: We don't ship ARM snaps for now
- ${{ if and(false, eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:
- job: LinuxSnapArmhf
dependsOn:
- LinuxArmhf
container: snapcraft
variables:
VSCODE_ARCH: armhf
steps:
- template: linux/snap-build-linux.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}:
- job: LinuxArm64
container: vscode-arm64
variables:
VSCODE_ARCH: arm64
NPM_ARCH: arm64
steps:
- template: linux/product-build-linux.yml
# TODO@joaomoreno: We don't ship ARM snaps for now
- ${{ if and(false, eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}:
- job: LinuxSnapArm64
dependsOn:
- LinuxArm64
container: snapcraft
variables:
VSCODE_ARCH: arm64
steps:
- template: linux/snap-build-linux.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true)) }}:
- job: LinuxAlpine
steps:
- template: linux/product-build-alpine.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WEB, true)) }}:
- job: LinuxWeb
variables:
VSCODE_ARCH: x64
steps:
- template: web/product-build-web.yml
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_MACOS'], true)) }}:
- stage: macOS
dependsOn:
- Compile
pool:
vmImage: macOS-latest
jobs:
- ${{ if eq(parameters.VSCODE_BUILD_MACOS, true) }}:
- job: macOS
timeoutInMinutes: 90
variables:
VSCODE_ARCH: x64
steps:
- template: darwin/product-build-darwin.yml
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}:
- job: macOSARM64
timeoutInMinutes: 90
variables:
VSCODE_ARCH: arm64
steps:
- template: darwin/product-build-darwin.yml
- ${{ if eq(variables['VSCODE_BUILD_MACOS_UNIVERSAL'], true) }}:
- job: macOSUniversal
dependsOn:
- macOS
- macOSARM64
timeoutInMinutes: 90
variables:
VSCODE_ARCH: universal
steps:
- template: darwin/product-build-darwin.yml
- ${{ if and(eq(variables['VSCODE_PUBLISH'], true), eq(parameters.VSCODE_COMPILE_ONLY, false)) }}:
- stage: Mooncake
dependsOn:
- ${{ if eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true) }}:
- Windows
- ${{ if eq(variables['VSCODE_BUILD_STAGE_LINUX'], true) }}:
- Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: snapcraft
variables:
VSCODE_ARCH: x64
steps:
- template: linux/snap-build-linux.yml
- ${{ if eq(variables['VSCODE_BUILD_STAGE_MACOS'], true) }}:
- macOS
condition: succeededOrFailed()
pool:
vmImage: "Ubuntu-18.04"
jobs:
- job: SyncMooncake
displayName: Sync Mooncake
steps:
- template: sync-mooncake.yml
- job: LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
container: vscode-armhf
variables:
VSCODE_ARCH: armhf
NPM_ARCH: armv7l
steps:
- template: linux/product-build-linux.yml
- job: LinuxSnapArmhf
dependsOn:
- LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
container: snapcraft
variables:
VSCODE_ARCH: armhf
steps:
- template: linux/snap-build-linux.yml
- job: LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
container: vscode-arm64
variables:
VSCODE_ARCH: arm64
NPM_ARCH: arm64
steps:
- template: linux/product-build-linux.yml
- job: LinuxSnapArm64
dependsOn:
- LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
container: snapcraft
variables:
VSCODE_ARCH: arm64
steps:
- template: linux/snap-build-linux.yml
- job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
steps:
- template: linux/product-build-alpine.yml
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WEB'], 'true'))
variables:
VSCODE_ARCH: x64
steps:
- template: web/product-build-web.yml
- stage: macOS
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: macOS-latest
jobs:
- job: macOS
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
timeoutInMinutes: 90
variables:
VSCODE_ARCH: x64
steps:
- template: darwin/product-build-darwin.yml
- stage: macOSARM64
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: macOS-latest
jobs:
- job: macOSARM64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS_ARM64'], 'true'))
timeoutInMinutes: 90
variables:
VSCODE_ARCH: arm64
steps:
- template: darwin/product-build-darwin.yml
- stage: Mooncake
dependsOn:
- Windows
- Linux
- macOS
- macOSARM64
condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: "Ubuntu-16.04"
jobs:
- job: SyncMooncake
displayName: Sync Mooncake
steps:
- template: sync-mooncake.yml
- stage: Publish
dependsOn:
- Windows
- Linux
- macOS
- macOSARM64
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
pool:
vmImage: "Ubuntu-16.04"
jobs:
- job: BuildService
displayName: Build Service
steps:
- template: release.yml
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), or(eq(parameters.VSCODE_RELEASE, true), and(in(parameters.VSCODE_QUALITY, 'insider', 'exploration'), eq(variables['VSCODE_SCHEDULEDBUILD'], true)))) }}:
- stage: Release
dependsOn:
- ${{ if eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true) }}:
- Windows
- ${{ if eq(variables['VSCODE_BUILD_STAGE_LINUX'], true) }}:
- Linux
- ${{ if eq(variables['VSCODE_BUILD_STAGE_MACOS'], true) }}:
- macOS
pool:
vmImage: "Ubuntu-18.04"
jobs:
- job: ReleaseBuild
displayName: Release Build
steps:
- template: release.yml

View File

@ -1,36 +1,17 @@
steps:
- script: |
mkdir -p .build
echo -n $BUILD_SOURCEVERSION > .build/commit
echo -n $VSCODE_QUALITY > .build/quality
echo -n $ENABLE_TERRAPIN > .build/terrapin
displayName: Prepare compilation cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
dryRun: true
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
versionSpec: "12.x"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
versionSpec: "1.x"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- task: AzureKeyVault@1
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
set -e
@ -43,36 +24,46 @@ steps:
git config user.email "vscode@microsoft.com"
git config user.name "VSCode"
displayName: Prepare tooling
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
set -e
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
git merge $(node -p "require('./package.json').distro")
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
displayName: Merge distro
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
mkdir -p .build
node build/azure-pipelines/common/computeNodeModulesCacheKey.js $VSCODE_ARCH $ENABLE_TERRAPIN > .build/yarnlockhash
displayName: Prepare yarn cache flags
# using `genericNodeModules` instead of `nodeModules` here to avoid sharing the cache with builds running inside containers
- task: Cache@2
inputs:
key: 'genericNodeModules | $(Agent.OS) | .build/yarnlockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
- script: |
set -e
tar -xzf .build/node_modules_cache/cache.tgz
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Extract node_modules cache
- script: |
npx https://aka.ms/enablesecurefeed standAlone
displayName: Switch to Terrapin packages
timeoutInMinutes: 5
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
- script: |
echo -n $(VSCODE_ARCH) > .build/arch
displayName: Prepare yarn cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
displayName: Switch to Terrapin packages
- script: |
set -e
sudo apt update -y
sudo apt install -y build-essential pkg-config libx11-dev libx11-xcb-dev libxkbfile-dev libsecret-1-dev libnotify-bin
displayName: Install build tools
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
set -e
export CHILD_CONCURRENCY="1"
for i in {1..3}; do # try 3 times, for Terrapin
yarn --frozen-lockfile && break
if [ $i -eq 3 ]; then
@ -81,67 +72,50 @@ steps:
fi
echo "Yarn failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), eq(variables['CacheRestored'], 'true'))
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
mkdir -p .build/node_modules_cache
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Create node_modules archive
# Mixin must run before optimize, because the CSS loader will
# inline small SVGs
# Mixin must run before optimize, because the CSS loader will inline small SVGs
- script: |
set -e
node build/azure-pipelines/mixin
displayName: Mix in quality
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
set -e
yarn gulp hygiene
yarn monaco-compile-check
yarn valid-layers-check
displayName: Run hygiene, monaco compile & valid layers checks
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -
./build/azure-pipelines/common/extract-telemetry.sh
displayName: Extract Telemetry
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
set -e
AZURE_WEBVIEW_STORAGE_ACCESS_KEY="$(vscode-webview-storage-key)" \
./build/azure-pipelines/common/publish-webview.sh
displayName: Publish Webview
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
set -e
yarn gulp compile-build
yarn gulp compile-extensions-build
yarn gulp minify-vscode
yarn gulp minify-vscode-reh
yarn gulp minify-vscode-reh-web
displayName: Compile
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
yarn npm-run-all -lp core-ci extensions-ci hygiene eslint valid-layers-check
displayName: Compile & Hygiene
- script: |
set -e
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
node build/azure-pipelines/upload-sourcemaps
displayName: Upload sourcemaps
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -
./build/azure-pipelines/common/extract-telemetry.sh
displayName: Extract Telemetry
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
AZURE_WEBVIEW_STORAGE_ACCESS_KEY="$(vscode-webview-storage-key)" \
./build/azure-pipelines/common/publish-webview.sh
displayName: Publish Webview
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e
@ -149,13 +123,16 @@ steps:
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
node build/azure-pipelines/common/createBuild.js $VERSION
displayName: Create build
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
# we gotta tarball everything in order to preserve file permissions
- script: |
set -e
tar -czf $(Build.ArtifactStagingDirectory)/compilation.tar.gz .build out-*
displayName: Compress compilation artifact
- task: PublishPipelineArtifact@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
targetPath: $(Build.ArtifactStagingDirectory)/compilation.tar.gz
artifactName: Compilation
displayName: Publish compilation artifact

View File

@ -1,2 +0,0 @@
node_modules/
*.js

View File

@ -0,0 +1,36 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const cp = require("child_process");
let tag = '';
try {
tag = cp
.execSync('git describe --tags `git rev-list --tags --max-count=1`')
.toString()
.trim();
if (!isValidTag(tag)) {
throw Error(`Invalid tag ${tag}`);
}
}
catch (err) {
console.error(err);
console.error('Failed to update types');
process.exit(1);
}
function isValidTag(t) {
if (t.split('.').length !== 3) {
return false;
}
const [major, minor, bug] = t.split('.');
// Only release for tags like 1.34.0
if (bug !== '0') {
return false;
}
if (isNaN(parseInt(major, 10)) || isNaN(parseInt(minor, 10))) {
return false;
}
return true;
}

View File

@ -9,7 +9,7 @@ pr: none
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@ -0,0 +1,72 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const cp = require("child_process");
const path = require("path");
let tag = '';
try {
tag = cp
.execSync('git describe --tags `git rev-list --tags --max-count=1`')
.toString()
.trim();
const dtsUri = `https://raw.githubusercontent.com/microsoft/vscode/${tag}/src/vs/vscode.d.ts`;
const outPath = path.resolve(process.cwd(), 'DefinitelyTyped/types/vscode/index.d.ts');
cp.execSync(`curl ${dtsUri} --output ${outPath}`);
updateDTSFile(outPath, tag);
console.log(`Done updating vscode.d.ts at ${outPath}`);
}
catch (err) {
console.error(err);
console.error('Failed to update types');
process.exit(1);
}
function updateDTSFile(outPath, tag) {
const oldContent = fs.readFileSync(outPath, 'utf-8');
const newContent = getNewFileContent(oldContent, tag);
fs.writeFileSync(outPath, newContent);
}
function repeat(str, times) {
const result = new Array(times);
for (let i = 0; i < times; i++) {
result[i] = str;
}
return result.join('');
}
function convertTabsToSpaces(str) {
return str.replace(/\t/gm, value => repeat(' ', value.length));
}
function getNewFileContent(content, tag) {
const oldheader = [
`/*---------------------------------------------------------------------------------------------`,
` * Copyright (c) Microsoft Corporation. All rights reserved.`,
` * Licensed under the MIT License. See License.txt in the project root for license information.`,
` *--------------------------------------------------------------------------------------------*/`
].join('\n');
return convertTabsToSpaces(getNewFileHeader(tag) + content.slice(oldheader.length));
}
function getNewFileHeader(tag) {
const [major, minor] = tag.split('.');
const shorttag = `${major}.${minor}`;
const header = [
`// Type definitions for Visual Studio Code ${shorttag}`,
`// Project: https://github.com/microsoft/vscode`,
`// Definitions by: Visual Studio Code Team, Microsoft <https://github.com/microsoft>`,
`// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped`,
``,
`/*---------------------------------------------------------------------------------------------`,
` * Copyright (c) Microsoft Corporation. All rights reserved.`,
` * Licensed under the MIT License.`,
` * See https://github.com/microsoft/vscode/blob/master/LICENSE.txt for license information.`,
` *--------------------------------------------------------------------------------------------*/`,
``,
`/**`,
` * Type Definition for Visual Studio Code ${shorttag} Extension API`,
` * See https://code.visualstudio.com/api for more information`,
` */`
].join('\n');
return header;
}

View File

@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@ -0,0 +1,35 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const es = require("event-stream");
const vfs = require("vinyl-fs");
const util = require("../lib/util");
const filter = require("gulp-filter");
const gzip = require("gulp-gzip");
const azure = require('gulp-azure-storage');
const root = path.dirname(path.dirname(__dirname));
const commit = util.getVersion(root);
function main() {
return vfs.src('**', { cwd: '../vscode-web', base: '../vscode-web', dot: true })
.pipe(filter(f => !f.isDirectory()))
.pipe(gzip({ append: false }))
.pipe(es.through(function (data) {
console.log('Uploading CDN file:', data.relative); // debug
this.emit('data', data);
}))
.pipe(azure.upload({
account: process.env.AZURE_STORAGE_ACCOUNT,
key: process.env.AZURE_STORAGE_ACCESS_KEY,
container: process.env.VSCODE_QUALITY,
prefix: commit + '/',
contentSettings: {
contentEncoding: 'gzip',
cacheControl: 'max-age=31536000, public'
}
}));
}
main();

View File

@ -0,0 +1,55 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const es = require("event-stream");
const vfs = require("vinyl-fs");
const util = require("../lib/util");
// @ts-ignore
const deps = require("../lib/dependencies");
const azure = require('gulp-azure-storage');
const root = path.dirname(path.dirname(__dirname));
const commit = util.getVersion(root);
// optionally allow to pass in explicit base/maps to upload
const [, , base, maps] = process.argv;
function src(base, maps = `${base}/**/*.map`) {
return vfs.src(maps, { base })
.pipe(es.mapSync((f) => {
f.path = `${f.base}/core/${f.relative}`;
return f;
}));
}
function main() {
const sources = [];
// vscode client maps (default)
if (!base) {
const vs = src('out-vscode-min'); // client source-maps only
sources.push(vs);
const productionDependencies = deps.getProductionDependencies(root);
const productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => `./${d}/**/*.map`);
const nodeModules = vfs.src(productionDependenciesSrc, { base: '.' })
.pipe(util.cleanNodeModules(path.join(root, 'build', '.moduleignore')));
sources.push(nodeModules);
const extensionsOut = vfs.src(['.build/extensions/**/*.js.map', '!**/node_modules/**'], { base: '.build' });
sources.push(extensionsOut);
}
// specific client base/maps
else {
sources.push(src(base, maps));
}
return es.merge(...sources)
.pipe(es.through(function (data) {
console.log('Uploading Sourcemap', data.relative); // debug
this.emit('data', data);
}))
.pipe(azure.upload({
account: process.env.AZURE_STORAGE_ACCOUNT,
key: process.env.AZURE_STORAGE_ACCESS_KEY,
container: 'sourcemaps',
prefix: commit + '/'
}));
}
main();

View File

@ -11,7 +11,7 @@ import * as Vinyl from 'vinyl';
import * as vfs from 'vinyl-fs';
import * as util from '../lib/util';
// @ts-ignore
import * as deps from '../dependencies';
import * as deps from '../lib/dependencies';
const azure = require('gulp-azure-storage');
const root = path.dirname(path.dirname(__dirname));

View File

@ -1,28 +1,7 @@
steps:
- script: |
mkdir -p .build
echo -n $BUILD_SOURCEVERSION > .build/commit
echo -n $VSCODE_QUALITY > .build/quality
echo -n $ENABLE_TERRAPIN > .build/terrapin
displayName: Prepare compilation cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
- script: |
set -e
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@ -34,6 +13,17 @@ steps:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode
- task: DownloadPipelineArtifact@2
inputs:
artifact: Compilation
path: $(Build.ArtifactStagingDirectory)
displayName: Download compilation output
- script: |
set -e
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
displayName: Extract compilation output
- script: |
set -e
cat << EOF > ~/.netrc
@ -48,30 +38,35 @@ steps:
- script: |
set -e
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
git fetch distro
git merge $(node -p "require('./package.json').distro")
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
displayName: Merge distro
- script: |
npx https://aka.ms/enablesecurefeed standAlone
displayName: Switch to Terrapin packages
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
mkdir -p .build
node build/azure-pipelines/common/computeNodeModulesCacheKey.js "web" $ENABLE_TERRAPIN > .build/yarnlockhash
displayName: Prepare yarn cache flags
- script: |
echo -n "web" > .build/arch
displayName: Prepare yarn cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- task: Cache@2
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
- script: |
set -e
tar -xzf .build/node_modules_cache/cache.tgz
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Extract node_modules cache
- script: |
npx https://aka.ms/enablesecurefeed standAlone
timeoutInMinutes: 5
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
displayName: Switch to Terrapin packages
- script: |
set -e
export CHILD_CONCURRENCY="1"
for i in {1..3}; do # try 3 times, for Terrapin
yarn --frozen-lockfile && break
if [ $i -eq 3 ]; then
@ -80,21 +75,19 @@ steps:
fi
echo "Yarn failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: |
set -e
yarn postinstall
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
mkdir -p .build/node_modules_cache
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Create node_modules archive
- script: |
set -e
@ -130,3 +123,8 @@ steps:
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
./build/azure-pipelines/web/publish.sh
displayName: Publish
- publish: $(Agent.BuildDirectory)/vscode-web.tar.gz
artifact: vscode-web-standalone
displayName: Publish web archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))

View File

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="ESRP" value="https://microsoft.pkgs.visualstudio.com/_packaging/ESRP/nuget/v3/index.json" />
</packageSources>
</configuration>
<packageSources>
<clear />
<add key="ESRP" value="https://microsoft.pkgs.visualstudio.com/_packaging/ESRP/nuget/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
</disabledPackageSources>
</configuration>

View File

@ -1,87 +0,0 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
versionSpec: "1.x"
- task: UsePythonVersion@0
inputs:
versionSpec: "2.x"
addToPath: true
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "vscode-build-cache"
- powershell: |
yarn --frozen-lockfile
env:
CHILD_CONCURRENCY: "1"
displayName: Install Dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "vscode-build-cache"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn postinstall }
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
- powershell: |
yarn electron
displayName: Download Electron
- powershell: |
yarn monaco-compile-check
displayName: Run Monaco Editor Checks
- script: |
yarn valid-layers-check
displayName: Run Valid Layers Checks
- powershell: |
yarn compile
displayName: Compile Sources
- powershell: |
yarn download-builtin-extensions
displayName: Download Built-in Extensions
- powershell: |
.\scripts\test.bat --tfs "Unit Tests"
displayName: Run Unit Tests (Electron)
- powershell: |
yarn test-browser --browser chromium --browser firefox --tfs "Browser Unit Tests"
displayName: Run Unit Tests (Browser)
- powershell: |
.\scripts\test-integration.bat --tfs "Integration Tests"
displayName: Run Integration Tests (Electron)
- task: PublishPipelineArtifact@0
displayName: "Publish Crash Reports"
inputs:
artifactName: crash-dump-windows
targetPath: .build\crashes
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: "*-results.xml"
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
condition: succeededOrFailed()

View File

@ -3,7 +3,7 @@ $ErrorActionPreference = "Stop"
$CertBytes = [System.Convert]::FromBase64String($CertBase64)
$CertCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$CertCollection.Import($CertBytes, $null, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
$CertCollection.Import($CertBytes, $null, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable -bxor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet)
$CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store("My","LocalMachine")
$CertStore.Open("ReadWrite")

View File

@ -1,28 +1,7 @@
steps:
- powershell: |
mkdir .build -ea 0
"$env:BUILD_SOURCEVERSION" | Out-File -Encoding ascii -NoNewLine .build\commit
"$env:VSCODE_QUALITY" | Out-File -Encoding ascii -NoNewLine .build\quality
"$env:ENABLE_TERRAPIN" | Out-File -Encoding ascii -NoNewLine .build\terrapin
displayName: Prepare compilation cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
vstsFeed: "npm-vscode"
platformIndependent: true
alias: "Compilation"
- powershell: |
$ErrorActionPreference = "Stop"
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0
inputs:
versionSpec: "12.14.1"
versionSpec: "12.18.3"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@ -39,6 +18,18 @@ steps:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode
- task: DownloadPipelineArtifact@2
inputs:
artifact: Compilation
path: $(Build.ArtifactStagingDirectory)
displayName: Download compilation output
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { tar --force-local -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz }
displayName: Extract compilation output
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
@ -51,26 +42,34 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git" }
exec { git fetch distro }
exec { git merge $(node -p "require('./package.json').distro") }
exec { git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro") }
displayName: Merge distro
- script: |
npx https://aka.ms/enablesecurefeed standAlone
displayName: Switch to Terrapin packages
timeoutInMinutes: 5
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
- powershell: |
"$(VSCODE_ARCH)" | Out-File -Encoding ascii -NoNewLine .build\arch
"$env:ENABLE_TERRAPIN" | Out-File -Encoding ascii -NoNewLine .build\terrapin
node build/azure-pipelines/common/computeNodeModulesCacheKey.js > .build/yarnlockhash
displayName: Prepare yarn cache flags
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- task: Cache@2
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
key: 'nodeModules | $(Agent.OS) | .build/arch, .build/terrapin, .build/yarnlockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { 7z.exe x .build/node_modules_cache/cache.7z -aos }
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Extract node_modules cache
- script: |
npx https://aka.ms/enablesecurefeed standAlone
timeoutInMinutes: 5
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
displayName: Switch to Terrapin packages
- powershell: |
. build/azure-pipelines/win32/exec.ps1
@ -79,22 +78,20 @@ steps:
$env:npm_config_arch="$(VSCODE_ARCH)"
$env:CHILD_CONCURRENCY="1"
retry { exec { yarn --frozen-lockfile } }
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
vstsFeed: "npm-vscode"
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn postinstall }
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
exec { node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt }
exec { mkdir -Force .build/node_modules_cache }
exec { 7z.exe a .build/node_modules_cache/cache.7z -mx3 `@.build/node_modules_list.txt }
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Create node_modules archive
- powershell: |
. build/azure-pipelines/win32/exec.ps1
@ -107,11 +104,18 @@ steps:
$ErrorActionPreference = "Stop"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-code-helper" }
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH)"
displayName: Build
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-code-helper" }
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
displayName: Prepare Package
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
@ -122,12 +126,21 @@ steps:
displayName: Build Server
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
exec { yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install" }
displayName: Download Electron and Playwright
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn electron $(VSCODE_ARCH) }
exec { .\scripts\test.bat --build --tfs "Unit Tests" }
displayName: Run unit tests (Electron)
timeoutInMinutes: 7
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
@ -135,6 +148,14 @@ steps:
$ErrorActionPreference = "Stop"
exec { yarn test-browser --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
displayName: Run unit tests (Browser)
timeoutInMinutes: 7
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn --cwd test/integration/browser compile }
displayName: Compile integration tests
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
@ -148,6 +169,7 @@ steps:
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
displayName: Run integration tests (Electron)
timeoutInMinutes: 10
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
@ -155,6 +177,7 @@ steps:
$ErrorActionPreference = "Stop"
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-web-integration.bat --browser firefox }
displayName: Run integration tests (Browser)
timeoutInMinutes: 7
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- powershell: |
@ -165,6 +188,7 @@ steps:
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-remote-integration.bat }
displayName: Run remote integration tests (Electron)
timeoutInMinutes: 7
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- task: PublishPipelineArtifact@0
@ -180,7 +204,7 @@ steps:
inputs:
testResultsFiles: "*-results.xml"
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
condition: and(succeededOrFailed(), ne(variables['VSCODE_ARCH'], 'arm64'))
condition: and(succeededOrFailed(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
@ -236,6 +260,7 @@ steps:
}
]
SessionTimeout: 120
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: NuGetCommand@2
displayName: Install ESRPClient.exe
@ -245,11 +270,13 @@ steps:
nugetConfigPath: 'build\azure-pipelines\win32\ESRPClient\NuGet.config'
externalFeedCredentials: "ESRP Nuget"
restoreDirectory: packages
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: ESRPImportCertTask@1
displayName: Import ESRP Request Signing Certificate
inputs:
ESRP: "ESRP CodeSign"
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- task: PowerShell@2
inputs:
@ -257,6 +284,7 @@ steps:
filePath: .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1
arguments: "$(ESRP-SSL-AADAuth)"
displayName: Import ESRP Auth Certificate
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
@ -266,6 +294,32 @@ steps:
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
.\build\azure-pipelines\win32\publish.ps1
displayName: Publish
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\archive\VSCode-win32-$(VSCODE_ARCH).zip
artifact: vscode-win32-$(VSCODE_ARCH)
displayName: Publish archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\system-setup\VSCodeSetup.exe
artifact: vscode-win32-$(VSCODE_ARCH)-setup
displayName: Publish system setup
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\user-setup\VSCodeSetup.exe
artifact: vscode-win32-$(VSCODE_ARCH)-user-setup
displayName: Publish user setup
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- publish: $(System.DefaultWorkingDirectory)\.build\vscode-server-win32-$(VSCODE_ARCH).zip
artifact: vscode-server-win32-$(VSCODE_ARCH)
displayName: Publish server archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- publish: $(System.DefaultWorkingDirectory)\.build\vscode-server-win32-$(VSCODE_ARCH)-web.zip
artifact: vscode-server-win32-$(VSCODE_ARCH)-web
displayName: Publish web server archive
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: "Component Detection"

View File

@ -6,8 +6,7 @@
const fs = require('fs');
const path = require('path');
const os = require('os');
const { remote } = require('electron');
const dialog = remote.dialog;
const { ipcRenderer } = require('electron');
const builtInExtensionsPath = path.join(__dirname, '..', '..', 'product.json');
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
@ -84,17 +83,13 @@ function render(el, state) {
}
const localInput = renderOption(form, `local-${ext.name}`, 'Local', 'local', !!local);
localInput.onchange = function () {
const result = dialog.showOpenDialog(remote.getCurrentWindow(), {
title: 'Choose Folder',
properties: ['openDirectory']
});
localInput.onchange = async function () {
const result = await ipcRenderer.invoke('pickdir');
if (result && result.length >= 1) {
control[ext.name] = result[0];
if (result) {
control[ext.name] = result;
setState({ builtin, control });
}
setState({ builtin, control });
};
if (local) {

View File

@ -3,12 +3,25 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const { app, BrowserWindow } = require('electron');
const { app, BrowserWindow, ipcMain, dialog } = require('electron');
const url = require('url');
const path = require('path');
let window = null;
ipcMain.handle('pickdir', async () => {
const result = await dialog.showOpenDialog(window, {
title: 'Choose Folder',
properties: ['openDirectory']
});
if (result.canceled || result.filePaths.length < 1) {
return undefined;
}
return result.filePaths[0];
});
app.once('ready', () => {
window = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, webviewTag: true, enableWebSQL: false, nativeWindowOpen: true } });
window.setMenuBarVisibility(false);

View File

@ -0,0 +1,58 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_universal_1 = require("vscode-universal");
const fs = require("fs-extra");
const path = require("path");
const plist = require("plist");
const product = require("../../product.json");
async function main() {
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
const arch = process.env['VSCODE_ARCH'];
if (!buildDir) {
throw new Error('$AGENT_BUILDDIRECTORY not set');
}
const appName = product.nameLong + '.app';
const x64AppPath = path.join(buildDir, 'vscode-x64', appName);
const arm64AppPath = path.join(buildDir, 'vscode-arm64', appName);
const x64AsarPath = path.join(x64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
const arm64AsarPath = path.join(arm64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
const outAppPath = path.join(buildDir, `VSCode-darwin-${arch}`, appName);
const productJsonPath = path.resolve(outAppPath, 'Contents', 'Resources', 'app', 'product.json');
const infoPlistPath = path.resolve(outAppPath, 'Contents', 'Info.plist');
await vscode_universal_1.makeUniversalApp({
x64AppPath,
arm64AppPath,
x64AsarPath,
arm64AsarPath,
filesToSkip: [
'product.json',
'Credits.rtf',
'CodeResources',
'fsevents.node',
'.npmrc'
],
outAppPath,
force: true
});
let productJson = await fs.readJson(productJsonPath);
Object.assign(productJson, {
darwinUniversalAssetId: 'darwin-universal'
});
await fs.writeJson(productJsonPath, productJson);
let infoPlistString = await fs.readFile(infoPlistPath, 'utf8');
let infoPlistJson = plist.parse(infoPlistString);
Object.assign(infoPlistJson, {
LSRequiresNativeExecution: true
});
await fs.writeFile(infoPlistPath, plist.build(infoPlistJson), 'utf8');
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@ -0,0 +1,66 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { makeUniversalApp } from 'vscode-universal';
import * as fs from 'fs-extra';
import * as path from 'path';
import * as plist from 'plist';
import * as product from '../../product.json';
async function main() {
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
const arch = process.env['VSCODE_ARCH'];
if (!buildDir) {
throw new Error('$AGENT_BUILDDIRECTORY not set');
}
const appName = product.nameLong + '.app';
const x64AppPath = path.join(buildDir, 'vscode-x64', appName);
const arm64AppPath = path.join(buildDir, 'vscode-arm64', appName);
const x64AsarPath = path.join(x64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
const arm64AsarPath = path.join(arm64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
const outAppPath = path.join(buildDir, `VSCode-darwin-${arch}`, appName);
const productJsonPath = path.resolve(outAppPath, 'Contents', 'Resources', 'app', 'product.json');
const infoPlistPath = path.resolve(outAppPath, 'Contents', 'Info.plist');
await makeUniversalApp({
x64AppPath,
arm64AppPath,
x64AsarPath,
arm64AsarPath,
filesToSkip: [
'product.json',
'Credits.rtf',
'CodeResources',
'fsevents.node',
'.npmrc'
],
outAppPath,
force: true
});
let productJson = await fs.readJson(productJsonPath);
Object.assign(productJson, {
darwinUniversalAssetId: 'darwin-universal'
});
await fs.writeJson(productJsonPath, productJson);
let infoPlistString = await fs.readFile(infoPlistPath, 'utf8');
let infoPlistJson = plist.parse(infoPlistString);
Object.assign(infoPlistJson, {
LSRequiresNativeExecution: true
});
await fs.writeFile(infoPlistPath, plist.build(infoPlistJson), 'utf8');
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

58
build/darwin/sign.js Normal file
View File

@ -0,0 +1,58 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const codesign = require("electron-osx-sign");
const path = require("path");
const util = require("../lib/util");
const product = require("../../product.json");
async function main() {
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
const tempDir = process.env['AGENT_TEMPDIRECTORY'];
const arch = process.env['VSCODE_ARCH'];
if (!buildDir) {
throw new Error('$AGENT_BUILDDIRECTORY not set');
}
if (!tempDir) {
throw new Error('$AGENT_TEMPDIRECTORY not set');
}
const baseDir = path.dirname(__dirname);
const appRoot = path.join(buildDir, `VSCode-darwin-${arch}`);
const appName = product.nameLong + '.app';
const appFrameworkPath = path.join(appRoot, appName, 'Contents', 'Frameworks');
const helperAppBaseName = product.nameShort;
const gpuHelperAppName = helperAppBaseName + ' Helper (GPU).app';
const rendererHelperAppName = helperAppBaseName + ' Helper (Renderer).app';
const defaultOpts = {
app: path.join(appRoot, appName),
platform: 'darwin',
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
hardenedRuntime: true,
'pre-auto-entitlements': false,
'pre-embed-provisioning-profile': false,
keychain: path.join(tempDir, 'buildagent.keychain'),
version: util.getElectronVersion(),
identity: '99FM488X57',
'gatekeeper-assess': false
};
const appOpts = Object.assign(Object.assign({}, defaultOpts), {
// TODO(deepak1556): Incorrectly declared type in electron-osx-sign
ignore: (filePath) => {
return filePath.includes(gpuHelperAppName) ||
filePath.includes(rendererHelperAppName);
} });
const gpuHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, gpuHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist') });
const rendererHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, rendererHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist') });
await codesign.signAsync(gpuHelperOpts);
await codesign.signAsync(rendererHelperOpts);
await codesign.signAsync(appOpts);
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@ -29,7 +29,6 @@ async function main(): Promise<void> {
const appFrameworkPath = path.join(appRoot, appName, 'Contents', 'Frameworks');
const helperAppBaseName = product.nameShort;
const gpuHelperAppName = helperAppBaseName + ' Helper (GPU).app';
const pluginHelperAppName = helperAppBaseName + ' Helper (Plugin).app';
const rendererHelperAppName = helperAppBaseName + ' Helper (Renderer).app';
const defaultOpts: codesign.SignOptions = {
@ -51,7 +50,6 @@ async function main(): Promise<void> {
// TODO(deepak1556): Incorrectly declared type in electron-osx-sign
ignore: (filePath: string) => {
return filePath.includes(gpuHelperAppName) ||
filePath.includes(pluginHelperAppName) ||
filePath.includes(rendererHelperAppName);
}
};
@ -63,13 +61,6 @@ async function main(): Promise<void> {
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'),
};
const pluginHelperOpts: codesign.SignOptions = {
...defaultOpts,
app: path.join(appFrameworkPath, pluginHelperAppName),
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'),
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'),
};
const rendererHelperOpts: codesign.SignOptions = {
...defaultOpts,
app: path.join(appFrameworkPath, rendererHelperAppName),
@ -78,7 +69,6 @@ async function main(): Promise<void> {
};
await codesign.signAsync(gpuHelperOpts);
await codesign.signAsync(pluginHelperOpts);
await codesign.signAsync(rendererHelperOpts);
await codesign.signAsync(appOpts as any);
}

36
build/eslint.js Normal file
View File

@ -0,0 +1,36 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const es = require('event-stream');
const vfs = require('vinyl-fs');
const { jsHygieneFilter, tsHygieneFilter } = require('./filters');
function eslint() {
const gulpeslint = require('gulp-eslint');
return vfs
.src([...jsHygieneFilter, ...tsHygieneFilter], { base: '.', follow: true, allowEmpty: true })
.pipe(
gulpeslint({
configFile: '.eslintrc.json',
rulePaths: ['./build/lib/eslint'],
})
)
.pipe(gulpeslint.formatEach('compact'))
.pipe(
gulpeslint.results((results) => {
if (results.warningCount > 0 || results.errorCount > 0) {
throw new Error('eslint failed with warnings and/or errors');
}
})
).pipe(es.through(function () { /* noop, important for the stream to end */ }));
}
if (require.main === module) {
eslint().on('error', (err) => {
console.error();
console.error(err);
process.exit(1);
});
}

207
build/ext.js Normal file
View File

@ -0,0 +1,207 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const fs = require('fs').promises;
const path = require('path');
const cp = require('child_process');
const os = require('os');
const mkdirp = require('mkdirp');
const product = require('../product.json');
const root = path.resolve(path.join(__dirname, '..', '..'));
const exists = (path) => fs.stat(path).then(() => true, () => false);
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
async function readControlFile() {
try {
return JSON.parse(await fs.readFile(controlFilePath, 'utf8'));
} catch (err) {
return {};
}
}
async function writeControlFile(control) {
await mkdirp(path.dirname(controlFilePath));
await fs.writeFile(controlFilePath, JSON.stringify(control, null, ' '));
}
async function exec(cmd, args, opts = {}) {
return new Promise((c, e) => {
const child = cp.spawn(cmd, args, { stdio: 'inherit', env: process.env, ...opts });
child.on('close', code => code === 0 ? c() : e(`Returned ${code}`));
});
}
function getFolderPath(extDesc) {
const folder = extDesc.repo.replace(/.*\//, '');
return folderPath = path.join(root, folder);
}
async function getExtensionType(folderPath) {
const pkg = JSON.parse(await fs.readFile(path.join(folderPath, 'package.json'), 'utf8'));
if (pkg['contributes']['themes'] || pkg['contributes']['iconThemes']) {
return 'theme';
} else if (pkg['contributes']['grammars']) {
return 'grammar';
} else {
return 'misc';
}
}
async function initExtension(extDesc) {
const folderPath = getFolderPath(extDesc);
if (!await exists(folderPath)) {
console.log(`⏳ git clone: ${extDesc.name}`);
await exec('git', ['clone', `${extDesc.repo}.git`], { cwd: root });
}
const type = await getExtensionType(folderPath);
return { path: folderPath, type, ...extDesc };
}
async function createWorkspace(type, extensions) {
const workspaceName = `vscode-${type}-extensions.code-workspace`;
const workspacePath = path.join(root, workspaceName);
const workspace = { folders: extensions.map(ext => ({ path: path.basename(ext.path) })) };
if (!await exists(workspacePath)) {
console.log(`✅ create workspace: ${workspaceName}`);
}
await fs.writeFile(workspacePath, JSON.stringify(workspace, undefined, ' '));
}
async function init() {
const extensions = [];
for (const extDesc of product.builtInExtensions) {
extensions.push(await initExtension(extDesc));
}
await createWorkspace('all', extensions);
const byType = extensions
.reduce((m, e) => m.set(e.type, [...(m.get(e.type) || []), e]), new Map());
for (const [type, extensions] of byType) {
await createWorkspace(type, extensions);
}
return byType;
}
async function status() {
const byType = await init();
const control = await readControlFile();
for (const [type, extensions] of byType) {
console.log(`${type} (${extensions.length} extensions):`);
const maxWidth = Math.max(...extensions.map(e => e.name.length));
for (const ext of extensions) {
console.log(` ${ext.name.padEnd(maxWidth, ' ')}${control[ext.name]}`);
}
}
console.log(`total: ${product.builtInExtensions.length} extensions`);
}
async function each([cmd, ...args], opts) {
await init();
for (const extDesc of product.builtInExtensions) {
const folderPath = getFolderPath(extDesc);
if (opts.type) {
const type = await getExtensionType(folderPath);
if (type !== opts.type) {
continue;
}
}
console.log(`👉 ${extDesc.name}`);
await exec(cmd, args, { cwd: folderPath });
}
}
async function _link(extensions, opts, fn) {
await init();
const control = await readControlFile();
for (const extDesc of product.builtInExtensions) {
if (extensions.length > 0 && extensions.indexOf(extDesc.name) === -1) {
continue;
}
if (opts.type) {
const folderPath = getFolderPath(extDesc);
const type = await getExtensionType(folderPath);
if (type !== opts.type) {
continue;
}
}
await fn(control, extDesc);
}
await writeControlFile(control);
}
async function link(extensions, opts) {
await _link(extensions, opts, async (control, extDesc) => {
const ext = await initExtension(extDesc);
control[extDesc.name] = ext.path;
console.log(`👉 link: ${extDesc.name}${ext.path}`);
});
}
async function unlink(extensions, opts) {
await _link(extensions, opts, async (control, extDesc) => {
control[extDesc.name] = 'marketplace';
console.log(`👉 unlink: ${extDesc.name}`);
});
}
if (require.main === module) {
const { program } = require('commander');
program.version('0.0.1');
program
.command('init')
.description('Initialize workspace with built-in extensions')
.action(init);
program
.command('status')
.description('Print extension status')
.action(status);
program
.command('each <command...>')
.option('-t, --type <type>', 'Specific type only')
.description('Run a command in each extension repository')
.allowUnknownOption()
.action(each);
program
.command('link [extensions...]')
.option('-t, --type <type>', 'Specific type only')
.description('Link with code-oss')
.action(link);
program
.command('unlink [extensions...]')
.option('-t, --type <type>', 'Specific type only')
.description('Unlink from code-oss')
.action(unlink);
program.parseAsync(process.argv);
}

151
build/filters.js Normal file
View File

@ -0,0 +1,151 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/**
* Hygiene works by creating cascading subsets of all our files and
* passing them through a sequence of checks. Here are the current subsets,
* named according to the checks performed on them. Each subset contains
* the following one, as described in mathematical notation:
*
* all eol indentation copyright typescript
*/
module.exports.all = [
'*',
'build/**/*',
'extensions/**/*',
'scripts/**/*',
'src/**/*',
'test/**/*',
'!out*/**',
'!test/**/out/**',
'!**/node_modules/**',
];
module.exports.indentationFilter = [
'**',
// except specific files
'!**/ThirdPartyNotices.txt',
'!**/LICENSE.{txt,rtf}',
'!LICENSES.chromium.html',
'!**/LICENSE',
'!src/vs/nls.js',
'!src/vs/nls.build.js',
'!src/vs/css.js',
'!src/vs/css.build.js',
'!src/vs/loader.js',
'!src/vs/base/common/insane/insane.js',
'!src/vs/base/common/marked/marked.js',
'!src/vs/base/common/semver/semver.js',
'!src/vs/base/node/terminateProcess.sh',
'!src/vs/base/node/cpuUsage.sh',
'!test/unit/assert.js',
'!resources/linux/snap/electron-launch',
// except specific folders
'!test/automation/out/**',
'!test/monaco/out/**',
'!test/smoke/out/**',
'!extensions/typescript-language-features/test-workspace/**',
'!extensions/vscode-api-tests/testWorkspace/**',
'!extensions/vscode-api-tests/testWorkspace2/**',
'!build/monaco/**',
'!build/win32/**',
// except multiple specific files
'!**/package.json',
'!**/yarn.lock',
'!**/yarn-error.log',
// except multiple specific folders
'!**/codicon/**',
'!**/fixtures/**',
'!**/lib/**',
'!extensions/**/dist/**',
'!extensions/**/out/**',
'!extensions/**/snippets/**',
'!extensions/**/syntaxes/**',
'!extensions/**/themes/**',
'!extensions/**/colorize-fixtures/**',
// except specific file types
'!src/vs/*/**/*.d.ts',
'!src/typings/**/*.d.ts',
'!extensions/**/*.d.ts',
'!**/*.{svg,exe,png,bmp,jpg,scpt,bat,cmd,cur,ttf,woff,eot,md,ps1,template,yaml,yml,d.ts.recipe,ico,icns,plist}',
'!build/{lib,download,darwin}/**/*.js',
'!build/**/*.sh',
'!build/azure-pipelines/**/*.js',
'!build/azure-pipelines/**/*.config',
'!**/Dockerfile',
'!**/Dockerfile.*',
'!**/*.Dockerfile',
'!**/*.dockerfile',
'!extensions/markdown-language-features/media/*.js',
'!extensions/simple-browser/media/*.js',
];
module.exports.copyrightFilter = [
'**',
'!**/*.desktop',
'!**/*.json',
'!**/*.html',
'!**/*.template',
'!**/*.md',
'!**/*.bat',
'!**/*.cmd',
'!**/*.ico',
'!**/*.icns',
'!**/*.xml',
'!**/*.sh',
'!**/*.txt',
'!**/*.xpm',
'!**/*.opts',
'!**/*.disabled',
'!**/*.code-workspace',
'!**/*.js.map',
'!build/**/*.init',
'!resources/linux/snap/snapcraft.yaml',
'!resources/win32/bin/code.js',
'!resources/web/code-web.js',
'!resources/completions/**',
'!extensions/configuration-editing/build/inline-allOf.ts',
'!extensions/markdown-language-features/media/highlight.css',
'!extensions/html-language-features/server/src/modes/typescript/*',
'!extensions/*/server/bin/*',
'!src/vs/editor/test/node/classification/typescript-test.ts',
];
module.exports.jsHygieneFilter = [
'src/**/*.js',
'build/gulpfile.*.js',
'!src/vs/loader.js',
'!src/vs/css.js',
'!src/vs/nls.js',
'!src/vs/css.build.js',
'!src/vs/nls.build.js',
'!src/**/insane.js',
'!src/**/marked.js',
'!src/**/semver.js',
'!**/test/**',
];
module.exports.tsHygieneFilter = [
'src/**/*.ts',
'test/**/*.ts',
'extensions/**/*.ts',
'!src/vs/*/**/*.d.ts',
'!src/typings/**/*.d.ts',
'!extensions/**/*.d.ts',
'!**/fixtures/**',
'!**/typings/**',
'!**/node_modules/**',
'!extensions/**/colorize-fixtures/**',
'!extensions/vscode-api-tests/testWorkspace/**',
'!extensions/vscode-api-tests/testWorkspace2/**',
'!extensions/**/*.test.ts',
'!extensions/html-language-features/server/lib/jquery.d.ts',
];

View File

@ -11,6 +11,11 @@ const task = require('./lib/task');
const compilation = require('./lib/compilation');
// Full compile, including nls and inline sources in sourcemaps, for build
const compileBuildTask = task.define('compile-build', task.series(util.rimraf('out-build'), compilation.compileTask('src', 'out-build', true)));
const compileBuildTask = task.define('compile-build',
task.series(
util.rimraf('out-build'),
compilation.compileTask('src', 'out-build', true)
)
);
gulp.task(compileBuildTask);
exports.compileBuildTask = compileBuildTask;
exports.compileBuildTask = compileBuildTask;

View File

@ -16,8 +16,6 @@ const cp = require('child_process');
const compilation = require('./lib/compilation');
const monacoapi = require('./lib/monaco-api');
const fs = require('fs');
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
let root = path.dirname(__dirname);
let sha1 = util.getVersion(root);
@ -369,6 +367,9 @@ gulp.task('editor-distro',
);
const bundleEditorESMTask = task.define('editor-esm-bundle-webpack', () => {
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
const result = es.through();
const webpackConfigPath = path.join(root, 'build/monaco/monaco.webpack.config.js');

View File

@ -9,17 +9,13 @@ require('events').EventEmitter.defaultMaxListeners = 100;
const gulp = require('gulp');
const path = require('path');
const nodeUtil = require('util');
const tsb = require('gulp-tsb');
const es = require('event-stream');
const filter = require('gulp-filter');
const webpack = require('webpack');
const util = require('./lib/util');
const task = require('./lib/task');
const watcher = require('./lib/watch');
const createReporter = require('./lib/reporter').createReporter;
const glob = require('glob');
const sourcemaps = require('gulp-sourcemaps');
const nlsDev = require('vscode-nls-dev');
const root = path.dirname(__dirname);
const commit = util.getVersion(root);
const plumber = require('gulp-plumber');
@ -29,10 +25,49 @@ const ext = require('./lib/extensions');
const extensionsPath = path.join(path.dirname(__dirname), 'extensions');
const compilations = glob.sync('**/tsconfig.json', {
cwd: extensionsPath,
ignore: ['**/out/**', '**/node_modules/**']
});
// To save 250ms for each gulp startup, we are caching the result here
// const compilations = glob.sync('**/tsconfig.json', {
// cwd: extensionsPath,
// ignore: ['**/out/**', '**/node_modules/**']
// });
const compilations = [
'configuration-editing/build/tsconfig.json',
'configuration-editing/tsconfig.json',
'css-language-features/client/tsconfig.json',
'css-language-features/server/tsconfig.json',
'debug-auto-launch/tsconfig.json',
'debug-server-ready/tsconfig.json',
'emmet/tsconfig.json',
'extension-editing/tsconfig.json',
'git-ui/tsconfig.json',
'git/tsconfig.json',
'github-authentication/tsconfig.json',
'github/tsconfig.json',
'grunt/tsconfig.json',
'gulp/tsconfig.json',
'html-language-features/client/tsconfig.json',
'html-language-features/server/tsconfig.json',
'image-preview/tsconfig.json',
'jake/tsconfig.json',
'json-language-features/client/tsconfig.json',
'json-language-features/server/tsconfig.json',
'markdown-language-features/preview-src/tsconfig.json',
'markdown-language-features/tsconfig.json',
'merge-conflict/tsconfig.json',
'microsoft-authentication/tsconfig.json',
'npm/tsconfig.json',
'php-language-features/tsconfig.json',
'search-result/tsconfig.json',
'simple-browser/tsconfig.json',
'testing-editor-contributions/tsconfig.json',
'typescript-language-features/test-workspace/tsconfig.json',
'typescript-language-features/tsconfig.json',
'vscode-api-tests/tsconfig.json',
'vscode-colorize-tests/tsconfig.json',
'vscode-custom-editor-tests/tsconfig.json',
'vscode-notebook-tests/tsconfig.json',
'vscode-test-resolver/tsconfig.json'
];
const getBaseUrl = out => `https://ticino.blob.core.windows.net/sourcemaps/${commit}/${out}`;
@ -64,6 +99,10 @@ const tasks = compilations.map(function (tsconfigFile) {
}
function createPipeline(build, emitError) {
const nlsDev = require('vscode-nls-dev');
const tsb = require('gulp-tsb');
const sourcemaps = require('gulp-sourcemaps');
const reporter = createReporter('extensions');
overrideOptions.inlineSources = Boolean(build);
@ -170,6 +209,8 @@ const compileExtensionsBuildTask = task.define('compile-extensions-build', task.
));
gulp.task(compileExtensionsBuildTask);
gulp.task(task.define('extensions-ci', task.series(compileExtensionsBuildTask)));
exports.compileExtensionsBuildTask = compileExtensionsBuildTask;
const compileWebExtensionsTask = task.define('compile-web', () => buildWebExtensions(false));
@ -181,6 +222,7 @@ gulp.task(watchWebExtensionsTask);
exports.watchWebExtensionsTask = watchWebExtensionsTask;
async function buildWebExtensions(isWatch) {
const webpack = require('webpack');
const webpackConfigLocations = await nodeUtil.promisify(glob)(
path.join(extensionsPath, '**', 'extension-browser.webpack.config.js'),

View File

@ -4,52 +4,33 @@
*--------------------------------------------------------------------------------------------*/
const gulp = require('gulp');
const filter = require('gulp-filter');
const es = require('event-stream');
const gulpeslint = require('gulp-eslint');
const vfs = require('vinyl-fs');
const path = require('path');
const task = require('./lib/task');
const { all, jsHygieneFilter, tsHygieneFilter, hygiene } = require('./hygiene');
gulp.task('eslint', () => {
return vfs
.src(all, { base: '.', follow: true, allowEmpty: true })
.pipe(filter(jsHygieneFilter.concat(tsHygieneFilter)))
.pipe(
gulpeslint({
configFile: '.eslintrc.json',
rulePaths: ['./build/lib/eslint'],
})
)
.pipe(gulpeslint.formatEach('compact'))
.pipe(
gulpeslint.results((results) => {
if (results.warningCount > 0 || results.errorCount > 0) {
throw new Error('eslint failed with warnings and/or errors');
}
})
);
});
const { hygiene } = require('./hygiene');
function checkPackageJSON(actualPath) {
const actual = require(path.join(__dirname, '..', actualPath));
const rootPackageJSON = require('../package.json');
const checkIncluded = (set1, set2) => {
for (let depName in set1) {
const depVersion = set1[depName];
const rootDepVersion = set2[depName];
if (!rootDepVersion) {
// missing in root is allowed
continue;
}
if (depVersion !== rootDepVersion) {
this.emit(
'error',
`The dependency ${depName} in '${actualPath}' (${depVersion}) is different than in the root package.json (${rootDepVersion})`
);
}
}
};
for (let depName in actual.dependencies) {
const depVersion = actual.dependencies[depName];
const rootDepVersion = rootPackageJSON.dependencies[depName];
if (!rootDepVersion) {
// missing in root is allowed
continue;
}
if (depVersion !== rootDepVersion) {
this.emit(
'error',
`The dependency ${depName} in '${actualPath}' (${depVersion}) is different than in the root package.json (${rootDepVersion})`
);
}
}
checkIncluded(actual.dependencies, rootPackageJSON.dependencies);
checkIncluded(actual.devDependencies, rootPackageJSON.devDependencies);
}
const checkPackageJSONTask = task.define('check-package-json', () => {
@ -57,12 +38,11 @@ const checkPackageJSONTask = task.define('check-package-json', () => {
es.through(function () {
checkPackageJSON.call(this, 'remote/package.json');
checkPackageJSON.call(this, 'remote/web/package.json');
checkPackageJSON.call(this, 'build/package.json');
})
);
});
gulp.task(checkPackageJSONTask);
gulp.task(
'hygiene',
task.series(checkPackageJSONTask, () => hygiene())
);
const hygieneTask = task.define('hygiene', task.series(checkPackageJSONTask, () => hygiene(undefined, false)));
gulp.task(hygieneTask);

41
build/gulpfile.js Normal file
View File

@ -0,0 +1,41 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
// Increase max listeners for event emitters
require('events').EventEmitter.defaultMaxListeners = 100;
const gulp = require('gulp');
const util = require('./lib/util');
const task = require('./lib/task');
const compilation = require('./lib/compilation');
const { monacoTypecheckTask/* , monacoTypecheckWatchTask */ } = require('./gulpfile.editor');
const { compileExtensionsTask, watchExtensionsTask } = require('./gulpfile.extensions');
// Fast compile for development time
const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), compilation.compileTask('src', 'out', false)));
gulp.task(compileClientTask);
const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), compilation.watchTask('out', false)));
gulp.task(watchClientTask);
// All
const compileTask = task.define('compile', task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask));
gulp.task(compileTask);
gulp.task(task.define('watch', task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask)));
// Default
gulp.task('default', compileTask);
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
process.exit(1);
});
// Load all the gulpfiles only if running tasks other than the editor tasks
require('glob').sync('gulpfile.*.js', { cwd: __dirname })
.forEach(f => require(`./${f}`));

Some files were not shown because too many files have changed in this diff Show More