Compare commits

...

952 Commits

Author SHA1 Message Date
Mathew Pareles 5257e9c82d Merge remote-tracking branch 'origin/model-selection' into autocomplete-readd 2025-01-22 00:07:28 -08:00
Andrew Pareles 3aa6d3d28a rm changelog 2025-01-21 23:15:44 -08:00
Andrew Pareles 98c1a7e528 minor change 2025-01-21 23:15:32 -08:00
Andrew Pareles c94dda65f7 Update CONTRIBUTING.md 2025-01-21 19:13:59 -08:00
Mathew Pareles 24e276ba47 ux 2025-01-21 18:55:15 -08:00
Andrew Pareles 028061c879 Update CONTRIBUTING.md 2025-01-21 18:48:27 -08:00
Mathew Pareles 4e0dd8f8db fix spacing 2025-01-21 17:59:16 -08:00
Mathew Pareles c239682ad8 better ux 2025-01-21 14:18:44 -08:00
Andrew 3bfb50e6ee update bmp 2025-01-20 04:26:14 -08:00
Andrew Pareles 362d481ec4 Merge pull request #215 from voideditor/model-selection
Beta!
2025-01-20 03:02:41 -08:00
Andrew Pareles 1b4943f39e devmode 2025-01-20 01:03:53 -08:00
Andrew Pareles 8c443ab780 metrics 2025-01-20 01:01:33 -08:00
Andrew Pareles 7519f05238 update state 2025-01-20 00:51:27 -08:00
Andrew Pareles c2fc2577e0 move 2025-01-20 00:31:14 -08:00
Andrew Pareles 6e1f8a08b3 void manual updates 2025-01-20 00:21:38 -08:00
Andrew Pareles d9be67d17d updates 2025-01-19 21:36:48 -08:00
Andrew Pareles 60d22674e2 updates 2025-01-19 19:24:44 -08:00
Andrew Pareles e8c0ee631c fix 2025-01-19 17:36:54 -08:00
Andrew Pareles 6ba9d10a4a update 2025-01-19 17:23:23 -08:00
Andrew Pareles 4eff8f8e76 building files 2025-01-19 17:23:00 -08:00
Andrew Pareles 66e349c72e fix updates part 1 2025-01-19 06:21:09 -08:00
Andrew 146d63c41e Merge remote-tracking branch 'origin/main' into model-selection 2025-01-19 03:04:15 -08:00
Andrew 82439406a0 icon updates 2025-01-19 03:03:45 -08:00
Andrew Pareles efeb0d28b7 tab switch fix 2025-01-19 02:59:22 -08:00
Andrew Pareles aba7d7bf90 Merge pull request #214 from voideditor/model-selection
Latest UX/UI updates
2025-01-17 21:13:16 -08:00
Andrew Pareles f517dc79a9 rm console 2025-01-17 19:10:13 -08:00
Andrew Pareles dc33d4d0c0 fix offset collision with deletion 2025-01-17 19:09:00 -08:00
Andrew Pareles d3647bf93c red lines above green 2025-01-17 19:02:46 -08:00
Mathew Pareles 29c4603909 fix spacing 2025-01-17 18:04:48 -08:00
Andrew Pareles 85426e28bd + 2025-01-17 17:59:11 -08:00
Andrew Pareles c6ff563e1b style 2025-01-17 17:54:09 -08:00
Andrew Pareles 7ec574eeee rm log 2025-01-17 17:45:44 -08:00
Andrew Pareles 66c880945c ctrlk settings handling 2025-01-17 17:43:21 -08:00
Andrew Pareles 6f1905a962 fix streaming issue, cleanup chat error styles 2025-01-17 17:32:49 -08:00
Mathew Pareles 268d2ae99a ux 2025-01-17 17:21:04 -08:00
Mathew Pareles 1521038e03 fixes 2025-01-17 16:56:48 -08:00
Andrew Pareles dce0378eb2 fix cancel streaming 2025-01-17 16:39:26 -08:00
Mathew Pareles ce7ee62abe remove old files 2025-01-17 15:49:36 -08:00
Andrew Pareles 015943329f misc 2025-01-16 23:58:57 -08:00
Mathew Pareles 4b15885147 summary styles 2025-01-16 21:38:06 -08:00
Mathew Pareles 2e3f608805 better history handling 2025-01-16 20:17:49 -08:00
Mathew Pareles 789016709a multiple prospective 2025-01-16 20:02:22 -08:00
Mathew Pareles 835a2bdf92 spacing 2025-01-16 17:10:32 -08:00
Mathew Pareles c02f1de758 fix spacing 2025-01-16 17:09:38 -08:00
Mathew Pareles ddd9cf857f ux 2025-01-16 03:31:17 -08:00
Mathew Pareles e4fd6d05a4 prospective file adding 2025-01-16 02:20:33 -08:00
Andrew Pareles 9756ab6d16 filter out empty thread 2025-01-15 23:52:32 -08:00
Andrew Pareles 433884b36c do not ignore version mismatch 2025-01-15 23:42:25 -08:00
Andrew Pareles 0d48db1a0c fix metrics 2025-01-15 23:17:05 -08:00
Andrew Pareles 10adc13b60 add manual device id 2025-01-15 22:57:17 -08:00
Andrew Pareles 2103a95930 VOID ICON - remove code-icon.svg 2025-01-15 22:42:46 -08:00
Andrew Pareles f8c454544c add logging of debug metrics 2025-01-15 20:53:41 -08:00
Andrew Pareles e3da020c0a bigger weight 2025-01-15 19:27:32 -08:00
Andrew Pareles 7dec57ae04 add high priority to void keybinds 2025-01-15 19:24:08 -08:00
Andrew Pareles f8db386c3b Update CONTRIBUTING.md 2025-01-15 18:45:24 -08:00
Andrew Pareles 2d583b87dc Merge pull request #212 from voideditor/model-selection
Latest updates
2025-01-15 18:38:51 -08:00
Andrew Pareles b9dba7d08b loading icon fix 2025-01-15 18:26:47 -08:00
Andrew Pareles 4e18dd4ac3 rename 2025-01-15 18:23:35 -08:00
Andrew Pareles 471333ec16 can have many streams at once! 2025-01-15 18:23:35 -08:00
Andrew Pareles d43453e5ed ui 2025-01-15 18:23:35 -08:00
Mathew Pareles 3abafa76ec fix cmd+k tabbing 2025-01-15 18:14:12 -08:00
Andrew Pareles e48e798afc bigger bar 2025-01-15 06:38:47 -08:00
Mathew Pareles 4619e4146a + 2025-01-15 06:07:54 -08:00
Mathew Pareles f522281c6d comment 2025-01-15 06:03:41 -08:00
Mathew Pareles 1e3668058b change aux bar min width 2025-01-15 06:03:20 -08:00
Mathew Pareles 88c921b059 minor 2025-01-15 06:00:00 -08:00
Mathew Pareles 8cfe494632 pair programming fix model refresh state 2025-01-15 05:59:38 -08:00
Andrew Pareles d4fc59034a add ai instructions, fix prompts 2025-01-15 05:25:46 -08:00
Mathew Pareles 9ba70cdc4a minor 2025-01-15 03:07:53 -08:00
Mathew Pareles 12d08eb709 maxheight increase 2025-01-15 02:47:00 -08:00
Mathew Pareles f3270a2219 add editor maxheight back 2025-01-15 02:45:27 -08:00
Mathew Pareles bd30f14980 add scrollbar styles to quickedit 2025-01-15 02:22:12 -08:00
Andrew Pareles 725de600cf schema !== 'file' for peek, and minor accept all state fix 2025-01-15 02:18:20 -08:00
Andrew Pareles ccfd54fcfe fix 2025-01-15 01:51:49 -08:00
Andrew Pareles 071c4893c2 add state for accept|reject all 2025-01-15 01:42:17 -08:00
Mathew Pareles 8f15c67960 acceptall rejectall ui 2025-01-15 01:27:27 -08:00
Mathew Pareles fd546ff7b7 starting point for accept|reject all 2025-01-15 00:04:24 -08:00
Andrew Pareles 895628bb91 comment 2025-01-14 23:15:54 -08:00
Andrew Pareles 4898875532 fix 2025-01-14 23:13:28 -08:00
Mathew Pareles 9ddc22b63c fix package.json 2025-01-14 19:58:36 -08:00
Andrew Pareles 44438fe1fe re-remove streaming state for nwo 2025-01-14 19:34:09 -08:00
Andrew Pareles 64e43fa53e fix ctrlK state 2025-01-14 19:14:32 -08:00
Mathew Pareles 07f4a59ce6 diff on redf 2025-01-14 18:36:23 -08:00
Andrew Pareles c7d5d5d183 fix streaming alignment 2025-01-14 16:57:08 -08:00
Andrew Pareles 9f96ebcfc2 fix lag by changing rendering process in red zones 2025-01-14 15:44:39 -08:00
Mathew Pareles 01839654d4 acceptall rejectall widget draft 2025-01-13 22:10:47 -08:00
Andrew Pareles 37200dacbd add metrics + streaming works pretty well! 2025-01-13 21:48:14 -08:00
Mathew Pareles 86612fd5ed accept/reject styles 2025-01-13 19:08:21 -08:00
Mathew Pareles 937816519c more spacing 2025-01-13 17:47:17 -08:00
Andrew Pareles 35e366a5ba rm testDiffs 2025-01-13 17:30:18 -08:00
Andrew Pareles d2fdbd7ffd date 2025-01-13 17:16:58 -08:00
Andrew Pareles 33a003fc2d get ready to release 2025-01-13 17:16:27 -08:00
Andrew Pareles 9589134830 modify changelog 2025-01-13 17:15:44 -08:00
Mathew Pareles 164684a39b input color 2025-01-13 17:00:49 -08:00
Andrew Pareles accff821f8 style fixes 2025-01-13 16:54:26 -08:00
Mathew Pareles 00fc9964e5 ts by default 2025-01-13 16:45:15 -08:00
Mathew Pareles 3e5ead2547 dropdown 2025-01-13 16:31:03 -08:00
Andrew Pareles 52d89e5815 heursitc check 2025-01-13 04:23:34 -08:00
Andrew Pareles 4cf13b67b0 comment 2025-01-13 04:16:54 -08:00
Andrew Pareles fc327e3fcb colors 2025-01-13 04:16:16 -08:00
Andrew Pareles 59afe2d6ff fix with requestanimationframe 2025-01-13 04:14:43 -08:00
Andrew Pareles 1d590510ae mostly works!! tracethroughs would be insanely helpful... 2025-01-13 03:55:20 -08:00
Andrew Pareles c5a6f476ef cleanup 2025-01-13 03:55:20 -08:00
Andrew Pareles ae4ece1826 bug fixes and migrate to custom VoidInputBox2 2025-01-13 03:55:20 -08:00
Mathew Pareles ec2f04be91 merge temporary fix 2025-01-13 03:33:06 -08:00
Mathew Pareles 8a56ea9755 merge bug 2025-01-13 03:32:21 -08:00
Mathew Pareles 261736bde5 prepare edit button 2025-01-13 03:23:38 -08:00
Mathew Pareles 7dd5171bd2 empty threads 2025-01-12 19:31:37 -08:00
Mathew Pareles becd109776 empty tyhreaeds 2025-01-12 19:29:22 -08:00
Mathew Pareles 0d9f441967 fix spacing settings 2025-01-12 19:22:29 -08:00
Andrew Pareles 6386fc95ee misc 2025-01-12 19:10:33 -08:00
Andrew Pareles 06688228ae notif details 2025-01-12 19:03:10 -08:00
Mathew Pareles b3d2453e7f history style 2025-01-12 19:02:28 -08:00
Andrew Pareles 29e1f312c3 scroll to top on thread switch 2025-01-12 18:06:52 -08:00
Andrew Pareles b9b645522a improve changelog 2025-01-12 17:53:00 -08:00
Mathew Pareles 83bf660b76 md styles 2025-01-12 17:52:00 -08:00
Andrew Pareles 268f08c51d changelog 2025-01-12 17:30:35 -08:00
Andrew Pareles 046942be75 remove telemetry 2025-01-12 17:29:12 -08:00
Andrew Pareles 6fed97eb83 + 2025-01-12 15:42:21 -08:00
Mathew Pareles e888f261fe accept/reject on right 2025-01-12 03:58:44 -08:00
Andrew Pareles 6e8498414c add ability to test diffs 2025-01-12 03:49:35 -08:00
Andrew Pareles bcda1dbe2b don't let ctrlK overlap 2025-01-12 03:23:56 -08:00
Mathew Pareles be3128acb4 ctrlk styles 2025-01-12 03:14:59 -08:00
Andrew Pareles 29cbb15911 fix async race condition 2025-01-12 03:01:14 -08:00
Andrew Pareles 8da71dc1b7 jitter changes 2025-01-12 02:07:32 -08:00
Andrew Pareles a69b99b562 file tab switches only 2025-01-12 01:58:50 -08:00
Mathew Pareles 6868a8b1d8 fix menu ctrl+k 2025-01-12 01:23:49 -08:00
Mathew Pareles 10f8fcc17d language detection better 2025-01-11 22:37:31 -08:00
Mathew Pareles ee9f84a475 fix delete button 2025-01-11 19:12:38 -08:00
Mathew Pareles c056214684 prompt adjust 2025-01-11 18:12:21 -08:00
Mathew Pareles fcf03f2710 Merge branch 'model-selection' of https://github.com/voideditor/void into model-selection 2025-01-11 17:22:53 -08:00
Mathew Pareles ed50ed5319 get rid of delete 2025-01-11 17:18:33 -08:00
Andrew Pareles f15f5ce8ed clear button - styles 2025-01-11 17:15:42 -08:00
Mathew Pareles 11578d6288 clear all button 2025-01-11 16:48:59 -08:00
Mathew Pareles d904dbb93e clearall style 2025-01-11 16:25:44 -08:00
Andrew Pareles 6df0c0ac69 add tab switch listeners that account for visibility 2025-01-11 16:22:53 -08:00
Andrew Pareles 0f98af7fc1 ignore not compatible 2025-01-11 15:50:55 -08:00
Mathew Pareles e1b8e49b13 update metrics 2025-01-11 00:51:55 -08:00
Andrew Pareles e6f6c7500d update api comment 2025-01-10 23:57:44 -08:00
Mathew Pareles 951da8e31a merge 2025-01-10 19:02:53 -08:00
Andrew Pareles 966470cf68 fix icon for clear 2025-01-09 23:24:50 -08:00
Andrew Pareles b2cf709685 add clear button and increate prefix/suffix FIM length 2025-01-09 23:16:00 -08:00
Andrew Pareles ab0bf4bef0 ring inset 2025-01-09 22:45:42 -08:00
Andrew Pareles db20584a19 separate open sidebar from select for sidebar 2025-01-09 22:29:30 -08:00
Andrew Pareles 7d1d638dae add updater link 2025-01-09 22:22:34 -08:00
Andrew Pareles 0d1c4944c1 only open 1 editor 2025-01-09 21:22:44 -08:00
Andrew Pareles f7c4d28d55 toggle vs open settings 2025-01-09 21:20:09 -08:00
Mathew Pareles a2ae7a9674 Update README.md 2025-01-09 21:08:31 -08:00
Mathew Pareles 262e15764b Update README.md 2025-01-09 21:06:25 -08:00
Mathew Pareles 26f97f5939 Update README.md 2025-01-09 20:48:13 -08:00
Mathew Pareles a9dc35e5db Update README.md 2025-01-09 19:37:02 -08:00
Andrew Pareles 326dcae24f Merge remote-tracking branch 'origin/main' into model-selection 2025-01-09 18:59:45 -08:00
Andrew Pareles f880ddd6dc Merge pull request #211 from voideditor/lic
License
2025-01-09 18:53:42 -08:00
Andrew Pareles 7925e438c6 header update 2025-01-09 18:51:40 -08:00
Andrew Pareles 2f5e954ebf update 2025-01-09 18:49:05 -08:00
Andrew Pareles 6a8ac1a68e apache 2.0 2025-01-09 18:48:52 -08:00
Andrew Pareles c5b6fd9b75 Create temp 2025-01-09 18:48:15 -08:00
Andrew Pareles 7e68a485f2 misc 2025-01-09 18:15:51 -08:00
Mathew Pareles a1da8bd12f settings improve 2025-01-09 03:59:41 -08:00
Andrew Pareles ebd78a902d misc 2025-01-09 03:58:18 -08:00
Andrew Pareles f96c03c846 fix scroll ctrlK 2025-01-09 03:55:16 -08:00
Andrew Pareles fed865e753 copy 2025-01-09 03:40:44 -08:00
Andrew Pareles 8d2917d331 more 2025-01-09 03:38:07 -08:00
Andrew Pareles f4c1fc8917 settings style updates 2025-01-09 03:38:07 -08:00
Mathew Pareles 0a3f31acae scrolbar 2025-01-09 03:27:39 -08:00
Mathew Pareles 924c953697 setttings minwidth 2025-01-09 03:24:30 -08:00
Andrew Pareles 446dede5e4 refreshes ollama only 2025-01-09 02:52:18 -08:00
Andrew Pareles 7bb0993249 transfer button feedback 2025-01-09 02:48:48 -08:00
Andrew Pareles 4968452003 proper warning 2025-01-09 02:22:54 -08:00
Andrew Pareles 037f9f38e5 one click switch 2025-01-09 02:17:29 -08:00
Mathew Pareles e132c87792 generalize for @andrew 2025-01-09 02:15:52 -08:00
Mathew Pareles 07d87c8bf0 styles 2025-01-09 01:56:36 -08:00
Mathew Pareles c7ad7d3761 fix dropdown 2025-01-09 01:53:05 -08:00
Mathew Pareles ff9d21eee0 fix dropdown 2025-01-09 01:50:11 -08:00
Mathew Pareles e4953057ef color improvements 2025-01-09 01:50:11 -08:00
Mathew Pareles 865c34f282 new model dropdown draft 2025-01-09 01:50:11 -08:00
Andrew Pareles ec65903692 misc 2025-01-08 21:07:54 -08:00
Andrew Pareles a08e6078f2 reject diffarea and cleanup 2025-01-08 19:32:44 -08:00
Andrew Pareles 20e1b287f8 scrollbar settings 2025-01-08 19:32:44 -08:00
Mathew Pareles f2f9b6ccca context fits in inputbox 2025-01-08 17:38:54 -08:00
Andrew Pareles c4e4701dc3 placeholder 2025-01-08 17:12:39 -08:00
Andrew Pareles 37af31f958 minor comment 2025-01-08 16:30:38 -08:00
Mathew Pareles b5dff4cf0f selection bug fix 2025-01-08 03:04:19 -08:00
Mathew Pareles 3621bb63f4 wrap 2025-01-08 02:58:27 -08:00
Mathew Pareles da247c6ed4 color 2025-01-08 01:46:54 -08:00
Mathew Pareles ce634eadaa better styles 2025-01-08 00:14:57 -08:00
Mathew Pareles 910ed7faa9 fix scrollbar bug 2025-01-07 22:48:32 -08:00
Andrew Pareles 9e852355d9 add important tags to build files 2025-01-07 22:35:34 -08:00
Mathew Pareles 8ae4700bb2 fix to annoying out of order import problem 2025-01-07 22:28:14 -08:00
Mathew Pareles f13c30ae0d refactor blockcode 2025-01-07 21:02:59 -08:00
Mathew Pareles af244938b8 refactor blockcode 2025-01-07 20:39:24 -08:00
Andrew Pareles a53f92432b keybinding for ctrl+L and ctrl+K shows accurately even if user changes it 2025-01-07 19:45:41 -08:00
Mathew Pareles ca2b18d9da scrollbar styles recursive 2025-01-07 00:33:27 -08:00
Mathew Pareles 5293095eb8 custom scrollbar 2025-01-06 23:11:52 -08:00
Mathew Pareles 86346f1bf0 scrollbars 2025-01-06 19:15:41 -08:00
Mathew Pareles a0672f845d selection ui 2025-01-06 18:38:53 -08:00
Andrew Pareles f96d320ce0 fix tricky reject bug 2025-01-06 02:02:48 -08:00
Andrew Pareles bb7e69b20b small fix for realigning 2025-01-06 01:43:54 -08:00
Andrew Pareles f19e579ce9 extract code works! ignore </MID> etc 2025-01-06 01:19:27 -08:00
Andrew Pareles dd133d2cd5 ctrlK roundRange 2025-01-05 21:27:16 -08:00
Andrew Pareles 2ba04a78a8 add X to ctrlK 2025-01-05 21:02:31 -08:00
Andrew Pareles fb948b331f ctrlK 2025-01-05 18:03:36 -08:00
Raz Luvaton 5083b8e971 fix react build.js to properly find the base folder (#203) 2025-01-05 18:00:40 -08:00
Mathew Pareles 35091eb8f2 change wording 2025-01-05 17:11:10 -08:00
Mathew Pareles b9e61bf4e2 styles 2025-01-05 17:10:20 -08:00
Andrew Pareles 55ec3365a2 empty seln 2025-01-05 17:04:07 -08:00
Mathew Pareles d6811e872a fix color 2025-01-05 16:57:39 -08:00
Mathew Pareles c176b8020f styles 2025-01-05 16:35:43 -08:00
Andrew Pareles 85c2c80db0 Update README.md 2025-01-04 23:55:52 -08:00
Andrew Pareles b677d3dfc1 Update CONTRIBUTING.md 2025-01-03 17:18:18 -08:00
Andrew Pareles 6dcf684429 updateService changes 2025-01-03 17:11:18 -08:00
Mathew Pareles 26ddd6418c extract <MID> result 2025-01-03 16:54:04 -08:00
Andrew Pareles cc177b9cd4 update package 2025-01-03 14:14:37 -08:00
Andrew Pareles dd204978e5 update lock 2025-01-03 13:31:54 -08:00
Andrew Pareles fb48c4e67e Update VOID_USEFUL_LINKS.md 2025-01-03 13:15:55 -08:00
Andrew Pareles 74fa5cb505 Merge pull request #202 from PraveenAsh/patch-1
Update CONTRIBUTING.md
2025-01-03 12:44:33 -08:00
Andrew Pareles fae03c3060 Update CONTRIBUTING.md 2025-01-03 12:44:12 -08:00
Praveen Naik 68722ee5c3 Update CONTRIBUTING.md
Added details about Bundling output. Most of us open only the repo without workspace to save memory. It's easy to miss out on where the bundle is located. Added clarity
2025-01-03 21:04:54 +05:30
Mathew Pareles cffe558cf5 code editor bg 2025-01-03 01:35:36 -08:00
Mathew Pareles 9bc551f0ac code editor bg 2025-01-03 01:35:36 -08:00
Mathew Pareles 01d7878671 code editor bg 2025-01-03 01:31:47 -08:00
Mathew Pareles 2519f094cc input and dropdown styles 2025-01-03 00:00:03 -08:00
Andrew Pareles 4a993a716b Update README.md 2025-01-02 23:34:37 -08:00
Andrew Pareles 23d1d4169a update CONTRIBUTING.md 2025-01-02 23:20:36 -08:00
Andrew Pareles f688e1ffae Update LICENSE-VS-Code.txt 2025-01-02 23:06:06 -08:00
Andrew Pareles a443315c14 Merge branch 'main' of https://github.com/voideditor/void 2025-01-02 23:02:05 -08:00
Andrew Pareles eeacb2d3c9 separate licenses + header 2025-01-02 23:00:59 -08:00
Andrew Pareles cdbdf3c5c7 License update (#199) 2025-01-02 22:58:05 -08:00
Andrew Pareles 825c40bfff license 2025-01-02 22:40:43 -08:00
Andrew Pareles a72305819a copy 2025-01-02 19:15:08 -08:00
Andrew Pareles a3d3309b9d Merge pull request #197 from voideditor/model-selection
Fix line indexing for CtrlK
2025-01-02 18:59:08 -08:00
Andrew Pareles 32bfe9a111 fix line indexing when streaming 2025-01-02 18:58:44 -08:00
Andrew Pareles a9adcad560 misc 2025-01-02 17:57:38 -08:00
Mathew Pareles 80f7511eee default settings instructions 2025-01-02 17:34:31 -08:00
Andrew Pareles 7fe8f5c47d ctrlK line numbers are right 2025-01-02 17:26:28 -08:00
Mathew Pareles b31882565b fix watchreact 2025-01-02 17:11:32 -08:00
Andrew Pareles 6aaf425419 Settings update + ctrlK stream runs (but is broken) 2025-01-02 17:10:38 -08:00
Andrew Pareles b0d21dfdb1 Merge pull request #196 from voideditor/model-selection
misc necessary updates
2025-01-02 16:41:33 -08:00
Andrew Pareles 2087948789 misc necessary updates 2025-01-02 16:40:55 -08:00
Andrew Pareles 6feb713682 Merge pull request #192 from jcommaret/main
Fix - bundle - ajv missing deps
2025-01-02 16:31:45 -08:00
Andrew Pareles 667dc8bd7e merge 2025-01-02 16:31:29 -08:00
Andrew Pareles bdb0c65346 Merge pull request #195 from voideditor/model-selection
Merge model selection branch (ctrlK, model selection, UI)
2025-01-02 16:29:10 -08:00
Andrew Pareles df14b80d8b not sure where this came from 2025-01-02 16:28:33 -08:00
Andrew Pareles 86decf8ed9 add (c) headers 2025-01-02 16:27:06 -08:00
Andrew Pareles bd9b9a9058 minor updates 2025-01-02 16:20:19 -08:00
Mathew Pareles 83c1f3430a fix assistant chat 2025-01-02 15:51:00 -08:00
Andrew Pareles 02de8937ac update copy 2025-01-02 01:28:19 -08:00
Mathew Pareles 78f3819c33 move extractCodeFromResult 2025-01-01 23:19:16 -08:00
Mathew Pareles b9cea4906e fix chat bubble direction 2025-01-01 23:08:32 -08:00
Mathew Pareles 4a4677b5e2 center button; fix single line button 2025-01-01 22:35:48 -08:00
Andrew Pareles 5dab1a6a77 update product.json 2025-01-01 22:05:57 -08:00
Mathew Pareles 9b01d5ba7c minor changes 2025-01-01 21:28:44 -08:00
Mathew Pareles dcb708758d fix input resize 2025-01-01 21:28:44 -08:00
Andrew Pareles dd4548466a minor chagnes 2025-01-01 20:01:10 -08:00
Andrew Pareles cda489e3e0 small fixes 2025-01-01 05:04:51 -08:00
Andrew Pareles 13594ef06c rework copy 2025-01-01 04:57:10 -08:00
Andrew Pareles c2b8df06eb desc 2025-01-01 04:47:41 -08:00
Andrew Pareles 33809ec48b finish adding css 2025-01-01 04:44:43 -08:00
Andrew Pareles b4820abc9e css 2025-01-01 04:31:44 -08:00
Andrew Pareles 0e79dec0d7 VOID ICONS 2024-12-31 22:03:38 -08:00
Andrew Pareles 659f01413f misc + track down icons to change 2024-12-31 20:27:31 -08:00
Andrew Pareles 110534df30 memo model dropdown + add ability to remove ctrlK zone 2024-12-31 16:18:18 -08:00
Andrew Pareles d3b61867f0 ctrlK now switches tabs + UI + remove async 2024-12-31 15:41:24 -08:00
Andrew Pareles 954e611fda Merge branch 'new-services' into model-selection 2024-12-31 13:56:07 -08:00
Andrew Pareles 64760aae13 comment 2024-12-31 13:54:08 -08:00
Andrew Pareles d0d1124543 delete old files 2024-12-31 13:47:41 -08:00
Andrew Pareles 90a3fd0a21 merge 2024-12-31 13:45:48 -08:00
Andrew Pareles 11ed2545c7 Merge remote-tracking branch 'origin/main' into new-services 2024-12-31 13:40:20 -08:00
Andrew Pareles 3d1df92f6a re-add deletion logic 2024-12-31 13:39:31 -08:00
Andrew Pareles 4ca16caa4e fix misc history issues with ctrlk - looks good!!! 2024-12-31 02:24:34 -08:00
Andrew Pareles 06b5cca59a history snapshot is only for this URI 2024-12-30 23:29:05 -08:00
Andrew Pareles e3c292eee7 progress towards ctrlK 2024-12-30 22:14:55 -08:00
Andrew Pareles 99c3786d06 diffarea resize logic 2024-12-30 19:37:52 -08:00
Andrew Pareles 6e40a92315 add FIM streaming + instructions 2024-12-30 15:20:55 -08:00
Andrew Pareles a9b2ff631d ctrlK progress... 2024-12-30 03:04:32 -08:00
Mathew Pareles 198adaaf18 selection ui 2024-12-30 04:57:43 -05:00
Mathew Pareles 2df7fa9ebc better model selection 2024-12-30 04:36:31 -05:00
Mathew Pareles 312942b004 ollama instructions 2024-12-30 03:39:17 -05:00
Mathew Pareles 0a444f6ff8 mark if model is detected locally 2024-12-30 01:45:02 -05:00
Mathew Pareles 0c10cb73f6 fix polling enable bug 2024-12-29 23:45:46 -05:00
Andrew Pareles ef8bba00b9 update ctrlk 2024-12-29 19:16:16 -08:00
Mathew Pareles 3a3bc24fef better polling state 2024-12-29 05:07:52 -05:00
Andrew Pareles ff7830e704 resize observer mostly works 2024-12-28 22:30:46 -05:00
Andrew Pareles 01a345a391 ctrlk double redundancy fix 2024-12-28 21:28:20 -05:00
Andrew Pareles 33909b3143 add ctrl+K 2024-12-28 20:03:47 -05:00
Jérôme Commaret 9543bf8eb3 Fix : Ajv missing deps at bundle 2024-12-28 22:19:16 +01:00
Andrew Pareles 9a9d0da91e remove errors 2024-12-27 23:56:24 -05:00
Jérôme Commaret d85a316536 Merge branch 'voideditor:main' into main 2024-12-27 13:59:49 +01:00
Andrew Pareles 1df044fb02 Update product.json 2024-12-25 22:23:01 -05:00
Mathew Pareles 076e0add44 prepare large merge 2024-12-25 19:21:16 -08:00
Andrew Pareles dfbd729fa4 nightly progress 2024-12-24 23:45:58 -05:00
Mathew Pareles 8a17c9246b language logic 2024-12-24 17:34:18 -08:00
mp 1afb39b155 minor changes 2024-12-24 02:22:45 -08:00
mp f08fd04af5 autodetect language 2024-12-23 16:21:37 -08:00
Andrew Pareles ef9d0daef4 minor chat styles 2024-12-23 15:37:06 -08:00
Andrew Pareles ffe5a41b01 fix rounding 2024-12-23 04:33:49 -08:00
Andrew Pareles 372beb7a2d rm temp 2024-12-23 03:30:05 -08:00
Andrew Pareles 406f29bb5a + 2024-12-23 03:29:49 -08:00
Andrew Pareles ee8b98ff74 minor changes 2024-12-23 03:00:19 -08:00
Andrew Pareles ffb0549c7c update zoneStyleService 2024-12-23 03:00:19 -08:00
Andrew Pareles 8f9c2f0630 misc 2024-12-23 03:00:19 -08:00
Andrew Pareles 84bfc26dce debugging 2024-12-23 03:00:10 -08:00
Andrew Pareles 80a87ff3c6 improvements but might still be buggy 2024-12-23 02:43:19 -08:00
mp 806ec939e5 ux for providers 2024-12-23 02:34:23 -08:00
Andrew Pareles 98a22d2eb6 minor changes 2024-12-23 00:16:37 -08:00
Andrew Pareles ffa31bc289 update zoneStyleService 2024-12-23 00:14:54 -08:00
Andrew Pareles a1ab8a5796 misc 2024-12-22 23:52:21 -08:00
mp 70c7d0261c correct bg 2024-12-22 21:41:37 -08:00
mp e7af8d9448 selection style 2024-12-22 21:28:09 -08:00
mp e1feaba74a warning icon 2024-12-22 02:12:24 -08:00
mp 8456f979ba warning icon 2024-12-22 02:07:29 -08:00
Andrew Pareles 6630d596f6 code box UI 2024-12-21 22:43:34 -08:00
Andrew Pareles a435a59a2e inlineDiffEdits add support for ctrl+K 2024-12-21 22:40:08 -08:00
mp 9cf4980004 selection 2024-12-21 22:37:08 -08:00
Mathew Pareles 6298be394d indentation 2024-12-21 21:13:21 -08:00
Andrew Pareles e647ce0054 fix + mount sidebar on init 2024-12-21 18:46:45 -08:00
Andrew Pareles 5fb30fed87 sidebar action 2024-12-21 18:29:15 -08:00
mp 7cc57bf086 input styles 2024-12-21 18:19:19 -08:00
Andrew Pareles 3fb6a4890d watermark 2024-12-21 17:51:15 -08:00
mp 97fd332c4e add code editor block 2024-12-21 17:29:02 -08:00
Andrew Pareles 81282e16b3 minor contrib update 2024-12-21 00:15:14 -08:00
Andrew Pareles 382275fa9f delete built-in extensions so the build works 2024-12-21 00:00:57 -08:00
Andrew Pareles 91f8321278 delete autoenable 2024-12-20 02:08:30 -08:00
Andrew Pareles 9b1f21d7c1 Merge pull request #185 from voideditor/model-selection
Daily UI improvements
2024-12-20 02:07:49 -08:00
Andrew Pareles 739ac2562b protected fix 2024-12-19 22:44:29 -08:00
Andrew Pareles 298423928e update styles and descs 2024-12-19 18:44:26 -08:00
mp 702d11ed3e Merge branch 'polishing-changes' into model-selection 2024-12-19 17:09:01 -08:00
Andrew Pareles 4513b732d6 all changes 2024-12-19 17:07:58 -08:00
Andrew Pareles 78e72f0c80 300 2024-12-19 17:00:16 -08:00
Andrew Pareles f457f006fb settings page styles 2024-12-19 04:05:31 -08:00
mp d6074e7ab5 ctrlk draft 2024-12-19 02:14:26 -08:00
Andrew Pareles 3669401819 upgrade to switches 2024-12-19 01:28:43 -08:00
Andrew Pareles ee7d0ed836 Merge pull request #181 from bjoaquinc/react-build-watcher
Fix React build crashing watch-client and added watch mode
2024-12-18 19:45:24 -08:00
Andrew Pareles ba87b4f0de update contrib 2024-12-18 19:40:27 -08:00
Andrew Pareles e4bc21ffb1 Merge pull request #182 from voideditor/model-selection
UI Improvements and Model Selection
2024-12-18 19:33:57 -08:00
Andrew Pareles 81b78b7765 auto fetch model works 2024-12-18 19:31:50 -08:00
Andrew Pareles c3c53b5e81 slightly fix refresh state 2024-12-18 16:48:04 -08:00
Andrew Pareles f49a6f8e41 minor style changes and refresh model works in general 2024-12-18 16:06:53 -08:00
mp 5a26aa8746 Merge branch 'model-selection' into polishing-changes 2024-12-18 15:45:18 -08:00
Andrew Pareles 8661fe1417 fix selection styles and add void watermark (buttons look bad) 2024-12-18 13:35:34 -08:00
Joaquin Coromina 2a519157da Merge remote-tracking branch 'origin/react-build-watcher' into recovered-code
Added a watcher that syncs react with watch-client without crashing#
2024-12-18 18:47:37 +08:00
mp ac8365def4 ctrl+L 2024-12-18 02:29:11 -08:00
Joaquin Coromina 610b52587b Added watchreact npm command, resolved watch-client crashes during updates, and included nodemon as a dependency 2024-12-18 18:24:17 +08:00
mp 01efab6a1d cmd+L prompt 2024-12-17 19:30:14 -08:00
Andrew Pareles 7f8e1ff00d Merge pull request #180 from voideditor/model-selection
Misc UI Improvements
2024-12-17 18:16:07 -08:00
Andrew Pareles 5b55eed08a threads styles + misc 2024-12-17 18:15:09 -08:00
Andrew Pareles d618223289 misc improvements. need to add max h on thread histroy 2024-12-17 01:55:32 -08:00
Andrew Pareles 7752278720 settings styles 2024-12-17 01:33:33 -08:00
Andrew Pareles 597c04f63b settings UI 2024-12-16 23:08:01 -08:00
mp a7c4a1b179 input box style 2024-12-16 23:02:33 -08:00
Andrew Pareles a7aab9cf86 some UI for models! 2024-12-16 21:49:03 -08:00
Andrew Pareles c44497510b add responsive dark mode 2024-12-16 18:57:28 -08:00
Andrew Pareles c485d2c478 react updates 2024-12-16 17:43:07 -08:00
Andrew Pareles dfdf29fb36 rename 2024-12-16 15:05:49 -08:00
Andrew Pareles 420fb1a186 icon is incredibly annoying 2024-12-16 01:21:55 -08:00
Andrew Pareles 78a48bae13 add model selection 2024-12-16 00:17:50 -08:00
mp fc187e0028 sidebar scrolllock 2024-12-15 23:06:25 -08:00
mp f973f8d4e7 fix selection range bug 2024-12-15 22:24:16 -08:00
Andrew Pareles 8403eed8ca fix hook 2024-12-15 21:42:31 -08:00
Andrew Pareles 718b8cc61b add void settings in lower left 2024-12-15 21:10:17 -08:00
mp f6924df09b Fix rerenders 2024-12-15 20:52:43 -08:00
Andrew Pareles 8b25f80e9b model selection is accurate now, and lots of files moved to be more accurate 2024-12-15 20:43:11 -08:00
mp a42ff2d59a sidebar + ux 2024-12-15 01:33:02 -08:00
Andrew Pareles 0589a2a5ec remove maxtokens 2024-12-15 01:11:07 -08:00
Andrew Pareles 7dda4bdc08 add editor pane 2024-12-15 00:30:21 -08:00
Andrew Pareles f21ef61677 .js fix 2024-12-14 21:19:49 -08:00
Andrew Pareles 56b6d406d6 Merge remote-tracking branch 'origin/main' into model-selection 2024-12-14 21:16:43 -08:00
Andrew Pareles 2ae29a50e5 fix 2024-12-14 21:16:16 -08:00
mp 9673e974ea rename + merge 2024-12-14 20:47:27 -08:00
mp 842d388669 multiple selections 2024-12-14 20:39:50 -08:00
Andrew Pareles f146385e1d Update CONTRIBUTING.md 2024-12-14 20:17:30 -08:00
Andrew Pareles bb87726b34 Update CONTRIBUTING.md 2024-12-14 20:15:15 -08:00
Andrew Pareles deb30b49bc Update CONTRIBUTING.md 2024-12-14 19:51:28 -08:00
Andrew Pareles 56923eec52 Update CONTRIBUTING.md 2024-12-14 19:50:16 -08:00
Andrew Pareles d2692d2594 Update CONTRIBUTING.md 2024-12-14 19:47:44 -08:00
Andrew Pareles 5d44fdc17d Update CONTRIBUTING.md 2024-12-14 19:47:21 -08:00
Andrew Pareles aada60c5be Update CONTRIBUTING.md 2024-12-14 19:45:45 -08:00
Andrew Pareles b53e5d4886 Update CONTRIBUTING.md 2024-12-14 19:45:37 -08:00
Andrew Pareles f299998994 Update CONTRIBUTING.md 2024-12-14 19:41:18 -08:00
Andrew Pareles 967292e615 Update CONTRIBUTING.md 2024-12-14 19:31:37 -08:00
Andrew Pareles 19e3ebefda misc 2024-12-14 18:07:56 -08:00
Andrew Pareles 7cf6c9d798 Merge pull request #175 from voideditor/model-selection
Minor Contrib.md changes
2024-12-14 18:04:37 -08:00
Andrew Pareles 14e314e5b8 update contrib 2024-12-14 18:03:50 -08:00
Andrew Pareles 4e6e0b3bde Merge pull request #172 from voideditor/model-selection
Model selection
2024-12-14 17:58:38 -08:00
Andrew Pareles 63b086b786 dummy commit 2024-12-14 17:55:44 -08:00
Andrew Pareles bda6ad06c9 Merge branch 'main' into model-selection 2024-12-14 17:53:38 -08:00
Andrew Pareles 829d82850d rename Secondary Side Bar to Void Side Bar 2024-12-14 17:51:21 -08:00
Andrew Pareles 3991372f5b misc improvements 2024-12-14 17:51:07 -08:00
Andrew Pareles 9b427c78bf fix react state sync bug 2024-12-13 01:28:55 -08:00
Andrew Pareles 5dad4c8f06 relevant ollama update vals 2024-12-13 01:05:33 -08:00
Andrew Pareles e2d39fe4b1 ollama refreshes! 2024-12-13 00:41:34 -08:00
Andrew Pareles 1365400f21 llmMessageService now multiplexes between sendLLMMessage, ollama, etc 2024-12-12 19:30:45 -08:00
Andrew Pareles 94f4d2caaf add ollamaList to llmMessageService 2024-12-12 19:30:45 -08:00
Andrew Pareles 696abc39fd add ollama model fetcher, but proxy ignores its functions 2024-12-12 19:30:45 -08:00
mp abc7151cd6 Merge branch 'model-seln-2' into model-selection 2024-12-12 16:50:37 -08:00
Andrew Pareles c86f47743e update links 2024-12-12 16:42:48 -08:00
Andrew Pareles 9d6eb62c3e revert accidental change 2024-12-12 16:31:21 -08:00
Andrew Pareles 2f26b34a96 remove connect-src * that was introduced in testing 2024-12-12 16:25:23 -08:00
Andrew Pareles 5807c94a61 tailwind 2024-12-12 14:49:36 -08:00
Andrew Pareles df23314bd2 add css to useful links 2024-12-12 14:37:54 -08:00
Andrew Pareles 6703aa1545 get ready to sync ollama models 2024-12-12 01:42:06 -08:00
mp aaab289ece native tailwind colors 2024-12-12 01:10:52 -08:00
Andrew Pareles d809839530 add dummy models 2024-12-11 21:30:13 -08:00
Andrew Pareles 9e583960ae visual improvements 2024-12-11 21:17:24 -08:00
Andrew Pareles 19737d4cdc minor display change 2024-12-11 20:06:16 -08:00
mp 901579a445 Merge remote-tracking branch 'origin/model-selection' into model-seln-2 2024-12-11 20:04:37 -08:00
mp 051f8f38e7 Sidebar restructure 2024-12-11 20:02:07 -08:00
Andrew Pareles 07fcb3a72c better model seln UI + error handling works much better! 2024-12-11 19:53:36 -08:00
Jérôme Commaret 2d80a29275 Merge branch 'voideditor:main' into main 2024-12-12 01:03:51 +01:00
Andrew Pareles 62cdaba44b npm run react 2024-12-11 02:57:17 -08:00
Andrew Pareles 3147a92463 Update VOID_USEFUL_LINKS.md 2024-12-11 02:53:59 -08:00
Andrew Pareles d175ac20ef try dropdownmenu; didn't work 2024-12-11 02:40:19 -08:00
Andrew Pareles 42a2dec781 minor welcome changes 2024-12-11 02:19:22 -08:00
Andrew Pareles dbef72c01c update scope-tailwind to support -pr-5 2024-12-11 02:04:33 -08:00
Andrew Pareles 6ddf977c5d select box style 2024-12-11 01:47:57 -08:00
Andrew Pareles 522f136872 license comment 2024-12-11 01:28:55 -08:00
Andrew Pareles a28194c601 add sync state for dropdown 2024-12-11 01:24:04 -08:00
Andrew Pareles cb2de5505b fix 2024-12-11 00:49:52 -08:00
Andrew Pareles f84c964d10 finished model selection 2024-12-11 00:48:48 -08:00
Andrew Pareles bb4f99f687 error state, sendLLMMessage fix, continue adding state for provider/model pair selection 2024-12-10 23:29:39 -08:00
Andrew Pareles 49b43820b2 state - pick a provider/model 2024-12-10 23:24:36 -08:00
Andrew Pareles b22bbf9639 add not recommended line 2024-12-10 19:03:42 -08:00
Andrew Pareles a1ff458007 add deps and remove devDeps 2024-12-10 19:02:17 -08:00
Andrew Pareles fb263f9d81 update contrib for bundling 2024-12-10 17:54:58 -08:00
Andrew Pareles 72deba43dd consistent error messages 2024-12-10 17:41:13 -08:00
mp 24fdb1ca0d minor changes 2024-12-10 17:29:55 -08:00
Andrew Pareles f20f41c804 minor 'true' update 2024-12-10 02:42:32 -08:00
Andrew Pareles 66037e2049 update init state properly 2024-12-10 02:39:30 -08:00
Andrew Pareles adb504f2e0 reactify Widget 2024-12-10 02:09:06 -08:00
Andrew Pareles 8b90d7827d un-delete void channels 2024-12-10 00:25:06 -08:00
mp 62e1657274 change config key + merge 2024-12-09 19:45:49 -08:00
Andrew Pareles 7f776eebdb minor key 2024-12-09 19:45:37 -08:00
Andrew Pareles 0db0513752 finish merge errors 2024-12-09 19:25:54 -08:00
Andrew Pareles d8b6b3c306 Merge branch 're-add-autocomplete' into model-seln-2 2024-12-09 19:12:57 -08:00
Andrew Pareles f7c9d732f5 update type info 2024-12-09 19:01:08 -08:00
Andrew Pareles 8a95b13711 minor changes 2024-12-09 17:03:29 -08:00
Andrew Pareles 55884ed1c9 checkbox 2024-12-09 16:45:03 -08:00
Andrew Pareles 582b25dc44 build works 2024-12-09 16:26:31 -08:00
mp 252af4c863 build script 2024-12-09 16:17:53 -08:00
Andrew Pareles e5ac36facd add new config type for each feature, UI dump 2024-12-09 02:41:27 -08:00
Andrew Pareles 77fc2d2d4a temp 2024-12-08 18:44:04 -08:00
Andrew Pareles 298adac06e fix input box 2024-12-08 17:57:48 -08:00
Andrew Pareles 0f920fb867 remove void Widget inputs for now 2024-12-07 17:20:02 -08:00
Jérôme Commaret d8e9b50890 Advanced builder section added 2024-12-07 14:49:28 +01:00
mp 02112fbc4f allow selection by feature + provider (incomplete) 2024-12-07 00:28:13 -08:00
mp 05241649ff comment grep + _uiConfig change 2024-12-06 18:16:18 -08:00
Andrew Pareles 4ba00f6216 scope-tailwind doc 2024-12-06 02:55:28 -08:00
Andrew Pareles 296cd1b477 Update CONTRIBUTING.md 2024-12-06 02:51:30 -08:00
Andrew Pareles 2148fe77ec forgot to remove these 2024-12-06 01:33:10 -08:00
Andrew Pareles 1f692ff01a update contributing 2024-12-06 01:22:47 -08:00
Andrew Pareles 8e4f943e30 move node to electron-main, leaving react stuff in contrib/ 2024-12-06 01:03:43 -08:00
Andrew Pareles a52eba91c9 react updates 2024-12-05 22:57:55 -08:00
mp 695d6a1e30 Disable autocomplete 2024-12-05 19:52:05 -08:00
Andrew Pareles a647530d77 add native input selection in settings 2024-12-05 01:17:05 -08:00
Andrew Pareles 18e3f19512 inputbox ref is now an internal widget (and works better!) 2024-12-04 23:49:45 -08:00
Andrew Pareles 86294c676a fix copy 2024-12-04 23:48:37 -08:00
Andrew Pareles 7cfd9e5580 better msg display 2024-12-04 22:07:25 -08:00
Andrew Pareles d29eca457a fix 0 2024-12-04 21:43:03 -08:00
Andrew Pareles 0855376e02 update message display 2024-12-04 21:36:33 -08:00
Andrew Pareles e1692758c6 ui improvements - abort fix 2024-12-04 20:47:41 -08:00
Andrew Pareles 411167ee44 Merge remote-tracking branch 'origin/main' into ui-improvements 2024-12-04 19:02:47 -08:00
Andrew Pareles 389efb4701 fix scroll 2024-12-04 18:54:05 -08:00
mp 48f9ac2ba1 Minor changes 2024-12-04 18:50:09 -08:00
mp f9198d4d97 Remove accepted autocomplete characters 2024-12-04 17:50:24 -08:00
Andrew Pareles eafc3dc0c9 Merge pull request #144 from pythons/feature/llm_provider
refactor: modularize LLM providers and types
2024-12-04 15:12:59 -08:00
Andrew Pareles f2b176dfda remove extensions/ code 2024-12-04 15:12:45 -08:00
Andrew Pareles 02781927e1 Merge branch 'main' into pr/pythons/144 2024-12-04 15:11:42 -08:00
Andrew Pareles 4b3f881e1f rm comment 2024-12-04 15:08:40 -08:00
Andrew Pareles f3653c1c48 clarify config access 2024-12-04 15:07:11 -08:00
Andrew Pareles 3a1955901e move natively 2024-12-04 14:46:36 -08:00
Andrew Pareles e3ce68d2d6 Merge remote-tracking branch 'origin/main' into pr/pythons/144 2024-12-04 14:26:23 -08:00
Andrew Pareles ab3d44387e Merge pull request #141 from Piyu-Pika/Gemini
Add Groq
2024-12-04 14:20:38 -08:00
Andrew Pareles 96e24a89e6 re-remove extension package.json 2024-12-04 14:19:42 -08:00
Andrew Pareles 25cc6aeb3b add readme 2024-12-04 14:18:51 -08:00
Andrew Pareles 4cac92689a integrate into codebase 2024-12-04 14:16:34 -08:00
Piyush Bhardwaj 7444488278 Merge branch 'main' into pr/Piyu-Pika/141 2024-11-27 16:03:59 +05:30
mp a6cf723dbe Fix space issue 2024-11-26 19:01:38 -08:00
Andrew Pareles 7e22b80986 Merge pull request #161 from voideditor/docs-improvements
Improve documentation
2024-11-26 16:39:46 -08:00
Andrew Pareles 9ec4f3da01 void useful links update 2024-11-26 16:39:01 -08:00
mp ef9ac7a9e3 Merge branch 'main' into re-add-autocomplete 2024-11-26 16:30:38 -08:00
mp 48426403f3 Re-added autocomplete 2024-11-26 15:15:05 -08:00
Andrew Pareles 86c9a17f8d improve message 2024-11-26 02:59:16 -08:00
Andrew Pareles d21f2c4d62 fix file capitalization part 2 2024-11-26 02:52:20 -08:00
Andrew Pareles 733256feab fix file capitalization part 1 2024-11-26 02:51:56 -08:00
Andrew Pareles f9ce9de316 Merge pull request #159 from voideditor/fix-cors
Fix CORS + CSP
2024-11-26 02:22:57 -08:00
Andrew Pareles 9f27b17f11 ignore e.stack 2024-11-26 02:22:05 -08:00
Andrew Pareles 8ff4f1c6e1 update error handling 2024-11-26 02:16:57 -08:00
Andrew Pareles f6f6259f23 fix error handling 2024-11-26 01:55:42 -08:00
Andrew Pareles c7e9175fd7 add ability to abort 2024-11-26 01:08:25 -08:00
Andrew Pareles bdc3c9cb7e proxy works! 2024-11-26 00:41:31 -08:00
Andrew Pareles 790a2b6a4f llm messages work! sent from node! 2024-11-26 00:25:47 -08:00
Andrew Pareles e6c779d91a progress 2024-11-24 23:43:10 -08:00
Andrew Pareles aa95ceafd2 proxy to node appears to work!! 2024-11-24 20:39:15 -08:00
Andrew Pareles 9ef1aa2c60 fix cors progress 2024-11-24 20:28:54 -08:00
Andrew Pareles e4107e1257 add server? 2024-11-24 17:53:57 -08:00
Andrew Pareles 1d5fef43c1 improved error handling 2024-11-23 16:05:26 -08:00
Andrew Pareles 51280d4e77 error ui improvements 2024-11-22 00:43:07 -08:00
Andrew Pareles d5ccc6f777 minor changes 2024-11-21 22:37:31 -08:00
mp 4ea1bfa9c3 add structure for re-adding autocomplete 2024-11-21 19:05:54 -08:00
Andrew Pareles c58af2a3af Merge pull request #139 from voideditor/actual-editor-insets
Native Editor Insets
2024-11-21 18:32:25 -08:00
Andrew Pareles d857d54847 reference extension 2024-11-21 18:29:08 -08:00
Andrew Pareles a7cbed395b Merge branch 'autocomplete' into actual-editor-insets 2024-11-21 18:12:28 -08:00
Andrew Pareles f6479a0668 Merge remote-tracking branch 'origin/main' into actual-editor-insets 2024-11-21 17:56:19 -08:00
Andrew Pareles a50b5c6407 add minor debugging 2024-11-21 17:54:43 -08:00
mp 53d19d819c autocomplete UX 2024-11-21 05:58:43 -08:00
Piyush Bhardwaj a3e337fe2d Merge branch 'main' into Gemini 2024-11-21 17:51:24 +05:30
Andrew Pareles 1bb243bc34 comment fixes build 2024-11-21 03:57:17 -08:00
Andrew Pareles faaf3a738a rm console.logs 2024-11-21 03:56:46 -08:00
Andrew Pareles e8bbe4bf5a tsup works 2024-11-21 03:56:09 -08:00
Andrew Pareles 469bba178a Merge pull request #155 from jcommaret/actual-editor-insets
Build.js : Fixing tsup command
2024-11-21 03:51:32 -08:00
Jérôme Commaret 879595dbe6 Build.js : Fixing tsup command 2024-11-21 12:47:44 +01:00
Andrew Pareles f7d2e95d37 update contrib 2024-11-20 23:01:29 -08:00
Andrew Pareles 9dbc7f5caa + 2024-11-20 22:43:30 -08:00
Andrew Pareles 1cc35b1d79 fix contrib* 2024-11-20 22:42:03 -08:00
Andrew Pareles 2473f210bc update contrib 2024-11-20 22:39:16 -08:00
Andrew Pareles 604578bb19 update contrib 2024-11-20 22:32:58 -08:00
Andrew Pareles 1d73aad2ed revert FIM testing code 2024-11-20 22:29:18 -08:00
Andrew Pareles 8508c2dd8e Merge branch 'main' into actual-editor-insets 2024-11-20 21:59:34 -08:00
Andrew Pareles a8c5c696be remove extension build instructions 2024-11-20 21:43:14 -08:00
Andrew Pareles 077d460b29 huge revamp to get tabs working. tabs work! 2024-11-20 21:17:29 -08:00
Andrew Pareles f3d9893588 change from model.id to model.uri and fix listener leak 2024-11-20 03:14:16 -08:00
Andrew Pareles c004e1af03 add nice visuals for accept | delete and add comments for void 2024-11-20 00:40:59 -08:00
Andrew Pareles 0d227f2bd6 add void comment 2024-11-19 22:51:49 -08:00
Andrew Pareles 0b96901aee update error 2024-11-19 18:13:45 -08:00
Piyush Bhardwaj d12a5f3b38 Merge branch 'main' into Gemini 2024-11-19 18:10:58 +05:30
mp cd77542a9e Autocomplete (max number of pending requests, filter for matchup with user's text, better prompt) 2024-11-19 03:57:06 -08:00
Andrew Pareles 0c2660e283 add history to approve/reject 2024-11-19 02:22:41 -08:00
Andrew Pareles 9a591ba29f accept/reject works!! 2024-11-19 02:21:11 -08:00
Andrew Pareles 4c633ee8ff remove code 2024-11-18 21:02:18 -08:00
Andrew Pareles 67e9759d35 make history get added instantly so we can do interrupts 2024-11-18 18:05:50 -08:00
Andrew Pareles 93dac201b3 Merge pull request #150 from jcommaret/fix-extension-lodash-dep
lodash : package added to extension
2024-11-18 17:57:14 -08:00
Andrew Pareles 946ec70136 sweep works exceptionally! 2024-11-18 17:37:32 -08:00
mp 161682cf75 Merge remote-tracking branch 'origin/autocomplete' 2024-11-18 17:14:26 -08:00
mp 6df0093786 ui 2024-11-18 17:13:55 -08:00
Andrew Pareles a527af93b7 Merge pull request #145 from nathfavour/main
Main
2024-11-18 16:22:05 -08:00
Andrew Pareles 775cb2e4ac Update dev.nix 2024-11-18 16:21:47 -08:00
Piyush Bhardwaj 68b5187f7c Merge branch 'main' into Gemini 2024-11-18 20:13:41 +05:30
Jérôme Commaret aacbef3e33 lodash : package added to extension 2024-11-18 12:58:42 +01:00
Andrew Pareles f5b2dcfe0a use renderLines instead of custom styles (still doesnt compute line wrap properly though) 2024-11-18 01:09:02 -08:00
Andrew Pareles 9d25fab5cb fix linting 2024-11-17 21:40:46 -08:00
Andrew Pareles 250b90634f Merge pull request #142 from plon-Susk7/dev
pass build information to extension
2024-11-17 19:39:35 -08:00
Andrew Pareles e56716c792 move to posthog 2024-11-17 19:39:15 -08:00
Andrew Pareles 0bf5278168 Merge branch 'main' into pr/plon-Susk7/142 2024-11-17 19:35:07 -08:00
Andrew Pareles f2c61d2419 fix formatting 2024-11-17 19:32:06 -08:00
mp bdd224990d Merge branch 'autocomplete' 2024-11-17 16:49:09 -08:00
mp 0ca2ad4930 Create basic language server functionality 2024-11-17 16:48:23 -08:00
Andrew Pareles 5140c79dcf refactor to have openAI conventions 2024-11-17 02:19:21 -08:00
Andrew Pareles 91c65b6060 fix misc 2024-11-17 02:09:39 -08:00
Andrew Pareles afd40a59b5 Merge pull request #149 from dcqe/patch-1
fix windows command
2024-11-17 02:01:36 -08:00
Andrew Pareles e6177d44c6 fix overlapping green styles 2024-11-16 23:13:59 -08:00
Andrew Pareles 63778d2012 add new findDiff test 2024-11-16 23:05:52 -08:00
Andrew Pareles 7a33cde334 fix findDiffs 2024-11-16 22:59:45 -08:00
Andrew Pareles c4e29d1c3f add history back! 2024-11-16 22:30:59 -08:00
Andrew Pareles b6b5deaa58 diffArea stream highlighting works perfectly! 2024-11-16 21:58:56 -08:00
Andrew Pareles 689a583598 diff styling is pretty consistent 2024-11-16 21:55:09 -08:00
Andrew Pareles 9f6cacdbe1 + 2024-11-16 20:49:24 -08:00
Andrew Pareles abab461236 move around 2024-11-16 20:46:39 -08:00
Andrew Pareles 23579774b8 diffareas refresh on user changes 2024-11-16 20:35:46 -08:00
Nico Mayr 0ee85b0ffd fix windows command 2024-11-17 01:34:58 +01:00
Andrew Pareles c99b1a2132 diff works! 2024-11-15 23:30:31 -08:00
Andrew Pareles 8a9e9495f9 realign after write 2024-11-15 22:40:54 -08:00
Andrew Pareles 1437f592d2 BEFORE DELETE RESIZE 2024-11-15 22:34:37 -08:00
Andrew Pareles 4ac509f0c8 update originalCode to live in Diffs 2024-11-15 21:57:23 -08:00
Andrew Pareles f37440cd3f add colors 2024-11-15 20:30:09 -08:00
Andrew Pareles ea83546e42 temp remove addtohistory 2024-11-15 04:38:27 -08:00
Andrew Pareles e2b36d735c update VSReadFile 2024-11-15 04:31:01 -08:00
Andrew Pareles 1ca94080b8 modelService 2024-11-15 04:29:25 -08:00
Andrew Pareles 2ad063eb30 simplify sweep + refresh 2024-11-15 03:42:38 -08:00
Andrew Pareles 2aea2b81c2 restore diffareas properly 2024-11-14 23:42:53 -08:00
Andrew Pareles 3fc81f1baf actions 2024-11-14 22:30:58 -08:00
Andrew Pareles 063d9312c4 fix selection using .bind() 2024-11-14 22:11:41 -08:00
mp 04761c9418 Minor changes 2024-11-14 22:00:05 -08:00
Andrew Pareles 620b335dc5 update code selection code 2024-11-14 21:20:07 -08:00
mp a765d738e1 Basic LSP Usage 2024-11-14 18:08:52 -08:00
Andrew Pareles 878ec1e782 fixing bugs 2024-11-14 05:00:32 -08:00
Andrew Pareles 84d866205b remove bugs 2024-11-14 04:05:23 -08:00
Andrew Pareles a273780472 update services to not use a Provider 2024-11-14 03:38:41 -08:00
Andrew Pareles dbea46ba32 fix services in React 2024-11-14 03:22:37 -08:00
Andrew Pareles 50d21828c2 works!! 2024-11-14 02:17:02 -08:00
Andrew Pareles a974a5df69 works! 2024-11-14 02:09:55 -08:00
Andrew Pareles 799f6c2d16 fix build regex? 2024-11-14 01:58:40 -08:00
Andrew Pareles b8f3182ee3 .js only might work 2024-11-14 01:48:56 -08:00
Andrew Pareles f22bc26355 getting there... 2024-11-14 01:47:33 -08:00
Andrew Pareles 047cc03002 minor updates trying to get it to build 2024-11-14 01:29:54 -08:00
Andrew Pareles bd49aaffde update noExternal 2024-11-14 01:06:15 -08:00
Andrew Pareles 13f6fd5c66 build! 2024-11-14 00:53:06 -08:00
Andrew Pareles 1fe12d2bfd make everything revolve around model, not editor 2024-11-13 23:58:28 -08:00
Andrew Pareles 1cf371fa8b giant updates to registerInlineDiffs 2024-11-13 23:21:54 -08:00
Andrew Pareles ee72a2c3cd registerInlineDiffs progress 2024-11-13 03:25:18 -08:00
Andrew Pareles a5912ba538 progress adding diffs 2024-11-12 03:28:53 -08:00
mp 19a8d36e07 Add LRU cache 2024-11-12 02:31:26 -08:00
mp 339aff5d31 Refactor sendLLMMessage and add FIM mode 2024-11-12 01:36:32 -08:00
Andrew Pareles 4de3f1c7ef start editing registerInlineDiff 2024-11-12 00:40:33 -08:00
Andrew Pareles 6e2030d4d4 finish converting react to VS 2024-11-11 21:14:43 -08:00
nathfavour 665e5e1058 open in idx 2024-11-11 19:53:35 -08:00
Andrew Pareles 8b9a9c7e2b prefix 2024-11-11 03:39:18 -08:00
Andrew Pareles f8f60ef6b0 re-add tailwind for content:['./src2'] tag 2024-11-11 03:38:21 -08:00
Andrew Pareles d01a5fc44c delete tailwind.config 2024-11-11 03:33:16 -08:00
Andrew Pareles f713a624f9 add prefix in tailwind.config, apparently adding it in scope-tailwind doesnt work 2024-11-11 03:29:50 -08:00
Andrew Pareles c789ab2ab7 WORKS 2024-11-11 03:16:15 -08:00
Andrew Pareles 008a5812f3 build should work now 2024-11-11 03:10:17 -08:00
Andrew Pareles 06819e172a add scope 2024-11-11 03:04:48 -08:00
Andrew Pareles 1112f79cf5 update imports and tsup 2024-11-11 02:59:27 -08:00
Andrew Pareles 9a54a57cf4 move everything to src folder 2024-11-11 02:51:10 -08:00
Andrew Pareles c4d620c874 create scope-tailwind 2024-11-11 02:29:36 -08:00
Andrew Pareles 0cc06407ad start adding tailwind 2024-11-11 02:29:10 -08:00
mp aab065139e Trim prefixes to increase cache hit rate 2024-11-10 23:52:25 -08:00
pythons aa6b5c6b6c refactor: modularize LLM providers and types
- Split monolithic sendLLMMessage.ts into separate provider modules
- Create dedicated files for each LLM provider (anthropic, gemini, openai, ollama, greptile)
- Move types into separate types.ts file
- Update import paths across affected files
- No functional changes, purely architectural improvement

This refactoring improves code organization and maintainability by:
- Separating concerns for each LLM provider
- Making the codebase more modular
- Improving type management
2024-11-11 15:10:32 +08:00
Andrew Pareles 9fc3e413a9 services work in react 2024-11-10 19:39:22 -08:00
Andrew Pareles 289da6bd6d fixed linting 2024-11-10 17:14:16 -08:00
Andrew Pareles 1feb7ec485 try to fix linting (update package) 2024-11-10 16:55:19 -08:00
Andrew Pareles 5f97a4f8a6 del out/ 2024-11-10 16:27:19 -08:00
Andrew Pareles 752ebfff3b update externals 2024-11-10 16:26:01 -08:00
Andrew Pareles 01d99645a6 WORKS 2024-11-09 21:03:03 -08:00
Andrew Pareles 00814d51f1 misc updates 2024-11-09 20:23:28 -08:00
Andrew Pareles e8ff4d8328 revert 2024-11-09 20:11:20 -08:00
Andrew Pareles 8da76e72df big changes + react build pipeline (broken) 2024-11-09 19:57:57 -08:00
mp 652f64cd14 Add basic system prompt 2024-11-08 21:57:33 -08:00
Andrew Pareles b52f0d8dd7 misc 2024-11-08 17:29:40 -08:00
priyash7 f8917e7548 added strings to info 2024-11-08 17:51:56 +05:30
Andrew Pareles 932e9fe9c6 progress 2024-11-08 02:50:52 -08:00
Andrew Pareles 3fd4357503 progress migrating to native vscode 2024-11-08 02:23:11 -08:00
mp 9b878a9fc0 Merge remote-tracking branch 'origin/main' into autocomplete 2024-11-08 01:28:19 -08:00
mp 268d03fad5 Add working autocomplete with caching 2024-11-08 01:23:09 -08:00
Andrew Pareles 3aece81891 move void files around 2024-11-06 23:18:45 -08:00
Andrew Pareles 6b268a44bb backup again 2024-11-06 21:46:17 -08:00
Andrew Pareles 70ce23862b back up build 2024-11-06 20:50:09 -08:00
Andrew Pareles 1c32d3a1c9 update build 2024-11-06 19:45:02 -08:00
Andrew Pareles 2814c63765 drag and drop extension into main 2024-11-06 16:01:59 -08:00
Piyush Bhardwaj cc3a08e1ab Merge branch 'main' into Gemini 2024-11-06 22:11:38 +05:30
Piyu-Pika 5b3a6d240e minor bug fix 2024-11-06 22:04:46 +05:30
priyash7 cc8c4d33ef passed info 2024-11-06 17:25:35 +05:30
Andrew Pareles ada31ccf90 update build to work in general 2024-11-06 01:41:26 -08:00
Andrew Pareles 4a629be2e2 add build script hack 2024-11-05 23:41:55 -08:00
Piyu-Pika 8897feb290 Groq Added 2024-11-06 12:21:11 +05:30
Andrew Pareles 75f97ea9e1 update streaming state 2024-11-05 18:47:40 -08:00
Andrew Pareles 83b9547701 add compilation of openai so we can use it internally 2024-11-05 18:38:30 -08:00
Andrew Pareles 791f6b1151 Merge pull request #140 from Madhav160804/ollama-model-selection
Added Ollama Model Check for installed models
2024-11-04 14:44:29 -08:00
Madhav160804 1c739e521d ollama error handling 2024-11-05 02:49:24 +05:30
Madhav Dhingra 794f35fc37 added ollama model check 2024-11-05 02:30:30 +05:30
Andrew 6c93028ce3 misc 2024-11-03 19:39:57 -08:00
Andrew 49072d43ea minor changes 2024-11-03 18:06:40 -08:00
Andrew a5090b8025 simplify 2024-11-03 01:57:05 -08:00
Andrew 36c3cd53e1 add new logging algo and move applyDiffLazily to diffProvider 2024-11-03 00:31:32 -07:00
Andrew e4e1c7fb6c vscode types in extension 2024-11-02 21:53:08 -07:00
Andrew fcc8de807f Merge branch 'main' into actual-editor-insets 2024-11-02 21:26:14 -07:00
Andrew 9d972f72ea update and add imports of sendLLMMessage 2024-11-02 21:25:39 -07:00
Andrew 3d629396be backup of a working version 2024-11-02 20:42:08 -07:00
Mathew Pareles fe413cb474 Update install instructions 2024-11-02 18:38:33 -07:00
Andrew Pareles 277f99e080 Merge pull request #137 from eltociear/patch-2
docs: update .devcontainer/README.md
2024-11-02 02:51:05 -07:00
Andrew 584d026256 renders oldText nicely! 2024-11-02 00:50:18 -07:00
Andrew 5acc53311d add files to make native insets work! #124 2024-11-01 21:23:38 -07:00
Ikko Eltociear Ashimine b9ba3a36c4 docs: update .devcontainer/README.md
minor fix
2024-11-01 17:16:57 +09:00
mp d7c00addd5 update inline diffs 2024-10-31 17:10:39 -07:00
Andrew Pareles b34119c4df Merge pull request #134 from Piyu-Pika/Gemini
Gemini added #new feature
2024-10-30 23:19:52 -07:00
Andrew Pareles d098291c90 minor note 2024-10-30 23:19:34 -07:00
Andrew ed9e126a4a remove duplicate extension.ts 2024-10-30 23:16:36 -07:00
Andrew a8010eec15 simplify gemini 2024-10-30 22:46:47 -07:00
Piyu-Pika 8cd1ea305c Gemini 2024-10-31 10:41:04 +05:30
Piyush Bhardwaj 762264b030 Merge branch 'main' into Gemini 2024-10-31 10:28:17 +05:30
Andrew Pareles 48d5369196 amend 2024-10-30 19:09:43 -07:00
Andrew Pareles aab840db2d amend 2024-10-30 19:02:48 -07:00
Andrew Pareles 3526005e1c amend 2024-10-30 19:02:22 -07:00
Andrew Pareles 0ef8c66d54 simplify readme 2024-10-30 19:01:56 -07:00
Andrew cd9173c802 move ctrlk 2024-10-30 18:59:17 -07:00
Piyu-Pika 0c8a185df7 Gemini added 2024-10-29 18:05:07 +05:30
Andrew 0f0719c596 fix type 2024-10-29 00:26:46 -07:00
Andrew d9397d870f change CodeSelection type 2024-10-28 17:17:26 -07:00
Andrew 1704a7de7a improve line rounding 2024-10-28 16:34:19 -07:00
Andrew 616cd2e39b update back to enum 2024-10-28 15:58:48 -07:00
Andrew Pareles 222f90bbea Merge pull request #133 from voideditor/multiple-webviews
Max tokens is optional + other config updates - Fixes #128
2024-10-28 15:50:40 -07:00
Andrew ab5245d2d9 Max tokens is optional + other config updates - Fixes #128 2024-10-28 15:50:05 -07:00
Andrew Pareles a7a4488848 minor Contributing changes 2024-10-28 04:22:19 -07:00
Andrew Pareles 8e72c1392a Merge pull request #125 from voideditor/multiple-webviews
Speculative Edits
2024-10-28 03:59:53 -07:00
Andrew 70b6af34e1 Merge branch 'main' into multiple-webviews 2024-10-28 03:58:36 -07:00
Andrew 119462f663 fix imports?? 2024-10-28 03:58:09 -07:00
Andrew 8ee665cd57 fix imports 2024-10-28 03:53:40 -07:00
Andrew ace3f181ed Merge branch 'speculative-edits' into multiple-webviews 2024-10-28 03:53:02 -07:00
Andrew 6d12737fda add throttling 2024-10-28 03:52:19 -07:00
Andrew d3962acd30 merge - but appears broken 2024-10-28 03:44:13 -07:00
Andrew 18557c8f6e comment out ctrlk so it builds 2024-10-28 03:37:18 -07:00
Andrew 29b037726e Merge branch 'speculative-edits' into multiple-webviews 2024-10-28 03:36:39 -07:00
mp eae1af331f Create Ctrl + K 2024-10-28 03:36:07 -07:00
Andrew 2e92da500f lines sweep works! Need to polish it. 2024-10-28 03:19:40 -07:00
Andrew 59dc193f97 update contrib 2024-10-26 21:36:45 -07:00
Andrew Pareles bd778d259b fix typo 2024-10-26 21:33:12 -07:00
Andrew 605cf236a5 link issues 2024-10-26 19:17:53 -07:00
Andrew 8bc3a0d277 windows build works!! 2024-10-26 19:17:20 -07:00
Andrew d80c88bc38 move files to right places 2024-10-25 22:39:13 -07:00
Andrew dd34a5be57 fix ctrl L change 2024-10-25 22:35:13 -07:00
Andrew f4be80b724 Merge remote-tracking branch 'origin/ctrlk-diff-ui' into multiple-webviews 2024-10-25 22:31:44 -07:00
Andrew b40c58b78a Merge remote-tracking branch 'origin/speculative-edits' into multiple-webviews 2024-10-25 22:25:47 -07:00
Andrew 64468b6f4d Merge branch 'speculative-edits' into multiple-webviews 2024-10-25 22:14:11 -07:00
Andrew 8f83b063f1 add ctrlk webview provider 2024-10-25 22:10:22 -07:00
mp 9eb897b655 Better file reading function 2024-10-25 21:55:15 -07:00
mp a738ca0b2c Reafactor DiffProvider for ctrl+k 2024-10-25 21:47:00 -07:00
Andrew f56772a07a amend 2024-10-25 19:58:35 -07:00
Andrew 38662d2824 major refactor, allow 3 types of webview 2024-10-25 19:49:59 -07:00
Andrew a51873c06a move files to extension/ 2024-10-25 15:58:06 -07:00
Andrew a29543e4a7 Promisify 2024-10-25 01:33:54 -07:00
Andrew d4a2ac2796 draft 2024-10-25 01:22:10 -07:00
Andrew 4b5e09c124 Merge remote-tracking branch 'origin/speculative-edits' into ctrlk-diff-ui 2024-10-24 21:08:57 -07:00
Andrew f8f48fb98b + 2024-10-24 20:48:04 -07:00
Andrew 1b8e7f3643 amend 2024-10-24 19:59:25 -07:00
Andrew 420ecb320e Merge branch 'main' into speculative-edits 2024-10-24 19:58:58 -07:00
mp 097f279ecb Throttle edit requests, refactor 2024-10-24 19:48:31 -07:00
Andrew 9a1d4e2b9c comment 2024-10-24 19:34:09 -07:00
Andrew a926efcd2a attempt windows build 2024-10-24 19:25:20 -07:00
Andrew Pareles 40aa319d18 update react comment 2024-10-24 15:37:13 -07:00
Andrew Pareles 549dabbde6 X [ERROR] Cannot start service: Host version "0.23.1" 2024-10-24 15:35:43 -07:00
Andrew Pareles 42e52647f3 Merge pull request #121 from jcommaret/main
Doc : Build command fix
2024-10-23 11:33:09 -07:00
Andrew Pareles a12ffd6b5e Update CONTRIBUTING.md 2024-10-23 11:32:52 -07:00
Andrew Pareles 3d74e77760 Update CONTRIBUTING.md 2024-10-23 11:32:27 -07:00
Jérôme Commaret 0ffd66e747 Doc : Build command fix 2024-10-23 12:30:57 +02:00
Andrew Pareles e78fa459cb Merge pull request #120 from voideditor/@andrewpareles/editor-insets
discord
2024-10-23 03:17:52 -07:00
Andrew c01b1e9488 discord 2024-10-23 03:16:10 -07:00
Andrew Pareles 45c7b951e9 or just run 2024-10-23 01:48:39 -07:00
Andrew Pareles f31f5e7ad1 Merge pull request #119 from voideditor/@andrewpareles/editor-insets
Editor Insets
2024-10-23 01:46:54 -07:00
Andrew Pareles c3a934777d Update CONTRIBUTING.md 2024-10-23 01:46:30 -07:00
Andrew Pareles 3aba62a6ed update contrib + ctrlk hello world works! 2024-10-23 01:40:47 -07:00
Andrew Pareles ad5128f885 amend 2024-10-23 00:51:31 -07:00
Andrew Pareles 376172e5a9 update contributing 2024-10-23 00:49:33 -07:00
Andrew Pareles 4dd6553e34 building on a mac works! so does editorInset! 2024-10-22 23:49:03 -07:00
Andrew f2b3a2be30 comment out checkProposedApiEnabled(extension, 'editorInsets'); 2024-10-22 22:59:09 -07:00
mp 1e4c932313 Track call time 2024-10-22 14:32:39 -07:00
mp 7bd9e01a15 Working draft of speculative edits 2024-10-21 18:33:00 -07:00
Andrew 69277a287a update Ollama message 2024-10-21 15:24:53 -07:00
Andrew Pareles 6c0f17d8f9 Merge pull request #113 from voideditor/monaco-editor
Misc Improvements
2024-10-21 14:45:30 -07:00
Andrew 6dc9988af0 amend 2024-10-20 23:28:51 -07:00
Andrew 18656372f8 add ctrlk, autofocus chatbar 2024-10-20 23:24:40 -07:00
Andrew febf492790 clarify 2024-10-20 20:15:25 -07:00
Andrew bcb0c33616 amend 2024-10-20 19:23:47 -07:00
Andrew Pareles 7072933a88 Update build-tsx.js 2024-10-20 19:20:03 -07:00
Andrew f2342bee2d add back syntax highlighter 2024-10-20 18:39:53 -07:00
Andrew 572e9f07ea misc 2024-10-20 17:14:10 -07:00
Andrew 09d84044b5 monaco loads... need to adjust height 2024-10-19 21:38:17 -07:00
mp 9ecf596cbb Prepare to debug 2024-10-19 20:17:54 -07:00
Andrew a49a1324a5 Merge branch 'main' into monaco-editor 2024-10-19 18:50:05 -07:00
Andrew 8538caeffc start adding monaco 2024-10-19 18:49:43 -07:00
Andrew 79ecd98818 add metrics 2024-10-19 18:21:19 -07:00
mp f6cad40a44 Finish speculative draft 2024-10-18 19:18:11 -07:00
mp e25368ef7f Merge branch 'main' into speculative-edits 2024-10-18 17:25:13 -07:00
mp 7ce17a0854 Initial draft for speculative edits 2024-10-18 17:19:38 -07:00
Andrew c5b5e07a98 monaco comment 2024-10-18 00:48:44 -07:00
Andrew 2addd06e60 switch to new tab on ctrl+l 2024-10-17 23:26:31 -07:00
Andrew 177f2e92f8 amend - fix disabled 2024-10-17 21:34:30 -07:00
Andrew 217f61902e add metrics 2024-10-17 21:23:07 -07:00
Andrew 9274602051 amend - uuid type 2024-10-17 19:15:42 -07:00
Andrew Pareles efa3b033af Merge pull request #110 from voideditor/ui-refactor-10-15
Settings update
2024-10-17 17:31:26 -07:00
Andrew 18649d3255 fix package 2024-10-17 17:29:28 -07:00
Andrew 2b55d94cce Merge branch 'main' into ui-refactor-10-15 2024-10-17 17:26:08 -07:00
Andrew Pareles 2d17133684 Merge pull request #87 from w1gs/main
Added displaying error messages in UI
2024-10-17 17:18:56 -07:00
Andrew e2e6cb0327 Merge branch 'main' into pr/w1gs/87 2024-10-17 17:18:12 -07:00
Andrew 5415f1e3cb amend 2024-10-17 16:46:52 -07:00
Andrew 0f3a79ab54 error UI 2024-10-17 16:43:25 -07:00
Andrew 983e926a23 add error handling from #87 2024-10-17 16:36:37 -07:00
Andrew 302aa2b384 warning for devs 2024-10-17 15:30:01 -07:00
Andrew 84ff9784ca fix sidebar settings 2024-10-17 01:20:59 -07:00
Andrew Pareles 6dfab6d00c Merge pull request #77 from SOUMITRO-SAHA/soumitrasaha#ui
Fix: Add Syntax Highlighting to Sidebar Code Snippets
2024-10-17 00:17:58 -07:00
Andrew 628ed9a578 Merge branch 'main' into pr/SOUMITRO-SAHA/77 2024-10-17 00:15:15 -07:00
Andrew 0a6f7b8ebc Merge branch 'main' into ui-refactor-10-15 2024-10-17 00:12:03 -07:00
Andrew Pareles 5b511edca1 Merge pull request #108 from IDLe-Engineering/patch-3
Connect-src updates for OpenAICompatible
2024-10-17 00:11:25 -07:00
Andrew Pareles 4ecbd998bd Merge pull request #106 from IDLe-Engineering/patch-2
Build prompt dynamically
2024-10-17 00:10:54 -07:00
Andrew fcd0eb30c6 fix 2024-10-16 23:06:34 -07:00
Andrew aa4ce3478a update styles in settings page 2024-10-16 23:03:51 -07:00
Andrew 1e82781c52 outline color 2024-10-16 20:42:47 -07:00
Andrew edf9dc9279 thread switching 2024-10-16 20:03:50 -07:00
Andrew 63c6b6bec5 vscode styles 2024-10-16 20:00:07 -07:00
Andrew 154a82ab0b add settings UI 2024-10-16 19:32:21 -07:00
Andrew Pareles ab51e97008 Merge pull request #109 from IDLe-Engineering/patch-4
Add Syntax Highlighting to Sidebar Code Snippets
2024-10-16 16:23:18 -07:00
Andrew Pareles 0240fc1803 Update package.json 2024-10-16 16:22:59 -07:00
Andrew d3b862ae91 history display slightly nicer 2024-10-16 16:19:32 -07:00
Andrew dc2344fd4c Merge branch 'main' into ui-refactor-10-15 2024-10-16 14:53:03 -07:00
Andrew 0072c554fb tabs 2024-10-16 14:52:49 -07:00
Tom Spielvogel ed8381c6cb Add Syntax Highlighting to Sidebar Code Snippets 2024-10-16 13:29:46 +02:00
Tom Spielvogel 40b4ecb4f8 Add Syntax Highlighting to Sidebar Code Snippets 2024-10-16 13:29:27 +02:00
Tom Spielvogel 5268ededbb Add Syntax Highlighting to Sidebar Code Snippets 2024-10-16 13:28:48 +02:00
Tom Spielvogel a69e1b940f Add Syntax Highlighting to Sidebar Code Snippets 2024-10-16 13:26:24 +02:00
Tom Spielvogel 15994c46d1 Adapted to new type CodeSelection 2024-10-16 11:28:23 +02:00
Tom Spielvogel b565a91194 Connect-src needs hold the entire path for chat completions for OpenAICompatible
Simply using the enpoint will trigger a Content-Security-Policy error in vscode when trying to send messages to the LLM
2024-10-16 10:56:46 +02:00
Andrew b30937934a progress moving settings to be extension-native 2024-10-16 01:12:57 -07:00
Tom Spielvogel eec7cd7321 Update SidebarChat.tsx
Build the prompt based on the actual use-case.
If no files or code is selected, don't prompt the LLM to change it. It saves time and tokens
2024-10-16 08:55:37 +02:00
Andrew Pareles f86b84dcc6 Merge pull request #105 from voideditor/ui-refactor-10-15
Split up Sidebar tabs into files and clearer message types (incorporates direction)
2024-10-15 20:54:33 -07:00
Andrew cd9bca0451 split up message direction and Sidebar tabs 2024-10-15 20:51:46 -07:00
Darion ce3043b595 Merge branch 'main' into main 2024-10-15 21:36:00 -04:00
Andrew Pareles 68c5ebb000 Merge pull request #101 from voideditor/diff-selections
Refactor and fix diff highlighting
2024-10-15 15:57:33 -07:00
w1gs 08e91e921b style fixes 2024-10-15 12:36:38 -04:00
w1gs 6c2ca794f5 fixed merge conflicts 2024-10-15 12:24:26 -04:00
Darion b3fd408cf7 Merge branch 'main' into main 2024-10-15 11:09:32 -04:00
Andrew Pareles dc96d126bb add package.json to list of void's changed files 2024-10-15 00:31:40 -07:00
Andrew 07fd622901 add OpenRouter - Fixes Add OpenRouter hosting option #20 2024-10-14 23:50:34 -07:00
Andrew bb74cbb56b swap 2024-10-14 23:32:25 -07:00
mp ffab60b4b8 Merge branch 'main' into diff-selections 2024-10-14 21:48:34 -07:00
mp 2309fc53fb Merge dynamic diff features 2024-10-14 20:37:45 -07:00
Andrew Pareles e153ffee4e Merge pull request #51 from okxiaoliang4/feature/voidrules
feat: system prompt `.voidrules`
2024-10-14 20:29:54 -07:00
Andrew a3d741d685 Merge branch 'main' into pr/okxiaoliang4/51 2024-10-14 20:24:38 -07:00
Andrew a12e35c5f0 merge package.json 2024-10-14 20:14:44 -07:00
Andrew 5f3e664eed delete ctrl+K placeholder 2024-10-14 18:12:11 -07:00
Andrew fb69afd5c4 fix thread history persistence 2024-10-14 18:07:22 -07:00
Andrew Pareles 8c9eeaa133 Merge pull request #98 from ShikangPang/openai_compatible
fix: Refactor openAICompatible initialization in sendLLMMessage.ts
2024-10-14 16:45:49 -07:00
Andrew 00f59e9555 Merge branch 'main' into pr/ShikangPang/98 2024-10-14 16:45:31 -07:00
Andrew 767c45080f update openai 2024-10-14 16:44:57 -07:00
Andrew Pareles b0758e02aa Merge pull request #99 from IDLe-Engineering/patch-1
Update sendLLMMessage.ts
2024-10-14 16:21:03 -07:00
Tom Spielvogel 7f81836d9f Update sendLLMMessage.ts
In order to take the enpoint specified for the OpenAICompatible setting - the openai class needs to be instanciated with the baseURL setting from apiConfig
2024-10-14 16:18:41 +02:00
Mathew P 33c3ef6751 Fix newline bug 2024-10-13 22:05:10 -07:00
Mathew P 20056f209e Fix accept/reject diff 2024-10-13 17:47:13 -07:00
Andrew 69d848f22b update MarkdownRender 2024-10-13 17:11:29 -07:00
Mathew P 1557a44934 Better diff algorithm 2024-10-13 00:15:41 -07:00
pangshikang 89dd63a0ee fix: Refactor openAICompatible initialization in sendLLMMessage.ts 2024-10-12 16:03:29 +08:00
Andrew e5c55145e9 update selectedFiles display 2024-10-11 23:18:23 -07:00
Andrew 2638d62a24 only start a new thread if empty 2024-10-11 20:05:10 -07:00
Andrew Pareles e04d839640 Merge pull request #53 from anetaj/feature/persist-threads-history
Persist chat threads history
2024-10-11 19:19:13 -07:00
Andrew 0158e2fd5d fix ref issues with useInstantState 2024-10-11 19:18:28 -07:00
Andrew 3e308f2082 state is broken 2024-10-11 18:05:01 -07:00
Andrew 429224993b Merge branch 'main' into pr/anetaj/53 2024-10-11 17:15:52 -07:00
Andrew Pareles 1b8271d217 Merge pull request #52 from anetaj/feature/style-include-files
Input box style
2024-10-11 17:12:18 -07:00
Andrew 29ef6b5b43 finish merge from 'main' 2024-10-11 17:11:44 -07:00
Andrew 23a42659b3 Merge branch 'main' into pr/anetaj/52 2024-10-11 17:09:19 -07:00
Andrew 9d7a5eccd3 Merge branch 'main' into pr/anetaj/52 2024-10-11 16:58:55 -07:00
anetaj 42bdcf54ca Copy code block (#47)
* rearrange markdown components

* add copy button

* add default style for small button

* hide entire toolbar in user messages

* finish merge

* refactor

---------

Co-authored-by: Andrew <andrewpareles@gmail.com>
2024-10-11 16:56:44 -07:00
Andrew 251b65d04d finish merge 2024-10-11 16:35:33 -07:00
Andrew b72da01632 Merge branch 'main' into pr/anetaj/53 2024-10-11 16:35:09 -07:00
Andrew e2f337f882 OpenAICompatible improvements + misc refactor 2024-10-11 15:02:43 -07:00
Mathew P 496c0178de Prepare to fix diff highlighting 2024-10-11 14:03:11 -07:00
Darion ef94de48c2 Merge branch 'main' into main 2024-10-11 12:56:08 -04:00
w1gs 14a8b0ee4e fixed merge conflicts 2024-10-11 12:52:12 -04:00
Mathew P 38d31ae737 Make diffs dynamic on changes 2024-10-11 01:06:17 -07:00
Andrew Pareles d3beafec74 Merge pull request #95 from jack1582/main
Supports calling LLM in a way compatible with OpenAI's API, and adds explicit configuration items for users。
2024-10-11 00:37:36 -07:00
Andrew Pareles 73fb5bb3c6 Merge branch 'main' into main 2024-10-11 00:36:43 -07:00
Andrew Pareles 247a3b7feb Merge pull request #92 from w1gs/ide-fixes
fixed dependencies that were preventing IDE builds
2024-10-11 00:22:46 -07:00
jackxiong 2e5be73f0c Supports calling LLM in a way compatible with OpenAI's API, and adds explicit configuration items for users。 2024-10-11 14:58:24 +08:00
Darion 2ca1db35af Merge branch 'main' into ide-fixes 2024-10-07 10:23:48 -04:00
Mathew P 11baebdf54 diffArea works. Need to fix highlighting 2024-10-07 01:56:29 -07:00
Andrew Pareles 8dde88222c add Python requirement in contrib 2024-10-06 21:21:59 -07:00
Andrew Pareles 2b47e9745f Merge pull request #91 from jcommaret/macos-build
MacOS IDE build
2024-10-06 20:31:18 -07:00
w1gs f96416be38 fixed dependencies that were preventing IDE builds 2024-10-06 00:17:15 -04:00
Jérôme Commaret a4ef0de0ac MacOS Full IDE ARM 2024-10-06 01:50:01 +02:00
Darion c3e2dc1621 Merge branch 'voideditor:main' into main 2024-10-05 16:53:40 -04:00
Aneta Jastrzębska f7a905e27f Merge branch 'main' into feature/style-include-files 2024-10-05 11:57:04 +02:00
Andrew c579bcc2fd rm "void" 2024-10-04 22:27:33 -07:00
Andrew Pareles ad7b7a6866 Update CONTRIBUTING.md 2024-10-04 22:26:24 -07:00
w1gs bed7929e48 Added error messages in UI 2024-10-03 21:24:53 -04:00
Mathew P b07842ec3f Remove _computedLensesOfDocument 2024-10-03 03:01:27 -07:00
Mathew P 19b2b8bd77 create diffArea; remove _computedLensesOfDocument 2024-10-03 03:00:55 -07:00
Mathew P f4a407d80f Refactor and prepare to create addNewChanges 2024-10-03 00:33:17 -07:00
Andrew 95be6e0b37 update config provider string and prompt 2024-10-03 00:02:18 -07:00
Andrew 6741a6fceb update description 2024-10-02 23:25:42 -07:00
Andrew db560744fb update defaults, credit @okxiaoliang4 for package.json enum changes 2024-10-02 23:23:07 -07:00
Andrew Pareles 8937b52e72 Merge pull request #84 from voideditor/config-improvements
Improve Void VS Code configuration
2024-10-02 00:02:56 -07:00
Andrew 7550b96389 update settings 2024-10-02 00:00:04 -07:00
Andrew Pareles 8aa3282c3d Update CONTRIBUTING.md 2024-10-01 23:24:49 -07:00
Andrew Pareles 9ed68d5fac Update CONTRIBUTING.md 2024-10-01 23:24:19 -07:00
Andrew Pareles 7668d3dee7 Update CONTRIBUTING.md 2024-10-01 23:23:31 -07:00
Andrew Pareles fc65d847c4 Update CONTRIBUTING.md 2024-10-01 23:08:38 -07:00
Andrew Pareles 653d5e9c1f Merge pull request #22 from w1gs/main
Added Ollama integration
2024-10-01 22:26:07 -07:00
Andrew 631f724138 merge ollama 2024-10-01 22:25:16 -07:00
Andrew Pareles 162bf704cc Update CONTRIBUTING.md 2024-10-01 21:40:39 -07:00
Andrew d64e9c93f5 Chore : change "yarn" to "npm i" inside documentation #79 2024-10-01 16:25:31 -07:00
w1gs 74c610632e Merge remote-tracking branch 'upstream/main' 2024-09-30 23:21:08 -04:00
Aneta Jastrzębska 2496a2c42e Merge branch 'main' into feature/persist-threads-history 2024-09-30 11:34:28 +02:00
Andrew Pareles 656b24b701 Add PR guidelines to CONTRIBUTING.md 2024-09-30 01:39:42 -07:00
Andrew Pareles 3fd9b572fe Merge pull request #42 from DaveHogan/main
Minor improvement to whichapi & anthropic configuration
2024-09-30 00:54:11 -07:00
Andrew Pareles dab75a6614 Merge branch 'main' into main 2024-09-30 00:54:02 -07:00
Mathew Pareles 4747691e74 add enum 2024-09-30 00:53:07 -07:00
Andrew Pareles 6dac9626c0 Merge pull request #66 from voideditor/rebase
Rebase vscode into Void
2024-09-30 00:39:16 -07:00
Andrew Pareles 180df75bb4 Merge pull request #61 from anetaj/feature/open-settings-button
Link to settings from extension
2024-09-30 00:33:58 -07:00
SOUMITRO-SAHA b8a5e5b67c Fix: Add Syntax Highlighting to Sidebar Code Snippets 2024-09-29 20:49:59 +05:30
Andrew bfbe01e541 ; 2024-09-24 03:08:40 -07:00
Andrew c159b2138e minor lint updates 2024-09-24 01:01:50 -07:00
Darion 5039ca8fdf Merge branch 'voideditor:main' into main 2024-09-24 02:05:10 -04:00
Andrew Pareles aea35c95f2 fix grammar 2024-09-23 22:34:53 -07:00
Andrew 8ca1354580 rebase from vscode f35c3823 2024-09-24 04:46:08 +00:00
Andrew Pareles 4d76fd80b9 Update CONTRIBUTING.md 2024-09-23 14:54:54 -07:00
Aneta Jastrzębska 0a5ebc1c50 add settings button in ext 2024-09-23 12:02:12 +02:00
Mathew Pareles cc0cad0866 Merge pull request #60 from voideditor/revert-29-fix/codelens_imports
Revert "fix: update VS source to more recent version"
2024-09-23 02:38:57 -07:00
Mathew Pareles edaf355cdb Revert "fix: update VS source to more recent version" 2024-09-23 02:38:31 -07:00
Mathew Pareles 4b0c604d97 Update README.md 2024-09-23 00:51:21 -07:00
Andrew Pareles b83c5fc368 Merge pull request #55 from voideditor/issue-7
Fixes #7: case analysis on insert, delete, and replace
2024-09-22 19:02:06 -07:00
Andrew aec1434a0c case analysis on insert, delete, and replace 2024-09-22 18:56:00 -07:00
Dave Hogan cbe3d4bd45 Removes unnessary default 2024-09-22 17:36:53 +01:00
Dave Hogan 16b84ec933 Merge branch 'main' of https://github.com/DaveHogan/void 2024-09-22 17:35:02 +01:00
Dave Hogan 2661f5e8e1 Implemented feedback, removing explict defaults as this comes from package.json 2024-09-22 17:34:48 +01:00
Dave Hogan 760f8c447c Merge branch 'voideditor:main' into main 2024-09-22 17:22:17 +01:00
Darion 57db928f7a Merge branch 'voideditor:main' into main 2024-09-22 08:11:43 -04:00
Andrew 315c5a65f2 add test back 2024-09-22 04:12:00 -07:00
Jelf 9b130edcfe feat: read .voidrules for system prompt 2024-09-22 17:35:51 +08:00
Aneta Jastrzębska ff0dcd5095 handle show thread history 2024-09-22 11:04:28 +02:00
Aneta Jastrzębska 30b528402c add new toolbar + commands 2024-09-22 11:03:42 +02:00
Jelf 6d513a1e60 chore: improve setting 2024-09-22 16:00:08 +08:00
Aneta Jastrzębska 7269c4e582 show new thread button 2024-09-21 21:19:36 +02:00
Aneta Jastrzębska 083bbf7d9f start new chat; toggle thread history 2024-09-21 21:11:52 +02:00
Aneta Jastrzębska e54f49ebfb threads history list 2024-09-21 19:19:26 +02:00
Aneta Jastrzębska 31cd10b9e6 handle receive threads history 2024-09-21 19:19:16 +02:00
Aneta Jastrzębska c6dcb8eb9e add message to history & sync saved thread 2024-09-21 18:07:07 +02:00
Aneta Jastrzębska 3a98d1edb1 add chat context 2024-09-21 18:06:26 +02:00
Aneta Jastrzębska 22d32aca3a save chat threads to workspace history 2024-09-21 18:05:25 +02:00
Aneta Jastrzębska fe5e02c3a9 unify toolbar button styles 2024-09-21 16:05:06 +02:00
Aneta Jastrzębska 3d58627f30 style included code tag + toolbar 2024-09-21 15:39:06 +02:00
Aneta Jastrzębska 20fd8f318b more vsc css vars 2024-09-21 15:36:48 +02:00
Aneta Jastrzębska 98ee94018e add className util 2024-09-21 15:36:25 +02:00
Aneta Jastrzębska ac9bc80e20 style included files list 2024-09-21 15:01:49 +02:00
Aneta Jastrzębska 8203b42169 hide entire toolbar in user messages 2024-09-21 14:14:31 +02:00
w1gs bc027b2fca resolve conflicts 2024-09-21 07:46:19 -04:00
Darion afa24231e6 Merge branch 'main' into main 2024-09-21 07:33:45 -04:00
w1gs da5bb4b68e updated styles 2024-09-21 07:27:19 -04:00
Dave Hogan f2d741d01f Merge branch 'voideditor:main' into main 2024-09-21 12:17:21 +01:00
Aneta Jastrzębska e893dc0327 add default style for small button 2024-09-21 13:12:22 +02:00
Aneta Jastrzębska e05a399177 add copy button 2024-09-21 13:03:31 +02:00
Aneta Jastrzębska 4f285ce364 rearrange markdown components 2024-09-21 13:03:00 +02:00
w1gs 2be5a2d13a Extension disabled when no keys set 2024-09-21 06:50:17 -04:00
Andrew Pareles ab52007491 Merge pull request #46 from anetaj/feature/apply-vscode-theme
Apply vscode theme to Void's Sidebar and MarkdownRender components
2024-09-21 03:07:16 -07:00
Aneta Jastrzębska 49bb34ec73 always show msg input; misc css improvements 2024-09-21 11:49:42 +02:00
Aneta Jastrzębska 915d041c5d add default styles for input & button 2024-09-21 11:39:17 +02:00
Aneta Jastrzębska afb0247063 inject vscode css vars 2024-09-21 11:38:31 +02:00
w1gs 5e5fe80901 allowed urls updating when configuration changes 2024-09-21 04:56:41 -04:00
Jelf 44bc8bfdbf chore: update 2024-09-21 16:09:28 +08:00
Jelf 4f9b5ac873 chore: rm 2024-09-21 15:47:48 +08:00
Jelf 1beb011bfa refactor: configuration 2024-09-21 15:45:36 +08:00
Jelf bf9029f9bc chore: remove console.log 2024-09-21 14:56:15 +08:00
Jelf d7a3c44e31 chore: eslint 2024-09-21 14:54:27 +08:00
Jelf 7b31f2841a chore: improve settings (#1)
* refactor: refine `anthropic` and `openai` settings

* refactor: improve configuration

* chore: move to headers config

* fix: ollama baseURL, add description

* chore: change azure deploymentId

* chore: eslint

* chore: update allowed_urls
2024-09-21 14:16:27 +08:00
w1gs e8cf6ee9e7 Replaced fetch with Ollama client 2024-09-21 00:36:11 -04:00
w1gs 2b3f828654 Fixed parsing error in package.json 2024-09-21 00:24:51 -04:00
Darion 7ee1840e77 Merge branch 'voideditor:main' into main 2024-09-21 00:17:36 -04:00
Dave Hogan 1843cd0878 Makes anthropic model and max_tokens configurable
Makes whichApi an enum for less error prone configuration
2024-09-21 01:57:34 +01:00
Mathew Pareles 939aa008b3 Update CONTRIBUTING.md 2024-09-20 15:27:38 -07:00
Jelf 78e10a5593 feat: update ollama config 2024-09-21 02:15:19 +08:00
Darion 7bcefd4536 Update extensions/void/package.json
Co-authored-by: Bruce MacDonald <brucewmacdonald@gmail.com>
2024-09-20 13:56:21 -04:00
Jelf 6d5f885306 feat: ai sdk 2024-09-20 22:18:41 +08:00
Andrew Pareles 343d89304e Update CONTRIBUTING.md 2024-09-19 14:05:17 -07:00
Mathew Pareles 7f799a5d07 Merge pull request #30 from quant-eagle/feat/use_npm
feat: use npm instead of yarn
2024-09-19 12:39:56 -07:00
quant-eagle 3b440a4653 Merge branch 'main' into feat/use_npm 2024-09-19 20:04:04 +02:00
Mathew Pareles d3fd53974e Merge pull request #29 from quant-eagle/fix/codelens_imports
fix: update VS source to more recent version
2024-09-19 10:59:46 -07:00
Darion 99adb23149 Merge branch 'voideditor:main' into main 2024-09-19 13:09:43 -04:00
Mathew Pareles 1f1f4013b9 Update CONTRIBUTING.md 2024-09-19 10:07:15 -07:00
Mathew Pareles 069f7db032 Update CONTRIBUTING.md 2024-09-19 10:06:56 -07:00
Mathew Pareles d219a22b6e Update CONTRIBUTING.md 2024-09-19 10:06:45 -07:00
Mathew Pareles c7932ca641 Update CONTRIBUTING.md 2024-09-19 10:06:11 -07:00
Mathew Pareles 5e17c1201e Update CONTRIBUTING.md 2024-09-19 10:04:06 -07:00
Mathew Pareles 02834de999 Update CONTRIBUTING.md 2024-09-19 08:18:15 -07:00
quant-eagle 1048c55f57 Merge branch 'main' into feat/use_npm 2024-09-19 02:24:48 +02:00
Robo e1b116cc9c feat: swtich to npm as default package manager 2024-09-19 02:22:27 +02:00
helmisek 9505e6eb69 fix: add more changes for workbench 2024-09-19 02:06:35 +02:00
helmisek efc3022b26 fix: add more changes for platform 2024-09-19 02:05:27 +02:00
helmisek b638e890d5 fix: add more changes for base 2024-09-19 02:03:31 +02:00
helmisek b07fbd627a fix: add more changes 2024-09-19 02:02:05 +02:00
helmisek 7e746b4fd6 fix: add codelens imports 2024-09-19 01:58:42 +02:00
Andrew Pareles 3959953d98 Update README.md 2024-09-18 16:47:22 -07:00
Darion 043a38bd36 Merge branch 'voideditor:main' into main 2024-09-18 18:55:54 -04:00
Andrew Pareles 839c974629 Merge pull request #28 from voideditor/andrewpareles-patch-2
Clarify most users should start editing the extension
2024-09-18 14:27:14 -07:00
Darion 0269411c16 Merge branch 'voideditor:main' into main 2024-09-18 13:39:34 -04:00
w1gs f4ceb53738 Added Ollama integration 2024-09-18 02:02:43 -04:00
4635 changed files with 143722 additions and 96886 deletions
+1 -12
View File
@@ -18,17 +18,6 @@ properties:
id: OpenJS.NodeJS.LTS
version: "20.14.0"
source: winget
- resource: NpmDsc/NpmPackage
id: yarn
dependsOn:
- npm
directives:
description: Install Yarn
allowPrerelease: true
settings:
Name: 'yarn'
Global: true
PackageDirectory: '${WinGetConfigRoot}\..\'
- resource: Microsoft.WinGet.DSC/WinGetPackage
directives:
description: Install Python 3.10
@@ -56,7 +45,7 @@ properties:
includeRecommended: true
components:
- Microsoft.VisualStudio.Workload.VCTools
- resource: YarnDsc/YarnInstall
- resource: NpmDsc/NpmInstall
dependsOn:
- npm
directives:
-13
View File
@@ -1,13 +0,0 @@
{
"alias": false,
"resolveExtensions": [
".js",
".jsx",
".ts",
".tsx",
".vue",
".scss",
".less"
],
"entryFilePath": "/src/vs/code/electron-main/main.ts"
}
+2 -2
View File
@@ -7,8 +7,8 @@ RUN git config --system codespaces-theme.hide-status 1
USER node
RUN npm install -g node-gyp
RUN YARN_CACHE="$(yarn cache dir)" && rm -rf "$YARN_CACHE" && ln -s /vscode-dev/yarn-cache "$YARN_CACHE"
RUN NPM_CACHE="$(npm config get cache)" && rm -rf "$NPM_CACHE" && ln -s /vscode-dev/npm-cache "$NPM_CACHE"
RUN echo 'export DISPLAY="${DISPLAY:-:1}"' | tee -a ~/.bashrc >> ~/.zshrc
USER root
CMD chown node:node /vscode-dev && sudo -u node mkdir -p /vscode-dev/yarn-cache && sleep inf
CMD chown node:node /vscode-dev && sudo -u node mkdir -p /vscode-dev/npm-cache && sleep inf
+3 -3
View File
@@ -24,7 +24,7 @@ If you already have VS Code and Docker installed, you can click the badge above
4. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd> and select **Dev Containers: Clone Repository in Container Volume...**.
> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or when using the Hyper-V engine on Windows. We recommend using the WSL filesystem on Windows or the "clone repository in container" approach on Windows and macOS instead since it uses "named volume" rather than the local filesystem.
> **Tip:** While you can use your local source tree instead, operations like `npm i` can be slow on macOS or when using the Hyper-V engine on Windows. We recommend using the WSL filesystem on Windows or the "clone repository in container" approach on Windows and macOS instead since it uses "named volume" rather than the local filesystem.
5. Type `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press <kbd>Enter</kbd>.
@@ -56,7 +56,7 @@ Next: **[Try it out!](#try-it)**
You may see improved VNC responsiveness when accessing a codespace from VS Code client since you can use a [VNC Viewer][def]. Here's how to do it.
1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the the [GitHub Codespaces extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces).
1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [GitHub Codespaces extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces).
> **Note:** The GitHub Codespaces extension requires the Visual Studio Code distribution of Code - OSS.
@@ -85,7 +85,7 @@ To start working with Code - OSS, follow these steps:
1. In your local VS Code client, open a terminal (<kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>\`</kbd>) and type the following commands:
```bash
yarn install
npm i
bash scripts/code.sh
```
+2 -2
View File
@@ -1,4 +1,4 @@
#!/bin/sh
yarn install --network-timeout 180000
yarn electron
npm i
npm run electron
@@ -12,7 +12,8 @@ export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rul
type: 'problem',
messages: {
ensure: 'Suites should include a call to `ensureNoDisposablesAreLeakedInTestSuite()` to ensure no disposables are leaked in tests.'
}
},
fixable: 'code'
};
create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
@@ -30,6 +31,10 @@ export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rul
context.report({
node,
messageId: 'ensure',
fix: (fixer) => {
const updatedSrc = src.replace(/(suite\(.*\n)/, '$1\n\tensureNoDisposablesAreLeakedInTestSuite();\n');
return fixer.replaceText(node, updatedSrc);
}
});
}
},
+40 -9
View File
@@ -12,19 +12,19 @@ import { createImportRuleListener } from './utils';
const REPO_ROOT = path.normalize(path.join(__dirname, '../'));
interface ConditionalPattern {
when?: 'hasBrowser' | 'hasNode' | 'test';
when?: 'hasBrowser' | 'hasNode' | 'hasElectron' | 'test';
pattern: string;
}
interface RawImportPatternsConfig {
target: string;
layer?: 'common' | 'worker' | 'browser' | 'electron-sandbox' | 'node' | 'electron-main';
layer?: 'common' | 'worker' | 'browser' | 'electron-sandbox' | 'node' | 'electron-utility' | 'electron-main';
test?: boolean;
restrictions: string | (string | ConditionalPattern)[];
}
interface LayerAllowRule {
when: 'hasBrowser' | 'hasNode' | 'test';
when: 'hasBrowser' | 'hasNode' | 'hasElectron' | 'test';
allow: string[];
}
@@ -44,7 +44,9 @@ export = new class implements eslint.Rule.RuleModule {
readonly meta: eslint.Rule.RuleMetaData = {
messages: {
badImport: 'Imports violates \'{{restrictions}}\' restrictions. See https://github.com/microsoft/vscode/wiki/Source-Code-Organization',
badFilename: 'Missing definition in `code-import-patterns` for this file. Define rules at https://github.com/microsoft/vscode/blob/main/.eslintrc.json'
badFilename: 'Missing definition in `code-import-patterns` for this file. Define rules at https://github.com/microsoft/vscode/blob/main/.eslintrc.json',
badAbsolute: 'Imports have to be relative to support ESM',
badExtension: 'Imports have to end with `.js` or `.css` to support ESM',
},
docs: {
url: 'https://github.com/microsoft/vscode/wiki/Source-Code-Organization'
@@ -77,13 +79,14 @@ export = new class implements eslint.Rule.RuleModule {
return this._optionsCache.get(options)!;
}
type Layer = 'common' | 'worker' | 'browser' | 'electron-sandbox' | 'node' | 'electron-main';
type Layer = 'common' | 'worker' | 'browser' | 'electron-sandbox' | 'node' | 'electron-utility' | 'electron-main';
interface ILayerRule {
layer: Layer;
deps: string;
isBrowser?: boolean;
isNode?: boolean;
isElectron?: boolean;
}
function orSegment(variants: Layer[]): string {
@@ -96,11 +99,13 @@ export = new class implements eslint.Rule.RuleModule {
{ layer: 'browser', deps: orSegment(['common', 'browser']), isBrowser: true },
{ layer: 'electron-sandbox', deps: orSegment(['common', 'browser', 'electron-sandbox']), isBrowser: true },
{ layer: 'node', deps: orSegment(['common', 'node']), isNode: true },
{ layer: 'electron-main', deps: orSegment(['common', 'node', 'electron-main']), isNode: true },
{ layer: 'electron-utility', deps: orSegment(['common', 'node', 'electron-utility']), isNode: true, isElectron: true },
{ layer: 'electron-main', deps: orSegment(['common', 'node', 'electron-utility', 'electron-main']), isNode: true, isElectron: true },
];
let browserAllow: string[] = [];
let nodeAllow: string[] = [];
let electronAllow: string[] = [];
let testAllow: string[] = [];
for (const option of options) {
if (isLayerAllowRule(option)) {
@@ -108,6 +113,8 @@ export = new class implements eslint.Rule.RuleModule {
browserAllow = option.allow.slice(0);
} else if (option.when === 'hasNode') {
nodeAllow = option.allow.slice(0);
} else if (option.when === 'hasElectron') {
electronAllow = option.allow.slice(0);
} else if (option.when === 'test') {
testAllow = option.allow.slice(0);
}
@@ -135,9 +142,13 @@ export = new class implements eslint.Rule.RuleModule {
restrictions.push(...nodeAllow);
}
if (layerRule.isElectron) {
restrictions.push(...electronAllow);
}
for (const rawRestriction of rawRestrictions) {
let importPattern: string;
let when: 'hasBrowser' | 'hasNode' | 'test' | undefined = undefined;
let when: 'hasBrowser' | 'hasNode' | 'hasElectron' | 'test' | undefined = undefined;
if (typeof rawRestriction === 'string') {
importPattern = rawRestriction;
} else {
@@ -147,6 +158,7 @@ export = new class implements eslint.Rule.RuleModule {
if (typeof when === 'undefined'
|| (when === 'hasBrowser' && layerRule.isBrowser)
|| (when === 'hasNode' && layerRule.isNode)
|| (when === 'hasElectron' && layerRule.isElectron)
) {
restrictions.push(importPattern.replace(/\/\~$/, `/${layerRule.deps}/**`));
testRestrictions.push(importPattern.replace(/\/\~$/, `/test/${layerRule.deps}/**`));
@@ -181,8 +193,8 @@ export = new class implements eslint.Rule.RuleModule {
if (targetIsVS) {
// Always add "vs/nls" and "vs/amdX"
restrictions.push('vs/nls');
restrictions.push('vs/amdX'); // TODO@jrieken remove after ESM is real
restrictions.push('vs/nls.js');
restrictions.push('vs/amdX.js'); // TODO@jrieken remove after ESM is real
}
if (targetIsVS && option.layer) {
@@ -212,6 +224,25 @@ export = new class implements eslint.Rule.RuleModule {
}
private _checkImport(context: eslint.Rule.RuleContext, config: ImportPatternsConfig, node: TSESTree.Node, importPath: string) {
const targetIsVS = /^src\/vs\//.test(getRelativeFilename(context));
if (targetIsVS) {
// ESM: check for import ending with ".js" or ".css"
if (importPath[0] === '.' && !importPath.endsWith('.js') && !importPath.endsWith('.css')) {
context.report({
loc: node.loc,
messageId: 'badExtension',
});
}
// check for import being relative
if (importPath.startsWith('vs/')) {
context.report({
loc: node.loc,
messageId: 'badAbsolute',
});
}
}
// resolve relative paths
if (importPath[0] === '.') {
@@ -1,50 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as eslint from 'eslint';
import { TSESTree } from '@typescript-eslint/experimental-utils';
import * as ESTree from 'estree';
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
const _positiveLookBehind = /\(\?<=.+/;
const _negativeLookBehind = /\(\?<!.+/;
function _containsLookBehind(pattern: string | unknown): boolean {
if (typeof pattern !== 'string') {
return false;
}
return _positiveLookBehind.test(pattern) || _negativeLookBehind.test(pattern);
}
module.exports = {
create(context: eslint.Rule.RuleContext) {
return {
// /.../
['Literal[regex]']: (node: any) => {
type RegexLiteral = TSESTree.Literal & { regex: { pattern: string; flags: string } };
const pattern = (<RegexLiteral>node).regex?.pattern;
if (_containsLookBehind(pattern)) {
context.report({
node,
message: 'Look behind assertions are not yet supported in all browsers'
});
}
},
// new Regex("...")
['NewExpression[callee.name="RegExp"] Literal']: (node: ESTree.Literal) => {
if (_containsLookBehind(node.value)) {
context.report({
node,
message: 'Look behind assertions are not yet supported in all browsers'
});
}
}
};
}
};
+130 -10
View File
@@ -10,6 +10,7 @@
"jsdoc",
"header",
"local"
// "react" // Void
],
"rules": {
"constructor-super": "warn",
@@ -92,12 +93,18 @@
"common",
"browser"
],
"electron-main": [
"electron-utility": [
"common",
"node"
],
"electron-main": [
"common",
"node",
"electron-utility"
]
}
]
// Void team commented this out:
// "header/header": [
// 2,
// "block",
@@ -611,12 +618,64 @@
]
}
},
{
"files": [
"src/**/electron-utility/**/*.ts"
],
"rules": {
"no-restricted-imports": [
"warn",
{
"paths": [
{
"name": "electron",
"importNames": [
"app",
"autoUpdater",
"BaseWindow",
"BrowserWindow",
"contentTracing",
"desktopCapturer",
"dialog",
"globalShortcut",
"inAppPurchase",
"ipcMain",
"Menu",
"MenuItem",
"MessageChannelMain",
"MessagePortMain",
"nativeTheme",
"netLog",
"Notification",
"powerMonitor",
"powerSaveBlocker",
"protocol",
"pushNotifications",
"safeStorage",
"screen",
"session",
"ShareMenu",
"TouchBar",
"Tray",
"utilityProcess",
"View",
"webContents",
"webFrameMain",
"webContentsView",
"default"
],
"message": "Only net and system-preferences are allowed to be imported from electron"
}
]
}
]
}
},
{
"files": [
"src/**/*.ts"
],
"rules": {
"local/code-no-look-behind-regex": "warn",
"local/code-import-patterns": [
"warn",
{
@@ -631,6 +690,7 @@
{
// imports that are allowed in all files of layers:
// - node
// - electron-utility
// - electron-main
"when": "hasNode",
"allow": [
@@ -649,13 +709,13 @@
"cookie",
"crypto",
"dns",
"electron",
"events",
"fs",
"fs/promises",
"http",
"https",
"minimist",
"node:module",
"native-keymap",
"native-watchdog",
"net",
@@ -687,11 +747,21 @@
"zlib"
]
},
{
// imports that are allowed in all files of layers:
// - electron-utility
// - electron-main
"when": "hasElectron",
"allow": [
"electron"
]
},
{
// imports that are allowed in all /test/ files
"when": "test",
"allow": [
"vs/css.build",
"vs/css.build.js",
"assert",
"sinon",
"sinon-test"
@@ -746,7 +816,8 @@
"vs/platform/*/~",
"tas-client-umd", // node module allowed even in /common/
"@microsoft/1ds-core-js", // node module allowed even in /common/
"@microsoft/1ds-post-js" // node module allowed even in /common/
"@microsoft/1ds-post-js", // node module allowed even in /common/
"@xterm/headless" // node module allowed even in /common/
]
},
{
@@ -777,7 +848,8 @@
"vs/platform/*/~",
"vs/editor/~",
"vs/editor/contrib/*/~",
"vs/editor/standalone/~"
"vs/editor/standalone/~",
"@vscode/tree-sitter-wasm" // type import
]
},
{
@@ -863,6 +935,7 @@
"tas-client-umd", // node module allowed even in /common/
"vscode-textmate", // node module allowed even in /common/
"@vscode/vscode-languagedetection", // node module allowed even in /common/
"@vscode/tree-sitter-wasm", // type import
{
"when": "hasBrowser",
"pattern": "@xterm/xterm"
@@ -880,6 +953,7 @@
"vs/workbench/~",
"vs/workbench/services/*/~",
"vs/workbench/contrib/*/~",
"vs/workbench/contrib/terminal/terminalContribExports*",
"vscode-notebook-renderer", // Type only import
{
"when": "hasBrowser",
@@ -909,6 +983,7 @@
// Only allow terminalContrib to import from itself, this works because
// terminalContrib is one extra folder deep
"vs/workbench/contrib/terminalContrib/*/~",
"vs/workbench/contrib/terminal/terminalContribExports*",
"vscode-notebook-renderer", // Type only import
{
"when": "hasBrowser",
@@ -921,7 +996,8 @@
{
"when": "hasBrowser",
"pattern": "vscode-textmate"
} // node module allowed even in /browser/
}, // node module allowed even in /browser/
"@xterm/headless" // node module allowed even in /common/ and /browser/
]
},
{
@@ -937,6 +1013,18 @@
"when": "hasBrowser",
"pattern": "vs/workbench/workbench.web.main"
},
{
"when": "hasBrowser",
"pattern": "vs/workbench/workbench.web.main.js"
},
{
"when": "hasBrowser",
"pattern": "vs/workbench/workbench.web.main.internal"
},
{
"when": "hasBrowser",
"pattern": "vs/workbench/workbench.web.main.internal.js"
},
{
"when": "hasBrowser",
"pattern": "vs/workbench/~"
@@ -967,6 +1055,13 @@
"vs/workbench/contrib/**"
]
},
{
"target": "src/vs/workbench/contrib/terminal/terminalContribExports.ts",
"layer": "browser",
"restrictions": [
"vs/workbench/contrib/terminalContrib/*/~"
]
},
{
"target": "src/vs/workbench/workbench.common.main.ts",
"layer": "browser",
@@ -977,11 +1072,13 @@
"vs/editor/~",
"vs/editor/contrib/*/~",
"vs/editor/editor.all",
"vs/editor/editor.all.js",
"vs/workbench/~",
"vs/workbench/api/~",
"vs/workbench/services/*/~",
"vs/workbench/contrib/*/~",
"vs/workbench/contrib/terminal/terminal.all"
"vs/workbench/contrib/terminal/terminal.all",
"vs/workbench/contrib/terminal/terminal.all.js"
]
},
{
@@ -994,11 +1091,32 @@
"vs/editor/~",
"vs/editor/contrib/*/~",
"vs/editor/editor.all",
"vs/editor/editor.all.js",
"vs/workbench/~",
"vs/workbench/api/~",
"vs/workbench/services/*/~",
"vs/workbench/contrib/*/~",
"vs/workbench/workbench.common.main"
"vs/workbench/workbench.common.main",
"vs/workbench/workbench.common.main.js"
]
},
{
"target": "src/vs/workbench/workbench.web.main.internal.ts",
"layer": "browser",
"restrictions": [
"vs/base/~",
"vs/base/parts/*/~",
"vs/platform/*/~",
"vs/editor/~",
"vs/editor/contrib/*/~",
"vs/editor/editor.all",
"vs/editor/editor.all.js",
"vs/workbench/~",
"vs/workbench/api/~",
"vs/workbench/services/*/~",
"vs/workbench/contrib/*/~",
"vs/workbench/workbench.common.main",
"vs/workbench/workbench.common.main.js"
]
},
{
@@ -1011,11 +1129,13 @@
"vs/editor/~",
"vs/editor/contrib/*/~",
"vs/editor/editor.all",
"vs/editor/editor.all.js",
"vs/workbench/~",
"vs/workbench/api/~",
"vs/workbench/services/*/~",
"vs/workbench/contrib/*/~",
"vs/workbench/workbench.common.main"
"vs/workbench/workbench.common.main",
"vs/workbench/workbench.common.main.js"
]
},
{
@@ -1025,7 +1145,7 @@
]
},
{
"target": "src/vs/{loader.d.ts,css.ts,css.build.ts,monaco.d.ts,nls.messages.ts,nls.ts}",
"target": "src/vs/{loader.d.ts,css.ts,css.build.ts,monaco.d.ts,nls.ts,nls.messages.ts}",
"restrictions": []
},
{
+3
View File
@@ -26,3 +26,6 @@ ee1655a82ebdfd38bf8792088a6602c69f7bbd94
# jrieken: new eslint-rule
4a130c40ed876644ed8af2943809d08221375408
# bpasero: ESM migration
6b924c51528e663dda5091a1493229a361676aca
+2 -1
View File
@@ -12,7 +12,7 @@ build/node_modules
coverage/
test_data/
test-results/
yarn-error.log
test-results.xml
vscode.lsif
vscode.db
/.profile-oss
@@ -21,3 +21,4 @@ vscode.db
product.overrides.json
*.snap.actual
.vscode-test
.tmp/
+48
View File
@@ -0,0 +1,48 @@
# Created for Void
# To learn more about how to use Nix to configure your environment
# see: https://developers.google.com/idx/guides/customize-idx-env
{pkgs}: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_20
pkgs.yarn
pkgs.nodePackages.pnpm
pkgs.bun
pkgs.gh
];
# Sets environment variables in the workspace
env = {};
idx = {
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
extensions = [
# "vscodevim.vim"
];
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
npm-install = "npm ci --no-audit --prefer-offline --no-progress --timing";
# Open editors for the following files by default, if they exist:
default.openFiles = [
# Cover all the variations of language, src-dir, router (app/pages)
"pages/index.tsx" "pages/index.jsx"
"src/pages/index.tsx" "src/pages/index.jsx"
"app/page.tsx" "app/page.jsx"
"src/app/page.tsx" "src/app/page.jsx"
];
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
# Enable previews and customize configuration
previews = {
enable = true;
previews = {
web = {
command = ["npm" "run" "dev" "--" "--port" "$PORT" "--hostname" "0.0.0.0"];
manager = "web";
};
};
};
};
}
+7
View File
@@ -0,0 +1,7 @@
disturl="https://electronjs.org/headers"
target="30.5.1"
ms_build_id="10262041"
runtime="electron"
build_from_source="true"
legacy-peer-deps="true"
timeout=180000
+1 -1
View File
@@ -1 +1 @@
20.14.0
20.16.0
@@ -0,0 +1,16 @@
{
"configurations": [
{
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"--enable-proposed-api=ms-vscode.vscode-selfhost-import-aid"
],
"name": "Launch Extension",
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"request": "launch",
"type": "extensionHost"
}
]
}
@@ -0,0 +1,7 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
}
+31
View File
@@ -0,0 +1,31 @@
{
"name": "vscode-selfhost-import-aid",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vscode-selfhost-import-aid",
"version": "0.0.1",
"license": "MIT",
"dependencies": {
"typescript": "5.5.4"
},
"engines": {
"vscode": "^1.88.0"
}
},
"node_modules/typescript": {
"version": "5.5.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
}
}
}
@@ -0,0 +1,29 @@
{
"name": "vscode-selfhost-import-aid",
"displayName": "VS Code Selfhost Import Aid",
"description": "Util to improve dealing with imports",
"engines": {
"vscode": "^1.88.0"
},
"version": "0.0.1",
"publisher": "ms-vscode",
"categories": [
"Other"
],
"activationEvents": [
"onLanguage:typescript"
],
"main": "./out/extension.js",
"repository": {
"type": "git",
"url": "https://github.com/microsoft/vscode.git"
},
"license": "MIT",
"scripts": {
"compile": "gulp compile-extension:vscode-selfhost-import-aid",
"watch": "gulp watch-extension:vscode-selfhost-import-aid"
},
"dependencies": {
"typescript": "5.5.4"
}
}
@@ -0,0 +1,234 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
import * as ts from 'typescript';
import * as path from 'path';
export async function activate(context: vscode.ExtensionContext) {
const fileIndex = new class {
private _currentRun?: Thenable<void>;
private _disposables: vscode.Disposable[] = [];
private readonly _index = new Map<string, vscode.Uri>();
constructor() {
const watcher = vscode.workspace.createFileSystemWatcher('**/*.ts', false, true, false);
this._disposables.push(watcher.onDidChange(e => { this._index.set(e.toString(), e); }));
this._disposables.push(watcher.onDidDelete(e => { this._index.delete(e.toString()); }));
this._disposables.push(watcher);
this._refresh(false);
}
dispose(): void {
for (const disposable of this._disposables) {
disposable.dispose();
}
this._disposables = [];
this._index.clear();
}
async all(token: vscode.CancellationToken) {
await Promise.race([this._currentRun, new Promise<void>(resolve => token.onCancellationRequested(resolve))]);
if (token.isCancellationRequested) {
return undefined;
}
return Array.from(this._index.values());
}
private _refresh(clear: boolean) {
// TODO@jrieken LATEST API! findFiles2New
this._currentRun = vscode.workspace.findFiles('src/vs/**/*.ts', '{**/node_modules/**,**/extensions/**}').then(all => {
if (clear) {
this._index.clear();
}
for (const item of all) {
this._index.set(item.toString(), item);
}
});
}
};
const selector: vscode.DocumentSelector = 'typescript';
function findNodeAtPosition(document: vscode.TextDocument, node: ts.Node, position: vscode.Position): ts.Node | undefined {
if (node.getStart() <= document.offsetAt(position) && node.getEnd() >= document.offsetAt(position)) {
return ts.forEachChild(node, child => findNodeAtPosition(document, child, position)) || node;
}
return undefined;
}
function findImportAt(document: vscode.TextDocument, position: vscode.Position): ts.ImportDeclaration | undefined {
const sourceFile = ts.createSourceFile(document.fileName, document.getText(), ts.ScriptTarget.Latest, true);
const node = findNodeAtPosition(document, sourceFile, position);
if (node && ts.isStringLiteral(node) && ts.isImportDeclaration(node.parent)) {
return node.parent;
}
return undefined;
}
const completionProvider = new class implements vscode.CompletionItemProvider {
async provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): Promise<vscode.CompletionList | undefined> {
const index = document.getText().lastIndexOf(' from \'');
if (index < 0 || document.positionAt(index).line < position.line) {
// line after last import is before position
// -> no completion, safe a parse call
return undefined;
}
const node = findImportAt(document, position);
if (!node) {
return undefined;
}
const range = new vscode.Range(document.positionAt(node.moduleSpecifier.pos), document.positionAt(node.moduleSpecifier.end));
const uris = await fileIndex.all(token);
if (!uris) {
return undefined;
}
const result = new vscode.CompletionList();
result.isIncomplete = true;
for (const item of uris) {
if (!item.path.endsWith('.ts')) {
continue;
}
let relativePath = path.relative(path.dirname(document.uri.path), item.path);
relativePath = relativePath.startsWith('.') ? relativePath : `./${relativePath}`;
const label = path.basename(item.path, path.extname(item.path));
const insertText = ` '${relativePath.replace(/\.ts$/, '.js')}'`;
const filterText = ` '${label}'`;
const completion = new vscode.CompletionItem({
label: label,
description: vscode.workspace.asRelativePath(item),
});
completion.kind = vscode.CompletionItemKind.File;
completion.insertText = insertText;
completion.filterText = filterText;
completion.range = range;
result.items.push(completion);
}
return result;
}
};
class ImportCodeActions implements vscode.CodeActionProvider {
static FixKind = vscode.CodeActionKind.QuickFix.append('esmImport');
static SourceKind = vscode.CodeActionKind.SourceFixAll.append('esmImport');
async provideCodeActions(document: vscode.TextDocument, range: vscode.Range | vscode.Selection, context: vscode.CodeActionContext, token: vscode.CancellationToken): Promise<vscode.CodeAction[] | undefined> {
if (context.only && ImportCodeActions.SourceKind.intersects(context.only)) {
return this._provideFixAll(document, context, token);
}
return this._provideFix(document, range, context, token);
}
private async _provideFixAll(document: vscode.TextDocument, context: vscode.CodeActionContext, token: vscode.CancellationToken): Promise<vscode.CodeAction[] | undefined> {
const diagnostics = context.diagnostics
.filter(d => d.code === 2307)
.sort((a, b) => b.range.start.compareTo(a.range.start));
if (diagnostics.length === 0) {
return undefined;
}
const uris = await fileIndex.all(token);
if (!uris) {
return undefined;
}
const result = new vscode.CodeAction(`Fix All ESM Imports`, ImportCodeActions.SourceKind);
result.edit = new vscode.WorkspaceEdit();
result.diagnostics = [];
for (const diag of diagnostics) {
const actions = this._provideFixesForDiag(document, diag, uris);
if (actions.length === 0) {
console.log(`ESM: no fixes for "${diag.message}"`);
continue;
}
if (actions.length > 1) {
console.log(`ESM: more than one fix for "${diag.message}", taking first`);
console.log(actions);
}
const [first] = actions;
result.diagnostics.push(diag);
for (const [uri, edits] of first.edit!.entries()) {
result.edit.set(uri, edits);
}
}
// console.log(result.edit.get(document.uri));
return [result];
}
private async _provideFix(document: vscode.TextDocument, range: vscode.Range | vscode.Selection, context: vscode.CodeActionContext, token: vscode.CancellationToken): Promise<vscode.CodeAction[] | undefined> {
const uris = await fileIndex.all(token);
if (!uris) {
return [];
}
const diag = context.diagnostics.find(d => d.code === 2307 && d.range.intersection(range));
return diag && this._provideFixesForDiag(document, diag, uris);
}
private _provideFixesForDiag(document: vscode.TextDocument, diag: vscode.Diagnostic, uris: Iterable<vscode.Uri>): vscode.CodeAction[] {
const node = findImportAt(document, diag.range.start)?.moduleSpecifier;
if (!node || !ts.isStringLiteral(node)) {
return [];
}
const nodeRange = new vscode.Range(document.positionAt(node.pos), document.positionAt(node.end));
const name = path.basename(node.text, path.extname(node.text));
const result: vscode.CodeAction[] = [];
for (const item of uris) {
if (path.basename(item.path, path.extname(item.path)) === name) {
let relativePath = path.relative(path.dirname(document.uri.path), item.path).replace(/\.ts$/, '.js');
relativePath = relativePath.startsWith('.') ? relativePath : `./${relativePath}`;
const action = new vscode.CodeAction(`Fix to '${relativePath}'`, ImportCodeActions.FixKind);
action.edit = new vscode.WorkspaceEdit();
action.edit.replace(document.uri, nodeRange, ` '${relativePath}'`);
action.diagnostics = [diag];
result.push(action);
}
}
return result;
}
}
context.subscriptions.push(fileIndex);
context.subscriptions.push(vscode.languages.registerCompletionItemProvider(selector, completionProvider));
context.subscriptions.push(vscode.languages.registerCodeActionsProvider(selector, new ImportCodeActions(), { providedCodeActionKinds: [ImportCodeActions.FixKind, ImportCodeActions.SourceKind] }));
}
@@ -0,0 +1,14 @@
{
"extends": "../../../extensions/tsconfig.base.json",
"compilerOptions": {
"outDir": "./out",
"types": [
"node",
"mocha",
]
},
"include": [
"src/**/*",
"../../../src/vscode-dts/vscode.d.ts"
]
}
+101
View File
@@ -0,0 +1,101 @@
{
"name": "vscode-selfhost-test-provider",
"version": "0.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vscode-selfhost-test-provider",
"version": "0.4.0",
"license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.25",
"ansi-styles": "^5.2.0",
"cockatiel": "^3.1.3",
"istanbul-to-vscode": "^2.0.1"
},
"devDependencies": {
"@types/mocha": "^10.0.6",
"@types/node": "20.x"
},
"engines": {
"vscode": "^1.88.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
"integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
},
"node_modules/@types/mocha": {
"version": "10.0.6",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz",
"integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==",
"dev": true
},
"node_modules/@types/node": {
"version": "20.12.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
"integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/ansi-styles": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/cockatiel": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.1.3.tgz",
"integrity": "sha512-xC759TpZ69d7HhfDp8m2WkRwEUiCkxY8Ee2OQH/3H6zmy2D/5Sm+zSTbPRa+V2QyjDtpMvjOIAOVjA2gp6N1kQ==",
"engines": {
"node": ">=16"
}
},
"node_modules/istanbul-to-vscode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/istanbul-to-vscode/-/istanbul-to-vscode-2.0.1.tgz",
"integrity": "sha512-V9Hhr7kX3UvkvkaT1lK3AmCRPkaIAIogQBrduTpNiLTkp1eVsybnJhWiDSVeCQap/3aGeZ2019oIivhX9MNsCQ==",
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.6"
}
},
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
"dev": true
}
}
}
@@ -8,6 +8,7 @@ import * as vscode from 'vscode';
import { TestCase, TestConstruct, TestSuite, VSCodeTest } from './testTree';
const suiteNames = new Set(['suite', 'flakySuite']);
const testNames = new Set(['test']);
export const enum Action {
Skip,
@@ -19,22 +20,19 @@ export const extractTestFromNode = (src: ts.SourceFile, node: ts.Node, parent: V
return Action.Recurse;
}
let lhs = node.expression;
if (isSkipCall(lhs)) {
const asSuite = identifyCall(node.expression, suiteNames);
const asTest = identifyCall(node.expression, testNames);
const either = asSuite || asTest;
if (either === IdentifiedCall.Skipped) {
return Action.Skip;
}
if (isPropertyCall(lhs) && lhs.name.text === 'only') {
lhs = lhs.expression;
if (either === IdentifiedCall.Nothing) {
return Action.Recurse;
}
const name = node.arguments[0];
const func = node.arguments[1];
if (!name || !ts.isIdentifier(lhs) || !ts.isStringLiteralLike(name)) {
return Action.Recurse;
}
if (!func) {
if (!name || !ts.isStringLiteralLike(name) || !func) {
return Action.Recurse;
}
@@ -46,23 +44,45 @@ export const extractTestFromNode = (src: ts.SourceFile, node: ts.Node, parent: V
);
const cparent = parent instanceof TestConstruct ? parent : undefined;
if (lhs.escapedText === 'test') {
// we know this is either a suite or a test because we checked for skipped/nothing above
if (asTest) {
return new TestCase(name.text, range, cparent);
}
if (suiteNames.has(lhs.escapedText.toString())) {
if (asSuite) {
return new TestSuite(name.text, range, cparent);
}
return Action.Recurse;
throw new Error('unreachable');
};
const enum IdentifiedCall {
Nothing,
Skipped,
IsThing,
}
const identifyCall = (lhs: ts.Node, needles: ReadonlySet<string>): IdentifiedCall => {
if (ts.isIdentifier(lhs)) {
return needles.has(lhs.escapedText || lhs.text) ? IdentifiedCall.IsThing : IdentifiedCall.Nothing;
}
if (isPropertyCall(lhs) && lhs.name.text === 'skip') {
return needles.has(lhs.expression.text) ? IdentifiedCall.Skipped : IdentifiedCall.Nothing;
}
if (ts.isParenthesizedExpression(lhs) && ts.isConditionalExpression(lhs.expression)) {
return Math.max(identifyCall(lhs.expression.whenTrue, needles), identifyCall(lhs.expression.whenFalse, needles));
}
return IdentifiedCall.Nothing;
};
const isPropertyCall = (
lhs: ts.LeftHandSideExpression
lhs: ts.Node
): lhs is ts.PropertyAccessExpression & { expression: ts.Identifier; name: ts.Identifier } =>
ts.isPropertyAccessExpression(lhs) &&
ts.isIdentifier(lhs.expression) &&
ts.isIdentifier(lhs.name);
const isSkipCall = (lhs: ts.LeftHandSideExpression) =>
isPropertyCall(lhs) && suiteNames.has(lhs.expression.text) && lhs.name.text === 'skip';
@@ -63,7 +63,7 @@ export abstract class VSCodeTestRunner {
const cp = spawn(await this.binaryPath(), args, {
cwd: this.repoLocation.uri.fsPath,
stdio: 'pipe',
env: this.getEnvironment(),
env: this.getEnvironment(port),
});
// Register a descriptor factory that signals the server when any
@@ -139,7 +139,7 @@ export abstract class VSCodeTestRunner {
});
}
protected getEnvironment(): NodeJS.ProcessEnv {
protected getEnvironment(_remoteDebugPort?: number): NodeJS.ProcessEnv {
return {
...process.env,
ELECTRON_RUN_AS_NODE: undefined,
@@ -261,9 +261,10 @@ export class BrowserTestRunner extends VSCodeTestRunner {
}
/** @override */
protected override getEnvironment() {
protected override getEnvironment(remoteDebugPort?: number) {
return {
...super.getEnvironment(),
...super.getEnvironment(remoteDebugPort),
PLAYWRIGHT_CHROMIUM_DEBUG_PORT: remoteDebugPort ? String(remoteDebugPort) : undefined,
ELECTRON_RUN_AS_NODE: '1',
};
}
@@ -1,60 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@jridgewell/resolve-uri@^3.1.0":
version "3.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
"@jridgewell/sourcemap-codec@^1.4.14":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@^0.3.25":
version "0.3.25"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
dependencies:
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
"@types/istanbul-lib-coverage@^2.0.6":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
"@types/mocha@^10.0.6":
version "10.0.6"
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b"
integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==
"@types/node@20.x":
version "20.12.11"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be"
integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==
dependencies:
undici-types "~5.26.4"
ansi-styles@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
cockatiel@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/cockatiel/-/cockatiel-3.1.3.tgz#bb1774a498a17e739dd994d56610dc6538b02858"
integrity sha512-xC759TpZ69d7HhfDp8m2WkRwEUiCkxY8Ee2OQH/3H6zmy2D/5Sm+zSTbPRa+V2QyjDtpMvjOIAOVjA2gp6N1kQ==
istanbul-to-vscode@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/istanbul-to-vscode/-/istanbul-to-vscode-2.0.1.tgz#84994d06e604b68cac7301840f338b1e74eb888b"
integrity sha512-V9Hhr7kX3UvkvkaT1lK3AmCRPkaIAIogQBrduTpNiLTkp1eVsybnJhWiDSVeCQap/3aGeZ2019oIivhX9MNsCQ==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.6"
undici-types@~5.26.4:
version "5.26.5"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+1 -1
View File
@@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPO=repo:microsoft/vscode\n$MILESTONE=milestone:\"August 2024\""
"value": "$REPO=repo:microsoft/vscode\n$MILESTONE=milestone:\"September 2024\""
},
{
"kind": 1,
+1 -1
View File
@@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS=repo:microsoft/lsprotocol repo:microsoft/monaco-editor repo:microsoft/vscode repo:microsoft/vscode-anycode repo:microsoft/vscode-autopep8 repo:microsoft/vscode-black-formatter repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release repo:microsoft/vscode-dev repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-flake8 repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-hexeditor repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-isort repo:microsoft/vscode-js-debug repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-l10n repo:microsoft/vscode-livepreview repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-mypy repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-pylint repo:microsoft/vscode-python repo:microsoft/vscode-python-debugger repo:microsoft/vscode-python-tools-extension-template repo:microsoft/vscode-references-view repo:microsoft/vscode-remote-release repo:microsoft/vscode-remote-repositories-github repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-unpkg repo:microsoft/vscode-vsce\n\n$MILESTONE=milestone:\"August 2024\""
"value": "$REPOS=repo:microsoft/lsprotocol repo:microsoft/monaco-editor repo:microsoft/vscode repo:microsoft/vscode-anycode repo:microsoft/vscode-autopep8 repo:microsoft/vscode-black-formatter repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release repo:microsoft/vscode-dev repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-flake8 repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-hexeditor repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-isort repo:microsoft/vscode-js-debug repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-l10n repo:microsoft/vscode-livepreview repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-mypy repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-pylint repo:microsoft/vscode-python repo:microsoft/vscode-python-debugger repo:microsoft/vscode-python-tools-extension-template repo:microsoft/vscode-references-view repo:microsoft/vscode-remote-release repo:microsoft/vscode-remote-repositories-github repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-unpkg repo:microsoft/vscode-vsce\n\n$MILESTONE=milestone:\"September 2024\""
},
{
"kind": 1,
+1 -1
View File
@@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$REPOS=repo:microsoft/lsprotocol repo:microsoft/monaco-editor repo:microsoft/vscode repo:microsoft/vscode-anycode repo:microsoft/vscode-autopep8 repo:microsoft/vscode-black-formatter repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release repo:microsoft/vscode-dev repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-flake8 repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-hexeditor repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-isort repo:microsoft/vscode-js-debug repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-l10n repo:microsoft/vscode-livepreview repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-mypy repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-pylint repo:microsoft/vscode-python repo:microsoft/vscode-python-debugger repo:microsoft/vscode-python-tools-extension-template repo:microsoft/vscode-references-view repo:microsoft/vscode-remote-release repo:microsoft/vscode-remote-repositories-github repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-unpkg repo:microsoft/vscode-vsce\n\n$MILESTONE=milestone:\"August 2024\"\n\n$MINE=assignee:@me"
"value": "$REPOS=repo:microsoft/lsprotocol repo:microsoft/monaco-editor repo:microsoft/vscode repo:microsoft/vscode-anycode repo:microsoft/vscode-autopep8 repo:microsoft/vscode-black-formatter repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release repo:microsoft/vscode-dev repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-flake8 repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-hexeditor repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-isort repo:microsoft/vscode-js-debug repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-l10n repo:microsoft/vscode-livepreview repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-mypy repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-pylint repo:microsoft/vscode-python repo:microsoft/vscode-python-debugger repo:microsoft/vscode-python-tools-extension-template repo:microsoft/vscode-references-view repo:microsoft/vscode-remote-release repo:microsoft/vscode-remote-repositories-github repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-unpkg repo:microsoft/vscode-vsce\n\n$MILESTONE=milestone:\"September 2024\"\n\n$MINE=assignee:@me"
},
{
"kind": 1,
+1 -1
View File
@@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "// list of repos we work in\n$REPOS=repo:microsoft/lsprotocol repo:microsoft/monaco-editor repo:microsoft/vscode repo:microsoft/vscode-anycode repo:microsoft/vscode-autopep8 repo:microsoft/vscode-black-formatter repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release repo:microsoft/vscode-dev repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-flake8 repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-hexeditor repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-isort repo:microsoft/vscode-js-debug repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-l10n repo:microsoft/vscode-livepreview repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-mypy repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-pylint repo:microsoft/vscode-python repo:microsoft/vscode-python-debugger repo:microsoft/vscode-python-tools-extension-template repo:microsoft/vscode-references-view repo:microsoft/vscode-remote-release repo:microsoft/vscode-remote-repositories-github repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-unpkg repo:microsoft/vscode-vsce\n\n// current milestone name\n$MILESTONE=milestone:\"August 2024\"\n"
"value": "// list of repos we work in\n$REPOS=repo:microsoft/lsprotocol repo:microsoft/monaco-editor repo:microsoft/vscode repo:microsoft/vscode-anycode repo:microsoft/vscode-autopep8 repo:microsoft/vscode-black-formatter repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release repo:microsoft/vscode-dev repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-flake8 repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-hexeditor repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-isort repo:microsoft/vscode-js-debug repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-l10n repo:microsoft/vscode-livepreview repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-mypy repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-pylint repo:microsoft/vscode-python repo:microsoft/vscode-python-debugger repo:microsoft/vscode-python-tools-extension-template repo:microsoft/vscode-references-view repo:microsoft/vscode-remote-release repo:microsoft/vscode-remote-repositories-github repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-unpkg repo:microsoft/vscode-vsce\n\n// current milestone name\n$MILESTONE=milestone:\"September 2024\"\n"
},
{
"kind": 1,
+5 -4
View File
@@ -34,10 +34,12 @@
"src/vs/workbench/api/test/browser/extHostDocumentData.test.perf-data.ts": true,
"src/vs/base/test/node/uri.test.data.txt": true,
"src/vs/editor/test/node/diffing/fixtures/**": true,
"build/loader.min": true
},
"files.readonlyInclude": {
"**/node_modules/**/*.*": true,
"**/yarn.lock": true,
"**/package-lock.json": true,
"**/Cargo.lock": true,
"src/vs/workbench/workbench.web.main.css": true,
"src/vs/workbench/workbench.desktop.main.css": true,
@@ -74,9 +76,8 @@
],
"typescript.tsdk": "node_modules/typescript/lib",
"npm.exclude": "**/extensions/**",
"npm.packageManager": "yarn",
"emmet.excludeLanguages": [],
"typescript.preferences.importModuleSpecifier": "non-relative",
"typescript.preferences.importModuleSpecifier": "relative",
"typescript.preferences.quoteStyle": "single",
"json.schemas": [
{
@@ -93,7 +94,7 @@
}
],
"git.ignoreLimitWarning": true,
// we removed this for Void:
// Removing this for Void:
// "git.branchProtection": [
// "main",
// "distro",
@@ -163,7 +164,7 @@
"@xterm/headless",
"node-pty",
"vscode-notebook-renderer",
"src/vs/workbench/workbench.web.main.ts"
"src/vs/workbench/workbench.web.main.internal.ts"
],
"[github-issues]": {
"editor.wordWrap": "on"
+1 -1
View File
@@ -113,7 +113,7 @@
"problemMatcher": []
},
{
"label": "Kill VS Code - Build, Yarn, VS Code - Build",
"label": "Kill VS Code - Build, Npm, VS Code - Build",
"dependsOn": [
"Kill VS Code - Build",
"npm: install",
+591 -5
View File
@@ -1,5 +1,591 @@
disturl "https://electronjs.org/headers"
target "30.4.0"
ms_build_id "10073054"
runtime "electron"
build_from_source "true"
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// This file overrides licenses only for OSS components which do not appear in `cgmanifest.json`.
// i.e. for OSS components that are detected from `package-lock.json` or `Cargo.lock` files.
//
// DO NOT EDIT THIS FILE UNLESS THE OSS TOOL INDICATES THAT YOU SHOULD.
//
[
{
// Reason: The license at https://github.com/aadsm/jschardet/blob/master/LICENSE
// does not include a clear Copyright statement and does not credit authors.
"name": "jschardet",
"prependLicenseText": [
"Chardet was originally ported from C++ by Mark Pilgrim. It is now maintained",
" by Dan Blanchard and Ian Cordasco, and was formerly maintained by Erik Rose.",
" JSChardet was ported from python to JavaScript by António Afonso ",
" (https://github.com/aadsm/jschardet) and transformed into an npm package by ",
"Markus Ast (https://github.com/brainafk)"
]
},
{
// Reason: The license at https://github.com/microsoft/TypeScript/blob/master/LICENSE.txt
// does not include a clear Copyright statement.
"name": "typescript",
"prependLicenseText": [
"Copyright (c) Microsoft Corporation. All rights reserved."
]
},
{
"name": "tunnel-agent",
"prependLicenseText": [
"Copyright (c) tunnel-agent authors"
]
},
{
// Reason: The license at https://github.com/rbuckton/reflect-metadata/blob/master/LICENSE
// does not include a clear Copyright statement (it's in https://github.com/rbuckton/reflect-metadata/blob/master/CopyrightNotice.txt).
"name": "reflect-metadata",
"prependLicenseText": [
"Copyright (c) Microsoft Corporation. All rights reserved."
]
},
{
// Reason: The license cannot be found by the tool due to access controls on the repository
"name": "vscode-tas-client",
"fullLicenseText": [
"MIT License",
"Copyright (c) 2020 - present Microsoft Corporation",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The license cannot be found by the tool due to access controls on the repository
"name": "tas-client",
"fullLicenseText": [
"MIT License",
"Copyright (c) 2020 - present Microsoft Corporation",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The license cannot be found by the tool due to access controls on the repository
"name": "tas-client-umd",
"fullLicenseText": [
"MIT License",
"Copyright (c) 2020 - present Microsoft Corporation",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: Repository lacks license text.
// https://github.com/tjwebb/fnv-plus/blob/master/package.json declares MIT.
// https://github.com/tjwebb/fnv-plus/issues/14
"name": "@enonic/fnv-plus",
"fullLicenseText": [
"MIT License",
"Copyright (c) 2014 - present, Travis Webb <me@traviswebb.com>",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "@vscode/win32-app-container-tokens",
"fullLicenseText": [
"MIT License",
"",
"Copyright (c) Microsoft Corporation.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and associated documentation files (the \"Software\"), to deal",
"in the Software without restriction, including without limitation the rights",
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
"copies of the Software, and to permit persons to whom the Software is",
"furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
"SOFTWARE"
]
},
{
// Reason: NPM package does not include repository URL https://github.com/microsoft/vscode-deviceid/issues/12
"name": "@vscode/deviceid",
"fullLicenseText": [
"Copyright (c) Microsoft Corporation.",
"",
"MIT License",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: Missing license file
"name": "@tokenizer/token",
"fullLicenseText": [
"(The MIT License)",
"",
"Copyright (c) 2020 Borewit",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: Missing license file
"name": "readable-web-to-node-stream",
"fullLicenseText": [
"(The MIT License)",
"",
"Copyright (c) 2019 Borewit",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The substack org has been deleted on GH
"name": "concat-map",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The substack org has been deleted on GH
"name": "github-from-package",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The substack org has been deleted on GH
"name": "minimist",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: repo URI is wrong on crate, pending https://github.com/warp-tech/russh/pull/53
"name": "russh-cryptovec",
"fullLicenseTextUri": "https://raw.githubusercontent.com/warp-tech/russh/1da80d0d599b6ee2d257c544c0d6af4f649c9029/LICENSE-2.0.txt"
},
{
// Reason: repo URI is wrong on crate, pending https://github.com/warp-tech/russh/pull/53
"name": "russh-keys",
"fullLicenseTextUri": "https://raw.githubusercontent.com/warp-tech/russh/1da80d0d599b6ee2d257c544c0d6af4f649c9029/LICENSE-2.0.txt"
},
{
// Reason: license is in a subdirectory in repo
"name": "dirs-next",
"fullLicenseTextUri": "https://raw.githubusercontent.com/xdg-rs/dirs/af4aa39daba0ac68e222962a5aca17360158b7cc/dirs/LICENSE-MIT"
},
{
// Reason: license is in a subdirectory in repo
"name": "openssl",
"fullLicenseTextUri": "https://raw.githubusercontent.com/sfackler/rust-openssl/e43eb58540b27a17f8029c397e3edc12bbc9011f/openssl/LICENSE"
},
{
// Reason: license is in a subdirectory in repo
"name": "openssl-sys",
"fullLicenseTextUri": "https://raw.githubusercontent.com/sfackler/rust-openssl/e43eb58540b27a17f8029c397e3edc12bbc9011f/openssl-sys/LICENSE-MIT"
},
{
// Reason: Missing license file
"name": "openssl-macros",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{ // Reason: Missing license file
"name": "const_format_proc_macros",
"fullLicenseTextUri": "https://raw.githubusercontent.com/rodrimati1992/const_format_crates/b2207af46bfbd9f1a6bd12dbffd10feeea3d9fd7/LICENSE-ZLIB.md"
},
{ // Reason: Missing license file
"name": "const_format",
"fullLicenseTextUri": "https://raw.githubusercontent.com/rodrimati1992/const_format_crates/b2207af46bfbd9f1a6bd12dbffd10feeea3d9fd7/LICENSE-ZLIB.md"
},
{ // License is MIT/Apache and tool doesn't look in subfolders
"name": "toml_edit",
"fullLicenseTextUri": "https://raw.githubusercontent.com/toml-rs/toml/main/crates/toml_edit/LICENSE-MIT"
},
{ // License is MIT/Apache and tool doesn't look in subfolders
"name": "toml_datetime",
"fullLicenseTextUri": "https://raw.githubusercontent.com/toml-rs/toml/main/crates/toml_datetime/LICENSE-MIT"
},
{ // License is MIT/Apache and tool doesn't look in subfolders
"name": "dirs-sys-next",
"fullLicenseTextUri": "https://raw.githubusercontent.com/xdg-rs/dirs/master/dirs-sys/LICENSE-MIT"
},
{ // License is MIT/Apache and gitlab API doesn't find the project
"name": "libredox",
"fullLicenseTextUri": "https://gitlab.redox-os.org/redox-os/libredox/-/raw/master/LICENSE"
},
{
"name": "https-proxy-agent",
"fullLicenseText": [
"(The MIT License)",
"Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "data-uri-to-buffer",
"fullLicenseText": [
"(The MIT License)",
"Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "socks-proxy-agent",
"fullLicenseText": [
"(The MIT License)",
"Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "http-proxy-agent",
"fullLicenseText": [
"(The MIT License)",
"Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "agent-base",
"fullLicenseText": [
"(The MIT License)",
"Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "anstyle",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "anstyle-query",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "anstyle-parse",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "anstyle-wincon",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "anstream",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "colorchoice",
"fullLicenseText": [
"This software is released under the MIT license:",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
"this software and associated documentation files (the \"Software\"), to deal in",
"the Software without restriction, including without limitation the rights to",
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of",
"the Software, and to permit persons to whom the Software is furnished to do so,",
"subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS",
"FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR",
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER",
"IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN",
"CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
"name": "cacheable-request",
"prependLicenseText": [
"Copyright (c) cacheable-request authors"
]
},
{
"name": "@vscode/ts-package-manager",
"fullLicenseText": [
"MIT License",
"",
"Copyright (c) Microsoft Corporation.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and associated documentation files (the \"Software\"), to deal",
"in the Software without restriction, including without limitation the rights",
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
"copies of the Software, and to permit persons to whom the Software is",
"furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
"SOFTWARE"
]
},
{
"name":"vscode-markdown-languageserver",
"fullLicenseText": [
"MIT License",
"",
"Copyright (c) Microsoft Corporation.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and associated documentation files (the \"Software\"), to deal",
"in the Software without restriction, including without limitation the rights",
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
"copies of the Software, and to permit persons to whom the Software is",
"furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
"SOFTWARE"
]
},
{
// Reason: mono-repo where the individual packages are also dual-licensed under MIT and Apache-2.0
"name": "system-configuration",
"fullLicenseTextUri": "https://raw.githubusercontent.com/mullvad/system-configuration-rs/v0.6.0/system-configuration/LICENSE-MIT"
},
{
// Reason: mono-repo where the individual packages are also dual-licensed under MIT and Apache-2.0
"name": "system-configuration-sys",
"fullLicenseTextUri": "https://raw.githubusercontent.com/mullvad/system-configuration-rs/v0.6.0/system-configuration-sys/LICENSE-MIT"
},
{
// Reason: License missing from the repository https://github.com/isaacs/chownr/issues/35
"name": "chownr",
"fullLicenseText": [
"The ISC License",
"Copyright (c) Isaac Z. Schlueter and Contributors",
"Permission to use, copy, modify, and/or distribute this software for any",
"purpose with or without fee is hereby granted, provided that the above",
"copyright notice and this permission notice appear in all copies.",
"THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES",
"WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF",
"MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR",
"ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES",
"WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN",
"ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR",
"IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE."
]
}
]
+128 -104
View File
@@ -1,131 +1,155 @@
# Contributing to Void
Welcome! 👋 This is a guide on how to contribute to Void. We want to make it as easy as possible to contribute, so if you have any questions or comments, reach out via email or discord!
There are two main ways to contribute:
- Suggest New Features (discord)
- Build New Features (roadmap)
See the [GitHub Issues](https://github.com/orgs/voideditor/projects/2/views/3) list for a list of the most important features to build, or feel free to create new issues.
We use a [VSCode extension](https://code.visualstudio.com/api/get-started/your-first-extension) to implement most of Void's functionality. Scroll down to see 1. How to build/contribute to the Extension, or 2. How to build/contribute to the full IDE (for more native changes).
For some useful links we've compiled see [`VOID_USEFUL_LINKS.md`](https://github.com/voideditor/void/blob/main/VOID_USEFUL_LINKS.md).
Welcome! 👋 This is the official guide on how to contribute to Void. We want to make it as easy as possible to contribute, so if you have any questions or comments, reach out via email or discord!
## 1. Building the Extension
Here's how you can start contributing to the Void extension. This is where most of Void's code lives, and it's where you should get started if you're new.
There are a few ways to contribute:
1. Clone the repository:
- 👨‍💻 Build new features - see [Issues](https://github.com/voideditor/void/issues).
- 💡 Make suggestions in our [Discord](https://discord.gg/RSNjgaugJs).
- ⭐️ If you want to build your AI tool into Void, feel free to get in touch! It's very easy to extend Void, and the UX you create will be much more natural than a VSCode Extension.
Void's code mostly lives in `src/vs/workbench/contrib/void/` and `src/vs/platform/void/`.
## Building Void
### a. Build Prerequisites - Mac
If you're using a Mac, you need Python and XCode. You probably have these by default.
### b. Build Prerequisites - Windows
If you're using a Windows computer, first get [Visual Studio 2022](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community) (recommended) or [VS Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools) (not recommended). If you already have both, you might need to run the next few steps on both of them.
Go to the "Workloads" tab and select:
- `Desktop development with C++`
- `Node.js build tools`
Go to the "Individual Components" tab and select:
- `MSVC v143 - VS 2022 C++ x64/x86 Spectre-mitigated libs (Latest)`
- `C++ ATL for latest build tools with Spectre Mitigations`
- `C++ MFC for latest build tools with Spectre Mitigations`
Finally, click Install.
### c. Build Prerequisites - Linux
First, run `npm install -g node-gyp`. Then:
- Debian (Ubuntu, etc): `sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3`.
- Red Hat (Fedora, etc): `sudo dnf install @development-tools gcc gcc-c++ make libsecret-devel krb5-devel libX11-devel libxkbfile-devel`.
- Others: see [How to Contribute](https://github.com/microsoft/vscode/wiki/How-to-Contribute).
### d. Building Void
To build Void, open `void/` inside VSCode. Then open your terminal and run:
1. `npm install` to install all dependencies.
2. `npm run watchreact` to build Void's browser dependencies like React. (If this doesn't work, try `npm run buildreact`).
3. Build Void.
- Press <kbd>Cmd+Shift+B</kbd> (Mac).
- Press <kbd>Ctrl+Shift+B</kbd> (Windows/Linux).
- This step can take ~5 min. The build is done when you see two check marks.
4. Run Void.
- Run `./scripts/code.sh` (Mac/Linux).
- Run `./scripts/code.bat` (Windows).
6. Nice-to-knows.
- You can always press <kbd>Ctrl+R</kbd> (<kbd>Cmd+R</kbd>) inside the new window to reload and see your new changes. It's faster than <kbd>Ctrl+Shift+P</kbd> and `Reload Window`.
- You might want to add the flags `--user-data-dir ./.tmp/user-data --extensions-dir ./.tmp/extensions` to the above run command, which lets you delete the `.tmp` folder to reset any IDE changes you made when testing.
#### Building Void from Terminal
Alternatively, if you want to build Void from the terminal, instead of pressing <kbd>Cmd+Shift+B</kbd> you can run `npm run watch`. The build is done when you see something like this:
```
git clone https://github.com/voideditor/void
[watch-extensions] [00:37:39] Finished compilation extensions with 0 errors after 19303 ms
[watch-client ] [00:38:06] Finished compilation with 0 errors after 46248 ms
[watch-client ] [00:38:07] Starting compilation...
[watch-client ] [00:38:07] Finished compilation with 0 errors after 5 ms
```
2. Open the folder `/extensions/void` in VS Code (open it in a new workspace, *don't* just cd into it):
```
open /extensions/void
#### Common Fixes
- Make sure you followed the prerequisite steps.
- Make sure you have the same NodeJS version as `.nvmrc`.
- If you get `"TypeError: Failed to fetch dynamically imported module"`, make sure all imports end with `.js`.
- If you see missing styles, wait a few seconds and then reload.
- If you have any questions, feel free to [submit an issue](https://github.com/voideditor/void/issues/new). You can also refer to VSCode's complete [How to Contribute](https://github.com/microsoft/vscode/wiki/How-to-Contribute) page.
## Packaging
We don't usually recommend packaging. Instead, you should probably just build. If you're sure you want to package Void into an executable app, make sure you've built first, then run one of the following commands. This will create a folder named `VSCode-darwin-arm64` or similar outside of the void/ repo (see below). Be patient - packaging can take ~25 minutes.
### Mac
- `npm run gulp vscode-darwin-arm64` - most common (Apple Silicon)
- `npm run gulp vscode-darwin-x64` (Intel)
### Windows
- `npm run gulp vscode-win32-x64` - most common
- `npm run gulp vscode-win32-ia32`
### Linux
- `npm run gulp vscode-linux-x64` - most common
- `npm run gulp vscode-linux-arm`
- `npm run gulp vscode-linux-ia32`
### Output
This will generate a folder outside of `void/`:
```bash
workspace/
├── void/ # Your Void fork
└── VSCode-darwin-arm64/ # Generated output
```
3. Install dependencies:
### Distributing
We have a few scripts to convert `Mac .app -> .dmg`, `Windows folder -> .exe`, and `Linux folder -> appimage` for distribution. Let us know if you'd like access to them.
```
npm install
```
4. Build the project. We created this build command so that we could run React in vscode - it converts `sidebar/index.tsx` into a CSS/JS bundle in `dist/`.
```
npm run build
```
5. Run the project by pressing <kbd>F5</kbd>.
This will start a new instance of VS Code with the extension enabled. If this does not work, you can press <kbd>Ctrl+Shift+P</kbd>, select "Debug: Start Debugging", and select "VS Code Extension Development".
If you would like to use AI features, you need to provide an API key. You can do that by going to Settings (Ctrl+,) and modifying `void > "Anthropic Api Key"`. The "Which API" environment variable controls the provider and defaults to "anthropic".
Now that you're set up, feel free to check out our [Issues](https://github.com/voideditor/void/issues) page!
## 2. Building the full IDE
Beyond the extension, we very occasionally edit the IDE when we need to access more functionality. If you want to work on the full IDE, please follow the steps below, or see VS Code's full [how to contribute](https://github.com/microsoft/vscode/wiki/How-to-Contribute) page.
## Pull Request Guidelines
1. Install all dependencies. Make sure you have yarn installed (`npm install -g yarn`)
```
yarn
```
2. In VS Code, press <kbd>Ctrl+Shift+B</kbd> to start the build process - this can take some time. If you're not using VS Code, run `yarn watch` instead.
3. Run `./scripts/code.sh` in your terminal.
This should open up the built IDE after loading for some time. To see new changes without restarting the build, use <kbd>Ctrl+Shift+P</kbd> and run "Reload Window".
To bundle the IDE, run `yarn gulp vscode-win32-x64`. Here are the full options: vscode-{win32-ia32 | win32-x64 | darwin-x64 | darwin-arm64 | linux-ia32 | linux-x64 | linux-arm}(-min)
If you're on Windows, we recommend running the project inside a dev container. VSCode should prompt you to do this automatically.
Now that you're set up, feel free to check out our [Issues](https://github.com/voideditor/void/issues) page!
## Roadmap
Here are the most important topics on our Roadmap. More ⭐'s = more important.
- Please submit a pull request once you've made a change.
- No need to submit an Issue unless you're creating a new feature.
- Please don't use AI to write your PR 🙂
<!--
# Relevant files
We keep track of all the files we've changed with Void so it's easy to rebase:
Edit: far too many changes to track... this is old
- README.md
- CONTRIBUTING.md
- VOID_USEFUL_LINKS.md
- product.json
- package.json
## ⭐⭐⭐ Improve diffs.
- src/vs/workbench/api/common/{extHost.api.impl.ts | extHostApiCommands.ts}
- src/vs/workbench/workbench.common.main.ts
- src/vs/workbench/contrib/void/\*
- extensions/void/\*
We define a "diff" as a single green/red pair that denotes a change. Here are improvements to make:
- .github/\*
- .vscode/settings/\*
- .eslintrc.json
- build/hygiene.js
- build/lib/i18n.resources.json
- build/npm/dirs.js
1. Show deletion (-) diffs. Right now we're only showing insertion (+) diffs. Diffs currently work by highlighting all of the new code in green with a simple text decoration. Instead, we would like to use code from VS Code's native diffEditor to show the diffs ("inline" mode). We could alternatively keep what we have and add red zones of the deleted code to indicate a deletion diff (-).
- vscode.proposed.editorInsets.d.ts - not modified, but code copied
2. Fix bugginess when the user presses "Accept" or "Reject" on a diff. One issue is that when a diff is accepted/rejected all of the diffs below should be updated (because they are now on different line numbers). There are other miscellaneous issues too.
-->
3. Make diff highlighting dynamic. Right now when the user edits text, all of the diffs and their highlights are cleared. Instead, we should update the highlighting of the diff. Each diff lives on a range of lines, and all changes inside that range or intersecting with it should update its highlighting.
## References
## ⭐⭐⭐ Build Cursor-style quick edits (ctrl+k).
When the user presses ctrl+k, an input box should appear inline with the code that they were selecting. This is somewhat difficult to do because an extension alone cannot do this, and it requires creating a new component in the IDE. We think you can modify vscode's built-in "codelens" or "zone widget" components, but we are open to alternatives.
## ⭐⭐⭐ Make History work well.
When the user submits a response or presses the apply/accept/reject button, we should add these events to the history, allowing the user to undo/redo them. Right now there is unexpected behavior if the user tries to undo or redo their changes.
## ⭐⭐⭐ Improve Ctrl+L backend.
Right now, the model outputs entire files. Instead, we should change the prompt so that the model outputs partial changes like `// ... rest of file`. When the user clicks the "Apply" button, the model should rewrite the file and apply the partial changes in the correct locations.
## ⭐⭐ Integrate with Ollama.
We have an Ollama integration coded up in the extension, but it breaks. This is because Ollama has Node.js dependencies like 'path' and 'os' which cannot run in extensions (extensions have to be able to run in the browser). To fix this, we need to migrate Void's extension so that it runs natively into the VS Code editor so that we can access Node.js.
## ⭐⭐⭐ Creative.
Feel free to build AI features beyond the standard Cursor ones. For example, creating better code search, or supporting AI agents that can edit across files and make multiple LLM calls.
Eventually, we want to build a convenient API for creating AI tools. The API will provide methods for creating the UI (showing an autocomplete suggestion, or creating a new diff), detecting event changes (like `onKeystroke` or `onFileOpen`), and modifying the user's file-system (storing indexes associated with each file), making it much easier to make your own AI plugin. We plan on building these features further along in timeline, but we wanted to list them for completeness.
## ⭐ One-stars.
⭐ When user presses ctrl+L it should clear the sidebar's state.
⭐ Let the user accept / reject all Diffs in an entire file via the sidebar.
⭐ Allow the user to make multiple selections of code or files at once.
⭐ Allow user to X out of their current selection.
# Submitting a Pull Request
When you've made changes and want to submit them, please submit a pull request.
For some useful links we've compiled on VSCode, see [`VOID_USEFUL_LINKS.md`](https://github.com/voideditor/void/blob/main/VOID_USEFUL_LINKS.md).
+26
View File
@@ -0,0 +1,26 @@
Void is a fork of VS Code, which is licensed under the MIT License (below).
Void's additions and modifications are licensed under the Apache 2.0 License (see LICENSE.txt).
--------------------
MIT License
Copyright (c) 2015 - present Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+197 -17
View File
@@ -1,21 +1,201 @@
MIT License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright (c) 2015 - present Microsoft Corporation
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
1. Definitions.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2025 Glass Devtools, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+26 -9
View File
@@ -1,22 +1,39 @@
# Welcome to Void.
<div align="center">
<img
src="./src/vs/workbench/browser/parts/editor/media/slice_of_void.png"
alt="Void Welcome"
width="300"
height="300"
/>
</div>
Void is the open-source Cursor alternative.
Void is the open-source Cursor alternative. This repo contains the full sourcecode for Void. We are currently in [open beta](https://voideditor.com/) for downloading the official release. If you're new, welcome!
If you're new, welcome! Feel free to check out our [Task board](https://github.com/orgs/voideditor/projects/2/views/3) for the most pressing Issues to work on, and see [`CONTRIBUTING.md`](https://github.com/voideditor/void/blob/main/CONTRIBUTING.md) to get started with the build environment.
- 👋 [Discord](https://discord.gg/RSNjgaugJs)
This repo contains the full sourcecode for Void. We have a [waitlist](https://voideditor.com/email) for downloading the official release, but you can build and develop Void right now.
- 🚙 [Roadmap](https://github.com/orgs/voideditor/projects/2)
- 📝 [Changelog](https://voideditor.com/changelog)
- 🔨 [Contribute](https://github.com/voideditor/void/blob/main/CONTRIBUTING.md)
<!-- ❤️ Setup: -->
## Contributing
To build and run Void, see [`CONTRIBUTING.md`](https://github.com/voideditor/void/blob/main/CONTRIBUTING.md).
1. To contribute to the Void repository, follow the steps in [`CONTRIBUTING.md`](https://github.com/voideditor/void/blob/main/CONTRIBUTING.md).
2. To suggest a new feature, please create a new [GitHub Issue](https://github.com/voideditor/void/issues). Suggestions will be added to our Roadmap within one day.
3. We're open to collaborations of all types. Feel free to contact us via email or discord.
## Reference
Void is a fork of the of [vscode](https://github.com/microsoft/vscode) repository.
For some useful links we've compiled see [`VOID_USEFUL_LINKS.md`](https://github.com/voideditor/void/blob/main/VOID_USEFUL_LINKS.md).
Void is a fork of the [vscode](https://github.com/microsoft/vscode) repository. For some useful links on VSCode, see [`VOID_USEFUL_LINKS.md`](https://github.com/voideditor/void/blob/main/VOID_USEFUL_LINKS.md).
## Support
Feel free to reach out in our [Discord](https://discord.gg/PspNkKG5wt) or contact us via email.
Feel free to reach out in our discord or contact us via email.
-41
View File
@@ -1,41 +0,0 @@
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.9 BLOCK -->
## Security
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet) and [Xamarin](https://github.com/xamarin).
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/security.md/definition), please report it to us as described below.
## Reporting Security Issues
**Please do not report security vulnerabilities through public GitHub issues.**
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/security.md/msrc/create-report).
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/security.md/msrc/pgp).
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc).
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
* Full paths of source file(s) related to the manifestation of the issue
* The location of the affected source code (tag/branch/commit or direct URL)
* Any special configuration required to reproduce the issue
* Step-by-step instructions to reproduce the issue
* Proof-of-concept or exploit code (if possible)
* Impact of the issue, including how an attacker might exploit the issue
This information will help us triage your report more quickly.
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/security.md/msrc/bounty) page for more details about our active programs.
## Preferred Languages
We prefer all communications to be in English.
## Policy
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/security.md/cvd).
<!-- END MICROSOFT SECURITY.MD BLOCK -->
+576 -2
View File
@@ -440,6 +440,580 @@ Title to copyright in this work will at all times remain with copyright holders.
---------------------------------------------------------
dompurify 3.0.5 - Apache 2.0
https://github.com/cure53/DOMPurify
DOMPurify
Copyright 2024 Dr.-Ing. Mario Heiderich, Cure53
DOMPurify is free software; you can redistribute it and/or modify it under the
terms of either:
a) the Apache License Version 2.0, or
b) the Mozilla Public License Version 2.0
-----------------------------------------------------------------------------
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-----------------------------------------------------------------------------
Mozilla Public License, version 2.0
1. Definitions
1.1. "Contributor"
means each individual or legal entity that creates, contributes to the
creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used by a
Contributor and that particular Contributors Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached the
notice in Exhibit A, the Executable Form of such Source Code Form, and
Modifications of such Source Code Form, in each case including portions
thereof.
1.5. "Incompatible With Secondary Licenses"
means
a. that the initial Contributor has attached the notice described in
Exhibit B to the Covered Software; or
b. that the Covered Software was made available under the terms of version
1.1 or earlier of the License, but not also under the terms of a
Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in a separate
file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible, whether at the
time of the initial grant or subsequently, any and all of the rights conveyed by
this License.
1.10. "Modifications"
means any of the following:
a. any file in Source Code Form that results from an addition to, deletion
from, or modification of the contents of Covered Software; or
b. any new file in Source Code Form that contains any Covered Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method, process,
and apparatus claims, in any patent Licensable by such Contributor that
would be infringed, but for the grant of the License, by the making,
using, selling, offering for sale, having made, import, or transfer of
either its Contributions or its Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU Lesser
General Public License, Version 2.1, the GNU Affero General Public
License, Version 3.0, or any later versions of those licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that controls, is
controlled by, or is under common control with You. For purposes of this
definition, "control" means (a) the power, direct or indirect, to cause
the direction or management of such entity, whether by contract or
otherwise, or (b) ownership of more than fifty percent (50%) of the
outstanding shares or beneficial ownership of such entity.
2. License Grants and Conditions
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
a. under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or as
part of a Larger Work; and
b. under Patent Claims of such Contributor to make, use, sell, offer for
sale, have made, import, and otherwise transfer either its Contributions
or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution become
effective for each Contribution on the date the Contributor first distributes
such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under this
License. No additional rights or licenses will be implied from the distribution
or licensing of Covered Software under this License. Notwithstanding Section
2.1(b) above, no patent license is granted by a Contributor:
a. for any code that a Contributor has removed from Covered Software; or
b. for infringements caused by: (i) Your and any other third partys
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
c. under Patent Claims infringed by Covered Software in the absence of its
Contributions.
This License does not grant any rights in the trademarks, service marks, or
logos of any Contributor (except as may be necessary to comply with the
notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this License
(see Section 10.2) or under the terms of a Secondary License (if permitted
under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its Contributions
are its original creation(s) or it has sufficient rights to grant the
rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under applicable
copyright doctrines of fair use, fair dealing, or other equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
Section 2.1.
3. Responsibilities
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under the
terms of this License. You must inform recipients that the Source Code Form
of the Covered Software is governed by the terms of this License, and how
they can obtain a copy of this License. You may not attempt to alter or
restrict the recipients rights in the Source Code Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
a. such Covered Software must also be made available in Source Code Form,
as described in Section 3.1, and You must inform recipients of the
Executable Form how they can obtain a copy of such Source Code Form by
reasonable means in a timely manner, at a charge no more than the cost
of distribution to the recipient; and
b. You may distribute such Executable Form under the terms of this License,
or sublicense it under different terms, provided that the license for
the Executable Form does not attempt to limit or alter the recipients
rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for the
Covered Software. If the Larger Work is a combination of Covered Software
with a work governed by one or more Secondary Licenses, and the Covered
Software is not Incompatible With Secondary Licenses, this License permits
You to additionally distribute such Covered Software under the terms of
such Secondary License(s), so that the recipient of the Larger Work may, at
their option, further distribute the Covered Software under the terms of
either this License or such Secondary License(s).
3.4. Notices
You may not remove or alter the substance of any license notices (including
copyright notices, patent notices, disclaimers of warranty, or limitations
of liability) contained within the Source Code Form of the Covered
Software, except that You may alter any license notices to the extent
required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on behalf
of any Contributor. You must make it absolutely clear that any such
warranty, support, indemnity, or liability obligation is offered by You
alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
If it is impossible for You to comply with any of the terms of this License
with respect to some or all of the Covered Software due to statute, judicial
order, or regulation then You must: (a) comply with the terms of this License
to the maximum extent possible; and (b) describe the limitations and the code
they affect. Such description must be placed in a text file included with all
distributions of the Covered Software under this License. Except to the
extent prohibited by statute or regulation, such description must be
sufficiently detailed for a recipient of ordinary skill to be able to
understand it.
5. Termination
5.1. The rights granted under this License will terminate automatically if You
fail to comply with any of its terms. However, if You become compliant,
then the rights granted under this License from a particular Contributor
are reinstated (a) provisionally, unless and until such Contributor
explicitly and finally terminates Your grants, and (b) on an ongoing basis,
if such Contributor fails to notify You of the non-compliance by some
reasonable means prior to 60 days after You have come back into compliance.
Moreover, Your grants from a particular Contributor are reinstated on an
ongoing basis if such Contributor notifies You of the non-compliance by
some reasonable means, this is the first time You have received notice of
non-compliance with this License from such Contributor, and You become
compliant prior to 30 days after Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions, counter-claims,
and cross-claims) alleging that a Contributor Version directly or
indirectly infringes any patent, then the rights granted to You by any and
all Contributors for the Covered Software under Section 2.1 of this License
shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
license agreements (excluding distributors and resellers) which have been
validly granted by You or Your distributors under this License prior to
termination shall survive termination.
6. Disclaimer of Warranty
Covered Software is provided under this License on an "as is" basis, without
warranty of any kind, either expressed, implied, or statutory, including,
without limitation, warranties that the Covered Software is free of defects,
merchantable, fit for a particular purpose or non-infringing. The entire
risk as to the quality and performance of the Covered Software is with You.
Should any Covered Software prove defective in any respect, You (not any
Contributor) assume the cost of any necessary servicing, repair, or
correction. This disclaimer of warranty constitutes an essential part of this
License. No use of any Covered Software is authorized under this License
except under this disclaimer.
7. Limitation of Liability
Under no circumstances and under no legal theory, whether tort (including
negligence), contract, or otherwise, shall any Contributor, or anyone who
distributes Covered Software as permitted above, be liable to You for any
direct, indirect, special, incidental, or consequential damages of any
character including, without limitation, damages for lost profits, loss of
goodwill, work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses, even if such party shall have been
informed of the possibility of such damages. This limitation of liability
shall not apply to liability for death or personal injury resulting from such
partys negligence to the extent applicable law prohibits such limitation.
Some jurisdictions do not allow the exclusion or limitation of incidental or
consequential damages, so this exclusion and limitation may not apply to You.
8. Litigation
Any litigation relating to this License may be brought only in the courts of
a jurisdiction where the defendant maintains its principal place of business
and such litigation shall be governed by laws of that jurisdiction, without
reference to its conflict-of-law provisions. Nothing in this Section shall
prevent a partys ability to bring cross-claims or counter-claims.
9. Miscellaneous
This License represents the complete agreement concerning the subject matter
hereof. If any provision of this License is held to be unenforceable, such
provision shall be reformed only to the extent necessary to make it
enforceable. Any law or regulation which provides that the language of a
contract shall be construed against the drafter shall not be used to construe
this License against a Contributor.
10. Versions of the License
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version of
the License under which You originally received the Covered Software, or
under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a modified
version of this License if you rename the license and remove any
references to the name of the license steward (except to note that such
modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
This Source Code Form is subject to the
terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not
distributed with this file, You can
obtain one at
http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular file, then
You may include the notice in a location (such as a LICENSE file in a relevant
directory) where a recipient would be likely to look for such a notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - "Incompatible With Secondary Licenses" Notice
This Source Code Form is "Incompatible
With Secondary Licenses", as defined by
the Mozilla Public License, v. 2.0.
---------------------------------------------------------
---------------------------------------------------------
dotnet/csharp-tmLanguage 0.1.0 - MIT
https://github.com/dotnet/csharp-tmLanguage
@@ -545,7 +1119,7 @@ to the base-name name of the original file, and an extension of txt, html, or si
---------------------------------------------------------
go-syntax 0.7.5 - MIT
go-syntax 0.7.6 - MIT
https://github.com/worlpaker/go-syntax
MIT License
@@ -1534,7 +2108,7 @@ SOFTWARE.
---------------------------------------------------------
RedCMD/YAML-Syntax-Highlighter 1.1.1 - MIT
RedCMD/YAML-Syntax-Highlighter 1.1.2 - MIT
https://github.com/RedCMD/YAML-Syntax-Highlighter
MIT License
+10 -6
View File
@@ -2,23 +2,27 @@
The Void team put together this list of links to get up and running with VSCode's sourcecode. We hope it's helpful!
## Contributing
- [How VSCode's sourcecode is organized](https://github.com/microsoft/vscode/wiki/Source-Code-Organization) - this explains where the entry point files are, what `browser/` and `common/` mean, etc. This is the most important read on this whole list! We recommend reading the whole thing.
- [Built-in VSCode styles](https://code.visualstudio.com/api/references/theme-color) - CSS variables that are built into VSCode. Use `var(--vscode-{theme but replacing . with -})`. You can also see their [Webview theming guide](https://code.visualstudio.com/api/extension-guides/webview#theming-webview-content).
## Beginners / Getting started
- [VSCode UI guide](https://code.visualstudio.com/docs/getstarted/userinterface) - covers auxbar, panels, etc.
- [UX guide](https://code.visualstudio.com/api/ux-guidelines/overview) - covers Containers, Views, Items, etc.
## Contributing
- [How VS Code's sourcecode is organized](https://github.com/microsoft/vscode/wiki/Source-Code-Organization) - this explains where the entry point files are, what `browser/` and `common/` mean, etc. This is the most important read on this whole list! We recommend reading the whole thing.
## Misc
- [Every command](https://code.visualstudio.com/api/references/commands) built-in to VSCode - sometimes useful to reference.
- [Every command](https://code.visualstudio.com/api/references/commands) built-in to VSCode - not used often, but here for reference.
## VSCode's Extension API
Void is mainly an extension right now, and these links were very useful for us to get set up.
Void is no longer an extension, so these links are no longer required, but they might be useful if we ever build an extension again.
- [Files you need in an extension](https://code.visualstudio.com/api/get-started/extension-anatomy).
@@ -28,6 +32,6 @@ Void is mainly an extension right now, and these links were very useful for us t
- [The Full VSCode Extension API](https://code.visualstudio.com/api/references/vscode-api) - look on the right side for organization. The [bottom](https://code.visualstudio.com/api/references/vscode-api#api-patterns) of the page is easy to miss but is useful - cancellation tokens, events, disposables.
- [Activation events](https://code.visualstudio.com/api/references/activation-events) you can define in `package.json` (not the most useful)
- [Activation events](https://code.visualstudio.com/api/references/activation-events) you can define in `package.json` (not the most useful).
+1 -1
View File
@@ -1 +1 @@
2024-08-14T18:12:43.548Z
2024-09-04T10:21:29.952Z
-1
View File
@@ -1,2 +1 @@
.yarnrc
*.js.map
+1 -1
View File
@@ -163,7 +163,7 @@ typescript/lib/tsserverlibrary.js
jschardet/index.js
jschardet/src/**
jschardet/dist/jschardet.js
# TODO@esm uncomment when we can use jschardet.min.js again jschardet/dist/jschardet.js
es6-promise/lib/**
+5
View File
@@ -0,0 +1,5 @@
disturl="https://nodejs.org/dist"
runtime="node"
build_from_source="true"
legacy-peer-deps="true"
timeout=180000
+1 -1
View File
@@ -14,7 +14,7 @@
jschardet/index.js
jschardet/src/**
jschardet/dist/jschardet.js
# TODO@esm uncomment when we can use jschardet.min.js again jschardet/dist/jschardet.js
vscode-textmate/webpack.config.js
@@ -19,17 +19,9 @@ steps:
nodejsMirror: https://github.com/joaomoreno/node-mirror/releases/download
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
# Install yarn as the ARM64 build agent is using vanilla Ubuntu
- ${{ if eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true) }}:
- task: Npm@1
displayName: Install yarn
inputs:
command: custom
customCommand: install --global yarn
- script: |
set -e
yarn --frozen-lockfile --ignore-optional
npm ci
workingDirectory: build
displayName: Install pipeline build
@@ -7,7 +7,7 @@ steps:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -27,12 +27,12 @@ steps:
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js alpine $VSCODE_ARCH > .build/yarnlockhash
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js alpine $VSCODE_ARCH > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -43,18 +43,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -75,12 +74,12 @@ steps:
- script: |
set -e
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
npm_config_arch: $(NPM_ARCH)
@@ -89,7 +88,7 @@ steps:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME: vscodehub.azurecr.io/vscode-linux-build-agent:alpine-$(VSCODE_ARCH)
VSCODE_HOST_MOUNT: "/mnt/vss/_work/1/s"
displayName: Install build dependencies
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- script: node build/azure-pipelines/distro/mixin-npm
@@ -112,7 +111,7 @@ steps:
- script: |
set -e
TARGET=$([ "$VSCODE_ARCH" == "x64" ] && echo "linux-alpine" || echo "alpine-arm64") # TODO@joaomoreno
yarn gulp vscode-reh-$TARGET-min-ci
npm run gulp vscode-reh-$TARGET-min-ci
(cd .. && mv vscode-reh-$TARGET vscode-server-$TARGET) # TODO@joaomoreno
ARCHIVE_PATH=".build/linux/server/vscode-server-$TARGET.tar.gz"
DIR_PATH="$(realpath ../vscode-server-$TARGET)"
@@ -127,7 +126,7 @@ steps:
- script: |
set -e
TARGET=$([ "$VSCODE_ARCH" == "x64" ] && echo "linux-alpine" || echo "alpine-arm64")
yarn gulp vscode-reh-web-$TARGET-min-ci
npm run gulp vscode-reh-web-$TARGET-min-ci
(cd .. && mv vscode-reh-web-$TARGET vscode-server-$TARGET-web) # TODO@joaomoreno
ARCHIVE_PATH=".build/linux/web/vscode-server-$TARGET-web.tar.gz"
DIR_PATH="$(realpath ../vscode-server-$TARGET-web)"
@@ -4,7 +4,7 @@ parameters:
default: []
steps:
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
+1 -1
View File
@@ -4,7 +4,7 @@ parameters:
default: []
steps:
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -1,7 +1,7 @@
parameters:
- name: channel
type: string
default: 1.77
default: 1.81
- name: targets
default: []
type: object
@@ -1,7 +1,7 @@
parameters:
- name: channel
type: string
default: 1.77
default: 1.81
- name: targets
default: []
type: object
@@ -11,9 +11,10 @@ const { dirs } = require('../../npm/dirs');
const ROOT = path.join(__dirname, '../../../');
const shasum = crypto.createHash('sha256');
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 `package.json` and `yarn.lock` files
shasum.update(fs.readFileSync(path.join(ROOT, '.npmrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'build', '.npmrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'remote', '.npmrc')));
// Add `package.json` and `package-lock.json` files
for (const dir of dirs) {
const packageJsonPath = path.join(ROOT, dir, 'package.json');
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString());
@@ -25,8 +26,8 @@ for (const dir of dirs) {
distro: packageJson.distro
};
shasum.update(JSON.stringify(relevantPackageJsonSections));
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
shasum.update(fs.readFileSync(yarnLockPath));
const packageLockPath = path.join(ROOT, dir, 'package-lock.json');
shasum.update(fs.readFileSync(packageLockPath));
}
// Add any other command line arguments
for (let i = 2; i < process.argv.length; i++) {
@@ -13,10 +13,11 @@ const ROOT = path.join(__dirname, '../../../');
const shasum = crypto.createHash('sha256');
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')));
shasum.update(fs.readFileSync(path.join(ROOT, '.npmrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'build', '.npmrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'remote', '.npmrc')));
// Add `package.json` and `yarn.lock` files
// Add `package.json` and `package-lock.json` files
for (const dir of dirs) {
const packageJsonPath = path.join(ROOT, dir, 'package.json');
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString());
@@ -29,8 +30,8 @@ for (const dir of dirs) {
};
shasum.update(JSON.stringify(relevantPackageJsonSections));
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
shasum.update(fs.readFileSync(yarnLockPath));
const packageLockPath = path.join(ROOT, dir, 'package-lock.json');
shasum.update(fs.readFileSync(packageLockPath));
}
// Add any other command line arguments
@@ -17,31 +17,30 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
workingDirectory: build
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: build/.npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
- script: |
set -e
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
workingDirectory: build
displayName: Install build dependencies
@@ -13,7 +13,7 @@ steps:
continueOnError: true
displayName: Download ESRPClient
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -7,12 +7,12 @@ parameters:
type: boolean
- name: VSCODE_RUN_SMOKE_TESTS
type: boolean
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
steps:
- script: yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
- script: npm exec -- npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Download Electron and Playwright
@@ -20,52 +20,52 @@ steps:
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: ./scripts/test-esm.sh --tfs "Unit Tests"
displayName: Run unit tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: ./scripts/test-amd.sh --tfs "Unit Tests"
displayName: Run unit tests (Electron) [AMD]
timeoutInMinutes: 15
- script: yarn test-node-esm
displayName: Run unit tests (node.js) [ESM]
- script: npm run test-node-amd
displayName: Run unit tests (node.js) [AMD]
timeoutInMinutes: 15
- script: yarn test-browser-esm-no-install --sequential --browser chromium --browser webkit --tfs "Browser Unit Tests"
- script: npm run test-browser-amd-no-install -- --sequential --browser chromium --browser webkit --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium & Webkit) [ESM]
displayName: Run unit tests (Browser, Chromium & Webkit) [AMD]
timeoutInMinutes: 30
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: ./scripts/test.sh --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 15
- script: yarn test-node
- script: npm run test-node
displayName: Run unit tests (node.js)
timeoutInMinutes: 15
- script: yarn test-browser-no-install --sequential --browser chromium --browser webkit --tfs "Browser Unit Tests"
- script: npm run test-browser-no-install -- --sequential --browser chromium --browser webkit --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium & Webkit)
timeoutInMinutes: 30
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: ./scripts/test-esm.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: ./scripts/test-amd.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) [AMD]
timeoutInMinutes: 15
- script: yarn test-node-esm --build
displayName: Run unit tests (node.js) [ESM]
- script: npm run test-node-amd -- --build
displayName: Run unit tests (node.js) [AMD]
timeoutInMinutes: 15
- script: yarn test-browser-esm-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
- script: npm run test-browser-amd-no-install -- --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium & Webkit) [ESM]
displayName: Run unit tests (Browser, Chromium & Webkit) [AMD]
timeoutInMinutes: 30
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: ./scripts/test.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 15
- script: yarn test-node --build
- script: npm run test-node -- --build
displayName: Run unit tests (node.js)
timeoutInMinutes: 15
- script: yarn test-browser-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
- script: npm run test-browser-no-install -- --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium & Webkit)
@@ -74,7 +74,7 @@ steps:
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- script: |
set -e
yarn gulp \
npm run gulp \
compile-extension:configuration-editing \
compile-extension:css-language-features-server \
compile-extension:emmet \
@@ -94,17 +94,17 @@ steps:
displayName: Build integration tests
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: ./scripts/test-integration-esm.sh --tfs "Integration Tests"
displayName: Run integration tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: ./scripts/test-integration-amd.sh --tfs "Integration Tests"
displayName: Run integration tests (Electron) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: ./scripts/test-integration --tfs "Integration Tests"
displayName: Run integration tests (Electron)
timeoutInMinutes: 20
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
@@ -113,12 +113,12 @@ steps:
APP_ROOT="$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)"
APP_NAME="`ls $APP_ROOT | head -n 1`"
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
./scripts/test-integration-esm.sh --build --tfs "Integration Tests"
./scripts/test-integration-amd.sh --build --tfs "Integration Tests"
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)
displayName: Run integration tests (Electron) [ESM]
displayName: Run integration tests (Electron) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
@@ -157,13 +157,14 @@ steps:
condition: succeededOrFailed()
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- script: yarn --cwd test/smoke compile
- script: npm run compile
workingDirectory: test/smoke
displayName: Compile smoke tests
- script: yarn gulp compile-extension-media
- script: npm run gulp compile-extension-media
displayName: Compile extensions for smoke tests
- script: yarn smoketest-no-compile --tracing
- script: npm run smoketest-no-compile -- --tracing
timeoutInMinutes: 20
displayName: Run smoke tests (Electron)
@@ -172,11 +173,11 @@ steps:
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest-no-compile --tracing --build "$APP_ROOT/$APP_NAME"
npm run smoketest-no-compile -- --tracing --build "$APP_ROOT/$APP_NAME"
timeoutInMinutes: 20
displayName: Run smoke tests (Electron)
- script: yarn smoketest-no-compile --web --tracing --headless
- script: npm run smoketest-no-compile -- --web --tracing --headless
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)-web
timeoutInMinutes: 20
@@ -184,10 +185,10 @@ steps:
- script: |
set -e
yarn gulp compile-extension:vscode-test-resolver
npm run gulp compile-extension:vscode-test-resolver
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest-no-compile --tracing --remote --build "$APP_ROOT/$APP_NAME"
npm run smoketest-no-compile -- --tracing --remote --build "$APP_ROOT/$APP_NAME"
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)
timeoutInMinutes: 20
@@ -1,3 +1,5 @@
# Void - this looks like the relevant file for us (product-build-darwin.yml is independent and maybe just used for testing)
steps:
- task: NodeTool@0
inputs:
@@ -7,7 +9,7 @@ steps:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -20,31 +22,30 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
workingDirectory: build
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: build/.npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
- script: |
set -e
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
workingDirectory: build
displayName: Install build dependencies
@@ -60,6 +61,8 @@ steps:
- script: node build/azure-pipelines/distro/mixin-quality
displayName: Mixin distro quality
## Void - IMPORTANT
- script: |
set -e
unzip $(Pipeline.Workspace)/unsigned_vscode_client_darwin_x64_archive/VSCode-darwin-x64.zip -d $(agent.builddirectory)/VSCode-darwin-x64
@@ -67,6 +70,7 @@ steps:
DEBUG=* node build/darwin/create-universal-app.js $(agent.builddirectory)
displayName: Create Universal App
## Void - IMPORTANT
- script: |
set -e
security create-keychain -p pwd $(agent.tempdirectory)/buildagent.keychain
@@ -9,7 +9,7 @@ parameters:
type: boolean
- name: VSCODE_RUN_SMOKE_TESTS
type: boolean
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
@@ -28,7 +28,7 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -48,12 +48,12 @@ steps:
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js darwin $VSCODE_ARCH > .build/yarnlockhash
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js darwin $VSCODE_ARCH > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -64,18 +64,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -92,12 +91,12 @@ steps:
python3 -m pip install setuptools
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
npm_config_arch: $(VSCODE_ARCH)
@@ -134,7 +133,7 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
set -e
yarn gulp vscode-darwin-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-darwin-$(VSCODE_ARCH)-min-ci
echo "##vso[task.setvariable variable=BUILT_CLIENT]true"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
@@ -142,7 +141,7 @@ steps:
- script: |
set -e
yarn gulp vscode-reh-darwin-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-reh-darwin-$(VSCODE_ARCH)-min-ci
mv ../vscode-reh-darwin-$(VSCODE_ARCH) ../vscode-server-darwin-$(VSCODE_ARCH) # TODO@joaomoreno
ARCHIVE_PATH=".build/darwin/server/vscode-server-darwin-$(VSCODE_ARCH).zip"
mkdir -p $(dirname $ARCHIVE_PATH)
@@ -154,7 +153,7 @@ steps:
- script: |
set -e
yarn gulp vscode-reh-web-darwin-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-reh-web-darwin-$(VSCODE_ARCH)-min-ci
mv ../vscode-reh-web-darwin-$(VSCODE_ARCH) ../vscode-server-darwin-$(VSCODE_ARCH)-web # TODO@joaomoreno
ARCHIVE_PATH=".build/darwin/server/vscode-server-darwin-$(VSCODE_ARCH)-web.zip"
mkdir -p $(dirname $ARCHIVE_PATH)
@@ -165,7 +164,7 @@ steps:
displayName: Build server (web)
- ${{ else }}:
- script: yarn gulp transpile-client-swc transpile-extensions
- script: npm run gulp transpile-client-swc transpile-extensions
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Transpile
@@ -177,7 +176,7 @@ steps:
VSCODE_RUN_UNIT_TESTS: ${{ parameters.VSCODE_RUN_UNIT_TESTS }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: ${{ parameters.VSCODE_RUN_SMOKE_TESTS }}
VSCODE_BUILD_ESM: ${{ parameters.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ parameters.VSCODE_BUILD_AMD }}
- ${{ elseif and(ne(parameters.VSCODE_CIBUILD, true), ne(parameters.VSCODE_QUALITY, 'oss')) }}:
- task: DownloadPipelineArtifact@2
@@ -1,5 +1,5 @@
steps:
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -51,6 +51,5 @@ steps:
unzip $ArchivePath -d .build
mv .build/microsoft-vscode-distro-$DistroVersion .build/distro
cp remote/.yarnrc .build/distro/npm/remote/.yarnrc
condition: and(succeeded(), not(contains(variables['Agent.OS'], 'windows')))
displayName: Download distro (non-Windows)
+42
View File
@@ -0,0 +1,42 @@
#!/bin/sh
################################################################################
## Copied from https://github.com/actions/runner-images/blob/ubuntu22/20240825.1/images/ubuntu/scripts/build/configure-apt-mock.sh
################################################################################
i=1
while [ $i -le 30 ];do
err=$(mktemp)
"$@" 2>$err
# no errors, break the loop and continue normal flow
test -f $err || break
cat $err >&2
retry=false
if grep -q 'Could not get lock' $err;then
# apt db locked needs retry
retry=true
elif grep -q 'Could not open file /var/lib/apt/lists' $err;then
# apt update is not completed, needs retry
retry=true
elif grep -q 'IPC connect call failed' $err;then
# the delay should help with gpg-agent not ready
retry=true
elif grep -q 'Temporary failure in name resolution' $err;then
# It looks like DNS is not updated with random generated hostname yet
retry=true
elif grep -q 'dpkg frontend is locked by another process' $err;then
# dpkg process is busy by another process
retry=true
fi
rm $err
if [ $retry = false ]; then
break
fi
sleep 5
echo "...retry $i"
i=$((i + 1))
done
+13 -13
View File
@@ -40,24 +40,23 @@ steps:
displayName: Extract openssl prebuilt
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: node build/setup-npm-registry.js $NPM_REGISTRY
- script: node build/setup-npm-registry.js $NPM_REGISTRY build
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -65,13 +64,14 @@ steps:
set -e
for i in {1..5}; do # try 5 times
yarn --cwd build --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
workingDirectory: build
displayName: Install build dependencies
- script: |
@@ -5,7 +5,7 @@ parameters:
type: boolean
- name: VSCODE_ARCH
type: string
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
@@ -18,7 +18,7 @@ steps:
- template: ../distro/download-distro.yml
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -37,8 +37,8 @@ steps:
- script: |
set -e
# Start X server
sudo apt-get update
sudo apt-get install -y pkg-config \
./build/azure-pipelines/linux/apt-retry.sh sudo apt-get update
./build/azure-pipelines/linux/apt-retry.sh sudo apt-get install -y pkg-config \
dbus \
xvfb \
libgtk-3-0 \
@@ -62,18 +62,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -89,28 +88,31 @@ steps:
- script: |
set -e
# To workaround the issue of yarn not respecting the registry value from .npmrc
yarn config set registry "$NPM_REGISTRY"
for i in {1..5}; do # try 5 times
yarn --cwd build --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
workingDirectory: build
displayName: Install build dependencies
- script: |
set -e
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
source ./build/azure-pipelines/linux/setup-env.sh --only-remote
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
npm_config_arch: $(NPM_ARCH)
@@ -134,7 +136,7 @@ steps:
- script: |
set -e
yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-linux-$(VSCODE_ARCH)-min-ci
ARCHIVE_PATH=".build/linux/client/code-${{ parameters.VSCODE_QUALITY }}-$(VSCODE_ARCH)-$(date +%s).tar.gz"
mkdir -p $(dirname $ARCHIVE_PATH)
echo "##vso[task.setvariable variable=CLIENT_PATH]$ARCHIVE_PATH"
@@ -152,7 +154,7 @@ steps:
- script: |
set -e
export VSCODE_NODE_GLIBC="-glibc-2.17"
yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
mv ../vscode-reh-linux-$(VSCODE_ARCH) ../vscode-server-linux-$(VSCODE_ARCH) # TODO@joaomoreno
ARCHIVE_PATH=".build/linux/server/vscode-server-linux-legacy-$(VSCODE_ARCH).tar.gz"
UNARCHIVE_PATH="`pwd`/../vscode-server-linux-$(VSCODE_ARCH)"
@@ -167,7 +169,7 @@ steps:
- script: |
set -e
export VSCODE_NODE_GLIBC="-glibc-2.17"
yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
mv ../vscode-reh-web-linux-$(VSCODE_ARCH) ../vscode-server-linux-$(VSCODE_ARCH)-web # TODO@joaomoreno
ARCHIVE_PATH=".build/linux/web/vscode-server-linux-legacy-$(VSCODE_ARCH)-web.tar.gz"
mkdir -p $(dirname $ARCHIVE_PATH)
@@ -204,7 +206,7 @@ steps:
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: false
VSCODE_BUILD_ESM: ${{ parameters.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ parameters.VSCODE_BUILD_AMD }}
${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
PUBLISH_TASK_NAME: 1ES.PublishPipelineArtifact@1
@@ -10,12 +10,12 @@ parameters:
- name: PUBLISH_TASK_NAME
type: string
default: PublishPipelineArtifact@0
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
steps:
- script: yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
- script: npm exec -- npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Download Electron and Playwright
@@ -36,30 +36,30 @@ steps:
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: ./scripts/test-esm.sh --tfs "Unit Tests"
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: ./scripts/test-amd.sh --tfs "Unit Tests"
env:
DISPLAY: ":10"
displayName: Run unit tests (Electron) [ESM]
displayName: Run unit tests (Electron) [AMD]
timeoutInMinutes: 15
- script: yarn test-node-esm
displayName: Run unit tests (node.js) [ESM]
- script: npm run test-node-amd
displayName: Run unit tests (node.js) [AMD]
timeoutInMinutes: 15
- script: yarn test-browser-esm-no-install --browser chromium --tfs "Browser Unit Tests"
- script: npm run test-browser-amd-no-install -- --browser chromium --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium) [ESM]
displayName: Run unit tests (Browser, Chromium) [AMD]
timeoutInMinutes: 15
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: ./scripts/test.sh --tfs "Unit Tests"
env:
DISPLAY: ":10"
displayName: Run unit tests (Electron)
timeoutInMinutes: 15
- script: yarn test-node
- script: npm run test-node
displayName: Run unit tests (node.js)
timeoutInMinutes: 15
- script: yarn test-browser-no-install --browser chromium --tfs "Browser Unit Tests"
- script: npm run test-browser-no-install -- --browser chromium --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium)
@@ -67,26 +67,26 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: ./scripts/test-esm.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: ./scripts/test-amd.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) [AMD]
timeoutInMinutes: 15
- script: yarn test-node-esm --build
displayName: Run unit tests (node.js) [ESM]
- script: npm run test-node-amd -- --build
displayName: Run unit tests (node.js) [AMD]
timeoutInMinutes: 15
- script: yarn test-browser-esm-no-install --build --browser chromium --tfs "Browser Unit Tests"
- script: npm run test-browser-amd-no-install -- --build --browser chromium --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium) [ESM]
displayName: Run unit tests (Browser, Chromium) [AMD]
timeoutInMinutes: 15
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: ./scripts/test.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 15
- script: yarn test-node --build
- script: npm run test-node -- --build
displayName: Run unit tests (node.js)
timeoutInMinutes: 15
- script: yarn test-browser-no-install --build --browser chromium --tfs "Browser Unit Tests"
- script: npm run test-browser-no-install -- --build --browser chromium --tfs "Browser Unit Tests"
env:
DEBUG: "*browser*"
displayName: Run unit tests (Browser, Chromium)
@@ -95,7 +95,7 @@ steps:
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- script: |
set -e
yarn gulp \
npm run gulp \
compile-extension:configuration-editing \
compile-extension:css-language-features-server \
compile-extension:emmet \
@@ -116,13 +116,13 @@ steps:
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: ./scripts/test-integration-esm.sh --tfs "Integration Tests"
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: ./scripts/test-integration-amd.sh --tfs "Integration Tests"
env:
DISPLAY: ":10"
displayName: Run integration tests (Electron) [ESM]
displayName: Run integration tests (Electron) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: ./scripts/test-integration.sh --tfs "Integration Tests"
env:
DISPLAY: ":10"
@@ -138,7 +138,7 @@ steps:
timeoutInMinutes: 20
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
@@ -148,12 +148,12 @@ steps:
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_APP_NAME="$APP_NAME" \
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
./scripts/test-integration-esm.sh --build --tfs "Integration Tests"
./scripts/test-integration-amd.sh --build --tfs "Integration Tests"
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-linux-$(VSCODE_ARCH)
displayName: Run integration tests (Electron) [ESM]
displayName: Run integration tests (Electron) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- script: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
@@ -198,34 +198,35 @@ steps:
condition: succeededOrFailed()
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- script: yarn --cwd test/smoke compile
- script: npm run compile
workingDirectory: test/smoke
displayName: Compile smoke tests
- script: yarn gulp compile-extension:markdown-language-features compile-extension:ipynb compile-extension-media compile-extension:vscode-test-resolver
- script: npm run gulp compile-extension:markdown-language-features compile-extension:ipynb compile-extension-media compile-extension:vscode-test-resolver
displayName: Build extensions for smoke tests
- script: yarn gulp node
- script: npm run gulp node
displayName: Download node.js for remote smoke tests
retryCountOnTaskFailure: 3
- script: yarn smoketest-no-compile --tracing
- script: npm run smoketest-no-compile -- --tracing
timeoutInMinutes: 20
displayName: Run smoke tests (Electron)
- script: yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
- script: npm run smoketest-no-compile -- --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
timeoutInMinutes: 20
displayName: Run smoke tests (Browser, Chromium)
- script: yarn smoketest-no-compile --remote --tracing
- script: npm run smoketest-no-compile -- --remote --tracing
timeoutInMinutes: 20
displayName: Run smoke tests (Remote)
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: yarn smoketest-no-compile --tracing --build "$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)"
- script: npm run smoketest-no-compile -- --tracing --build "$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)"
timeoutInMinutes: 20
displayName: Run smoke tests (Electron)
- script: yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
- script: npm run smoketest-no-compile -- --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-linux-$(VSCODE_ARCH)-web
timeoutInMinutes: 20
@@ -233,10 +234,10 @@ steps:
- script: |
set -e
yarn gulp compile-extension:vscode-test-resolver
npm run gulp compile-extension:vscode-test-resolver
APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-server-linux-$(VSCODE_ARCH)" \
yarn smoketest-no-compile --tracing --remote --build "$APP_PATH"
npm run smoketest-no-compile -- --tracing --remote --build "$APP_PATH"
timeoutInMinutes: 20
displayName: Run smoke tests (Remote)
@@ -11,7 +11,7 @@ parameters:
type: boolean
- name: VSCODE_ARCH
type: string
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
@@ -30,7 +30,7 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -49,8 +49,8 @@ steps:
- script: |
set -e
# Start X server
sudo apt-get update
sudo apt-get install -y pkg-config \
./build/azure-pipelines/linux/apt-retry.sh sudo apt-get update
./build/azure-pipelines/linux/apt-retry.sh sudo apt-get install -y pkg-config \
dbus \
xvfb \
libgtk-3-0 \
@@ -72,12 +72,12 @@ steps:
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js linux $VSCODE_ARCH > .build/yarnlockhash
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js linux $VSCODE_ARCH > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -88,18 +88,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -107,23 +106,44 @@ steps:
set -e
for i in {1..5}; do # try 5 times
yarn --cwd build --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
workingDirectory: build
displayName: Install build dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
# Step will be used by both Install dependencies and building rpm package,
# hence avoid adding it behind NODE_MODULES_RESTORED condition.
- script: |
set -e
SYSROOT_ARCH=$VSCODE_ARCH
if [ "$SYSROOT_ARCH" == "x64" ]; then
SYSROOT_ARCH="amd64"
fi
export VSCODE_SYSROOT_DIR=$(Build.SourcesDirectory)/.build/sysroots
SYSROOT_ARCH="$SYSROOT_ARCH" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
env:
VSCODE_ARCH: $(VSCODE_ARCH)
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Download vscode sysroots
- script: |
set -e
source ./build/azure-pipelines/linux/setup-env.sh
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
npm_config_arch: $(NPM_ARCH)
@@ -170,7 +190,7 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
set -e
yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-linux-$(VSCODE_ARCH)-min-ci
ARCHIVE_PATH=".build/linux/client/code-${{ parameters.VSCODE_QUALITY }}-$(VSCODE_ARCH)-$(date +%s).tar.gz"
mkdir -p $(dirname $ARCHIVE_PATH)
echo "##vso[task.setvariable variable=CLIENT_PATH]$ARCHIVE_PATH"
@@ -203,7 +223,7 @@ steps:
- script: |
set -e
yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
mv ../vscode-reh-linux-$(VSCODE_ARCH) ../vscode-server-linux-$(VSCODE_ARCH) # TODO@joaomoreno
ARCHIVE_PATH=".build/linux/server/vscode-server-linux-$(VSCODE_ARCH).tar.gz"
UNARCHIVE_PATH="`pwd`/../vscode-server-linux-$(VSCODE_ARCH)"
@@ -217,7 +237,7 @@ steps:
- script: |
set -e
yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
npm run gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
mv ../vscode-reh-web-linux-$(VSCODE_ARCH) ../vscode-server-linux-$(VSCODE_ARCH)-web # TODO@joaomoreno
ARCHIVE_PATH=".build/linux/web/vscode-server-linux-$(VSCODE_ARCH)-web.tar.gz"
mkdir -p $(dirname $ARCHIVE_PATH)
@@ -258,7 +278,7 @@ steps:
displayName: Check GLIBC and GLIBCXX dependencies in server archive
- ${{ else }}:
- script: yarn gulp "transpile-client-swc" "transpile-extensions"
- script: npm run gulp "transpile-client-swc" "transpile-extensions"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Transpile client and extensions
@@ -270,38 +290,50 @@ steps:
VSCODE_RUN_UNIT_TESTS: ${{ parameters.VSCODE_RUN_UNIT_TESTS }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: ${{ parameters.VSCODE_RUN_SMOKE_TESTS }}
VSCODE_BUILD_ESM: ${{ parameters.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ parameters.VSCODE_BUILD_AMD }}
${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
PUBLISH_TASK_NAME: 1ES.PublishPipelineArtifact@1
- ${{ if and(ne(parameters.VSCODE_CIBUILD, true), ne(parameters.VSCODE_QUALITY, 'oss')) }}:
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-deb"
npm run gulp "vscode-linux-$(VSCODE_ARCH)-prepare-deb"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Prepare deb package
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-deb"
npm run gulp "vscode-linux-$(VSCODE_ARCH)-build-deb"
echo "##vso[task.setvariable variable=DEB_PATH]$(ls .build/linux/deb/*/deb/*.deb)"
displayName: Build deb package
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-rpm"
TRIPLE=""
if [ "$VSCODE_ARCH" == "x64" ]; then
TRIPLE="x86_64-linux-gnu"
elif [ "$VSCODE_ARCH" == "arm64" ]; then
TRIPLE="aarch64-linux-gnu"
elif [ "$VSCODE_ARCH" == "armhf" ]; then
TRIPLE="arm-rpi-linux-gnueabihf"
fi
export VSCODE_SYSROOT_DIR=$(Build.SourcesDirectory)/.build/sysroots
export STRIP="$VSCODE_SYSROOT_DIR/$TRIPLE/$TRIPLE/bin/strip"
npm run gulp "vscode-linux-$(VSCODE_ARCH)-prepare-rpm"
env:
VSCODE_ARCH: $(VSCODE_ARCH)
displayName: Prepare rpm package
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-rpm"
npm run gulp "vscode-linux-$(VSCODE_ARCH)-build-rpm"
echo "##vso[task.setvariable variable=RPM_PATH]$(ls .build/linux/rpm/*/*.rpm)"
displayName: Build rpm package
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
npm run gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
ARCHIVE_PATH=".build/linux/snap-tarball/snap-$(VSCODE_ARCH).tar.gz"
mkdir -p $(dirname $ARCHIVE_PATH)
tar -czf $ARCHIVE_PATH -C .build/linux snap
+6 -1
View File
@@ -8,7 +8,12 @@ if [ "$SYSROOT_ARCH" == "x64" ]; then
fi
export VSCODE_SYSROOT_DIR=$PWD/.build/sysroots
SYSROOT_ARCH="$SYSROOT_ARCH" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
if [ -d "$VSCODE_SYSROOT_DIR" ]; then
echo "Using cached sysroot"
else
echo "Downloading sysroot"
SYSROOT_ARCH="$SYSROOT_ARCH" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
fi
if [ "$npm_config_arch" == "x64" ]; then
if [ "$(echo "$@" | grep -c -- "--only-remote")" -eq 0 ]; then
@@ -5,11 +5,11 @@ steps:
versionFilePath: .nvmrc
nodejsMirror: https://github.com/joaomoreno/node-mirror/releases/download
- task: DownloadPipelineArtifact@0
- task: DownloadPipelineArtifact@2
displayName: "Download Pipeline Artifact"
inputs:
artifactName: snap-$(VSCODE_ARCH)
targetPath: .build/linux/snap-tarball
artifact: snap-$(VSCODE_ARCH)
path: .build/linux/snap-tarball
- script: |
set -e
@@ -22,17 +22,11 @@ steps:
sudo apt-get upgrade -y
sudo apt-get install -y curl apt-transport-https ca-certificates
# Yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install -y yarn
# Define variables
SNAP_ROOT="$(pwd)/.build/linux/snap/$(VSCODE_ARCH)"
# Install build dependencies
(cd build && yarn)
(cd build && npm ci)
# Unpack snap tarball artifact, in order to preserve file perms
(cd .build/linux && tar -xzf snap-tarball/snap-$(VSCODE_ARCH).tar.gz)
@@ -10,7 +10,7 @@ elif [ "$VSCODE_ARCH" == "armhf" ]; then
fi
# Get all files with .node extension from server folder
files=$(find $SEARCH_PATH -name "*.node" -not -path "*prebuilds*" -o -type f -executable -name "node")
files=$(find $SEARCH_PATH -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*" -o -type f -executable -name "node")
echo "Verifying requirements for files: $files"
@@ -13,12 +13,12 @@ steps:
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js linux $VSCODE_ARCH > .build/yarnlockhash
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js linux $VSCODE_ARCH > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -29,18 +29,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -51,12 +50,12 @@ steps:
- script: |
set -e
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
@@ -15,12 +15,12 @@ steps:
- pwsh: |
mkdir .build -ea 0
node build/azure-pipelines/common/computeNodeModulesCacheKey.js win32 $(VSCODE_ARCH) > .build/yarnlockhash
node build/azure-pipelines/common/computeNodeModulesCacheKey.js win32 $(VSCODE_ARCH) > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -32,18 +32,18 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { npm config set registry "$env:NPM_REGISTRY" --location=project }
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
exec { Add-Content -Path .npmrc -Value "always-auth=true" }
exec { yarn config set registry "$env:NPM_REGISTRY" }
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
exec { npm config set registry "$env:NPM_REGISTRY" }
$NpmrcPath = (npm config get userconfig)
echo "##vso[task.setvariable variable=NPMRC_PATH]$NpmrcPath"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -53,7 +53,7 @@ steps:
$ErrorActionPreference = "Stop"
$env:npm_config_arch="$(VSCODE_ARCH)"
$env:CHILD_CONCURRENCY="1"
retry { exec { yarn --frozen-lockfile --check-files } }
retry { exec { npm ci } }
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
+18 -11
View File
@@ -21,12 +21,14 @@ variables:
value: oss
- name: VSCODE_STEP_ON_IT
value: false
- name: VSCODE_BUILD_AMD
value: false
jobs:
- ${{ if ne(variables['VSCODE_CIBUILD'], true) }}:
- job: Compile
displayName: Compile & Hygiene
pool: 1es-oss-ubuntu-20.04-x64
pool: 1es-oss-ubuntu-22.04-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
@@ -37,7 +39,7 @@ jobs:
- job: Linuxx64UnitTest
displayName: Linux (Unit Tests)
pool: 1es-oss-ubuntu-20.04-x64
pool: 1es-oss-ubuntu-22.04-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
@@ -48,6 +50,7 @@ jobs:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: true
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -55,7 +58,7 @@ jobs:
- job: Linuxx64IntegrationTest
displayName: Linux (Integration Tests)
pool: 1es-oss-ubuntu-20.04-x64
pool: 1es-oss-ubuntu-22.04-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
@@ -66,6 +69,7 @@ jobs:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: true
@@ -73,7 +77,7 @@ jobs:
- job: Linuxx64SmokeTest
displayName: Linux (Smoke Tests)
pool: 1es-oss-ubuntu-20.04-x64
pool: 1es-oss-ubuntu-22.04-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
@@ -84,6 +88,7 @@ jobs:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -91,14 +96,14 @@ jobs:
- job: LinuxCLI
displayName: Linux (CLI)
pool: 1es-oss-ubuntu-20.04-x64
pool: 1es-oss-ubuntu-22.04-x64
timeoutInMinutes: 30
steps:
- template: cli/test.yml@self
- job: Windowsx64UnitTests
displayName: Windows (Unit Tests)
pool: 1es-oss-windows-2019-x64
pool: 1es-oss-windows-2022-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
@@ -107,6 +112,7 @@ jobs:
- template: win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: x64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: true
@@ -115,8 +121,8 @@ jobs:
- job: Windowsx64IntegrationTests
displayName: Windows (Integration Tests)
pool: 1es-oss-windows-2019-x64
timeoutInMinutes: 30
pool: 1es-oss-windows-2022-x64
timeoutInMinutes: 60
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
@@ -124,6 +130,7 @@ jobs:
- template: win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: x64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
@@ -132,7 +139,7 @@ jobs:
# - job: Windowsx64SmokeTests
# displayName: Windows (Smoke Tests)
# pool: 1es-oss-windows-2019-x64
# pool: 1es-oss-windows-2022-x64
# timeoutInMinutes: 30
# variables:
# VSCODE_ARCH: x64
@@ -149,7 +156,7 @@ jobs:
- ${{ if eq(variables['VSCODE_CIBUILD'], true) }}:
- job: Linuxx64MaintainNodeModulesCache
displayName: Linux (Maintain node_modules cache)
pool: 1es-oss-ubuntu-20.04-x64
pool: 1es-oss-ubuntu-22.04-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
@@ -158,7 +165,7 @@ jobs:
- job: Windowsx64MaintainNodeModulesCache
displayName: Windows (Maintain node_modules cache)
pool: 1es-oss-windows-2019-x64
pool: 1es-oss-windows-2022-x64
timeoutInMinutes: 30
variables:
VSCODE_ARCH: x64
+35 -34
View File
@@ -100,8 +100,8 @@ parameters:
displayName: "Skip tests"
type: boolean
default: false
- name: VSCODE_BUILD_ESM # TODO@bpasero TODO@esm remove me once ESM is shipped
displayName: "️❗ Build as ESM (!FOR TESTING ONLY!) ️❗"
- name: VSCODE_BUILD_AMD # TODO@bpasero TODO@esm remove me once AMD is removed
displayName: "️❗ Build as AMD (!FOR EMERGENCY ONLY!) ️❗"
type: boolean
default: false
@@ -114,8 +114,8 @@ variables:
value: ${{ parameters.CARGO_REGISTRY }}
- name: VSCODE_QUALITY
value: ${{ parameters.VSCODE_QUALITY }}
- name: VSCODE_BUILD_ESM
value: ${{ parameters.VSCODE_BUILD_ESM }}
- name: VSCODE_BUILD_AMD
value: ${{ parameters.VSCODE_BUILD_AMD }}
- name: VSCODE_BUILD_STAGE_WINDOWS
value: ${{ or(eq(parameters.VSCODE_BUILD_WIN32, true), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}
- name: VSCODE_BUILD_STAGE_LINUX
@@ -201,6 +201,7 @@ extends:
enableExclusions: true
exclusionsFilePath: $(Build.SourcesDirectory)/.eslintignore
sourceAnalysisPool: 1es-windows-2022-x64
createAdoIssuesForJustificationsForDisablement: false
containers:
snapcraft:
image: vscodehub.azurecr.io/vscode-linux-build-agent:snapcraft-x64
@@ -216,7 +217,7 @@ extends:
- job: Compile
timeoutInMinutes: 90
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
variables:
VSCODE_ARCH: x64
@@ -224,7 +225,7 @@ extends:
- template: build/azure-pipelines/product-compile.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:
- stage: CompileCLI
@@ -233,7 +234,7 @@ extends:
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
- job: CLILinuxX64
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
steps:
- template: build/azure-pipelines/linux/cli-build-linux.yml@self
@@ -245,7 +246,7 @@ extends:
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), or(eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true))) }}:
- job: CLILinuxGnuARM
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
steps:
- template: build/azure-pipelines/linux/cli-build-linux.yml@self
@@ -257,7 +258,7 @@ extends:
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_ALPINE, true)) }}:
- job: CLIAlpineX64
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
steps:
- template: build/azure-pipelines/alpine/cli-build-alpine.yml@self
@@ -362,7 +363,7 @@ extends:
- template: build/azure-pipelines/win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: x64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: true
@@ -377,7 +378,7 @@ extends:
- template: build/azure-pipelines/win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: x64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
@@ -392,7 +393,7 @@ extends:
- template: build/azure-pipelines/win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: x64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
@@ -408,7 +409,7 @@ extends:
- template: build/azure-pipelines/win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: x64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
@@ -432,7 +433,7 @@ extends:
- template: build/azure-pipelines/win32/product-build-win32.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_ARCH: arm64
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
@@ -446,7 +447,7 @@ extends:
- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:
- CompileCLI
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
jobs:
- ${{ if eq(variables['VSCODE_CIBUILD'], true) }}:
@@ -461,7 +462,7 @@ extends:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: true
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -477,7 +478,7 @@ extends:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: true
@@ -493,7 +494,7 @@ extends:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -511,7 +512,7 @@ extends:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
@@ -537,7 +538,7 @@ extends:
parameters:
VSCODE_ARCH: armhf
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -553,7 +554,7 @@ extends:
parameters:
VSCODE_ARCH: arm64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -578,7 +579,7 @@ extends:
parameters:
VSCODE_ARCH: x64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF_LEGACY_SERVER, true) }}:
@@ -591,7 +592,7 @@ extends:
parameters:
VSCODE_ARCH: armhf
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_RUN_INTEGRATION_TESTS: false
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64_LEGACY_SERVER, true) }}:
@@ -604,7 +605,7 @@ extends:
parameters:
VSCODE_ARCH: arm64
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_RUN_INTEGRATION_TESTS: false
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_ALPINE'], true)) }}:
@@ -614,7 +615,7 @@ extends:
- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:
- CompileCLI
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
jobs:
- ${{ if eq(parameters.VSCODE_BUILD_ALPINE, true) }}:
@@ -657,7 +658,7 @@ extends:
- template: build/azure-pipelines/darwin/product-build-darwin.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: true
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -671,7 +672,7 @@ extends:
- template: build/azure-pipelines/darwin/product-build-darwin.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: true
@@ -685,7 +686,7 @@ extends:
- template: build/azure-pipelines/darwin/product-build-darwin.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -700,7 +701,7 @@ extends:
- template: build/azure-pipelines/darwin/product-build-darwin.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -715,7 +716,7 @@ extends:
- template: build/azure-pipelines/darwin/product-build-darwin.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
@@ -747,7 +748,7 @@ extends:
- template: build/azure-pipelines/darwin/product-build-darwin.yml@self
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
VSCODE_BUILD_ESM: ${{ variables.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ variables.VSCODE_BUILD_AMD }}
VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}
VSCODE_RUN_UNIT_TESTS: false
VSCODE_RUN_INTEGRATION_TESTS: false
@@ -787,7 +788,7 @@ extends:
dependsOn:
- Compile
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
jobs:
- ${{ if eq(parameters.VSCODE_BUILD_WEB, true) }}:
@@ -817,7 +818,7 @@ extends:
- stage: ApproveRelease
dependsOn: [] # run in parallel to compile stage
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
jobs:
- deployment: ApproveRelease
@@ -838,7 +839,7 @@ extends:
- ${{ if and(parameters.VSCODE_RELEASE, eq(variables['VSCODE_PRIVATE_BUILD'], false)) }}:
- ApproveRelease
pool:
name: 1es-ubuntu-20.04-x64
name: 1es-ubuntu-22.04-x64
os: linux
jobs:
- job: ReleaseBuild
+36 -29
View File
@@ -1,7 +1,7 @@
parameters:
- name: VSCODE_QUALITY
type: string
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
@@ -15,7 +15,7 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- template: ./distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -26,12 +26,12 @@ steps:
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js compile > .build/yarnlockhash
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js compile > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -42,18 +42,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -63,15 +62,14 @@ steps:
- script: |
set -e
npm i -g node-gyp@9.4.0
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
@@ -94,38 +92,47 @@ steps:
displayName: Create node_modules archive
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- script: yarn --cwd build compile && ./.github/workflows/check-clean-git-state.sh
- script: npm run compile
workingDirectory: build
displayName: Compile /build/ folder
- script: .github/workflows/check-clean-git-state.sh
displayName: Check /build/ folder
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: node build/azure-pipelines/distro/mixin-quality
displayName: Mixin distro quality
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- script: node migrate.mjs --disable-watch
displayName: Migrate to ESM
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- script: node migrate.mjs --disable-watch --enable-esm-to-amd
displayName: Migrate ESM -> AMD
- template: common/install-builtin-extensions.yml@self
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- script: yarn npm-run-all -lp core-ci-pr extensions-ci-pr hygiene eslint valid-layers-check vscode-dts-compile-check tsec-compile-check
- script: npm exec -- npm-run-all -lp core-ci-pr extensions-ci-pr hygiene eslint valid-layers-check vscode-dts-compile-check tsec-compile-check
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
DISABLE_V8_COMPILE_CACHE: 1 # Disable v8 cache used by yarn v1.x, refs https://github.com/nodejs/node/issues/51555
displayName: Compile & Hygiene (OSS)
- ${{ else }}:
- script: yarn npm-run-all -lp core-ci extensions-ci hygiene eslint valid-layers-check vscode-dts-compile-check tsec-compile-check
- script: npm exec -- npm-run-all -lp core-ci extensions-ci hygiene eslint valid-layers-check vscode-dts-compile-check tsec-compile-check
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
DISABLE_V8_COMPILE_CACHE: 1 # Disable v8 cache used by yarn v1.x, refs https://github.com/nodejs/node/issues/51555
displayName: Compile & Hygiene (non-OSS)
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
set -e
yarn --cwd test/smoke compile
yarn --cwd test/integration/browser compile
displayName: Compile test suites (non-OSS)
npm run compile
displayName: Compile smoke test suites (non-OSS)
workingDirectory: test/smoke
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
npm run compile
displayName: Compile integration test suites (non-OSS)
workingDirectory: test/integration/browser
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: AzureCLI@2
@@ -171,7 +178,7 @@ steps:
sbomEnabled: false
displayName: Publish compilation artifact
- script: yarn download-builtin-extensions-cg
- script: npm run download-builtin-extensions-cg
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Download component details of built-in extensions
+4 -6
View File
@@ -8,14 +8,14 @@ steps:
- task: SFP.build-tasks.esrpclient-tools-task.EsrpClientTool@2
displayName: "Use EsrpClient"
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
KeyVaultName: vscode-build-secrets
SecretsFilter: "github-distro-mixin-password,esrp-aad-username,esrp-aad-password"
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -26,10 +26,8 @@ steps:
- pwsh: Write-Host "##vso[build.addbuildtag]🚀"
displayName: Add build tag
- pwsh: node build/npm/setupBuildYarnrc
displayName: Prepare build dependencies
- pwsh: yarn
- pwsh: |
npm ci
workingDirectory: build
displayName: Install build dependencies
+6 -1
View File
@@ -23,7 +23,12 @@ steps:
- script: |
set -e
(cd build ; yarn)
npm ci
workingDirectory: build
displayName: Install /build dependencies
- script: |
set -e
AZURE_TENANT_ID="$(AZURE_TENANT_ID)" \
AZURE_CLIENT_ID="$(AZURE_CLIENT_ID)" \
AZURE_CLIENT_SECRET="$(AZURE_CLIENT_SECRET)" \
@@ -34,7 +34,7 @@ steps:
- bash: |
# Install build dependencies
(cd build && yarn)
(cd build && npm ci)
node build/azure-pipelines/publish-types/check-version.js
displayName: Check version
+5 -1
View File
@@ -8,6 +8,7 @@ const path = require("path");
const es = require("event-stream");
const vfs = require("vinyl-fs");
const util = require("../lib/util");
const amd_1 = require("../lib/amd");
// @ts-ignore
const deps = require("../lib/dependencies");
const identity_1 = require("@azure/identity");
@@ -25,13 +26,16 @@ function src(base, maps = `${base}/**/*.map`) {
}));
}
function main() {
if ((0, amd_1.isAMD)()) {
return Promise.resolve(); // in AMD we run into some issues, but we want to unblock the build for recovery
}
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 productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d)).map(d => `./${d}/**/*.map`);
const nodeModules = vfs.src(productionDependenciesSrc, { base: '.' })
.pipe(util.cleanNodeModules(path.join(root, 'build', '.moduleignore')))
.pipe(util.cleanNodeModules(path.join(root, 'build', `.moduleignore.${process.platform}`)));
+6 -2
View File
@@ -8,6 +8,7 @@ import * as es from 'event-stream';
import * as Vinyl from 'vinyl';
import * as vfs from 'vinyl-fs';
import * as util from '../lib/util';
import { isAMD } from '../lib/amd';
// @ts-ignore
import * as deps from '../lib/dependencies';
import { ClientSecretCredential } from '@azure/identity';
@@ -29,6 +30,9 @@ function src(base: string, maps = `${base}/**/*.map`) {
}
function main(): Promise<void> {
if (isAMD()) {
return Promise.resolve(); // in AMD we run into some issues, but we want to unblock the build for recovery
}
const sources: any[] = [];
// vscode client maps (default)
@@ -36,8 +40,8 @@ function main(): Promise<void> {
const vs = src('out-vscode-min'); // client source-maps only
sources.push(vs);
const productionDependencies: { name: string; path: string; version: string }[] = deps.getProductionDependencies(root);
const productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => `./${d}/**/*.map`);
const productionDependencies = deps.getProductionDependencies(root);
const productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d)).map(d => `./${d}/**/*.map`);
const nodeModules = vfs.src(productionDependenciesSrc, { base: '.' })
.pipe(util.cleanNodeModules(path.join(root, 'build', '.moduleignore')))
.pipe(util.cleanNodeModules(path.join(root, 'build', `.moduleignore.${process.platform}`)));
+15 -17
View File
@@ -7,7 +7,7 @@ steps:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -27,12 +27,12 @@ steps:
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Registry
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js web > .build/yarnlockhash
- script: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.js web > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -43,18 +43,17 @@ steps:
- script: |
set -e
npm config set registry "$NPM_REGISTRY" --location=project
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
echo "always-auth=true" >> .npmrc
yarn config set registry "$NPM_REGISTRY"
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
npm config set registry "$NPM_REGISTRY"
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -65,12 +64,12 @@ steps:
- script: |
set -e
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
npm ci && break
if [ $i -eq 5 ]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
echo "Npm install failed $i, trying again..."
done
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
@@ -98,13 +97,12 @@ steps:
- script: |
set -e
yarn gulp vscode-web-min-ci
npm run gulp vscode-web-min-ci
ARCHIVE_PATH=".build/web/vscode-web.tar.gz"
mkdir -p $(dirname $ARCHIVE_PATH)
tar --owner=0 --group=0 -czf $ARCHIVE_PATH -C .. vscode-web
echo "##vso[task.setvariable variable=WEB_PATH]$ARCHIVE_PATH"
env:
DISABLE_V8_COMPILE_CACHE: 1 # Disable v8 cache used by yarn v1.x, refs https://github.com/nodejs/node/issues/51555
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Build
@@ -17,21 +17,20 @@ steps:
displayName: Setup NPM Registry
- powershell: |
. azure-pipelines/win32/exec.ps1
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { npm config set registry "$env:NPM_REGISTRY" --location=project }
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
exec { Add-Content -Path .npmrc -Value "always-auth=true" }
exec { yarn config set registry "$env:NPM_REGISTRY" }
workingDirectory: build
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
exec { npm config set registry "$env:NPM_REGISTRY" }
$NpmrcPath = (npm config get userconfig)
echo "##vso[task.setvariable variable=NPMRC_PATH]$NpmrcPath"
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: build/.npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -40,7 +39,7 @@ steps:
. azure-pipelines/win32/retry.ps1
$ErrorActionPreference = "Stop"
$env:CHILD_CONCURRENCY="1"
retry { exec { yarn --frozen-lockfile --check-files } }
retry { exec { npm ci } }
workingDirectory: build
displayName: Install build dependencies
@@ -12,12 +12,12 @@ parameters:
- name: PUBLISH_TASK_NAME
type: string
default: PublishPipelineArtifact@0
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
steps:
- powershell: yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
- powershell: npm exec -- npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Download Electron and Playwright
@@ -25,21 +25,21 @@ steps:
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- powershell: .\scripts\test-esm.bat --tfs "Unit Tests"
displayName: Run unit tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- powershell: .\scripts\test-amd.bat --tfs "Unit Tests"
displayName: Run unit tests (Electron) [AMD]
timeoutInMinutes: 15
- powershell: yarn test-node-esm
displayName: Run unit tests (node.js) [ESM]
- powershell: npm run test-node-amd
displayName: Run unit tests (node.js) [AMD]
timeoutInMinutes: 15
- powershell: node test/unit/browser/index.esm.js --sequential --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser, Chromium) [ESM]
- powershell: node test/unit/browser/index.amd.js --sequential --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser, Chromium) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- powershell: .\scripts\test.bat --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 15
- powershell: yarn test-node
- powershell: npm run test-node
displayName: Run unit tests (node.js)
timeoutInMinutes: 15
- powershell: node test/unit/browser/index.js --sequential --browser chromium --tfs "Browser Unit Tests"
@@ -47,24 +47,24 @@ steps:
timeoutInMinutes: 20
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- powershell: .\scripts\test-esm.bat --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- powershell: .\scripts\test-amd.bat --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) [AMD]
timeoutInMinutes: 15
- script: yarn test-node-esm --build
displayName: Run unit tests (node.js) [ESM]
- script: npm run test-node-amd -- --build
displayName: Run unit tests (node.js) [AMD]
timeoutInMinutes: 15
- powershell: yarn test-browser-esm-no-install --sequential --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser, Chromium) [ESM]
- powershell: npm run test-browser-amd-no-install -- --sequential --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser, Chromium) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- powershell: .\scripts\test.bat --build --tfs "Unit Tests"
displayName: Run unit tests (Electron)
timeoutInMinutes: 15
- powershell: yarn test-node --build
- powershell: npm run test-node -- --build
displayName: Run unit tests (node.js)
timeoutInMinutes: 15
- powershell: yarn test-browser-no-install --sequential --build --browser chromium --tfs "Browser Unit Tests"
- powershell: npm run test-browser-no-install -- --sequential --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser, Chromium)
timeoutInMinutes: 20
@@ -72,7 +72,7 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn gulp `
exec { npm run gulp `
compile-extension:configuration-editing `
compile-extension:css-language-features-server `
compile-extension:emmet `
@@ -98,17 +98,17 @@ steps:
condition: succeededOrFailed()
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- powershell: .\scripts\test-integration-esm.bat --tfs "Integration Tests"
displayName: Run integration tests (Electron) [ESM]
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- powershell: .\scripts\test-integration-amd.bat --tfs "Integration Tests"
displayName: Run integration tests (Electron) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- powershell: .\scripts\test-integration.bat --tfs "Integration Tests"
displayName: Run integration tests (Electron)
timeoutInMinutes: 20
- powershell: .\scripts\test-web-integration.bat --browser firefox
displayName: Run integration tests (Browser, Firefox)
- powershell: .\scripts\test-web-integration.bat --browser chromium
displayName: Run integration tests (Browser, Chromium)
timeoutInMinutes: 20
- powershell: .\scripts\test-remote-integration.bat
@@ -116,7 +116,7 @@ steps:
timeoutInMinutes: 20
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- ${{ if eq(parameters.VSCODE_BUILD_ESM, true) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, true) }}:
- powershell: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
@@ -128,10 +128,10 @@ steps:
$AppNameShort = $AppProductJson.nameShort
$env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"
$env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-server-win32-$(VSCODE_ARCH)"
exec { .\scripts\test-integration-esm.bat --build --tfs "Integration Tests" }
displayName: Run integration tests (Electron) [ESM]
exec { .\scripts\test-integration-amd.bat --build --tfs "Integration Tests" }
displayName: Run integration tests (Electron) [AMD]
timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_BUILD_ESM, false) }}:
- ${{ if eq(parameters.VSCODE_BUILD_AMD, false) }}:
- powershell: |
# Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests
@@ -179,32 +179,33 @@ steps:
condition: succeededOrFailed()
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- powershell: yarn --cwd test/smoke compile
- powershell: npm run compile
workingDirectory: test/smoke
displayName: Compile smoke tests
- powershell: yarn gulp compile-extension-media
- powershell: npm run gulp compile-extension-media
displayName: Build extensions for smoke tests
- powershell: yarn smoketest-no-compile --tracing
- powershell: npm run smoketest-no-compile -- --tracing
displayName: Run smoke tests (Electron)
timeoutInMinutes: 20
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- powershell: yarn smoketest-no-compile --tracing --build "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
- powershell: npm run smoketest-no-compile -- --tracing --build "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
displayName: Run smoke tests (Electron)
timeoutInMinutes: 20
- powershell: yarn smoketest-no-compile --web --tracing --headless
- powershell: npm run smoketest-no-compile -- --web --tracing --headless
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)\vscode-server-win32-$(VSCODE_ARCH)-web
displayName: Run smoke tests (Browser, Chromium)
timeoutInMinutes: 20
- powershell: yarn gulp compile-extension:vscode-test-resolver
- powershell: npm run gulp compile-extension:vscode-test-resolver
displayName: Compile test resolver extension
timeoutInMinutes: 20
- powershell: yarn smoketest-no-compile --tracing --remote --build "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
- powershell: npm run smoketest-no-compile -- --tracing --remote --build "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
env:
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)\vscode-server-win32-$(VSCODE_ARCH)
displayName: Run smoke tests (Remote)
@@ -11,7 +11,7 @@ parameters:
type: boolean
- name: VSCODE_RUN_SMOKE_TESTS
type: boolean
- name: VSCODE_BUILD_ESM
- name: VSCODE_BUILD_AMD
type: boolean
default: false
@@ -35,7 +35,7 @@ steps:
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -60,12 +60,12 @@ steps:
- pwsh: |
mkdir .build -ea 0
node build/azure-pipelines/common/computeNodeModulesCacheKey.js win32 $(VSCODE_ARCH) > .build/yarnlockhash
node build/azure-pipelines/common/computeNodeModulesCacheKey.js win32 $(VSCODE_ARCH) > .build/packagelockhash
displayName: Prepare node_modules cache key
- task: Cache@2
inputs:
key: '"node_modules" | .build/yarnlockhash'
key: '"node_modules" | .build/packagelockhash'
path: .build/node_modules_cache
cacheHitVar: NODE_MODULES_RESTORED
displayName: Restore node_modules cache
@@ -77,18 +77,18 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { npm config set registry "$env:NPM_REGISTRY" --location=project }
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
exec { Add-Content -Path .npmrc -Value "always-auth=true" }
exec { yarn config set registry "$env:NPM_REGISTRY" }
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
exec { npm config set registry "$env:NPM_REGISTRY" }
$NpmrcPath = (npm config get userconfig)
echo "##vso[task.setvariable variable=NPMRC_PATH]$NpmrcPath"
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -96,7 +96,7 @@ steps:
. build/azure-pipelines/win32/exec.ps1
. build/azure-pipelines/win32/retry.ps1
$ErrorActionPreference = "Stop"
retry { exec { yarn --frozen-lockfile --check-files } }
retry { exec { npm ci } }
env:
npm_config_arch: $(VSCODE_ARCH)
CHILD_CONCURRENCY: 1
@@ -132,7 +132,7 @@ steps:
retryCountOnTaskFailure: 3
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- powershell: yarn gulp "transpile-client-swc" "transpile-extensions"
- powershell: npm run gulp "transpile-client-swc" "transpile-extensions"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Transpile client and extensions
@@ -145,8 +145,8 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
exec { npm run gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
exec { npm run gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
echo "##vso[task.setvariable variable=BUILT_CLIENT]true"
echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH)"
env:
@@ -156,7 +156,7 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn gulp "vscode-reh-win32-$(VSCODE_ARCH)-min-ci" }
exec { npm run gulp "vscode-reh-win32-$(VSCODE_ARCH)-min-ci" }
mv ..\vscode-reh-win32-$(VSCODE_ARCH) ..\vscode-server-win32-$(VSCODE_ARCH) # TODO@joaomoreno
echo "##vso[task.setvariable variable=BUILT_SERVER]true"
echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(CodeSigningFolderPath),$(agent.builddirectory)/vscode-server-win32-$(VSCODE_ARCH)"
@@ -167,7 +167,7 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn gulp "vscode-reh-web-win32-$(VSCODE_ARCH)-min-ci" }
exec { npm run gulp "vscode-reh-web-win32-$(VSCODE_ARCH)-min-ci" }
mv ..\vscode-reh-web-win32-$(VSCODE_ARCH) ..\vscode-server-win32-$(VSCODE_ARCH)-web # TODO@joaomoreno
echo "##vso[task.setvariable variable=BUILT_WEB]true"
env:
@@ -182,7 +182,7 @@ steps:
VSCODE_RUN_UNIT_TESTS: ${{ parameters.VSCODE_RUN_UNIT_TESTS }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: ${{ parameters.VSCODE_RUN_SMOKE_TESTS }}
VSCODE_BUILD_ESM: ${{ parameters.VSCODE_BUILD_ESM }}
VSCODE_BUILD_AMD: ${{ parameters.VSCODE_BUILD_AMD }}
${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
PUBLISH_TASK_NAME: 1ES.PublishPipelineArtifact@1
@@ -275,7 +275,7 @@ steps:
$env:ESRPPKI = "$(ESRP-PKI)"
$env:ESRPAADUsername = "$(esrp-aad-username)"
$env:ESRPAADPassword = "$(esrp-aad-password)"
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-system-setup" --sign }
exec { npm run -- gulp "vscode-win32-$(VSCODE_ARCH)-system-setup" --sign }
$SetupPath = ".build\win32-$(VSCODE_ARCH)\system-setup\VSCodeSetup-$(VSCODE_ARCH)-$(VSCODE_VERSION).exe"
mv .build\win32-$(VSCODE_ARCH)\system-setup\VSCodeSetup.exe $SetupPath
echo "##vso[task.setvariable variable=SYSTEM_SETUP_PATH]$SetupPath"
@@ -287,7 +287,7 @@ steps:
$env:ESRPPKI = "$(ESRP-PKI)"
$env:ESRPAADUsername = "$(esrp-aad-username)"
$env:ESRPAADPassword = "$(esrp-aad-password)"
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-user-setup" --sign }
exec { npm run -- gulp "vscode-win32-$(VSCODE_ARCH)-user-setup" --sign }
$SetupPath = ".build\win32-$(VSCODE_ARCH)\user-setup\VSCodeUserSetup-$(VSCODE_ARCH)-$(VSCODE_VERSION).exe"
mv .build\win32-$(VSCODE_ARCH)\user-setup\VSCodeSetup.exe $SetupPath
echo "##vso[task.setvariable variable=USER_SETUP_PATH]$SetupPath"
+12 -12
View File
@@ -18,7 +18,7 @@ steps:
- template: ../distro/download-distro.yml@self
- task: AzureKeyVault@1
- task: AzureKeyVault@2
displayName: "Azure Key Vault: Get Secrets"
inputs:
azureSubscription: "vscode-builds-subscription"
@@ -32,18 +32,18 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { npm config set registry "$env:NPM_REGISTRY" --location=project }
# npm >v7 deprecated the `always-auth` config option, refs npm/cli@72a7eeb
# following is a workaround for yarn to send authorization header
# for GET requests to the registry.
exec { Add-Content -Path .npmrc -Value "always-auth=true" }
exec { yarn config set registry "$env:NPM_REGISTRY" }
# Set the private NPM registry to the global npmrc file
# so that authentication works for subfolders like build/, remote/, extensions/ etc
# which does not have their own .npmrc file
exec { npm config set registry "$env:NPM_REGISTRY" }
$NpmrcPath = (npm config get userconfig)
echo "##vso[task.setvariable variable=NPMRC_PATH]$NpmrcPath"
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM & Yarn
displayName: Setup NPM
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
workingFile: $(NPMRC_PATH)
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication
@@ -82,7 +82,7 @@ steps:
. build/azure-pipelines/win32/exec.ps1
. build/azure-pipelines/win32/retry.ps1
$ErrorActionPreference = "Stop"
retry { exec { yarn --frozen-lockfile --check-files } }
retry { exec { npm ci } }
env:
npm_config_arch: ${{ parameters.VSCODE_ARCH }}
CHILD_CONCURRENCY: 1
@@ -99,7 +99,7 @@ steps:
env:
VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
- powershell: yarn compile
- powershell: npm run compile
displayName: Compile
- powershell: |
@@ -109,7 +109,7 @@ steps:
Get-ChildItem '$(Build.SourcesDirectory)' -Recurse -Filter "*.pdb"
displayName: List files
- powershell: yarn gulp "vscode-symbols-win32-${{ parameters.VSCODE_ARCH }}"
- powershell: npm run gulp "vscode-symbols-win32-${{ parameters.VSCODE_ARCH }}"
env:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Download Symbols
+5 -5
View File
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const { isESM } = require('./lib/esm');
const { isAMD } = require('./lib/amd');
/**
* @param {string} name
@@ -71,7 +71,7 @@ exports.workerOutputLinks = createEditorWorkerModuleDescription('vs/workbench/co
exports.workerBackgroundTokenization = createEditorWorkerModuleDescription('vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateTokenizationWorker.worker');
exports.workbenchDesktop = function () {
return isESM() ? [
return !isAMD() ? [
createModuleDescription('vs/workbench/contrib/debug/node/telemetryApp'),
createModuleDescription('vs/platform/files/node/watcher/watcherMain'),
createModuleDescription('vs/platform/terminal/node/ptyHostMain'),
@@ -90,12 +90,12 @@ exports.workbenchDesktop = function () {
};
exports.workbenchWeb = function () {
return isESM() ? [
return !isAMD() ? [
createModuleDescription('vs/workbench/workbench.web.main')
] : [
...createEditorWorkerModuleDescription('vs/workbench/contrib/output/common/outputLinkComputer'),
...createEditorWorkerModuleDescription('vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateTokenizationWorker.worker'),
createModuleDescription('vs/code/browser/workbench/workbench', ['vs/workbench/workbench.web.main'])
createModuleDescription('vs/code/browser/workbench/workbench', ['vs/workbench/workbench.web.main.internal'])
];
};
@@ -109,7 +109,7 @@ exports.code = [
createModuleDescription('vs/code/electron-main/main'),
createModuleDescription('vs/code/node/cli'),
createModuleDescription('vs/code/node/cliProcessMain', ['vs/code/node/cli']),
createModuleDescription('vs/code/node/sharedProcess/sharedProcessMain'),
createModuleDescription('vs/code/electron-utility/sharedProcess/sharedProcessMain'),
createModuleDescription('vs/code/electron-sandbox/processExplorer/processExplorerMain')
];
+75 -75
View File
@@ -1,75 +1,75 @@
3e432bd550279c2d58c6a02b0bda048fa2a9a89aef9752e22c39a518a83fe96f *chromedriver-v30.4.0-darwin-arm64.zip
4d38f40ec33955dd0aef5cc0053b2b07c4744abb9f2614a44780280c4678aca9 *chromedriver-v30.4.0-darwin-x64.zip
338f2a361448e78aa8c319cd582f2dd6d891d6c0c66b676c628e50511c27514f *chromedriver-v30.4.0-linux-arm64.zip
8cffae19618fe5f0eaff40378c40084e18f9747bbbe2d87390203a3012c98367 *chromedriver-v30.4.0-linux-armv7l.zip
7ff1b75defc522f327c0f1bf6f4d13938b041cf5de1d7417b9dc5d1e7026e93c *chromedriver-v30.4.0-linux-x64.zip
8e93b0892d7d01c38608fa7907f28da1da27de09bb382f261d81a676f8c2ba64 *chromedriver-v30.4.0-mas-arm64.zip
d306ef0bc651bef046b21ba2e4745e2768be9df1b6c2fc2e7b1a0368f7e10d76 *chromedriver-v30.4.0-mas-x64.zip
bb7c5db2a20f437e0b398846ecc8111e7e51e2021b78f60db021262daacf7d7c *chromedriver-v30.4.0-win32-arm64.zip
df4acaa6684e7db07468c6dc8102cb49746884e8db2b53648431b2b61e8debb2 *chromedriver-v30.4.0-win32-ia32.zip
7a207b29977e52ba052037f00f4ea6284177fdd93e0774dfc39e83ee5a86513d *chromedriver-v30.4.0-win32-x64.zip
8c876662fd46c37b2dd9487ea8e62fde3f20a729dc95e42f12f7db4986138edc *electron-api.json
a36786c7d4e30887a6aa1f2adbc23e721266a31ffe84191bf4caddb731cfb973 *electron-v30.4.0-darwin-arm64-dsym-snapshot.zip
e5edcad107307e97bdd6f69ccab0368df4c3270213f2f42f259f3723d24ca611 *electron-v30.4.0-darwin-arm64-dsym.zip
cc522e772a1d80f7ec73ce2077dae93de76cd4f6767c467b6a8e01e4a252f15f *electron-v30.4.0-darwin-arm64-symbols.zip
2238c45a85b2c78aed00aeaf15bbfa2f64b4d13e48cc6b9bc330f24c4d214595 *electron-v30.4.0-darwin-arm64.zip
48c3197fc36f5ef64eaa913a0a769d2b2d4b79c94e61991ca73e8be2b24bf997 *electron-v30.4.0-darwin-x64-dsym-snapshot.zip
9b669dc060695e5495573cce7b7916bdadd980d523772fbbf57fd1811bb4feca *electron-v30.4.0-darwin-x64-dsym.zip
0acd5b74cbb1719a89a310fb42f5ab4282711bb0ccf4e8b242d9c24c8ecc7136 *electron-v30.4.0-darwin-x64-symbols.zip
6e633bf87be9f8bf46dff9733cfd0d611e018ae5df75f30735747721f91fcf43 *electron-v30.4.0-darwin-x64.zip
5bc27ceae706116a14fa24da3cda32f00893dd3f51ae2c2d58c4c08f26ce2ac2 *electron-v30.4.0-linux-arm64-debug.zip
d13970ef6f4ad30dd8268563ed0b768f703d6e4ea1389ee36b8e7eb407b40523 *electron-v30.4.0-linux-arm64-symbols.zip
aa422122373b84f4eb8ce937937b1b6fe8fb3975c3edafb9df85f7fba449afd4 *electron-v30.4.0-linux-arm64.zip
5bc27ceae706116a14fa24da3cda32f00893dd3f51ae2c2d58c4c08f26ce2ac2 *electron-v30.4.0-linux-armv7l-debug.zip
645af6535a3956e263d8ff586bfb45c5d16ec4c07add406e7c2a767eec070e8e *electron-v30.4.0-linux-armv7l-symbols.zip
3643857e1eec3037ad6f07e755bffc64f033a7196307ff0386bf67c9cc3ec31e *electron-v30.4.0-linux-armv7l.zip
0f099b597830fd990bac82fbe976720d5610450133dff880b570cbe1ef793742 *electron-v30.4.0-linux-x64-debug.zip
084566b78797502ad164832e49690d8845c53a8becb28085f271ab1a9fe20942 *electron-v30.4.0-linux-x64-symbols.zip
b365aac23c61dc0b18002c60937c4842e814cbe6d8e6a34e4dc211774ebaec01 *electron-v30.4.0-linux-x64.zip
b050b4de0fda4c2fa4ceeb0ecaf452cc426a9b03a9e286686d2167c7ded252f4 *electron-v30.4.0-mas-arm64-dsym-snapshot.zip
1e9c3f820e809fc2e05434d54862c7309dd04b74406869e06edb1e07faa3e40f *electron-v30.4.0-mas-arm64-dsym.zip
9b4112c73606d1a0393320178a3d0f172671ec211fe69b2106ad9b04b55b3538 *electron-v30.4.0-mas-arm64-symbols.zip
10ac65b581c2941fd05b2804055be2eed8d69de4c82b90f7357a3989d8276c9f *electron-v30.4.0-mas-arm64.zip
9e4cba132474d82894541ab33d02b28894f0452f4c6808e2428878d0b6a55aac *electron-v30.4.0-mas-x64-dsym-snapshot.zip
33c9c13a8a33ab292db5f14b1d8af1fa7967601badf505a06972fd3cdc9cb6bb *electron-v30.4.0-mas-x64-dsym.zip
1e8871c34294912bc562861226742dcd2de073ae2dc3fef8065fe86550265bca *electron-v30.4.0-mas-x64-symbols.zip
055bea26dfd9fa86838e25b77e29fec3967ed21020ce1362ff683be07ac90c45 *electron-v30.4.0-mas-x64.zip
1fd654358ad895fce4806fcd39be848deeccd20f767e96006ebb5c88ca973d92 *electron-v30.4.0-win32-arm64-pdb.zip
5cf51db3ece15f155afc066230f844bf7825fe912f0f479b8cf9eb47e46a2278 *electron-v30.4.0-win32-arm64-symbols.zip
7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.4.0-win32-arm64-toolchain-profile.zip
51bc3a21faefe99ccc8e8670dccf2320249af5c185728a31d907a18092542d73 *electron-v30.4.0-win32-arm64.zip
b4a539c7dbad3db544d7709faaf357d55d7f3349bfd4d42c884b0608725b526d *electron-v30.4.0-win32-ia32-pdb.zip
ddb355e3e45978eee33c679c42781587533b934f3e98374057d2b0c212062915 *electron-v30.4.0-win32-ia32-symbols.zip
7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.4.0-win32-ia32-toolchain-profile.zip
7260c9f533d5fa0c543d34593bb1a8bc4904943ca872afc5246e15da6f00b43a *electron-v30.4.0-win32-ia32.zip
2d0d5631158971e0fac9bb7c427c5361177c7e967cca41940ad18183d95c3e23 *electron-v30.4.0-win32-x64-pdb.zip
0ea8c0b8734bd45cb04ae83390bd7efee407ed6bb30dbaa1030e1a1f03a0f025 *electron-v30.4.0-win32-x64-symbols.zip
7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.4.0-win32-x64-toolchain-profile.zip
9dcf4b5bbdb6c672ba1b3812d4b642999faf4b6f4e2a4e4af314ba61596a62dc *electron-v30.4.0-win32-x64.zip
c524777653f0b3ba58da6c1e97aa5a3a172caf68d9b24a7d33f733b36c281ce8 *electron.d.ts
c1586ee3f3960943dfa1c1a3da2ebc327afd95c3c7a160b0646730fbc78731bb *ffmpeg-v30.4.0-darwin-arm64.zip
7f76a792c8f9ee9611f966956b4b70017253f9357ec73806d35c568808eec470 *ffmpeg-v30.4.0-darwin-x64.zip
5160348bcae6cb4fce20905338a903475c2eb52511370b44bdfeafef3cbeab6c *ffmpeg-v30.4.0-linux-arm64.zip
4f7583513d48b48c44a2cbc4430cbc9a33d8f9728622166db688e3de61190821 *ffmpeg-v30.4.0-linux-armv7l.zip
4f62d246a2ccb904e9f03bdc65fd5806edd69b95099fa2dcba4f148d44ea1bce *ffmpeg-v30.4.0-linux-x64.zip
c1586ee3f3960943dfa1c1a3da2ebc327afd95c3c7a160b0646730fbc78731bb *ffmpeg-v30.4.0-mas-arm64.zip
7f76a792c8f9ee9611f966956b4b70017253f9357ec73806d35c568808eec470 *ffmpeg-v30.4.0-mas-x64.zip
26b82e5943d09eb0765804df27182cd45c45e63e82fe95d60a5a78611d85a926 *ffmpeg-v30.4.0-win32-arm64.zip
ea688b108cb545bd436621c8d1279696ac6cb0b041d1d3d322dba06f8dd0f295 *ffmpeg-v30.4.0-win32-ia32.zip
733a522d2095964ff3796f3301591b7aa9cf1ba8dcc545d1928745022ef99e6a *ffmpeg-v30.4.0-win32-x64.zip
0b82c8db956264c1be4006eff3908b51ae8e48a17176fe61fa86d8ca8c103bf5 *hunspell_dictionaries.zip
27d5d6d82bd5703342e6a3804ff3c032433cda833ad3881f263035b23193ace9 *libcxx-objects-v30.4.0-linux-arm64.zip
babe51c929cc77907fdb5af11781938bab4b9f31642a0220b4ce4a35cfb904ff *libcxx-objects-v30.4.0-linux-armv7l.zip
e6e13dd7c493841c3ab406b147d021b4e5a379e286767c1459d23bd9581c10c9 *libcxx-objects-v30.4.0-linux-x64.zip
c9ba1b8c0e971cf477f7c0120436cc45a02b72908a41c82cd809ec8014b81e32 *libcxx_headers.zip
2c4c140bfeb235584f8f7c699d0d95b16ddb959484923aaa59eeb3310dbc161a *libcxxabi_headers.zip
0cee8848525e0d633d3ccf599d03ac05be6e0bc014b5a77ddce99c3a50941feb *mksnapshot-v30.4.0-darwin-arm64.zip
0c491f602cfc6fbd81b8b771d3fa28ec1eb77c23c7636479a158265dd7d59977 *mksnapshot-v30.4.0-darwin-x64.zip
6ea645627b0a0cab88cda80a2fa4d399a491bc5f0d0ff1d007f6dd28728d4592 *mksnapshot-v30.4.0-linux-arm64-x64.zip
6b33e8bc53281710d9754e3ea88a8c025649f3d7c499e9b8693183bd2b76ea8d *mksnapshot-v30.4.0-linux-armv7l-x64.zip
092afde6a2ab8ac922524a02b30343cd11f96c01405814019797bf38fa8c634b *mksnapshot-v30.4.0-linux-x64.zip
dada39480526a46992f2ff0ad8ea72a26565384e9976497867a6c4776705e49f *mksnapshot-v30.4.0-mas-arm64.zip
4082f5b379b788d300b2a7fc7c84deee80ebc61a34b534c795c1b4594c3f0d1a *mksnapshot-v30.4.0-mas-x64.zip
01a5e83fe293dd2c52e1d5cc79450fbfc1dfa1e4988146f94bfbf9a9e24cb9d7 *mksnapshot-v30.4.0-win32-arm64-x64.zip
0bccaa2779f8ce98bd4a2a66be082bcd3c34484aad8000c08de0fed5acb8ad88 *mksnapshot-v30.4.0-win32-ia32.zip
439c7f5b9fdd0ea19ee95f724773cda42382b27a31494ae8f2aca5c2ec043ec7 *mksnapshot-v30.4.0-win32-x64.zip
3de7da4462c7690f75680aecac8fddedc4b998d0da769136d8eff2932b36004e *chromedriver-v30.5.1-darwin-arm64.zip
d89b89f7c2ba45cb10df7fc23722bacf6f77e13002c42648762cd18ae3fa9182 *chromedriver-v30.5.1-darwin-x64.zip
3722d46929fd2c7b33c17d37464a08150e60d9269053eb67195795254fb5e947 *chromedriver-v30.5.1-linux-arm64.zip
a786d51f834c24b768bd415bf9a2fc5c1d9abdf9dc0b1a091bf9a8ff101becfe *chromedriver-v30.5.1-linux-armv7l.zip
688e4da8dbcb7dbfacab6f29341d96736e6d06e4c8029835b83ef30b69885b01 *chromedriver-v30.5.1-linux-x64.zip
786a7c2659ad97d5a09866b9aafd55edc015cb17a87bd8d72aa5925f2bfcf55a *chromedriver-v30.5.1-mas-arm64.zip
398759d1dc02fc4928d48ff0f8fbade8811347e1a51d1cedcb2ba9350fbed04d *chromedriver-v30.5.1-mas-x64.zip
65766f1270d1876e2a81acfb4b1130dc4a41eb7165842afa8f41ea438bf2fecb *chromedriver-v30.5.1-win32-arm64.zip
ca9fe0abd1032ebd51497049cb1bb2ae1dd9592697b278f6b1ee2a1a25148891 *chromedriver-v30.5.1-win32-ia32.zip
b6b6ea2202e0139ea436288add736d19078bfb190fc0b22937283927f3024bb9 *chromedriver-v30.5.1-win32-x64.zip
50e8b2d59916bc180873324fdbeb8227dbb8b2375cc936e58b7c9885fb23376d *electron-api.json
595db4fa3f755432bf59cbbaf591ee44b576e15952d014d83d3748646b2e338c *electron-v30.5.1-darwin-arm64-dsym-snapshot.zip
c1beb80553f3c9575e638625ce0ffbfdb87b6f8b23799eb132954b2bb74a9a2f *electron-v30.5.1-darwin-arm64-dsym.zip
cba315d6d6f607a2ee6cfc437b46f92da88daded86f0130d85129adb4742bc48 *electron-v30.5.1-darwin-arm64-symbols.zip
d312544ea29844cf328b44b9dbde12f4fdced90cb442dfca6df36c098dbb6e7a *electron-v30.5.1-darwin-arm64.zip
fd24d585d28909c082d703db3fcc5ffa0b55e1077ff320e25ed510f36e6a3761 *electron-v30.5.1-darwin-x64-dsym-snapshot.zip
4d1a2adea4b98c4d0b03c6561fca146aab102d636d359e48ce418c465df891ae *electron-v30.5.1-darwin-x64-dsym.zip
d9065eaf659f4c3e8a75f5453ceb65269763b2e57110bdcc01904b9a1e33a62c *electron-v30.5.1-darwin-x64-symbols.zip
faf9dcc20d525607ea205f2f6a1dfe3270f6268aa439bb0ba5646c7e4fbbd842 *electron-v30.5.1-darwin-x64.zip
b85dba1cdb49591542dcecff3e710f29b81285569c8c5db8c1181c3ed818ba44 *electron-v30.5.1-linux-arm64-debug.zip
5e97cc105282783d1c20d8e8dd4ca1134342839235288840cb50f314ca7a6ede *electron-v30.5.1-linux-arm64-symbols.zip
eb31470c0d7cd6e23e7ce0d89cc93a2356c9dac8bcc997e335353b8aa995afa0 *electron-v30.5.1-linux-arm64.zip
b85dba1cdb49591542dcecff3e710f29b81285569c8c5db8c1181c3ed818ba44 *electron-v30.5.1-linux-armv7l-debug.zip
137548cd73cd648107f6e01c777e411838173309848a492b42825857cec7d110 *electron-v30.5.1-linux-armv7l-symbols.zip
224bd46983e503101c756c72d10b195f14712a7a56438718acb126017dd04edf *electron-v30.5.1-linux-armv7l.zip
1f87fadebc444c9c0de43f52972a3f61af83ca0594c3de368f7579ce613fcb60 *electron-v30.5.1-linux-x64-debug.zip
aae78654f599a68310bdbdc0e3de8db644320ef44e58a5c6e5c693dff5cd1970 *electron-v30.5.1-linux-x64-symbols.zip
ec4707783d39e86005f42899e30ae59e50dd5d9c7f28531ed494eb43f2361403 *electron-v30.5.1-linux-x64.zip
c61f3121e52fd29987814b7805b597ef3fc78b2ce891eba5e3fc6bbe14128f23 *electron-v30.5.1-mas-arm64-dsym-snapshot.zip
f934e55ef6c986d3ec56626b2605fed16030efc45efcd8b05afa9322d625ec56 *electron-v30.5.1-mas-arm64-dsym.zip
3cc36e99f2cd59d7cb2f47b52d19609c2a2358f6ddde35fd832872abe241cc8d *electron-v30.5.1-mas-arm64-symbols.zip
c5085ab1fb74dfa4a4e463dcb688989bc63baf44007419fd96db4e7c974fb6db *electron-v30.5.1-mas-arm64.zip
47102b6dcd5892de734be2b48e40bbbdbc5e0a228bf5fec33071661d2724d946 *electron-v30.5.1-mas-x64-dsym-snapshot.zip
607091ddfd313ed27bb5a0acb6fa58b0d65cb87e6c6ce9b373949b4b152476d8 *electron-v30.5.1-mas-x64-dsym.zip
ac49568635d41e1075bca39c97aca1f2fcede702f721ddce5d80f18cc2dd1067 *electron-v30.5.1-mas-x64-symbols.zip
3746bc4ba32ab9c11398a393d54ba81733088729ae7cef4e5dccf1e64dc82b0a *electron-v30.5.1-mas-x64.zip
930ad941c8bc0aa5e4e3457b235f104846939974d71bde5b42a8980de2d4a35d *electron-v30.5.1-win32-arm64-pdb.zip
11c1252547b381ab6e40cc032ee60c5209dee9ea1102d1b47ad3fcd4da03049f *electron-v30.5.1-win32-arm64-symbols.zip
7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.5.1-win32-arm64-toolchain-profile.zip
f18baa98ba9c04b346fda9f40fc3150a57b539d0cd510971a073983f78e0a20c *electron-v30.5.1-win32-arm64.zip
b03c7297dc61aa234ab2273c419d9ae064e52c2c0c3dd56f09135f81964630b5 *electron-v30.5.1-win32-ia32-pdb.zip
8fc570c7f4d97eb6b745fb4af5932311d1da57058da8f39a3d97d6e099cd6982 *electron-v30.5.1-win32-ia32-symbols.zip
7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.5.1-win32-ia32-toolchain-profile.zip
20845163bf9d5a4ead03c5f0280c9bae71f0ab1fc03362f3406ed12620e4d9cd *electron-v30.5.1-win32-ia32.zip
019f3ae97a69dc837d89c44d25e0e5dadc88564b74202c5a3524fc6ab59490bc *electron-v30.5.1-win32-x64-pdb.zip
2eb4889fe275e5ea42cf6f51821bcceb833d5714aa1b45ad7915495afb447e94 *electron-v30.5.1-win32-x64-symbols.zip
7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.5.1-win32-x64-toolchain-profile.zip
443119bb559fc2ca297a57cf79f2bce532e853ada070c1e71460c9657c13b4b3 *electron-v30.5.1-win32-x64.zip
deecdc1f3f5ea9548ef73774f412c7af489afeb7dca1c394b5add10e929aff42 *electron.d.ts
14319b51118a5c94e108731f6b5c4e701c700212e790198ba22242eb9674a334 *ffmpeg-v30.5.1-darwin-arm64.zip
bfd5110457438fa8b113a8806db45f30b8975304d95e5efb1b71b0f5e46757fe *ffmpeg-v30.5.1-darwin-x64.zip
44ebf3185fc24404647da0c1f9e496effefd32ff3dbc2499c022164b919d06ed *ffmpeg-v30.5.1-linux-arm64.zip
4f7583513d48b48c44a2cbc4430cbc9a33d8f9728622166db688e3de61190821 *ffmpeg-v30.5.1-linux-armv7l.zip
154900e5db5810f63e38fd4551cfff3d88d6eac39226e06e12e1e43558d360a4 *ffmpeg-v30.5.1-linux-x64.zip
14319b51118a5c94e108731f6b5c4e701c700212e790198ba22242eb9674a334 *ffmpeg-v30.5.1-mas-arm64.zip
bfd5110457438fa8b113a8806db45f30b8975304d95e5efb1b71b0f5e46757fe *ffmpeg-v30.5.1-mas-x64.zip
f2169c4b6b9f073c20652953599f2453947936e851ff25c9f2719e7d889faea3 *ffmpeg-v30.5.1-win32-arm64.zip
90745f1422ae0431b295cb5d27ff03e69c890f3572ef6c4655774b892419e94f *ffmpeg-v30.5.1-win32-ia32.zip
567fe8952f17b224d4492980af741b470e86b31d58e7c6a9262258eeae490122 *ffmpeg-v30.5.1-win32-x64.zip
8bbbadb52a19f074d9f8bd533891e2bacbe4813101ae6c344cfc88e28b1429a3 *hunspell_dictionaries.zip
61137508aee6837c70a2ead2e31dd106d753ec5fac01b49e7e8701be0e09e7aa *libcxx-objects-v30.5.1-linux-arm64.zip
3c285f012f256f767e777550a1f18054cfcffc4e13ad6fa4e4e90dd58ec22069 *libcxx-objects-v30.5.1-linux-armv7l.zip
9b96b53c8dfbc70a0f617f78dde89a1e8510ae2261bcddfbf7c12c61eb5a3d73 *libcxx-objects-v30.5.1-linux-x64.zip
1b5cbe24d6356a388e166bff60d7452583019ea7dec85f593c552eb287346f43 *libcxx_headers.zip
eae200a0d1fd0d4b881358bdef600111891c75ecc4db679b680b0cbaf87ecfc3 *libcxxabi_headers.zip
ed1f7463b5869acf57dd388208918652182b049b2846f572d52ed47e7c091d54 *mksnapshot-v30.5.1-darwin-arm64.zip
bc80de1f29b869cdb2676d2dc08cbb4bd6228a6825b1b0bfc13acee0b070ac3e *mksnapshot-v30.5.1-darwin-x64.zip
5e526ca4f4250a9b9b040d6eb60f1d2b8db974ab68c27e46198f4bf8dc1ef347 *mksnapshot-v30.5.1-linux-arm64-x64.zip
c40ca2a45cc9ab4e1668f063860ba243baef8c192a253638e4c93aaccb0ef8da *mksnapshot-v30.5.1-linux-armv7l-x64.zip
a3134e0b0980547167dd3ca2f17dd2f40a7db697ab563ba6257534f9ad0d256d *mksnapshot-v30.5.1-linux-x64.zip
82776eafcb3e4d053e275ad50d84151f41a651986baacda20c6ed722854cb8fb *mksnapshot-v30.5.1-mas-arm64.zip
9d6d95d4cb121a29fd68d64557edd8c9859345ac37d0645de8aff518391755ed *mksnapshot-v30.5.1-mas-x64.zip
94b9ce6cb40ae001962b77525d12483c3458776066a69a4e714b327bab1decfc *mksnapshot-v30.5.1-win32-arm64-x64.zip
4d89d06c2e85b25d52bb64f48258ad5d05b98ac21697ae9c49ccd19bad9d7d94 *mksnapshot-v30.5.1-win32-ia32.zip
ccfd322bafde0485a0ac6b0acc3669c7b08f30003a1c2e044eebc1bf02289de3 *mksnapshot-v30.5.1-win32-x64.zip
+7 -7
View File
@@ -1,7 +1,7 @@
4743bc042f90ba5d9edf09403207290a9cdd2f6061bdccf7caaa0bbfd49f343e node-v20.15.1-darwin-arm64.tar.gz
f5379772ffae1404cfd1fcc8cf0c6c5971306b8fb2090d348019047306de39dc node-v20.15.1-darwin-x64.tar.gz
8554c91ccd32782351035d3a9b168ad01c6922480800a21870fc5d6d86c2bb70 node-v20.15.1-linux-arm64.tar.gz
2c16717da7d2d7b00f6af146cdf436a0297cbcee52c85b754e4c9ed7cee34b51 node-v20.15.1-linux-armv7l.tar.gz
a9db028c0a1c63e3aa0d97de24b0966bc507d8239b3aedc4e752eea6b0580665 node-v20.15.1-linux-x64.tar.gz
8e3f84e8ec7e41f98a048eb0c1365cfe54426a556ead98c4803df45d29e0335d win-arm64/node.exe
229fb64aeb10d3cc18eaaa2f5a4c3f1c81792dd3647c5c4350e142db528d0f89 win-x64/node.exe
fc7355e778b181575153b7dea4879e8021776eeb376c43c50f65893d2ea70aa3 node-v20.16.0-darwin-arm64.tar.gz
e18942cd706e4d69a4845ddacee2f1c17a72e853a229e3d2623d2edeb7efde72 node-v20.16.0-darwin-x64.tar.gz
551588f8f5ca05c04efb53f1b2bb7d9834603327bdc82d60a944d385569866e1 node-v20.16.0-linux-arm64.tar.gz
1c77c52ab507ddee479012f0b4bf523dd8400df4504447d623632353076e2e27 node-v20.16.0-linux-armv7l.tar.gz
b3f874ea84e440d69ed02ca92429d0eccd17737fde86db69c1c153d16ec654f2 node-v20.16.0-linux-x64.tar.gz
7e773fba3a19eac5ccbe85c1f87a05d7b112ecf41440076e6b6de1c7bffa0fdf win-arm64/node.exe
ba221658a3b68bd583e3068903eb675b5206d86a883c084ed95502e8f634b82a win-x64/node.exe
+3 -4
View File
@@ -4,12 +4,12 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
// Void explanation - product-build-darwin-universal.yml runs this (create-universal-app.ts), then sign.ts
const path = require("path");
const fs = require("fs");
const minimatch = require("minimatch");
const vscode_universal_bundler_1 = require("vscode-universal-bundler");
const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
const esm_1 = require("../lib/esm");
const root = path.dirname(path.dirname(__dirname));
async function main(buildDir) {
const arch = process.env['VSCODE_ARCH'];
@@ -27,14 +27,13 @@ async function main(buildDir) {
'**/CodeResources',
'**/Credits.rtf',
];
const canAsar = !(0, esm_1.isESM)('ASAR disabled in universal build'); // TODO@esm ASAR disabled in ESM
await (0, vscode_universal_bundler_1.makeUniversalApp)({
x64AppPath,
arm64AppPath,
asarPath: canAsar ? asarRelativePath : undefined,
asarPath: asarRelativePath,
outAppPath,
force: true,
mergeASARs: canAsar,
mergeASARs: true,
x64ArchFiles: '*/kerberos.node',
filesToSkipComparison: (file) => {
for (const expected of filesToSkip) {
+4 -5
View File
@@ -3,12 +3,13 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Void explanation - product-build-darwin-universal.yml runs this (create-universal-app.ts), then sign.ts
import * as path from 'path';
import * as fs from 'fs';
import * as minimatch from 'minimatch';
import { makeUniversalApp } from 'vscode-universal-bundler';
import { spawn } from '@malept/cross-spawn-promise';
import { isESM } from '../lib/esm';
const root = path.dirname(path.dirname(__dirname));
@@ -32,15 +33,13 @@ async function main(buildDir?: string) {
'**/Credits.rtf',
];
const canAsar = !isESM('ASAR disabled in universal build'); // TODO@esm ASAR disabled in ESM
await makeUniversalApp({
x64AppPath,
arm64AppPath,
asarPath: canAsar ? asarRelativePath : undefined,
asarPath: asarRelativePath,
outAppPath,
force: true,
mergeASARs: canAsar,
mergeASARs: true,
x64ArchFiles: '*/kerberos.node',
filesToSkipComparison: (file: string) => {
for (const expected of filesToSkip) {
+6 -6
View File
@@ -10,8 +10,8 @@ const codesign = require("electron-osx-sign");
const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
const root = path.dirname(path.dirname(__dirname));
function getElectronVersion() {
const yarnrc = fs.readFileSync(path.join(root, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)[1];
const npmrc = fs.readFileSync(path.join(root, '.npmrc'), 'utf8');
const target = /^target="(.*)"$/m.exec(npmrc)[1];
return target;
}
async function main(buildDir) {
@@ -78,24 +78,24 @@ async function main(buildDir) {
// universal will get its copy from the x64 build.
if (arch !== 'universal') {
await (0, cross_spawn_promise_1.spawn)('plutil', [
'-insert',
'-replace', // Void changed this to replace
'NSAppleEventsUsageDescription',
'-string',
'An application in Visual Studio Code wants to use AppleScript.',
'An application in Void wants to use AppleScript.',
`${infoPlistPath}`
]);
await (0, cross_spawn_promise_1.spawn)('plutil', [
'-replace',
'NSMicrophoneUsageDescription',
'-string',
'An application in Visual Studio Code wants to use the Microphone.',
'An application in Void wants to use the Microphone.',
`${infoPlistPath}`
]);
await (0, cross_spawn_promise_1.spawn)('plutil', [
'-replace',
'NSCameraUsageDescription',
'-string',
'An application in Visual Studio Code wants to use the Camera.',
'An application in Void wants to use the Camera.',
`${infoPlistPath}`
]);
}
+6 -6
View File
@@ -11,8 +11,8 @@ import { spawn } from '@malept/cross-spawn-promise';
const root = path.dirname(path.dirname(__dirname));
function getElectronVersion(): string {
const yarnrc = fs.readFileSync(path.join(root, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)![1];
const npmrc = fs.readFileSync(path.join(root, '.npmrc'), 'utf8');
const target = /^target="(.*)"$/m.exec(npmrc)![1];
return target;
}
@@ -89,24 +89,24 @@ async function main(buildDir?: string): Promise<void> {
// universal will get its copy from the x64 build.
if (arch !== 'universal') {
await spawn('plutil', [
'-insert',
'-replace', // Void changed this to replace
'NSAppleEventsUsageDescription',
'-string',
'An application in Visual Studio Code wants to use AppleScript.',
'An application in Void wants to use AppleScript.',
`${infoPlistPath}`
]);
await spawn('plutil', [
'-replace',
'NSMicrophoneUsageDescription',
'-string',
'An application in Visual Studio Code wants to use the Microphone.',
'An application in Void wants to use the Microphone.',
`${infoPlistPath}`
]);
await spawn('plutil', [
'-replace',
'NSCameraUsageDescription',
'-string',
'An application in Visual Studio Code wants to use the Camera.',
'An application in Void wants to use the Camera.',
`${infoPlistPath}`
]);
}
+1 -2
View File
@@ -101,8 +101,7 @@ module.exports.indentationFilter = [
// except multiple specific files
'!**/package.json',
'!**/yarn.lock',
'!**/yarn-error.log',
'!**/package-lock.json',
// except multiple specific folders
'!**/codicon/**',
+4 -4
View File
@@ -9,12 +9,12 @@
const gulp = require('gulp');
const util = require('./lib/util');
const date = require('./lib/date');
const esm = require('./lib/esm');
const amd = require('./lib/amd');
const task = require('./lib/task');
const compilation = require('./lib/compilation');
const optimize = require('./lib/optimize');
const isESMBuild = typeof process.env.VSCODE_BUILD_ESM === 'string' && process.env.VSCODE_BUILD_ESM.toLowerCase() === 'true';
const isAMDBuild = typeof process.env.VSCODE_BUILD_AMD === 'string' && process.env.VSCODE_BUILD_AMD.toLowerCase() === 'true';
/**
* @param {boolean} disableMangle
@@ -24,9 +24,9 @@ function makeCompileBuildTask(disableMangle) {
util.rimraf('out-build'),
util.buildWebNodePaths('out-build'),
date.writeISODate('out-build'),
esm.setESM(isESMBuild),
amd.setAMD(isAMDBuild),
compilation.compileApiProposalNamesTask,
compilation.compileTask(isESMBuild ? 'src2' : 'src', 'out-build', true, { disableMangle }),
compilation.compileTask(isAMDBuild ? 'src2' : 'src', 'out-build', true, { disableMangle }),
optimize.optimizeLoaderTask('out-build', 'out-build', true)
);
}
+2 -42
View File
@@ -77,7 +77,7 @@ const extractEditorSrcTask = task.define('extract-editor-src', () => {
extrausages
],
shakeLevel: 2, // 0-Files, 1-InnerFile, 2-ClassMembers
importIgnorePattern: /(^vs\/css!)/,
importIgnorePattern: /\.css$/,
destRoot: path.join(root, 'out-editor-src'),
redirects: {
'@vscode/tree-sitter-wasm': '../node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-web',
@@ -198,49 +198,11 @@ const compileEditorESMTask = task.define('compile-editor-esm', () => {
}
console.log(`Open in VS Code the folder at '${destPath}' and you can analyze the compilation error`);
throw new Error('Standalone Editor compilation failed. If this is the build machine, simply launch `yarn run gulp editor-distro` on your machine to further analyze the compilation problem.');
throw new Error('Standalone Editor compilation failed. If this is the build machine, simply launch `npm run gulp editor-distro` on your machine to further analyze the compilation problem.');
});
}
});
/**
* Go over all .js files in `/out-monaco-editor-core/esm/` and make sure that all imports
* use `.js` at the end in order to be ESM compliant.
*/
const appendJSToESMImportsTask = task.define('append-js-to-esm-imports', () => {
const SRC_DIR = path.join(__dirname, '../out-monaco-editor-core/esm');
const files = util.rreddir(SRC_DIR);
for (const file of files) {
const filePath = path.join(SRC_DIR, file);
if (!/\.js$/.test(filePath)) {
continue;
}
const contents = fs.readFileSync(filePath).toString();
const lines = contents.split(/\r\n|\r|\n/g);
const /** @type {string[]} */result = [];
for (const line of lines) {
if (!/^import/.test(line) && !/^export \* from/.test(line)) {
// not an import
result.push(line);
continue;
}
if (/^import '[^']+\.css';/.test(line)) {
// CSS import
result.push(line);
continue;
}
const modifiedLine = (
line
.replace(/^import(.*)\'([^']+)\'/, `import$1'$2.js'`)
.replace(/^export \* from \'([^']+)\'/, `export * from '$1.js'`)
);
result.push(modifiedLine);
}
fs.writeFileSync(filePath, result.join('\n'));
}
});
/**
* @param {string} contents
*/
@@ -413,7 +375,6 @@ gulp.task('editor-distro',
task.series(
createESMSourcesAndResourcesTask,
compileEditorESMTask,
appendJSToESMImportsTask
)
),
finalEditorResourcesTask
@@ -430,7 +391,6 @@ gulp.task('editor-esm',
extractEditorSrcTask,
createESMSourcesAndResourcesTask,
compileEditorESMTask,
appendJSToESMImportsTask,
)
);
+1 -5
View File
@@ -68,6 +68,7 @@ const compilations = [
'extensions/vscode-test-resolver/tsconfig.json',
'.vscode/extensions/vscode-selfhost-test-provider/tsconfig.json',
'.vscode/extensions/vscode-selfhost-import-aid/tsconfig.json',
];
const getBaseUrl = out => `https://main.vscode-cdn.net/sourcemaps/${commit}/${out}`;
@@ -100,7 +101,6 @@ const tasks = compilations.map(function (tsconfigFile) {
}
function createPipeline(build, emitError, transpileOnly) {
const nlsDev = require('vscode-nls-dev');
const tsb = require('./lib/tsb');
const sourcemaps = require('gulp-sourcemaps');
@@ -125,7 +125,6 @@ const tasks = compilations.map(function (tsconfigFile) {
.pipe(tsFilter)
.pipe(util.loadSourcemaps())
.pipe(compilation())
.pipe(build ? nlsDev.rewriteLocalizeCalls() : es.through())
.pipe(build ? util.stripSourceMappingURL() : es.through())
.pipe(sourcemaps.write('.', {
sourceMappingURL: !build ? null : f => `${baseUrl}/${f.relative}.map`,
@@ -135,9 +134,6 @@ const tasks = compilations.map(function (tsconfigFile) {
sourceRoot: '../src/',
}))
.pipe(tsFilter.restore)
.pipe(build ? nlsDev.bundleMetaDataFiles(headerId, headerOut) : es.through())
// Filter out *.nls.json file. We needed them only to bundle meta data file.
.pipe(filter(['**', '!**/*.nls.json'], { dot: true }))
.pipe(reporter.end(emitError));
return es.duplex(input, output);
+3 -3
View File
@@ -34,15 +34,15 @@ gulp.task(compileClientTask);
const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), task.parallel(watchTask('out', false), watchApiProposalNamesTask)));
gulp.task(watchClientTask);
const watchClientESMTask = task.define('watch-client-esm', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), task.parallel(watchTask('out', false, 'src2'), watchApiProposalNamesTask)));
gulp.task(watchClientESMTask);
const watchClientAMDTask = task.define('watch-client-amd', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), task.parallel(watchTask('out', false, 'src2'), watchApiProposalNamesTask)));
gulp.task(watchClientAMDTask);
// All
const _compileTask = task.define('compile', task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask, compileExtensionMediaTask));
gulp.task(_compileTask);
gulp.task(task.define('watch', task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask)));
gulp.task(task.define('watch-esm', task.parallel(/* monacoTypecheckWatchTask, */ watchClientESMTask, watchExtensionsTask)));
gulp.task(task.define('watch-amd', task.parallel(/* monacoTypecheckWatchTask, */ watchClientAMDTask, watchExtensionsTask)));
// Default
gulp.task('default', _compileTask);
+21 -20
View File
@@ -31,7 +31,7 @@ const { compileExtensionsBuildTask, compileExtensionMediaBuildTask } = require('
const { vscodeWebResourceIncludes, createVSCodeWebFileContentMapper } = require('./gulpfile.vscode.web');
const cp = require('child_process');
const log = require('fancy-log');
const { isESM } = require('./lib/esm');
const { isAMD } = require('./lib/amd');
const buildfile = require('./buildfile');
const REPO_ROOT = path.dirname(__dirname);
@@ -65,19 +65,20 @@ const serverResourceIncludes = [
'out-build/vs/base/node/ps.sh',
// Terminal shell integration
'out-build/vs/workbench/contrib/terminal/browser/media/shellIntegration.ps1',
'out-build/vs/workbench/contrib/terminal/browser/media/CodeTabExpansion.psm1',
'out-build/vs/workbench/contrib/terminal/browser/media/GitTabExpansion.psm1',
'out-build/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh',
'out-build/vs/workbench/contrib/terminal/browser/media/shellIntegration-env.zsh',
'out-build/vs/workbench/contrib/terminal/browser/media/shellIntegration-profile.zsh',
'out-build/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh',
'out-build/vs/workbench/contrib/terminal/browser/media/shellIntegration-login.zsh',
'out-build/vs/workbench/contrib/terminal/browser/media/fish_xdg_data/fish/vendor_conf.d/shellIntegration.fish',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1',
'out-build/vs/workbench/contrib/terminal/common/scripts/CodeTabExpansion.psm1',
'out-build/vs/workbench/contrib/terminal/common/scripts/GitTabExpansion.psm1',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-env.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-profile.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/fish_xdg_data/fish/vendor_conf.d/shellIntegration.fish',
];
const serverResourceExcludes = [
'!out-build/vs/**/{electron-sandbox,electron-main}/**',
'!out-build/vs/**/{electron-sandbox,electron-main,electron-utility}/**',
'!out-build/vs/editor/standalone/**',
'!out-build/vs/workbench/**/*-tb.png',
'!**/test/**'
@@ -88,7 +89,7 @@ const serverResources = [
...serverResourceExcludes
];
const serverWithWebResourceIncludes = isESM() ? [
const serverWithWebResourceIncludes = !isAMD() ? [
...serverResourceIncludes,
'out-build/vs/code/browser/workbench/*.html',
...vscodeWebResourceIncludes
@@ -131,7 +132,7 @@ const serverEntryPoints = [
}
];
const webEntryPoints = isESM() ? [
const webEntryPoints = !isAMD() ? [
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
@@ -142,7 +143,7 @@ const webEntryPoints = isESM() ? [
buildfile.keyboardMaps,
buildfile.codeWeb
].flat() : [
buildfile.entrypoint('vs/workbench/workbench.web.main'),
buildfile.entrypoint('vs/workbench/workbench.web.main.internal'),
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
@@ -168,9 +169,9 @@ const commonJSEntryPoints = [
];
function getNodeVersion() {
const yarnrc = fs.readFileSync(path.join(REPO_ROOT, 'remote', '.yarnrc'), 'utf8');
const nodeVersion = /^target "(.*)"$/m.exec(yarnrc)[1];
const internalNodeVersion = /^ms_build_id "(.*)"$/m.exec(yarnrc)[1];
const npmrc = fs.readFileSync(path.join(REPO_ROOT, 'remote', '.npmrc'), 'utf8');
const nodeVersion = /^target="(.*)"$/m.exec(npmrc)[1];
const internalNodeVersion = /^ms_build_id="(.*)"$/m.exec(npmrc)[1];
return { nodeVersion, internalNodeVersion };
}
@@ -343,7 +344,7 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
let packageJsonContents;
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
.pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined, ...(isESM(`Setting 'type: module' in top level package.json`) ? { type: 'module' } : {}) })) // TODO@esm this should be configured in the top level package.json
.pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined, ...(!isAMD() ? { type: 'module' } : {}) })) // TODO@esm this should be configured in the top level package.json
.pipe(es.through(function (file) {
packageJsonContents = file.contents.toString();
this.emit('data', file);
@@ -362,10 +363,10 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const jsFilter = util.filter(data => !data.isDirectory() && /\.js$/.test(data.path));
const productionDependencies = getProductionDependencies(REMOTE_FOLDER);
const dependenciesSrc = productionDependencies.map(d => path.relative(REPO_ROOT, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!${d}/.bin/**`]).flat();
const dependenciesSrc = productionDependencies.map(d => path.relative(REPO_ROOT, d)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!${d}/.bin/**`]).flat();
const deps = gulp.src(dependenciesSrc, { base: 'remote', dot: true })
// filter out unnecessary files, no source maps in server build
.pipe(filter(['**', '!**/package-lock.json', '!**/yarn.lock', '!**/*.js.map']))
.pipe(filter(['**', '!**/package-lock.json', '!**/*.js.map']))
.pipe(util.cleanNodeModules(path.join(__dirname, '.moduleignore')))
.pipe(util.cleanNodeModules(path.join(__dirname, `.moduleignore.${process.platform}`)))
.pipe(jsFilter)
+1 -1
View File
@@ -73,7 +73,7 @@ BUILD_TARGETS.forEach(buildTarget => {
function nodeModules(destinationExe, destinationPdb, platform) {
const productionDependencies = deps.getProductionDependencies(root);
const dependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`]).flat();
const dependenciesSrc = productionDependencies.map(d => path.relative(root, d)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`]).flat();
const exe = () => {
return gulp.src(dependenciesSrc, { base: '.', dot: true })
+33 -34
View File
@@ -33,12 +33,12 @@ const minimist = require('minimist');
const { compileBuildTask } = require('./gulpfile.compile');
const { compileExtensionsBuildTask, compileExtensionMediaBuildTask } = require('./gulpfile.extensions');
const { promisify } = require('util');
const { isESM } = require('./lib/esm');
const { isAMD } = require('./lib/amd');
const glob = promisify(require('glob'));
const rcedit = promisify(require('rcedit'));
// Build
const vscodeEntryPoints = isESM() ? [
const vscodeEntryPoints = !isAMD() ? [
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
@@ -61,7 +61,7 @@ const vscodeEntryPoints = isESM() ? [
buildfile.code
].flat();
const vscodeResourceIncludes = isESM() ? [
const vscodeResourceIncludes = !isAMD() ? [
// NLS
'out-build/nls.messages.json',
@@ -85,11 +85,11 @@ const vscodeResourceIncludes = isESM() ? [
'out-build/vs/workbench/contrib/externalTerminal/**/*.scpt',
// Terminal shell integration
'out-build/vs/workbench/contrib/terminal/browser/media/fish_xdg_data/fish/vendor_conf.d/*.fish',
'out-build/vs/workbench/contrib/terminal/browser/media/*.ps1',
'out-build/vs/workbench/contrib/terminal/browser/media/*.psm1',
'out-build/vs/workbench/contrib/terminal/browser/media/*.sh',
'out-build/vs/workbench/contrib/terminal/browser/media/*.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/fish_xdg_data/fish/vendor_conf.d/*.fish',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.ps1',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.psm1',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.sh',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.zsh',
// Accessibility Signals
'out-build/vs/platform/accessibilitySignal/browser/media/*.mp3',
@@ -130,11 +130,11 @@ const vscodeResourceIncludes = isESM() ? [
'out-build/vs/workbench/browser/media/*-theme.css',
'out-build/vs/workbench/contrib/debug/**/*.json',
'out-build/vs/workbench/contrib/externalTerminal/**/*.scpt',
'out-build/vs/workbench/contrib/terminal/browser/media/fish_xdg_data/fish/vendor_conf.d/*.fish',
'out-build/vs/workbench/contrib/terminal/browser/media/*.ps1',
'out-build/vs/workbench/contrib/terminal/browser/media/*.psm1',
'out-build/vs/workbench/contrib/terminal/browser/media/*.sh',
'out-build/vs/workbench/contrib/terminal/browser/media/*.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/fish_xdg_data/fish/vendor_conf.d/*.fish',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.ps1',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.psm1',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.sh',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.zsh',
'out-build/vs/workbench/contrib/webview/browser/pre/*.js',
'!out-build/vs/workbench/contrib/issue/**/*-dev.html',
'!out-build/vs/workbench/contrib/issue/**/*-dev.esm.html',
@@ -163,7 +163,7 @@ const vscodeResources = [
// be inlined into the target window file in this order
// and they depend on each other in this way.
const windowBootstrapFiles = [];
if (!isESM('Skipping loader.js in window bootstrap files')) {
if (isAMD()) {
windowBootstrapFiles.push('out-build/vs/loader.js');
}
windowBootstrapFiles.push('out-build/bootstrap-window.js');
@@ -296,7 +296,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
'vs/workbench/workbench.desktop.main.js',
'vs/workbench/workbench.desktop.main.css',
'vs/workbench/api/node/extensionHostProcess.js',
isESM() ? 'vs/code/electron-sandbox/workbench/workbench.esm.html' : 'vs/code/electron-sandbox/workbench/workbench.html',
!isAMD() ? 'vs/code/electron-sandbox/workbench/workbench.esm.html' : 'vs/code/electron-sandbox/workbench/workbench.html',
'vs/code/electron-sandbox/workbench/workbench.js'
]);
@@ -325,13 +325,8 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
version += '-' + quality;
}
if (isESM() && typeof quality === 'string' && quality !== 'exploration') {
// TODO@esm remove this safeguard
throw new Error('Refuse to build ESM on quality other than exploration');
}
const name = product.nameShort;
const packageJsonUpdates = { name, version, ...(isESM(`Setting 'type: module' and 'main: out/main.js' in top level package.json`) ? { type: 'module', main: 'out/main.js' } : {}) }; // TODO@esm this should be configured in the top level package.json
const packageJsonUpdates = { name, version, ...(!isAMD() ? { type: 'module', main: 'out/main.js' } : {}) }; // TODO@esm this should be configured in the top level package.json
// for linux url handling
if (platform === 'linux') {
@@ -346,6 +341,8 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
this.emit('data', file);
}));
// Void - this is important, creates the product.json in .app
let productJsonContents;
const productJsonStream = gulp.src(['product.json'], { base: '.' })
.pipe(json({ commit, date: readISODate('out-build'), checksums, version }))
@@ -364,18 +361,16 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const jsFilter = util.filter(data => !data.isDirectory() && /\.js$/.test(data.path));
const root = path.resolve(path.join(__dirname, '..'));
const productionDependencies = getProductionDependencies(root);
const dependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!**/*.mk`]).flat();
const dependenciesSrc = productionDependencies.map(d => path.relative(root, d)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!**/*.mk`]).flat();
let deps = gulp.src(dependenciesSrc, { base: '.', dot: true })
const deps = gulp.src(dependenciesSrc, { base: '.', dot: true })
.pipe(filter(['**', `!**/${config.version}/**`, '!**/bin/darwin-arm64-87/**', '!**/package-lock.json', '!**/yarn.lock', '!**/*.js.map']))
.pipe(util.cleanNodeModules(path.join(__dirname, '.moduleignore')))
.pipe(util.cleanNodeModules(path.join(__dirname, `.moduleignore.${process.platform}`)))
.pipe(jsFilter)
.pipe(util.rewriteSourceMappingURL(sourceMappingURLBase))
.pipe(jsFilter.restore);
if (!isESM('ASAR disabled in VS Code builds')) { // TODO@esm: ASAR disabled in ESM
deps = deps.pipe(createAsar(path.join(process.cwd(), 'node_modules'), [
.pipe(jsFilter.restore)
.pipe(createAsar(path.join(process.cwd(), 'node_modules'), [
'**/*.node',
'**/@vscode/ripgrep/bin/*',
'**/node-pty/build/Release/*',
@@ -384,10 +379,14 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
'**/node-pty/lib/shared/conout.js',
'**/*.wasm',
'**/@vscode/vsce-sign/bin/*',
], [
], isAMD() ? [
'**/*.mk',
] : [
'**/*.mk',
'!node_modules/vsda/**' // stay compatible with extensions that depend on us shipping `vsda` into ASAR
], isAMD() ? [] : [
'node_modules/vsda/**' // retain copy of `vsda` in node_modules for internal use
], 'node_modules.asar'));
}
let all = es.merge(
packageJsonStream,
@@ -428,15 +427,15 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
'resources/win32/vue.ico',
'resources/win32/xml.ico',
'resources/win32/yaml.ico',
'resources/win32/code_70x70.png',
'resources/win32/code_150x150.png'
'resources/win32/code_70x70.png', // <-- Void icon
'resources/win32/code_150x150.png' // <-- Void icon
], { base: '.' }));
} else if (platform === 'linux') {
all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' })); // <-- Void icon
} else if (platform === 'darwin') {
const shortcut = gulp.src('resources/darwin/bin/code.sh')
.pipe(replace('@@APPNAME@@', product.applicationName))
.pipe(rename('bin/code'));
.pipe(rename('bin/code')); // <-- Void icon
all = es.merge(all, shortcut);
}
@@ -505,7 +504,7 @@ function patchWin32DependenciesTask(destinationFolderName) {
const cwd = path.join(path.dirname(root), destinationFolderName);
return async () => {
const deps = await glob('**/*.node', { cwd });
const deps = await glob('**/*.node', { cwd, ignore: 'extensions/node_modules/@parcel/watcher/**' });
const packageJson = JSON.parse(await fs.promises.readFile(path.join(cwd, 'resources', 'app', 'package.json'), 'utf8'));
const product = JSON.parse(await fs.promises.readFile(path.join(cwd, 'resources', 'app', 'product.json'), 'utf8'));
const baseVersion = packageJson.version.replace(/-.*$/, '');
+2
View File
@@ -152,6 +152,7 @@ function getRpmPackageArch(arch) {
function prepareRpmPackage(arch) {
const binaryDir = '../VSCode-linux-' + arch;
const rpmArch = getRpmPackageArch(arch);
const stripBinary = process.env['STRIP'] ?? '/usr/bin/strip';
return function () {
const desktop = gulp.src('resources/linux/code.desktop', { base: '.' })
@@ -208,6 +209,7 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@QUALITY@@', product.quality || '@@QUALITY@@'))
.pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@'))
.pipe(replace('@@DEPENDENCIES@@', dependencies.join(', ')))
.pipe(replace('@@STRIP@@', stripBinary))
.pipe(rename('SPECS/' + product.applicationName + '.spec'))
.pipe(es.through(function (f) { that.emit('data', f); }, function () { that.emit('end'); }));
}));
+24 -9
View File
@@ -21,7 +21,8 @@ const vfs = require('vinyl-fs');
const packageJson = require('../package.json');
const { compileBuildTask } = require('./gulpfile.compile');
const extensions = require('./lib/extensions');
const { isESM } = require('./lib/esm');
const { isAMD } = require('./lib/amd');
const VinylFile = require('vinyl');
const REPO_ROOT = path.dirname(__dirname);
const BUILD_ROOT = path.dirname(REPO_ROOT);
@@ -31,7 +32,7 @@ const commit = getVersion(REPO_ROOT);
const quality = product.quality;
const version = (quality && quality !== 'stable') ? `${packageJson.version}-${quality}` : packageJson.version;
const vscodeWebResourceIncludes = isESM() ? [
const vscodeWebResourceIncludes = !isAMD() ? [
// NLS
'out-build/nls.messages.js',
@@ -86,7 +87,7 @@ const vscodeWebResources = [
...vscodeWebResourceIncludes,
// Excludes
'!out-build/vs/**/{node,electron-sandbox,electron-main}/**',
'!out-build/vs/**/{node,electron-sandbox,electron-main,electron-utility}/**',
'!out-build/vs/editor/standalone/**',
'!out-build/vs/workbench/**/*-tb.png',
'!out-build/vs/code/**/*-dev.html',
@@ -96,7 +97,7 @@ const vscodeWebResources = [
const buildfile = require('./buildfile');
const vscodeWebEntryPoints = isESM() ? [
const vscodeWebEntryPoints = !isAMD() ? [
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
@@ -105,9 +106,10 @@ const vscodeWebEntryPoints = isESM() ? [
buildfile.workerOutputLinks,
buildfile.workerBackgroundTokenization,
buildfile.keyboardMaps,
buildfile.workbenchWeb()
buildfile.workbenchWeb(),
buildfile.entrypoint('vs/workbench/workbench.web.main.internal') // TODO@esm remove line when we stop supporting web-amd-esm-bridge
].flat() : [
buildfile.entrypoint('vs/workbench/workbench.web.main'),
buildfile.entrypoint('vs/workbench/workbench.web.main.internal'),
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
@@ -229,8 +231,21 @@ function packageTask(sourceFolderName, destinationFolderName) {
const extensions = gulp.src('.build/web/extensions/**', { base: '.build/web', dot: true });
const sources = es.merge(src, extensions)
.pipe(filter(['**', '!**/*.js.map'], { dot: true }));
const loader = gulp.src('build/loader.min', { base: 'build', dot: true }).pipe(rename('out/vs/loader.js')); // TODO@esm remove line when we stop supporting web-amd-esm-bridge
const sources = es.merge(...(!isAMD() ? [src, extensions, loader] : [src, extensions]))
.pipe(filter(['**', '!**/*.js.map'], { dot: true }))
// TODO@esm remove me once we stop supporting our web-esm-bridge
.pipe(es.through(function (file) {
if (file.relative === 'out/vs/workbench/workbench.web.main.internal.css') {
this.emit('data', new VinylFile({
contents: file.contents,
path: file.path.replace('workbench.web.main.internal.css', 'workbench.web.main.css'),
base: file.base
}));
}
this.emit('data', file);
}));
const name = product.nameShort;
const packageJsonStream = gulp.src(['remote/web/package.json'], { base: 'remote/web' })
@@ -239,7 +254,7 @@ function packageTask(sourceFolderName, destinationFolderName) {
const license = gulp.src(['remote/LICENSE'], { base: 'remote', allowEmpty: true });
const productionDependencies = getProductionDependencies(WEB_FOLDER);
const dependenciesSrc = productionDependencies.map(d => path.relative(REPO_ROOT, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!${d}/.bin/**`]).flat();
const dependenciesSrc = productionDependencies.map(d => path.relative(REPO_ROOT, d)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!${d}/.bin/**`]).flat();
const deps = gulp.src(dependenciesSrc, { base: 'remote/web', dot: true })
.pipe(filter(['**', '!**/package-lock.json']))
+1 -2
View File
@@ -16,7 +16,6 @@ const pkg = require('../package.json');
const product = require('../product.json');
const vfs = require('vinyl-fs');
const rcedit = require('rcedit');
const mkdirp = require('mkdirp');
const repoPath = path.dirname(__dirname);
const buildPath = (/** @type {string} */ arch) => path.join(path.dirname(repoPath), `VSCode-win32-${arch}`);
@@ -75,7 +74,7 @@ function buildWin32Setup(arch, target) {
const sourcePath = buildPath(arch);
const outputPath = setupDir(arch, target);
mkdirp.sync(outputPath);
fs.mkdirSync(outputPath, { recursive: true });
const originalProductJsonPath = path.join(sourcePath, 'resources/app/product.json');
const productJsonPath = path.join(outputPath, 'product.json');
+2 -1
View File
@@ -145,11 +145,13 @@ function hygiene(some, linting = true) {
const productJsonFilter = filter('product.json', { restore: true });
const snapshotFilter = filter(['**', '!**/*.snap', '!**/*.snap.actual']);
const yarnLockFilter = filter(['**', '!**/yarn.lock']);
const unicodeFilterStream = filter(unicodeFilter, { restore: true });
const result = input
.pipe(filter((f) => !f.stat.isDirectory()))
.pipe(snapshotFilter)
.pipe(yarnLockFilter)
.pipe(productJsonFilter)
.pipe(process.env['BUILD_SOURCEVERSION'] ? es.through() : productJson)
.pipe(productJsonFilter.restore)
@@ -263,7 +265,6 @@ function createGitIndexVinyls(paths) {
return pall(fns, { concurrency: 4 }).then((r) => r.filter((p) => !!p));
}
// NO PRE COMMIT HOOKS!!!! for now... - Void team
// // this allows us to run hygiene as a git pre-commit hook
+12 -12
View File
@@ -4,33 +4,33 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.setESM = setESM;
exports.isESM = isESM;
exports.setAMD = setAMD;
exports.isAMD = isAMD;
const path = require("path");
const fs = require("fs");
// TODO@esm remove this
const outDirectory = path.join(__dirname, '..', '..', 'out-build');
const esmMarkerFile = path.join(outDirectory, 'esm');
function setESM(enabled) {
const amdMarkerFile = path.join(outDirectory, 'amd');
function setAMD(enabled) {
const result = () => new Promise((resolve, _) => {
if (enabled) {
fs.mkdirSync(outDirectory, { recursive: true });
fs.writeFileSync(esmMarkerFile, 'true', 'utf8');
console.warn(`Setting build to ESM: true`);
fs.writeFileSync(amdMarkerFile, 'true', 'utf8');
console.warn(`Setting build to AMD: true`);
}
else {
console.warn(`Setting build to ESM: false`);
console.warn(`Setting build to AMD: false`);
}
resolve();
});
result.taskName = 'set-esm';
result.taskName = 'set-amd';
return result;
}
function isESM(logWarning) {
function isAMD(logWarning) {
try {
const res = (typeof process.env.VSCODE_BUILD_ESM === 'string' && process.env.VSCODE_BUILD_ESM.toLowerCase() === 'true') || (fs.readFileSync(esmMarkerFile, 'utf8') === 'true');
const res = (typeof process.env.VSCODE_BUILD_AMD === 'string' && process.env.VSCODE_BUILD_AMD.toLowerCase() === 'true') || (fs.readFileSync(amdMarkerFile, 'utf8') === 'true');
if (res && logWarning) {
console.warn(`[esm] ${logWarning}`);
console.warn(`[amd] ${logWarning}`);
}
return res;
}
@@ -38,4 +38,4 @@ function isESM(logWarning) {
return false;
}
}
//# sourceMappingURL=esm.js.map
//# sourceMappingURL=amd.js.map

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