Compare commits

..

234 Commits

Author SHA1 Message Date
Baptiste Augrain
59e21c9cc6 feat: disable broken features (#2562) 2025-10-18 15:23:58 +02:00
Tiagoquix
2fccc0e2fe docs: improve telemetry doc (#2534)
Improvements to the update services section plus other minor overall improvements
2025-10-18 15:23:34 +02:00
Baptiste Augrain
51ad421762 fix: use correct binary name (#2561) 2025-10-18 15:19:00 +02:00
Baptiste Augrain
646b42473b feat: disable Copilot UI elements (#2560) 2025-10-18 12:50:01 +02:00
Baptiste Augrain
068f270488 build(stable): update to commit 7d842fb 2025-10-16 18:23:22 +00:00
Baptiste Augrain
4ba37835b2 fix(snap): re-add desktop entries (#2553) 2025-10-15 01:57:31 +02:00
Baptiste Augrain
2487cd7ce2 docs: fix typo 2025-10-14 13:56:17 +02:00
dependabot[bot]
75df078e52 build(deps): bump peter-evans/repository-dispatch from 3 to 4 (#2537) 2025-10-13 04:16:01 +02:00
darkyzhou
9061e7e264 feat(loong64): use tonistiigi/binfmt:latest (#2549) 2025-10-13 04:15:05 +02:00
Baptiste Augrain
adef3f0534 fix(snap): use correct channel [skip ci] 2025-10-12 16:05:45 +02:00
Baptiste Augrain
dab94316d5 ci: add missing en variable [skip ci] 2025-10-10 19:14:51 +02:00
Baptiste Augrain
60b7a4640e fix(1.105): move new feat/fixes to stable [skip ci] 2025-10-10 18:22:47 +02:00
Baptiste Augrain
f81d3d53ad feat(1.105): update version [skip ci] 2025-10-10 17:41:27 +02:00
Baptiste Augrain
a95e1ff14f Merge branch 'insider' 2025-10-10 16:56:41 +02:00
Baptiste Augrain
36270ef9c3 feat: regroup sourcemaps in a single file [skip ci] 2025-10-10 16:54:26 +02:00
Baptiste Augrain
c0ac4bd72e fix(sourcemap): add quality to sourcemaps release [skip ci] 2025-10-09 14:10:02 +02:00
Baptiste Augrain
f60f14d085 ci: add missing env variables [skip ci] 2025-10-09 11:53:44 +02:00
Baptiste Augrain
a9167d21e2 feat: move and upload sourcemaps (#2545) 2025-10-09 11:29:59 +02:00
Baptiste Augrain
e1f7642bcb feat(insider): generate buildinfo.json to track versions (#2544) 2025-10-09 03:18:19 +02:00
Baptiste Augrain
94a6ad5495 fix(snap): fix snapcraft build files (#2543) 2025-10-09 02:29:58 +02:00
Baptiste Augrain
73046b84aa feat(1.105): update patches (#2541) 2025-10-08 19:58:19 +02:00
Baptiste Augrain
22d1929f41 fix(1.104.3): update patch (#2532) 2025-10-04 16:21:56 +02:00
jermanuts
6264d064e4 i18n: add arabic translation .desktop (#2520) 2025-10-04 15:39:37 +02:00
Baptiste Augrain
578df58363 fix(linux): patch dependencies [skip ci] 2025-09-30 14:54:46 +02:00
Baptiste Augrain
20382726b4 fix(linux): patch dependencies [skip ci] 2025-09-30 14:32:06 +02:00
Baptiste Augrain
b943cab988 build(insider): update to commit 9f2fcb6 2025-09-30 11:32:47 +00:00
Baptiste Augrain
a69d10fa91 feat(1.105): update patches (#2529) 2025-09-30 12:35:06 +02:00
Ryan Brue
ac024726a3 docs(telemetry): fix a small typo (#2528) 2025-09-29 22:09:07 +02:00
Baptiste Augrain
e3c3b6fdf7 build(stable): update to commit e3a5acf 2025-09-25 18:27:53 +00:00
Baptiste Augrain
fbdc680c69 build(stable): update to commit 0f0d87f 2025-09-18 18:26:28 +00:00
Baptiste Augrain
dd8511cc6b feat: set update.mode to none when updates are disabled (#2507) 2025-09-12 13:02:55 +02:00
Tiagoquix
f6b143dbd6 docs: improve telemetry page (#2504) 2025-09-12 12:27:22 +02:00
Baptiste Augrain
cde9fd233a fix: gallery (#2506) 2025-09-12 12:18:47 +02:00
Baptiste Augrain
284d83b24e fix: update api proposals [skip ci] 2025-09-12 11:16:02 +02:00
Baptiste Augrain
8cc366bb76 fix(telemetry): disable workbench.enableExperiments by default [skip ci] 2025-09-11 19:59:35 +02:00
Baptiste Augrain
4c2b2b8a79 build(stable): update to commit f220831 2025-09-11 17:49:46 +00:00
Baptiste Augrain
8e49f5f8b1 Merge branch 'insider' 2025-09-11 19:11:58 +02:00
Baptiste Augrain
0ac07d6fcc enhance(icons): improve icons generator [skip ci] 2025-09-11 17:58:19 +02:00
Baptiste Augrain
bf53c50a5b refactor(telemetry): use patch instead of script (#2502) 2025-09-10 12:43:36 +02:00
Baptiste Augrain
d0973e3104 build(insider): update to commit f220831 2025-09-10 07:29:10 +00:00
Baptiste Augrain
8e10409b4a build(insider): update to commit d1d3e55 2025-09-09 07:30:16 +00:00
dependabot[bot]
bcd3d6bffa build(deps): bump actions/setup-node from 4 to 5 (#2496) 2025-09-08 16:35:37 +02:00
dependabot[bot]
b3c1e8901a build(deps): bump actions/setup-python from 5 to 6 (#2495) 2025-09-08 16:34:48 +02:00
dependabot[bot]
c2cff308aa build(deps): bump actions/stale from 9 to 10 (#2494) 2025-09-08 16:33:49 +02:00
Baptiste Augrain
0d1fecf0d4 build(insider): update to commit e296bdf 2025-09-08 07:22:04 +00:00
Baptiste Augrain
5bf3fdcc05 build(insider): update to commit 06acd06 2025-09-06 07:20:26 +00:00
Baptiste Augrain
acf298a9c2 ci: use windows-2022 2025-09-05 17:40:45 +02:00
Baptiste Augrain
2d9bbfb2f3 build(insider): update to commit 7be2a0b 2025-09-05 07:24:14 +00:00
Baptiste Augrain
9d798626aa build(insider): update to commit 8bdbcf0 2025-09-04 07:20:54 +00:00
Baptiste Augrain
f574039dc4 enhance: improve command filter (#2492) 2025-09-03 16:20:23 +02:00
Baptiste Augrain
e648323548 feat(1.104): update patch 2025-09-03 12:52:09 +02:00
Baptiste Augrain
bc2c678d47 feat(1.104): update patches (#2491) 2025-09-02 16:10:01 +02:00
Baptiste Augrain
69fe88f58c Merge branch 'master' into insider 2025-08-31 11:18:00 +02:00
Baptiste Augrain
43d4061cec feat: filters commands (#2487) 2025-08-31 11:00:00 +02:00
Baptiste Augrain
471a81e89f feat(1.104): update patches (#2486) 2025-08-31 09:58:04 +02:00
Baptiste Augrain
e84017f36b build(stable): update to commit 6f17636 2025-08-21 18:24:46 +00:00
dependabot[bot]
e494154c9b build(deps): bump actions/checkout from 4 to 5 (#2472) 2025-08-18 21:12:19 +02:00
Baptiste Augrain
dc302f89af fix(linux-reh-x64): rebuild node modules due to glibc2.17 node runtime (#2473) 2025-08-18 21:11:59 +02:00
Baptiste Augrain
0545b56f6f chore: remove commented code [skip ci] 2025-08-18 16:03:43 +02:00
Baptiste Augrain
914f0da189 chore(linux-reh-x86): streamline to only necessary* changes (#2471) 2025-08-18 14:49:58 +02:00
Baptiste Augrain
a3bf4232ba wip(linux-reh-x64): add cxx11 verification (#2467) 2025-08-18 11:50:53 +02:00
Baptiste Augrain
23683879d3 build(insider): update to commit 09401e7 2025-08-18 07:25:36 +00:00
Baptiste Augrain
177bb9032d build(insider): update to commit 0ab18bd 2025-08-15 12:52:51 +00:00
Baptiste Augrain
7245ccb8bd fix(linux-reh-x86): use unofficial nodejs to build archive (#2465) 2025-08-15 14:10:03 +02:00
Baptiste Augrain
166e10c23b build(insider): update to commit 308b074 2025-08-15 07:23:20 +00:00
Baptiste Augrain
69fee0be29 build(insider): update to commit a61e381 2025-08-14 22:54:26 +00:00
Baptiste Augrain
68d5becf4d fix(linux-reh-x86): rebuild libs (#2464) 2025-08-15 00:19:15 +02:00
Baptiste Augrain
a425c2ca5d build(insider): update to commit 3b51103 2025-08-14 07:22:46 +00:00
Baptiste Augrain
9b20ef5f08 build(stable): update to commit 360a4e4 2025-08-13 18:22:15 +00:00
Baptiste Augrain
242a448627 chore: delete win32-app-container-tokens node modules (#2461) 2025-08-13 18:43:31 +02:00
Baptiste Augrain
e298421027 fix: retry 5 times not 3 2025-08-13 17:07:15 +02:00
Baptiste Augrain
51f1643852 fix: objdump (#2458) 2025-08-13 16:48:59 +02:00
Baptiste Augrain
279bb37012 build(insider): update to commit 97bc9a4 2025-08-13 07:28:25 +00:00
Baptiste Augrain
2af82b8c5b build: use node-v22.17.0 2025-08-12 20:38:38 +02:00
Baptiste Augrain
930f570146 fix(linux-x86): match libstdc ABI between node and @parcel/watcher (#2457) 2025-08-12 19:07:10 +02:00
Baptiste Augrain
b1ee5b1428 feat(1.104): update patch 2025-08-12 17:12:11 +02:00
dependabot[bot]
23688ef492 build(deps): bump actions/download-artifact from 4 to 5 (#2454) 2025-08-12 16:33:06 +02:00
dependabot[bot]
fcffce5d9a build(deps): bump actions/download-artifact from 4 to 5 (#2454) 2025-08-11 19:27:27 +02:00
Baptiste Augrain
3f44e3f4a3 feat(1.104): update patches (#2448) 2025-08-09 11:47:10 +02:00
Baptiste Augrain
9ffd0a3632 Merge branch 'master' into insider 2025-08-09 01:13:40 +02:00
Baptiste Augrain
57832e4688 feat(1.103): update to 1.103 (#2447) 2025-08-09 01:10:08 +02:00
Baptiste Augrain
418209fe92 build(insider): update to commit e3550cf 2025-08-07 07:28:15 +00:00
Baptiste Augrain
96af93b5de build(insider): update to commit c661d0e 2025-08-06 07:29:35 +00:00
Baptiste Augrain
7bdf2348e1 build(insider): update to commit 34769c5 2025-08-05 07:29:06 +00:00
Baptiste Augrain
e114e120f3 fix(windows): regroup patches [skip ci] 2025-08-04 15:25:05 +02:00
Baptiste Augrain
e4091b268c fix(windows): disable appx 2025-08-04 14:47:29 +02:00
Baptiste Augrain
ed516ab087 wip(windows): build appx [skip ci] 2025-08-04 14:02:21 +02:00
Baptiste Augrain
c6eec8f00d docs(macos): remove troubleshooting link 2025-08-04 13:53:57 +02:00
Baptiste Augrain
4959ac2e25 fix(windows): update patch 2025-08-04 11:10:51 +02:00
Baptiste Augrain
2717404c48 build(insider): update to commit 994be41 2025-08-02 07:23:06 +00:00
Baptiste Augrain
ef86a20ce4 build(insider): update to commit 6977c2a 2025-08-01 07:28:01 +00:00
Baptiste Augrain
3c07d343da build(insider): update to commit 724eea7 2025-07-31 07:31:06 +00:00
Baptiste Augrain
ae7ac2e35c build(insider): update to commit 972d323 2025-07-30 07:27:16 +00:00
Baptiste Augrain
29424ad4fb build(stable): update to commit 488a1f2 2025-07-29 18:26:56 +00:00
Baptiste Augrain
067a4d4e7d feat(1.103): update patches (#2437) 2025-07-29 14:55:09 +02:00
Baptiste Augrain
c31bc7e230 build(insider): update to commit d8361fe 2025-07-25 07:27:58 +00:00
Baptiste Augrain
1d870bf372 feat(1.103): update patches (#2435) 2025-07-24 11:07:55 +02:00
Baptiste Augrain
bfdcc2257b fix: retry gh install on failure 2025-07-24 08:57:00 +02:00
Baptiste Augrain
abf3fc3fc2 build(stable): update to commit c306e94 2025-07-23 18:20:34 +00:00
Baptiste Augrain
5304abe421 build(stable): update to commit 7adae6a 2025-07-16 18:27:36 +00:00
Arda Aydın
2520a81540 docs: update non-floss debugger note link in README.md (#2425)
I thought it would be nicer to jump into the note instead of scrolling through the index 🙂
2025-07-11 10:12:03 +02:00
Baptiste Augrain
4647664892 fix: stop gh install on bad tag name 2025-07-11 09:40:11 +02:00
Baptiste Augrain
c377e8f70f feat(1.102): update patch and api (#2424) 2025-07-11 00:07:12 +02:00
Baptiste Augrain
fdc6d3bebc build(insider): update to commit 96f1890 2025-07-07 10:20:36 +00:00
Baptiste Augrain
912c3f9173 build(insider): update to commit 387588c 2025-07-02 07:29:05 +00:00
Baptiste Augrain
0dfc93c35e fix: stop install on error (#2414) 2025-07-01 14:52:03 +02:00
Baptiste Augrain
6240fdfdc4 feat: prepare for 1.102 (#2413) 2025-07-01 12:43:41 +02:00
Baptiste Augrain
376bde0817 ci(windows): increase timeout to 8h for manual validation (#2406) 2025-06-26 13:56:55 +02:00
Baptiste Augrain
fe0394dea4 build(stable): update to commit 2901c5a 2025-06-25 18:23:27 +00:00
Baptiste Augrain
62554e05ac build(stable): update to commit 18e3a1e 2025-06-19 18:19:32 +00:00
Simon Sobisch
e645075872 docs: more info on extension replacements 2025-06-19 10:01:54 +02:00
Alex Garcia
203a782f9a feat(ppc64le): bump GCC version to 10 (#2397) 2025-06-17 15:47:59 +02:00
Baptiste Augrain
2baf08383c fix(reh): build riscv [skip ci] 2025-06-13 02:04:34 +02:00
Baptiste Augrain
866ffbe78e fix(linux): build all archs 2025-06-13 01:06:37 +02:00
Baptiste Augrain
9058cdcc7d feat(1.101): update api proposals 2025-06-12 20:31:06 +02:00
Baptiste Augrain
d9b77fcacc Merge branch 'insider' 2025-06-12 19:56:09 +02:00
Baptiste Augrain
a31eb8e3dd build(insider): update to commit dfaf441 2025-06-12 07:20:28 +00:00
Baptiste Augrain
f0ccf4ecd5 build(insider): update to commit 3ba3a1b 2025-06-11 07:28:24 +00:00
Baptiste Augrain
b8e20569f5 build(insider): update to commit 8a0f412 2025-06-10 07:20:05 +00:00
Baptiste Augrain
a23732caea build(insider): update to commit f832c6b 2025-06-07 07:18:54 +00:00
Baptiste Augrain
b7b23e46c4 build(insider): update to commit 921786b 2025-06-06 07:24:42 +00:00
Baptiste Augrain
7be4f9ef01 build(insider): update to commit e997280 2025-06-05 07:24:27 +00:00
Baptiste Augrain
7faa9a9a92 build(stable): update to commit 258e40f 2025-06-03 18:17:36 +00:00
Baptiste Augrain
40e0612320 build(insider): update to commit 8020398 2025-06-02 07:21:42 +00:00
Baptiste Augrain
2b4b1ef94e build(insider): update to commit 1b4b2f8 2025-05-30 07:26:29 +00:00
Baptiste Augrain
a8a38988f4 build(insider): update to commit b491282 2025-05-29 07:24:28 +00:00
Marco Trevisan
19811fd824 snap: use native wayland client when possible (#2386) 2025-05-27 16:25:29 +02:00
Baptiste Augrain
be711f4223 fix(1.101): update patch 2025-05-27 15:48:35 +02:00
Baptiste Augrain
0a6c00edaf build(insider): update to commit 747d0bd 2025-05-24 07:21:52 +00:00
Baptiste Augrain
f16b836998 fix(snap): disable review for Insiders [skip ci] 2025-05-24 00:55:15 +02:00
Baptiste Augrain
bdee794538 fix(snap): remove mesa 2025-05-23 22:33:47 +02:00
Baptiste Augrain
dd046b275e fix(snap): remove suffix when sorting [skip ci] 2025-05-23 15:03:11 +02:00
Baptiste Augrain
18904d2319 fix: cli checks [skip ci] 2025-05-23 13:11:56 +02:00
Baptiste Augrain
f35cd2e4f9 feat(1.101): use node-v22.14.0 and update patches (#2387) 2025-05-23 03:16:28 +02:00
Baptiste Augrain
9e38904cc5 Merge branch 'master' into insider 2025-05-23 00:57:28 +02:00
Levi Zim
f8462bb0a4 fix(riscv): lower glibc version to 2.31 for ripgrep (#2376) 2025-05-19 11:04:03 +02:00
Baptiste Augrain
0fdce0c326 build(stable): update to commit 848b80a 2025-05-15 18:19:28 +00:00
Baptiste Augrain
efd176d43d fix(snap): sort with number map instead of string (#2373) 2025-05-14 20:32:07 +02:00
Baptiste Augrain
b1de0f1293 build(stable): update to commit 91fa95b 2025-05-13 18:21:02 +00:00
Baptiste Augrain
670a5ae8a6 docs: add new announcement 2025-05-13 00:49:37 +02:00
Baptiste Augrain
7ef31896fd docs: typo 2025-05-13 00:37:58 +02:00
Baptiste Augrain
d3ac1bf13d docs: add useful extensions for managing settings/extensions 2025-05-12 23:45:14 +02:00
Baptiste Augrain
e05bc77aff docs: rewrite sections 2025-05-12 11:55:41 +02:00
Tiagoquix
bc889a5b62 docs: update telemetry (#2361)
Add feedback preference to "Additional Privacy Settings" section.
2025-05-09 11:56:18 +02:00
Baptiste Augrain
bd3f4701ad feat(1.100): update patches (#2360) 2025-05-08 22:50:38 +02:00
Baptiste Augrain
ab40f02ad6 build(insider): update to commit 19e0f9e 2025-05-08 07:22:58 +00:00
Baptiste Augrain
db5536f14a build(insider): update to commit abe4aab 2025-05-07 07:21:59 +00:00
Baptiste Augrain
61005f975b fix: update electron 2025-05-07 03:52:25 +02:00
Baptiste Augrain
ff4a7c91a4 docs: fix title 2025-05-07 00:00:59 +02:00
Baptiste Augrain
6931eea602 build(insider): update to commit 2ca71a1 2025-05-06 21:07:59 +00:00
Baptiste Augrain
203923b6ac docs: fix levels 2025-05-06 22:06:07 +02:00
Baptiste Augrain
138b7979b4 fix: update electron (#2356) 2025-05-06 22:04:03 +02:00
Baptiste Augrain
02812dccdf docs: split and improve 2025-05-06 20:52:48 +02:00
Baptiste Augrain
dbb1e6f852 build(insider): update to commit d04f348 2025-05-06 07:22:33 +00:00
Baptiste Augrain
6c61163651 build(insider): update to commit 59f9878 2025-05-05 07:23:33 +00:00
Baptiste Augrain
92b23ab7ed fix(1.100): update patches 2025-05-03 11:47:59 +02:00
Baptiste Augrain
c7b5ab02b1 docs: add ssh server requirement 2025-05-03 10:18:33 +02:00
Baptiste Augrain
8f961b9288 fix(1.100): update patch 2025-05-01 11:44:23 +02:00
Baptiste Augrain
8d01927a20 fix: don't add extra insider to serverDownloadUrlTemplate (#2354) 2025-05-01 02:08:27 +02:00
Baptiste Augrain
96d4cb9597 build(insider): update to commit ecbbe26 2025-04-29 07:26:21 +00:00
Baptiste Augrain
125e424d8d fix: migrate from el9 to el8 (#2350) 2025-04-28 15:42:45 +02:00
Baptiste Augrain
73d25f45c2 fix: typo [skip ci] 2025-04-28 15:11:10 +02:00
Baptiste Augrain
dd1773b631 fix: replacement typo 2025-04-28 14:03:15 +02:00
Nico Steinle
892a698c11 fix: update Electron to v34.3.3 (#2349) 2025-04-28 11:53:13 +02:00
Baptiste Augrain
f7f40b9f63 fix: update patch 2025-04-28 11:51:47 +02:00
darkyzhou
ec8648f4bc fix(reh): use correct ripgrep.sh path (#2348) 2025-04-28 11:30:12 +02:00
darkyzhou
61a6d6c1b4 fix(reh): use correct ripgrep.sh path (#2348) 2025-04-27 18:37:55 +02:00
Baptiste Augrain
100f4c0288 fix: no cli for smo arch and update release notes 2025-04-26 18:15:37 +02:00
Baptiste Augrain
5fb0752690 feat: add release notes to Insiders (#2347) 2025-04-26 14:22:23 +02:00
Baptiste Augrain
08ebe04167 feat: package cli (#2346) 2025-04-26 11:02:29 +02:00
Baptiste Augrain
7f17b5ca0e fix(1.100): update patches and use node 20.19 (#2345) 2025-04-26 03:50:42 +02:00
Baptiste Augrain
a64179d80b docs: update extensions and build 2025-04-25 03:21:33 +02:00
Baptiste Augrain
1fc99ea06a Merge pull request #2339 from daiyam/fix 2025-04-22 18:07:39 +02:00
Baptiste Augrain
c699dfee82 fix: update patch 2025-04-22 14:19:56 +02:00
Baptiste Augrain
68a4e26ded fix: add property to disable extra connection (#2335) 2025-04-22 12:29:27 +02:00
Baptiste Augrain
ab6dd4186b fix(extension): only pass VSCode's version (#2334) 2025-04-22 12:29:27 +02:00
Baptiste Augrain
8884ddb324 feat: disable chat by default (#2327) 2025-04-22 12:29:27 +02:00
Baptiste Augrain
1ce59dc161 feat(linux): allow update check (#2324) 2025-04-22 12:29:27 +02:00
Baptiste Augrain
b2ed4911fa build(insider): update to commit ef9b85d 2025-04-22 07:19:36 +00:00
Baptiste Augrain
345324bd68 fix(1.100): update patch 2025-04-21 00:09:51 +02:00
Baptiste Augrain
a4f7e8e0e7 fix: add property to disable extra connection (#2335) 2025-04-20 23:58:17 +02:00
Baptiste Augrain
86336a51f4 fix(extension): only pass VSCode's version (#2334) 2025-04-20 22:48:11 +02:00
Baptiste Augrain
821bc722f7 build(stable): update to commit 17baf84 2025-04-16 18:15:49 +00:00
Baptiste Augrain
4401ea9121 build(insider): update to commit 942d11f 2025-04-16 07:19:50 +00:00
Baptiste Augrain
8049c398bf build(insider): update to commit c73f020 2025-04-15 07:19:26 +00:00
Baptiste Augrain
a87892cee2 feat: disable chat by default (#2327) 2025-04-15 01:29:02 +02:00
Baptiste Augrain
7d98a96494 fix(1.100): update patches 2025-04-14 23:59:47 +02:00
Baptiste Augrain
fa8e51dc0d fix: specify gcc version in sysroot (#2325) 2025-04-14 02:19:18 +02:00
Baptiste Augrain
bd89e61489 fix(1.100): update patch 2025-04-12 21:23:51 +02:00
Baptiste Augrain
1ddbacad96 fix(1.100): update patch 2025-04-12 21:17:07 +02:00
Baptiste Augrain
479e3d8769 feat(linux): allow update check (#2324) 2025-04-12 18:16:15 +02:00
Baptiste Augrain
f30a9df3f4 build(stable): update to commit 4949701 2025-04-10 18:16:21 +00:00
Baptiste Augrain
f47684a94c fix(ci): add variables to only ci [skip ci] 2025-04-09 18:43:09 +02:00
Baptiste Augrain
91bb9d7184 fix(cli): use explicit urls (#2319) 2025-04-09 18:43:09 +02:00
Baptiste Augrain
3b764c31b7 fix(cli): fix windows' update url (#2318) 2025-04-09 18:43:09 +02:00
Baptiste Augrain
e45f1ef420 fix: build cli with prebuilt openssl (#2316) 2025-04-09 18:43:08 +02:00
Baptiste Augrain
6c5a8eb3fb feat: cli binary (#2313) 2025-04-09 18:43:08 +02:00
Baptiste Augrain
bbc892183f fix: publish version for all archs (#2315) 2025-04-09 18:43:08 +02:00
Baptiste Augrain
bc47aeedce feat: rebrand reh-web resources (#2314) 2025-04-09 18:43:07 +02:00
Baptiste Augrain
68a1ef4416 fix(ci): add variables to only ci [skip ci] 2025-04-09 16:14:21 +02:00
Baptiste Augrain
32aec3155b fix(cli): use explicit urls (#2319) 2025-04-09 12:31:57 +02:00
Baptiste Augrain
f9c35a6d6e fix(cli): fix windows' update url (#2318) 2025-04-09 02:04:32 +02:00
Baptiste Augrain
c6ab439c07 fix: build cli with prebuilt openssl (#2316) 2025-04-09 00:10:34 +02:00
Baptiste Augrain
e4bb5229f3 build(stable): update to commit 7c6fdfb 2025-04-08 18:12:53 +00:00
Baptiste Augrain
b8126f6313 build(insider): update to commit 58c1e2e 2025-04-08 07:19:44 +00:00
Baptiste Augrain
83a701c025 feat: cli binary (#2313) 2025-04-07 16:24:12 +02:00
Baptiste Augrain
f3959bd08b fix: publish version for all archs (#2315) 2025-04-07 16:23:31 +02:00
Baptiste Augrain
c05116e677 feat: rebrand reh-web resources (#2314) 2025-04-07 16:03:43 +02:00
Baptiste Augrain
e93c8cd217 feat(1.100): update patch (#2310) 2025-04-06 02:27:49 +02:00
Baptiste Augrain
a9bdba172d fix: hard code version in server template (#2304) 2025-04-05 11:55:18 +02:00
Baptiste Augrain
14e40dbd37 fix: remove leading zeros before passing version to extension (#2302) 2025-04-05 05:08:47 +02:00
Baptiste Augrain
d4b6a02c80 Merge branch 'insider' 2025-04-04 23:10:53 +02:00
Baptiste Augrain
c6f10002f1 fix: repo path variable [skip ci] 2025-04-04 14:36:06 +02:00
Baptiste Augrain
13633eca28 feat: add default server template 2025-04-04 14:26:53 +02:00
Baptiste Augrain
7eb89b4189 fix: add/remove leading 0 when needed 2025-04-04 13:36:00 +02:00
Baptiste Augrain
4102592509 fix: update service supports both version numbers [skip ci] 2025-04-04 11:15:37 +02:00
Baptiste Augrain
1ed73dedda style: format [skip ci] 2025-04-04 00:38:23 +02:00
Baptiste Augrain
f6fc863b48 fix: tranform version so update works [skip ci] 2025-04-04 00:37:22 +02:00
Baptiste Augrain
b67d4ad805 fix: limit VSCode version regex [skip ci] 2025-04-04 00:01:10 +02:00
Baptiste Augrain
25ce08f318 feat: remove release number (#2299) 2025-04-03 22:24:25 +02:00
Baptiste Augrain
ea37c213bd ci: update token to dispatch [skip ci] 2025-04-03 18:41:27 +02:00
Baptiste Augrain
d285d1b68e ci: add token to dispatch 2025-04-03 18:09:57 +02:00
Baptiste Augrain
f7ed0b2643 feat: build linux repositories 2025-04-03 17:02:21 +02:00
Baptiste Augrain
c8c89ba8f0 fix: correct patch 2025-04-03 16:14:48 +02:00
Baptiste Augrain
c9976ec085 feat: remove yarn dependency (#2297) 2025-04-03 15:05:03 +02:00
Baptiste Augrain
b312c1742a build(insider): update to commit b34f7ee 2025-04-03 07:11:40 +00:00
Baptiste Augrain
6944a05db8 fix(linux): build packages 2025-04-03 01:46:14 +02:00
Baptiste Augrain
8edb591353 build(insider): update to commit 8222926 2025-04-02 07:12:42 +00:00
Baptiste Augrain
242452d5c9 build(insider): update to commit 04b99c9 2025-04-01 07:14:03 +00:00
Baptiste Augrain
e11db8cc6b fix: correctly include policy-watcher.node 2025-03-30 12:46:29 +02:00
Quan Zhuo
67445281d7 fix: enable controlUrl for extensions (#2278) 2025-03-30 04:29:20 +02:00
Quan Zhuo
0179179f72 fix: enable controlUrl for extensions (#2278) 2025-03-30 03:48:34 +02:00
Baptiste Augrain
993c7d1efa feat(1.99): update patches (#2283) 2025-03-30 03:31:01 +02:00
Andrea Marisio
fb3d195874 docs(macos): update README.md with new insider installation (#2253) 2025-03-28 14:38:16 +01:00
126 changed files with 7702 additions and 2434 deletions

View File

@@ -30,7 +30,7 @@ env:
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
BINARY_NAME: codium-insiders
DISABLE_UPDATE: 'yes'
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: linux
@@ -48,7 +48,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -74,7 +74,7 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@@ -85,7 +85,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -102,17 +102,13 @@ jobs:
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@@ -198,7 +194,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -210,7 +206,7 @@ jobs:
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@@ -221,12 +217,15 @@ jobs:
run: ./check_tags.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
- name: Install dependencies
run: ./build/linux/deps.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- uses: actions-rust-lang/setup-rust-toolchain@v1
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -272,7 +271,7 @@ jobs:
needs:
- check
- compile
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@@ -310,7 +309,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
@@ -329,13 +328,13 @@ jobs:
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
node-version-file: '.nvmrc'
if: env.DISABLED != 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.DISABLED != 'yes'
@@ -345,7 +344,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@@ -356,7 +355,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -387,7 +386,7 @@ jobs:
needs:
- check
- compile
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@@ -411,7 +410,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -427,7 +426,7 @@ jobs:
platform: x64
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@@ -441,7 +440,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -513,7 +512,7 @@ jobs:
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -530,10 +529,10 @@ jobs:
architecture: ${{ matrix.platform }}
id: build
- uses: diddlesnaps/snapcraft-review-action@v1
with:
snap: ${{ steps.build.outputs.snap }}
isClassic: 'true'
# - uses: diddlesnaps/snapcraft-review-action@v1
# with:
# snap: ${{ steps.build.outputs.snap }}
# isClassic: 'true'
- uses: svenstaro/upload-release-action@v2
with:
@@ -541,3 +540,18 @@ jobs:
repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
file: ${{ steps.build.outputs.snap }}
tag: ${{ env.RELEASE_VERSION }}
deploy-repo-dev:
needs:
- check
- build
runs-on: ubuntu-latest
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
steps:
- name: Trigger repository rebuild
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
repository: VSCodium/repositories-linux
event-type: deploy

View File

@@ -29,7 +29,7 @@ env:
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
BINARY_NAME: codium-insiders
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
@@ -50,7 +50,7 @@ jobs:
vscode_arch: arm64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -60,12 +60,12 @@ jobs:
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
node-version-file: '.nvmrc'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'

View File

@@ -25,23 +25,24 @@ jobs:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
BINARY_NAME: codium-insiders
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_ARCH: arm64
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
VSCODE_QUALITY: insider
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
node-version-file: '.nvmrc'
- name: Clone VSCode repo
run: . get_repo.sh
@@ -76,6 +77,13 @@ jobs:
run: ./prepare_src.sh
if: env.SHOULD_BUILD == 'yes'
- name: Upload sourcemaps
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./upload_sourcemaps.sh
if: env.SHOULD_BUILD == 'yes'
- name: Release source
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
@@ -84,7 +92,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Dispatch builds
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
event-type: 'insider'
event-type: insider
if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true')

View File

@@ -29,7 +29,7 @@ env:
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
BINARY_NAME: codium-insiders
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
@@ -46,7 +46,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -72,7 +72,7 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@@ -83,7 +83,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -100,17 +100,13 @@ jobs:
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@@ -150,7 +146,7 @@ jobs:
needs:
- check
- compile
runs-on: windows-2019
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
@@ -173,7 +169,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -185,17 +181,13 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@@ -208,7 +200,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
@@ -280,7 +272,7 @@ jobs:
winget:
needs: build
runs-on: windows-latest
runs-on: windows-2022
defaults:
run:
shell: bash
@@ -290,7 +282,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}

View File

@@ -30,7 +30,7 @@ env:
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
DISABLE_UPDATE: 'yes'
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
@@ -47,7 +47,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -73,7 +73,7 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@@ -84,7 +84,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -103,17 +103,13 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@@ -199,7 +195,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -211,7 +207,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@@ -222,12 +218,15 @@ jobs:
run: ./check_tags.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
- name: Install dependencies
run: ./build/linux/deps.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- uses: actions-rust-lang/setup-rust-toolchain@v1
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
@@ -273,7 +272,7 @@ jobs:
needs:
- check
- compile
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@@ -311,7 +310,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
@@ -330,13 +329,13 @@ jobs:
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
node-version-file: '.nvmrc'
if: env.DISABLED != 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.DISABLED != 'yes'
@@ -346,7 +345,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@@ -357,7 +356,7 @@ jobs:
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -388,7 +387,7 @@ jobs:
needs:
- check
- compile
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@@ -412,7 +411,7 @@ jobs:
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -428,7 +427,7 @@ jobs:
platform: x64
- name: Install GH
run: ./install_gh.sh
run: ./build/linux/install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
@@ -442,7 +441,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
@@ -511,7 +510,7 @@ jobs:
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -560,15 +559,30 @@ jobs:
release: ${{ vars.SNAP_STORE_CHANNEL }}
if: env.SHOULD_DEPLOY_TO_STORE == 'yes'
deb-rpm-repo-hook:
deploy-repo-rudy:
needs:
- check
- build
runs-on: ubuntu-latest
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
steps:
- name: Trigger repository rebuild
env:
GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }}
run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline
deploy-repo-dev:
needs:
- check
- build
runs-on: ubuntu-latest
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
steps:
- name: Trigger repository rebuild
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
repository: VSCodium/repositories-linux
event-type: deploy

View File

@@ -28,7 +28,7 @@ env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
@@ -49,7 +49,7 @@ jobs:
vscode_arch: arm64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -59,12 +59,12 @@ jobs:
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
node-version-file: '.nvmrc'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'

View File

@@ -22,21 +22,22 @@ jobs:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_ARCH: arm64
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
VSCODE_QUALITY: stable
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
node-version-file: '.nvmrc'
- name: Clone VSCode repo
run: . get_repo.sh
@@ -71,6 +72,13 @@ jobs:
run: ./prepare_src.sh
if: env.SHOULD_BUILD == 'yes'
- name: Upload sourcemaps
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./upload_sourcemaps.sh
if: env.SHOULD_BUILD == 'yes'
- name: Release source
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
@@ -79,7 +87,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Dispatch builds
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
event-type: 'stable'
event-type: stable
if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true'

View File

@@ -28,7 +28,7 @@ env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
@@ -45,7 +45,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -71,7 +71,7 @@ jobs:
compile:
needs:
- check
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
@@ -82,7 +82,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -99,17 +99,13 @@ jobs:
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@@ -149,7 +145,7 @@ jobs:
needs:
- check
- compile
runs-on: windows-2019
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
@@ -172,7 +168,7 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
@@ -184,17 +180,13 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20.18.2'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
node-version-file: '.nvmrc'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
@@ -207,7 +199,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
@@ -245,8 +237,8 @@ jobs:
github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
artifact-configuration-slug: ${{ matrix.vscode_arch }}
wait-for-completion: true
# 3h to manually approve the request
wait-for-completion-timeout-in-seconds: 10800
# 8h to manually approve the request
wait-for-completion-timeout-in-seconds: 28800
output-artifact-directory: assets/
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
@@ -278,7 +270,7 @@ jobs:
winget:
needs: build
runs-on: windows-latest
runs-on: windows-2022
defaults:
run:
shell: bash
@@ -287,7 +279,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ env.GITHUB_BRANCH }}

View File

@@ -11,7 +11,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
days-before-stale: 180
days-before-close: 30

1
.gitignore vendored
View File

@@ -14,5 +14,6 @@ build/linux/appimage/VSCodium
build/windows/msi/releasedir
build/windows/msi/Files*.wxs
build/windows/msi/Files*.wixobj
sourcemaps/
stores/snapcraft/insider/*.snap
stores/snapcraft/stable/*.snap

2
.nvmrc
View File

@@ -1 +1 @@
20.18.1
22.19.0

View File

@@ -36,7 +36,7 @@ If you want to update the existing patches, please follow the section [`Patch Up
- first, you need to build VSCodium
- then use the command `./dev/patch.sh <your patch name>`, to initiate a new patch
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- run `yarn watch`
- run `npm run watch`
- run `./script/code.sh`
- make your changes
- press any key to continue the script `patch.sh`

View File

@@ -2,7 +2,7 @@
<br />
<img src="./icons/stable/codium_cnl.svg" alt="VSCodium Logo" width="200"/>
<h1>VSCodium</h1>
<h3>Free/Libre Open Source Software Binaries of VS Code</h3>
<h3>Free/Libre Open Source Software Binaries of Visual Studio Code</h3>
</div>
<div id="badges" align="center">
@@ -56,12 +56,9 @@ If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
brew install --cask vscodium
# insiders
brew tap homebrew/cask-versions
brew install --cask vscodium-insiders
brew install --cask vscodium@insiders
```
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#macos).*
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
@@ -134,7 +131,7 @@ Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob
## <a id="why"></a>Why Does This Exist
This repository contains build files to generate free release binaries of Microsoft's VS Code. When we speak of "free software", we're talking about freedom, not price.
This repository contains build files to generate free release binaries of Microsoft's Visual Studio Code. When we speak of "free software", we're talking about freedom, not price.
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
@@ -144,7 +141,7 @@ Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS li
This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to [GitHub releases](https://github.com/VSCodium/vscodium/releases). __These binaries are licensed under the MIT license. Telemetry is disabled.__
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VS Code.
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed Visual Studio Code.
Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:
@@ -168,9 +165,9 @@ If you have any issue, please check [the Troubleshooting page](https://github.co
### Extensions and the Marketplace
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
According to the Visual Studio Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for Visual Studio Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
### How are the VSCodium binaries built?

View File

@@ -1,7 +1,2 @@
[
{
"id": "#1227",
"title": "Issue(macOS): manual update to `1.90.x`",
"url": "https://github.com/VSCodium/vscodium/issues/1917"
}
]

View File

@@ -14,56 +14,71 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
export NODE_OPTIONS="--max-old-space-size=8192"
yarn monaco-compile-check
yarn valid-layers-check
npm run monaco-compile-check
npm run valid-layers-check
yarn gulp compile-build
yarn gulp compile-extension-media
yarn gulp compile-extensions-build
yarn gulp minify-vscode
npm run gulp compile-build-without-mangling
npm run gulp compile-extension-media
npm run gulp compile-extensions-build
npm run gulp minify-vscode
if [[ "${OS_NAME}" == "osx" ]]; then
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
# remove win32 node modules
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
# generate Group Policy definitions
node build/lib/policies darwin
npm run gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
find "../VSCode-darwin-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
. ../build_cli.sh
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
# generate Group Policy definitions
node build/lib/policies
node build/lib/policies win32
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
. ../build/windows/rtf/make.sh
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
SHOULD_BUILD_REH="no"
SHOULD_BUILD_REH_WEB="no"
fi
. ../build_cli.sh
fi
VSCODE_PLATFORM="win32"
else # linux
# remove win32 node modules
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
. ../build_cli.sh
fi
VSCODE_PLATFORM="linux"
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
npm run gulp minify-vscode-reh
npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
yarn gulp minify-vscode-reh-web
yarn gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi
cd ..

View File

@@ -34,7 +34,7 @@ fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@@ -51,8 +51,8 @@ fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building REH"
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${PA_NAME}-min-ci"
npm run gulp minify-vscode-reh
npm run gulp "vscode-reh-${PA_NAME}-min-ci"
pushd "../vscode-reh-${PA_NAME}"
@@ -64,8 +64,8 @@ fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building REH-web"
yarn gulp minify-vscode-reh-web
yarn gulp "vscode-reh-web-${PA_NAME}-min-ci"
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-${PA_NAME}-min-ci"
pushd "../vscode-reh-web-${PA_NAME}"

View File

@@ -27,14 +27,16 @@ if [[ "${VSCODE_ARCH}" == "x64" ]]; then
# remove check so build in docker can succeed
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
sed -i 's|@@NAME@@|VSCodium-Insiders|g' recipe.yml
sed -i 's|@@APPNAME@@|codium-insiders|g' recipe.yml
sed -i 's|@@ICON@@|vscodium-insiders|g' recipe.yml
sed -i "s|@@NAME@@|${APP_NAME}-Insiders|g" recipe.yml
sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
sed -i "s|@@ICON@@|${APP_NAME_LC}-insiders|g" recipe.yml
else
sed -i 's|@@NAME@@|VSCodium|g' recipe.yml
sed -i 's|@@APPNAME@@|codium|g' recipe.yml
sed -i 's|@@ICON@@|vscodium|g' recipe.yml
sed -i "s|@@NAME@@|${APP_NAME}|g" recipe.yml
sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
sed -i "s|@@ICON@@|${APP_NAME_LC}|g" recipe.yml
fi
# workaround that enforces x86 ARCH for pkg2appimage having /__w/vscodium/vscodium/build/linux/appimage/VSCodium/VSCodium.AppDir/usr/share/codium/resources/app/node_modules/rc/index.js is of architecture armhf

13
build/linux/deps.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -ex
sudo apt-get update -y
sudo apt-get install -y libkrb5-dev
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu crossbuild-essential-arm64
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf crossbuild-essential-armhf
fi

32
build/linux/install_gh.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env bash
set -ex
GH_ARCH="amd64"
for i in {1..5}; do
TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )
if [[ $? == 0 && "${TAG}" != "null" ]]; then
break
fi
if [[ $i == 5 ]]; then
echo "GH install failed too many times" >&2
exit 1
fi
echo "GH install failed $i, trying again..."
sleep $(( 15 * (i + 1)))
done
VERSION="${TAG#v}"
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
gh --version

13
build/linux/install_nodejs.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -ex
NODEJS_VERSION=$( cat .nvmrc )
curl -fsSL "${NODEJS_SITE}${NODEJS_URLROOT}/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}.tar.xz" -o node.tar.xz
tar -xf node.tar.xz
sudo mv "node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}" /usr/local/node
echo "/usr/local/node/bin" >> $GITHUB_PATH

View File

@@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="34.2.0"
export ELECTRON_VERSION="37.2.5"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@@ -1,11 +1,11 @@
e47103e4191b781c9a166ec07f310b1d615866022fc896adf959f81a91615d33 *chromedriver-v34.2.0-linux-loong64.zip
24ac8b4c6dae1e3bc31de1cda733176ac03b0a124788fe2000a07723c17aa3ad *electron-v34.2.0-linux-loong64-debug.zip
0a2330d8aa615aa2faac3fc6d3d1924784cab9a1b9a498e00210cf90adc3e98a *electron-v34.2.0-linux-loong64-symbols.zip
97687006d23a57ee35fc3d3ce8803dfb7e48538ccaf98a73fc8eef09afc35672 *electron-v34.2.0-linux-loong64.zip
88f1d2e434c111203f06e17a5a23fe8ba5ea572473559055064784e37b804bb9 *hunspell-dictionaries.zip
b085b7ae8b77b07a210026901816f440c841666222809af3ae9aaf16d95ee6a2 *libcxx-headers.zip
1f8b7234dd1a8c219909aae8c8c4b5c064c7eb60b9b30efb2207b16a0991acfc *libcxx-objects-v34.2.0-linux-loong64.zip
a34caad87f177ae6b6098fef84a832fb0887bd5819be9cdc1272d317f4036b96 *libcxxabi-headers.zip
b7ea74bf6d6aac7eb96841c0c7539f5c8b853e715c4b4396c6cd097a872303b3 *mksnapshot-v34.2.0-linux-loong64.zip
2e574c7bf182ae8dfdb302be68da8c5d783cd952391e61e166bd8069dc8752fc *node-v34.2.0-headers.tar.gz
0bc435a6989f120b1f748cd2f8d3fa7ed731c54a0ad797271e479539dca5c4fe *chromedriver-v37.2.5-linux-loong64.zip
6a355cac6c8b02deb413d024ff3224f03717cc0790e3f5a872891ecf79ade20e *electron-v37.2.5-linux-loong64-debug.zip
c091db1993b2bda5426a678c428c5ffc71af9228abc4891a493a1d318e250b0a *electron-v37.2.5-linux-loong64-symbols.zip
d3f615c3ec265a2adbc0ed9088a65e96aa90b392ecd1ea17e8e4dc82728f4a5d *electron-v37.2.5-linux-loong64.zip
17e05db81f5b0cff1327ac153bd20838b3332b78de1b2ffa235e27a30a15024d *ffmpeg-v37.2.5-linux-loong64.zip
eaf1efb230cd9bfee7acd8b553c602ff396c2f667837e968b4c1d5542448b0b3 *hunspell-dictionaries.zip
3eb8b3199f764c63f82960cb1e1945f70af348873133bf9fd70daeefa3ca1bfb *libcxx-headers.zip
2a5ad06e845d59d89b74a97cd2befcfad02f951f8083f02645a9edbb4e7fdcb7 *libcxx-objects-v37.2.5-linux-loong64.zip
24eec3c74d5a05eba53524866a009e257e52e65257caa8e6fda07b82321885eb *libcxxabi-headers.zip
a4015814d6651cf5511b04307aeef51b739d05eed7ff8ab819739dabd0047309 *mksnapshot-v37.2.5-linux-loong64.zip
d1ed2413e007d7adbcd7291158647cfd4908739b034d021c123ca3d11513c31a *node-v37.2.5-headers.tar.gz

View File

@@ -18,7 +18,7 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
export VSCODE_PLATFORM='linux'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
export VSCODE_SYSROOT_PREFIX='-glibc-2.28-gcc-10.5.0'
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
export VSCODE_SKIP_SYSROOT=1
@@ -26,8 +26,6 @@ if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
export VSCODE_SYSROOT_PREFIX='-glibc-2.28'
export USE_GNUPP2A=1
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_SKIP_SETUPENV=1
@@ -55,7 +53,7 @@ if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sh" ]]; then
# shellcheck disable=SC1090
source "../build/linux/${VSCODE_ARCH}/electron.sh"
TARGET=$( yarn config get target )
TARGET=$( npm config get target )
# Only fails at different major versions
if [[ "${ELECTRON_VERSION%%.*}" != "${TARGET%%.*}" ]]; then
@@ -103,7 +101,7 @@ fi
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@@ -120,7 +118,7 @@ fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i -eq 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@@ -129,7 +127,7 @@ done
node build/azure-pipelines/distro/mixin-npm
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules"
@@ -137,4 +135,6 @@ fi
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
. ../build_cli.sh
cd ..

View File

@@ -18,7 +18,7 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
GLIBC_VERSION="2.28"
GLIBCXX_VERSION="3.4.26"
NODE_VERSION="20.18.2"
NODE_VERSION="22.15.1"
export VSCODE_NODEJS_URLROOT='/download/release'
export VSCODE_NODEJS_URLSUFFIX=''
@@ -49,10 +49,10 @@ elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-ppc64le"
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
NODE_VERSION="20.16.0"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
@@ -67,6 +67,7 @@ elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20241108'
@@ -76,7 +77,12 @@ export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_PLATFORM='linux'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
if [[ -z "${VSCODE_SYSROOT_PREFIX}" ]]; then
export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}-gcc-10.5.0"
else
export VSCODE_SYSROOT_PREFIX
fi
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION:=GLIBC_VERSION}"
VSCODE_HOST_MOUNT="$( pwd )"
@@ -84,7 +90,7 @@ VSCODE_HOST_MOUNT="$( pwd )"
export VSCODE_HOST_MOUNT
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
sed -i "/target/s/\"20.*\"/\"${NODE_VERSION}\"/" remote/.npmrc
sed -i "/target/s/\"22.*\"/\"${NODE_VERSION}\"/" remote/.npmrc
if [[ -d "../patches/linux/reh/" ]]; then
for file in "../patches/linux/reh/"*.patch; do
@@ -129,7 +135,7 @@ cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@@ -142,11 +148,19 @@ if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
else
source ./build/azure-pipelines/linux/setup-env.sh
fi
export VSCODE_SYSROOT_DIR="${VSCODE_REMOTE_SYSROOT_DIR}"
else
mkdir -p .build/x86_64-linux-gnu/x86_64-linux-gnu/bin
ln -s $( which objdump ) .build/x86_64-linux-gnu/x86_64-linux-gnu/bin/objdump
export VSCODE_SYSROOT_DIR=".build"
fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@@ -156,6 +170,23 @@ for i in {1..5}; do # try 5 times
rm -rf node_modules/@vscode node_modules/node-pty
done
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
pushd "remote"
for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
do
pushd "node_modules/${LIB}"
CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild
popd
done
popd
VERIFY_CXX11=1
fi
mv .npmrc.bak .npmrc
node build/azure-pipelines/distro/mixin-npm
@@ -164,15 +195,19 @@ export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building REH"
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
npm run gulp minify-vscode-reh
npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
if [[ -n "${VERIFY_CXX11}" ]]; then
SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
fi
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
fi
echo "Archiving REH"
@@ -183,15 +218,19 @@ fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building REH-web"
yarn gulp minify-vscode-reh-web
yarn gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
if [[ -n "${VERIFY_CXX11}" ]]; then
SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
fi
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
fi
echo "Archiving REH-web"

View File

@@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="34.2.0"
export ELECTRON_VERSION="37.2.3"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@@ -1,11 +1,10 @@
e28d3ffb1a4cdcef80b93cf2a73214c4a85b2fc2a414aefc14a03b212ce07a28 *chromedriver-v34.2.0-linux-ppc64le.zip
4cfaa3e888b9d4acb9149ca521188dc2e945fa569230b026d5a74d8a85a6f8ce *electron-v34.2.0-linux-ppc64le-debug.zip
3a82c9ef68f60234ea6d506205d3f37fc7821f7f2a9217c1f9027078da1b3a44 *electron-v34.2.0-linux-ppc64le-symbols.zip
85d2ddaee9d5aa93ab341e3a6f9ac2b7fce3825efee7b885cdda7ad91244a158 *electron-v34.2.0-linux-ppc64le.zip
5ca44a4ee9cc74a56c9556ce3f3774986dbb8b4f4953088c7f4577bfba4356a8 *electron.d.ts
a5db064d9f82e2ad8be677d5c5bcf4e9bca68b38ca1e096c54029879098bf7ba *ffmpeg-v34.2.0-linux-ppc64le.zip
d19ee157a394a258c0d2820ca0b3d6f3403065c54bdb4b35d8227c844ebc18d9 *hunspell_dictionaries.zip
3ba2b632a70b16315c0f975a87ebaf47b24878396d4e5b7ba1d9db49eb1bfee9 *libcxx-objects-v34.2.0-linux-ppc64le.zip
552fe6a9afe66b9efa054856553bb88c35ccafa31bc3bb398b483d77291be12c *libcxx_headers.zip
71d695f56d7fbee44d18d503790951c17ba22f2f75c5b96131d4c65e865860f0 *libcxxabi_headers.zip
6e25a04c8e19e475edbc8b7145df84372b0e8abdcde3c9ea42b5aaa6fb69ccda *mksnapshot-v34.2.0-linux-ppc64le.zip
877785ae2383a8a222fa37bda98c148b145931ff8714614aaf330d15d6f92710 *chromedriver-v37.2.3-linux-ppc64le.zip
5ce746efac98a0d83699ef0e03497867ed34d936a268551f26eb2e2972c4d5f5 *electron-v37.2.3-linux-ppc64le-debug.zip
f0ac8a9a9b6c1e330edd53fedaee29699c540691993ace4bb938cdd369895b89 *electron-v37.2.3-linux-ppc64le-symbols.zip
6dc2ac4a8fd4565948ac330be371436d2534aaea633d17ac7743fce8aac42ef0 *electron-v37.2.3-linux-ppc64le.zip
6358a83a03a801d6a85559179e4f12307dee693043ffb26fd40585f369f7db76 *electron.d.ts
25a5ec559f683df305faa9eb082514a9e6dff9f983b7724ddbd82a34bef4890b *hunspell_dictionaries.zip
9da591f8eabbdeba1a51f1b2ec7f2627eaa07d77d0263b6b16abc87a00e2f287 *libcxx-objects-v37.2.3-linux-ppc64le.zip
519a41987f56c133b91affbb13f8fa5331eda9da8750325fae84444532177e02 *libcxx_headers.zip
8607d01b3c828602b3f359458587d5ffa883695756edebf4547aadb0847fdaa9 *libcxxabi_headers.zip
1d40ebef530616b35031333e569247dd265704b496f35ec256220ae081c340c1 *mksnapshot-v37.2.3-linux-ppc64le.zip

View File

@@ -2,5 +2,5 @@
set -ex
export ELECTRON_VERSION="34.2.0"
export ELECTRON_VERSION="37.2.3"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"

View File

@@ -1,11 +1,11 @@
1cbe2e0aa7ce41832781b867ab1899bd83bbebf37ea89036e2d1f2e4e8c231dd *chromedriver-v34.2.0-linux-riscv64.zip
2a6dc0241a8f62e442833e8a6438b150206d824874b3c42d41220052ce2558d2 *electron-v34.2.0-linux-riscv64-debug.tar.zst
54c6f5a7775ca09b7c61c89ce668d68bcbd3bf9d0f88bcebbfc93d68fcf53ca9 *electron-v34.2.0-linux-riscv64-symbols.tar.zst
edc0e2b28a05eb4c812c09c072b091df1d90a74283ad58ac7b61c6c538048882 *electron-v34.2.0-linux-riscv64.zip
e9a934eb94580f5ff18537a9afab8eac59f21784e07952c0511fe8db3e0b63a1 *ffmpeg-v34.2.0-linux-riscv64.zip
0e162c2636b9583d39b40a383ee4ea41f177c82b20d168ec869a625a6f7a6f6b *hunspell-dictionaries.zip
d12dfd2413e0151c8ba800b0fa8881d2910b49793e62576798c3358eef724eec *libcxx-headers.zip
b2befbd4a5149b6f63925f833fcb40c247b5205e90a80426d6ba87e48e259575 *libcxx-objects-v34.2.0-linux-riscv64.zip
f70f8fdea628beac7c90453f4f4c01a587c5e0c5f6cd12bcbba6019fe6c172f9 *libcxxabi-headers.zip
ea85918270250a56ec1217d7c79ae8f0d8f1b8bd3e21c3f80e68e3b3fca20fbb *mksnapshot-v34.2.0-linux-riscv64.zip
25ca4f68090ac1474d7306ca74fb64a57501216fd25aeeca7795c058f8124f57 *node-v34.2.0-headers.tar.gz
bec3076d684af4ab7700f13861c3257dc17198970eb498ff2e388db71f61898e *chromedriver-v37.2.3-linux-riscv64.zip
c670aba1b907ef9cbcdb2dccd742604f897eef4719f7ad46f34925197f7ae208 *electron-v37.2.3-linux-riscv64-debug.tar.zst
3ee5a9d29c611a6c685caa291698c3b5f1041bd11b3726137d41931457d6a113 *electron-v37.2.3-linux-riscv64-symbols.tar.zst
33f16380975b2087308f096e4329639f839c58aa1b9cccbee0a915bf3ed7b976 *electron-v37.2.3-linux-riscv64.zip
0ef484d10dd15bb4b44e5862ff8070ec09d94ca0b7c6b062e88c64fa343e2408 *ffmpeg-v37.2.3-linux-riscv64.zip
218a633300feb50ed57ab751374bac8693615ff192c2437067a4bceef84c9cf8 *hunspell-dictionaries.zip
abe24654e394d057dc2bdea9533fcd1790becb822b53d543165c74470694e818 *libcxx-headers.zip
1e6972b9125d1864f32d0f5d1084cf4ea56f7dd2227505271dde15439942c0e4 *libcxx-objects-v37.2.3-linux-riscv64.zip
55fdbc0fc65e176e50c3492dd50a18c9d23e2bd0e45a00a34118d46ed583a8d0 *libcxxabi-headers.zip
b017a16c8f0d8c8076ec71fba5a043951dd88e4fc7d8e8720906a0b9b4a141aa *mksnapshot-v37.2.3-linux-riscv64.zip
0259b1abf0bc8aedb114bac75aadcbb1860fd13ae32a876702ca8e722581f8b2 *node-v37.2.3-headers.tar.gz

View File

@@ -9,7 +9,7 @@ if [ "$#" -ne 1 ]; then
fi
RG_PATH="$1/@vscode/ripgrep/bin/rg"
RG_VERSION="14.1.1-3"
RG_VERSION="14.1.1-4"
echo "Replacing ripgrep binary with riscv64 one"

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -e
FILES=$(
find "${SEARCH_PATH}" -type f -executable -name "node"
find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*"
)
echo "Verifying requirements for files: ${FILES}"
for FILE in ${FILES}; do
CXXABI_VERSION="0.0.0"
while IFS= read -r LINE; do
VERSION=${LINE#*_}
if [[ $( printf "%s\n%s" "${VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${VERSION}" ]]; then
CXXABI_VERSION="${VERSION}"
fi
done < <( strings "${FILE}" | grep -i ^CXXABI )
if [[ $( printf "%s\n%s" "${EXPECTED_CXXABI_VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${EXPECTED_CXXABI_VERSION}" ]]; then
echo "File ${FILE} has dependency on ABI ${CXXABI_VERSION} <= ${EXPECTED_CXXABI_VERSION}"
else
echo "Error: File ${FILE} has dependency on ABI ${CXXABI_VERSION} > ${EXPECTED_CXXABI_VERSION}"
exit 1
fi
done

View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -e
FILES=$( find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*" )
echo "Verifying requirements for files: ${FILES}"
for FILE in ${FILES}; do
if [[ -n "$( strings "${FILE}" | grep cxx11 | tail -n1 )" ]]; then
echo "Error: File ${FILE} has dependency on CXX11"
exit 1
fi
done

14
build/windows/appx/build.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ex
# Add Windows SDK to path
SDK='/C/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64'
export PATH="${SDK}:${PATH}"
APPX_NAME="${BINARY_NAME//-/_}"
makeappx pack /d "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest" /p "../../../VSCode-win32-${VSCODE_ARCH}/appx/${APPX_NAME}_${VSCODE_ARCH}.appx" /nv
# Remove the raw manifest folder
rm -rf "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest"

View File

@@ -13,7 +13,7 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i -eq 3 ]]; then
if [[ $i == 5 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
@@ -24,19 +24,21 @@ node build/azure-pipelines/distro/mixin-npm
. ../build/windows/rtf/make.sh
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
. ../build_cli.sh
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building REH"
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-win32-${VSCODE_ARCH}-min-ci"
npm run gulp minify-vscode-reh
npm run gulp "vscode-reh-win32-${VSCODE_ARCH}-min-ci"
fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building REH-web"
yarn gulp minify-vscode-reh-web
yarn gulp "vscode-reh-web-win32-${VSCODE_ARCH}-min-ci"
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-win32-${VSCODE_ARCH}-min-ci"
fi
fi

95
build_cli.sh Executable file
View File

@@ -0,0 +1,95 @@
#!/usr/bin/env bash
set -ex
cd cli
export CARGO_NET_GIT_FETCH_WITH_CLI="true"
export VSCODE_CLI_APP_NAME="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
export VSCODE_CLI_BINARY_NAME="$( node -p "require(\"../product.json\").serverApplicationName" )"
export VSCODE_CLI_UPDATE_ENDPOINT="https://raw.githubusercontent.com/VSCodium/versions/refs/heads/master"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export VSCODE_CLI_DOWNLOAD_ENDPOINT="https://github.com/VSCodium/vscodium-insiders/releases"
else
export VSCODE_CLI_DOWNLOAD_ENDPOINT="https://github.com/VSCodium/vscodium/releases"
fi
TUNNEL_APPLICATION_NAME="$( node -p "require(\"../product.json\").tunnelApplicationName" )"
NAME_SHORT="$( node -p "require(\"../product.json\").nameShort" )"
npm pack @vscode/openssl-prebuilt@0.0.11
mkdir openssl
tar -xvzf vscode-openssl-prebuilt-0.0.11.tgz --strip-components=1 --directory=openssl
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
VSCODE_CLI_TARGET="aarch64-apple-darwin"
else
VSCODE_CLI_TARGET="x86_64-apple-darwin"
fi
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/lib"
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/include"
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-darwin-${VSCODE_ARCH}/${NAME_SHORT}.app/Contents/Resources/app/bin/${TUNNEL_APPLICATION_NAME}"
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
VSCODE_CLI_TARGET="aarch64-pc-windows-msvc"
export VSCODE_CLI_RUST="-C target-feature=+crt-static -Clink-args=/guard:cf -Clink-args=/CETCOMPAT:NO"
else
VSCODE_CLI_TARGET="x86_64-pc-windows-msvc"
export VSCODE_CLI_RUSTFLAGS="-Ctarget-feature=+crt-static -Clink-args=/guard:cf -Clink-args=/CETCOMPAT"
fi
export VSCODE_CLI_CFLAGS="/guard:cf /Qspectre"
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-windows-static/lib"
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-windows-static/include"
rustup target add "${VSCODE_CLI_TARGET}"
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
cp "target/${VSCODE_CLI_TARGET}/release/code.exe" "../../VSCode-win32-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}.exe"
else
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-linux/lib"
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-linux/include"
export VSCODE_SYSROOT_DIR="../.build/sysroots"
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
VSCODE_CLI_TARGET="aarch64-unknown-linux-gnu"
if [[ "${CI_BUILD}" != "no" ]]; then
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc
export CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++
export PKG_CONFIG_ALLOW_CROSS=1
fi
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
VSCODE_CLI_TARGET="armv7-unknown-linux-gnueabihf"
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/arm-linux/lib"
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/arm-linux/include"
if [[ "${CI_BUILD}" != "no" ]]; then
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
export CC_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc
export CXX_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++
export PKG_CONFIG_ALLOW_CROSS=1
fi
elif [[ "${VSCODE_ARCH}" == "x64" ]]; then
VSCODE_CLI_TARGET="x86_64-unknown-linux-gnu"
fi
if [[ -n "${VSCODE_CLI_TARGET}" ]]; then
rustup target add "${VSCODE_CLI_TARGET}"
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-linux-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}"
fi
fi
cd ..

View File

@@ -22,7 +22,7 @@ else
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
RECHECK_ASSETS="${SHOULD_BUILD}"
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5]) ]]; then
if [[ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]]; then
echo "New VSCode version, new build"
export SHOULD_BUILD="yes"
@@ -105,6 +105,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-cli-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on MacOS because we have no CLI archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_CLI="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the MacOS builds"
fi
@@ -136,67 +143,15 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
export SHOULD_BUILD_REH_WEB="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows arm64 builds"
fi
# windows-ia32
elif [[ "${VSCODE_ARCH}" == "ia32" ]]; then
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows ia32 because we have no system setup"
if [[ -z $( contains "${APP_NAME_LC}-cli-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows arm64 because we have no CLI archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_SYS="no"
fi
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows ia32 because we have no user setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_USR="no"
fi
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
echo "Building on Windows ia32 because we have no zip"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_ZIP="no"
fi
if [[ "${DISABLE_MSI}" == "yes" ]]; then
export SHOULD_BUILD_MSI="no"
elif [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
echo "Building on Windows ia32 because we have no msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI="no"
fi
if [[ "${DISABLE_MSI}" == "yes" ]]; then
export SHOULD_BUILD_MSI_NOUP="no"
elif [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
echo "Building on Windows ia32 because we have no updates-disabled msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI_NOUP="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows ia32 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows ia32 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
export SHOULD_BUILD_CLI="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows ia32 builds"
echo "Already have all the Windows arm64 builds"
fi
# windows-x64
@@ -254,6 +209,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-cli-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows x64 because we have no CLI archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_CLI="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows x64 builds"
fi
@@ -326,6 +288,14 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no CLI archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_CLI="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm64 builds"
fi
@@ -370,6 +340,14 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no CLI archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_CLI="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm builds"
fi
@@ -377,9 +355,9 @@ elif [[ "${ASSETS}" != "null" ]]; then
# linux-ppc64le
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${CHECK_ALL}" == "yes" ]]; then
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
export SHOULD_BUILD_APPIMAGE="no"
export SHOULD_BUILD_DEB="no"
export SHOULD_BUILD_RPM="no"
if [[ -z $( contains "${APP_NAME}-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux PowerPC64LE because we have no TAR"
@@ -403,6 +381,8 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
export SHOULD_BUILD_CLI="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux PowerPC64LE builds"
fi
@@ -435,6 +415,8 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
export SHOULD_BUILD_CLI="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux riscv64 builds"
fi
@@ -467,6 +449,8 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
export SHOULD_BUILD_CLI="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux Loong64 builds"
fi
@@ -493,6 +477,8 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
export SHOULD_BUILD_CLI="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux s390x builds"
fi
@@ -551,6 +537,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no CLI archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_CLI="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux x64 builds"
fi
@@ -622,12 +615,19 @@ else
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
SHOULD_BUILD_CLI="no"
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_CLI="no"
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_CLI="no"
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_CLI="no"
fi
if [[ "${VSCODE_ARCH}" != "x64" || "${DISABLE_APPIMAGE}" == "yes" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
@@ -658,6 +658,7 @@ echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_REH=${SHOULD_BUILD_REH}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_REH_WEB=${SHOULD_BUILD_REH_WEB}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_CLI=${SHOULD_BUILD_CLI}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_SNAP=${SHOULD_BUILD_SNAP}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"

View File

@@ -6,6 +6,7 @@
###
export APP_NAME="VSCodium"
export ASSETS_REPOSITORY="VSCodium/vscodium"
export BINARY_NAME="codium"
export CI_BUILD="no"
export GH_REPO_PATH="VSCodium/vscodium"
@@ -21,6 +22,7 @@ export VSCODE_SKIP_NODE_VERSION_CHECK="yes"
while getopts ":ilops" opt; do
case "$opt" in
i)
export ASSETS_REPOSITORY="VSCodium/vscodium-insiders"
export BINARY_NAME="codium-insiders"
export VSCODE_QUALITY="insider"
;;

View File

@@ -20,20 +20,13 @@ while getopts ":ilp" opt; do
export VSCODE_LATEST="yes"
;;
p)
export SKIP_ASSETS="no"
export SKIP_ASSETS="no"
;;
*)
;;
esac
done
if ! exists yarn; then
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs desktop-file-utils
npm install -g yarn
fi
UNAME_ARCH=$( uname -m )
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then

12
dev/cli.sh Executable file
View File

@@ -0,0 +1,12 @@
export CARGO_NET_GIT_FETCH_WITH_CLI="true"
export VSCODE_CLI_APP_NAME="vscodium"
export VSCODE_CLI_BINARY_NAME="codium-server-insiders"
export VSCODE_CLI_DOWNLOAD_URL="https://github.com/VSCodium/vscodium-insiders/releases"
export VSCODE_CLI_QUALITY="insider"
export VSCODE_CLI_UPDATE_URL="https://raw.githubusercontent.com/VSCodium/versions/refs/heads/master"
cargo build --release --target aarch64-apple-darwin --bin=code
cp target/aarch64-apple-darwin/release/code "../../VSCode-darwin-arm64/VSCodium - Insiders.app/Contents/Resources/app/bin/codium-tunnel-insiders"
"../../VSCode-darwin-arm64/VSCodium - Insiders.app/Contents/Resources/app/bin/codium-insiders" serve-web

View File

@@ -38,6 +38,10 @@ else
fi
if [[ -f "${FILE}" ]]; then
if [[ -f "${FILE}.bak" ]]; then
mv -f $FILE{.bak,}
fi
git apply --reject "${FILE}" || true
fi

View File

@@ -19,13 +19,21 @@ check_file() {
shift
done
if [[ -f "${1}.bak" ]]; then
mv -f $1{.bak,}
fi
if [[ -f "${1}" ]]; then
git apply --reject "../patches/helper/settings.patch"
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
echo applying patch: "${1}"
if ! git apply --ignore-whitespace "${1}"; then
echo failed to apply patch "${1}"
git apply --reject "${1}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
@@ -33,8 +41,9 @@ check_file() {
git add .
git diff --staged -U1 > "${1}"
fi
git add .
git reset -q --hard HEAD
git reset -q --hard HEAD~
fi
}
@@ -55,17 +64,23 @@ fi
for ARCH in alpine linux osx windows; do
for FILE in "../patches/${ARCH}/"*.patch; do
if [[ "${FILE}" != *"/arch-"* ]]; then
if [[ "${ARCH}" == "linux" && "${FILE}" == *"/arch-"* ]] || [[ "${ARCH}" == "linux" && "${FILE}" == *"/fix-dependencies.patch" ]] || [[ "${ARCH}" == "windows" && "${FILE}" == *"/cli"* ]]; then
echo "skip ${FILE}"
else
check_file "${FILE}"
fi
done
if [[ "${ARCH}" == "linux" ]]; then
check_file "../patches/linux/arch-0-support.patch"
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch"
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch" "../patches/linux/arch-4-s390x.patch"
check_file "../patches/optional-tree-sitter.patch" "../patches/linux/fix-dependencies.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch"
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch" "../patches/linux/arch-4-s390x.patch"
elif [[ "${ARCH}" == "windows" ]]; then
check_file "../patches/cli.patch" "../patches/windows/cli.patch"
fi
for TARGET in client reh; do

View File

@@ -1,3 +1,5 @@
<!-- order: 0 -->
# Accounts authentication
## GitHub

View File

@@ -1,29 +1,45 @@
<!-- order: 0 -->
# Extensions compatibility
## Partial Compatibility
## Table of Contents
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
> [Since May 2021](https://devblogs.microsoft.com/python/python-in-visual-studio-code-may-2021-release/), Python is using a closed source language server ([Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance))
- [Incompatibility](#incompatibility)
- [Replacements](#replacements)
- [C/C++](#cc)
- [Python](#python)
- [Remote](#remote)
## Incompatibility
## <a id="incompatibility"></a>Incompatibility
Most MS extensions are limited to run on only MS products by their license and by running additional checks in their proprietary code.
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
- [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)
> It's officially unsupported: https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ#vscodium-is-not-officially-supported
## Incompatibility due to licensing
The following extensions are not compatible with VSCodium due to their licensing:
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
- [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
- [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)
- [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit)
- [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)
## Replacements
## <a id="replacements"></a>Replacements
The following extensions are functional replacements for incompatible extensions:
### <a id="cc"></a>C/C++
- [clangd](https://open-vsx.org/extension/llvm-vs-code-extensions/vscode-clangd) for full featured editing (including IntelliSense)
- [Native Debug](https://open-vsx.org/extension/webfreak/debug) for Debugging with GDB + LLDB
Note that there are many working debugging extensions and specialized ones including for microcontrollers.
### <a id="python"></a>Python
- [BasedPyright](https://open-vsx.org/extension/detachhead/basedpyright)
### <a id="remote"></a>Remote Development
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh)
> SSH server must be configured with the setting `AllowTcpForwarding yes`.
- [Open Remote - WSL](https://open-vsx.org/extension/jeanp413/open-remote-wsl)
- [BasedPyright](https://open-vsx.org/extension/detachhead/basedpyright) (open-source alternative to Pylance)

136
docs/extensions.md Normal file
View File

@@ -0,0 +1,136 @@
<!-- order: 15 -->
# Extensions + Marketplace
## Table of Contents
- [Marketplace](#marketplace)
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
- [How to use a different extension gallery](#howto-switch-marketplace)
- [How to self host your own extension gallery](#howto-selfhost-marketplace)
- [Visual Studio Marketplace](#visual-studio-marketplace)
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
- [Proprietary Extensions](#proprietary-extensions)
- [Using the "VSIX Manager" Extension](#vsix-manager)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
## <a id="marketplace"></a>Marketplace
Being a vscode based editor, VSCodium gets additional features by installing Visual Studio Code extensions.
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use Visual Studio Code extensions in non-Microsoft products those need to be installed differently.
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by Visual Studio Code. Since that is a rather new project, you will likely miss some extensions you know from the Visual Studio Marketplace. You have the following options to obtain such missing extensions:
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the Visual Studio Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
## <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
## <a id="howto-switch-marketplace"></a>How to use a different extension gallery
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
You can either use the following environment variables:
- `VSCODE_GALLERY_SERVICE_URL` ***(required)***
- `VSCODE_GALLERY_ITEM_URL` ***(required)***
- `VSCODE_GALLERY_CACHE_URL`
- `VSCODE_GALLERY_CONTROL_URL`
- `VSCODE_GALLERY_EXTENSION_URL_TEMPLATE` ***(required)***
- `VSCODE_GALLERY_RESOURCE_URL_TEMPLATE`
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
- macOS: `~/Library/Application Support/VSCodium`
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
with the content like:
```jsonc
{
"extensionsGallery": {
"serviceUrl": "", // required
"itemUrl": "", // required
"cacheUrl": "",
"controlUrl": "",
"extensionUrlTemplate": "", // required
"resourceUrlTemplate": "",
}
}
```
## <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery.
There are likely other options, but the following were reported to work:
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [Visual Studio Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the Visual Studio Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
## <a id="visual-studio-marketplace"></a>Visual Studio Marketplace
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU) which include:
> Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
So, we can't provide any help if you intend to infringe their terms of use.
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
## <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
## <a id="proprietary-extensions"></a>Proprietary Extensions
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
```jsonc
"extensionAllowedProposedApi": [
// ...
"ms-vscode-remote.vscode-remote-extensionpack",
"ms-vscode-remote.remote-wsl",
// ...
],
```
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
## <a id="vsix-manager"></a>Using the "VSIX Manager" Extension
The [**VSIX Manager**](https://github.com/zokugun/vscode-vsix-manager) extension provides a powerful and user-friendly interface for managing `.vsix` files directly within VSCodium. Its author is the main maintainer of VSCodium ;)
It is particularly beneficial for:
- **Support for Multiple Marketplaces**: Seamlessly install and manage extensions from several marketplaces at the same time, allowing access to a broader range of extensions.
- **Local Files**: Manage a collection of `.vsix` files stored locally.
- **GitHub/Forgejo Release**: Install the extension directly from its GitHub/Forgejo release pages.
- **Fallback Options**
### <a id="use-cases"></a>Use Cases
- Developers working offline can easily manage `.vsix` files.
- Teams can distribute specific versions of extensions across systems.
- Enterprises with restricted environments can maintain control over installed extensions.
- Users can connect to multiple marketplaces and access a wider range of extensions or switch seamlessly between them.
### <a id="marketplace-support"></a>Marketplace Support
The **VSIX Manager** extension supports managing extensions from several marketplaces simultaneously. This feature enables:
- **Access to Diverse Extensions**: Install extensions from different sources like Open VSX or private repositories.
- **Fallback Options**: Ensure extension availability even if one marketplace is temporarily inaccessible.
- **Enterprise Flexibility**: Use private or self-hosted marketplaces alongside public ones to meet security and compliance requirements.
- **Custom Configurations**: Prioritize specific marketplaces for particular needs while keeping access to others.
## [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)

50
docs/getting-started.md Normal file
View File

@@ -0,0 +1,50 @@
<!-- order: 5 -->
# Getting Started with VSCodium
This guide will help you get started with VSCodium.
## Table of Contents
- [Installation](#installation)
- [First Steps](#first-steps)
- [Basic Usage](#basic-usage)
- [Keyboard Shortcuts](#keyboard-shortcuts)
- [Next Steps](#next-steps)
## <a id="installation"></a>Installation
VSCodium can be installed on Windows, macOS, and Linux. Visit the [download page](https://vscodium.com/#install) for installation instructions.
## <a id="first-steps"></a>First Steps
After installing VSCodium, here are some first steps to get started:
1. **Open a folder**: Use File > Open Folder to open your project
2. **Install extensions**: Click on the Extensions icon in the sidebar to browse and install extensions
3. **Configure settings**: Use File > Preferences > Settings to customize your editor
## <a id="basic-usage"></a>Basic Usage
VSCodium works just like Visual Studio Code, with a few differences:
- It uses Open VSX for extensions by default instead of the Visual Studio Marketplace
- It doesn't include Microsoft telemetry or branding
- Some proprietary features may not be available
## <a id="keyboard-shortcuts"></a>Keyboard Shortcuts
Here are some essential keyboard shortcuts to get you started:
- `Ctrl+P` (Windows/Linux) or `Cmd+P` (macOS): Quick Open, Go to File
- `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (macOS): Show Command Palette
- `Ctrl+,` (Windows/Linux) or `Cmd+,` (macOS): User Settings
- `Ctrl+K Ctrl+S` (Windows/Linux) or `Cmd+K Cmd+S` (macOS): Keyboard Shortcuts
## <a id="next-steps"></a>Next Steps
Once you're comfortable with the basics, you might want to:
- Explore the [documentation](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) for more details
- Join the [community](https://github.com/VSCodium/vscodium/discussions) to ask questions and share tips
- Contribute to the [project](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md) if you're interested

View File

@@ -1,3 +1,5 @@
<!-- order: 35 -->
# How to build VSCodium
## Table of Contents
@@ -6,7 +8,8 @@
- [Linux](#dependencies-linux)
- [MacOS](#dependencies-macos)
- [Windows](#dependencies-windows)
- [Build Scripts](#build-scripts)
- [Build for Development](#build-dev)
- [Build for CI/Downstream](#build-ci)
- [Build Snap](#build-snap)
- [Patch Update Process](#patch-update-process)
- [Semi-Automated](#patch-update-process-semiauto)
@@ -14,11 +17,11 @@
## <a id="dependencies"></a>Dependencies
- node 20.14
- yarn
- node 20.18
- jq
- git
- python3 3.11
- rustup
### <a id="dependencies-linux"></a>Linux
@@ -49,7 +52,7 @@ see [the common dependencies](#dependencies)
- [WiX Toolset](http://wixtoolset.org/releases/)
- 'Tools for Native Modules' from the official Node.js installer
## <a id="build-scripts"></a>Build Scripts
## <a id="build-dev"></a>Build for Development
A build helper script can be found at `dev/build.sh`.
@@ -73,6 +76,31 @@ The script `dev/build.sh` provides several flags:
- `-p`: generate the packages/assets/installers
- `-s`: do not retrieve the source code of Visual Studio Code, it won't delete the existing build
## <a id="build-ci"></a>Build for CI/Downstream
Here is the base script to build VSCodium:
```bash
# Export necessary environment variables
export SHOULD_BUILD="yes"
export SHOULD_BUILD_REH="no"
export CI_BUILD="no"
export OS_NAME="linux"
export VSCODE_ARCH="${vscode_arch}"
export VSCODE_QUALITY="stable"
export RELEASE_VERSION="${version}"
. get_repo.sh
. build.sh
```
To go further, you should look at how we build it:
- Linux: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-linux.yml
- macOS: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-macos.yml
- Windows: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-windows.yml
The `./dev/build.sh` script is for development purpose and must be avoided for a packaging purpose.
## <a id="build-snap"></a>Build Snap
```
@@ -97,20 +125,19 @@ review-tools.snap-review --allow-classic codium*.snap
- run `./dev/update_patches.sh`
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- fix all the `*.rej` files
- run `yarn watch`
- run `npm run watch`
- run `./script/code.sh` until everything is ok
- press any key to continue the script `update_patches.sh`
## <a id="patch-update-process-manual"></a>Manual
- run `./dev/build.sh`, if a patch is failing then,
- open `vscode` directory in **VSCodium**
- revert all changes
- run `git apply --reject ../patches/<name>.patch`
- run `./dev/patch.sh <name>.patch` where `<name>.patch` is the failed patch
- open `vscode` directory in a new **VSCodium**'s window
- fix all the `*.rej` files
- run `yarn watch`
- run `npm run watch`
- run `./script/code.sh` until everything is ok
- run `git diff > ../patches/<name>.patch`
- go back to the command line running `./dev/patch.sh`, press `enter` to validate the changes and it will update the patch
### <a id="icons"></a>icons/build_icons.sh

View File

@@ -1,227 +1,43 @@
# More Info
# Documentation
## Table of Contents
- [Getting all the Telemetry Out](#disable-telemetry)
- [Replacements to Microsoft Online Services](#replacement-online-services)
- [Extensions + Marketplace](#extensions-marketplace)
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
- [How to use a different extension gallery](#howto-switch-marketplace)
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
- [Visual Studio Marketplace](#visual-studio-marketplace)
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
- [Proprietary Extensions](#proprietary-extensions)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
- [Migrating from Visual Studio Code to VSCodium](#migrating)
- [Sign in with GitHub](#signin-github)
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
- [How do I run VSCodium in portable mode?](#portable)
- [How do I fix the default file manager?](#file-manager)
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
- [How do I open VSCodium from the terminal?](#terminal-support)
- [From Linux .tar.gz](#from-linux-targz)
- [Getting Started with VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md)
- [Installation](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#installation)
- [First Steps](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#first-steps)
- [Basic Usage](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#basic-usage)
- [Keyboard Shortcuts](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#keyboard-shortcuts)
- [Next Steps](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#next-steps)
- [Getting all the Telemetry Out](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md)
- [Telemetry in VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#telemetry)
- [Replacements to Microsoft Online Services](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#replacements)
- [Checking for Telemetry](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#checking)
- [Additional Privacy Settings](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#additional-settings)
- [VSCodium Announcements](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#announcements)
- [Malicious & Deprecated Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#malicious-extensions)
- [Extensions and Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md)
- [Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#marketplace)
- [How to use the OpenVSX Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-openvsx-marketplace)
- [How to use a different extension gallery](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-switch-marketplace)
- [How to self host your own extension gallery](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-selfhost-marketplace)
- [Visual Studio Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#visual-studio-marketplace)
- [Proprietary Debugging Tools](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools)
- [Proprietary Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-extensions)
- [Using the "VSIX Manager" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#vsix-manager)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
- [Migration](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md)
- [Manual Migration from Visual Studio Code to VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#manual-migration)
- [Semi-Automatic Migration with "Sync Settings" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#semi-automatic-migration)
- [Usage](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md)
- [Sign in with GitHub](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#signin-github)
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
- [How do I run VSCodium in portable mode?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#portable)
- [How do I fix the default file manager?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#file-manager)
- [How do I press and hold a key and have it repeat in VSCodium?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#press-and-hold)
- [How do I open VSCodium from the terminal?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#terminal-support)
- [Troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md)
- [Contributing](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
We do however set the `telemetry.enableTelemetry` setting's default value to `false`. You can see those by viewing your VSCodium `settings.json` and searching for `telemetry`.
The instructions [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting) help with explaining and toggling telemetry.
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
- Extensions auto check for updates and auto install updates
- Searches within the app are sent to an online service for "natural language processing"
- Updates to the app are fetched in the background
These can all be disabled.
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
### <a id="replacement-online-services"></a>Replacements to Microsoft Online Services
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L36) in `product.json` to that of VSCodium's own small [update server](https://github.com/VSCodium/update-api), so enabling that setting won't actually result in any calls to Microsoft servers.
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L42) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft, either.
## <a id="extensions-marketplace"></a>Extensions + Marketplace
Being a vscode based editor, VSCodium gets additional features by installing VS Code extensions.
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use VS Code extensions in non-Microsoft products those need to be installed differently.
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
You can either use the following environment variables:
- `VSCODE_GALLERY_SERVICE_URL` ***(required)***
- `VSCODE_GALLERY_ITEM_URL` ***(required)***
- `VSCODE_GALLERY_CACHE_URL`
- `VSCODE_GALLERY_CONTROL_URL`
- `VSCODE_GALLERY_EXTENSION_URL_TEMPLATE` ***(required)***
- `VSCODE_GALLERY_RESOURCE_URL_TEMPLATE`
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
- macOS: `~/Library/Application Support/VSCodium`
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
with the content like:
```jsonc
{
"extensionsGallery": {
"serviceUrl": "", // required
"itemUrl": "", // required
"cacheUrl": "",
"controlUrl": "",
"extensionUrlTemplate": "", // required
"resourceUrlTemplate": "",
}
}
```
### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery.
There are likely other options, but the following were reported to work:
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
### <a id="visual-studio-marketplace"></a>Visual Studio Marketplace
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU) which include:
> Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
So, we can't provide any help if you intend to infringe their terms of use.
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
### <a id="proprietary-extensions"></a>Proprietary Extensions
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
```jsonc
"extensionAllowedProposedApi": [
// ...
"ms-vscode-remote.vscode-remote-extensionpack",
"ms-vscode-remote.remote-wsl",
// ...
],
```
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
## <a id="migrating"></a>Migrating from Visual Studio Code to VSCodium
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can reinstall your extensions from the Marketplace in VSCodium, or copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
- __Windows__: `%APPDATA%\Code\User`
- __macOS__: `$HOME/Library/Application Support/Code/User`
- __Linux__: `$HOME/.config/Code/User`
You can copy these files to the VSCodium user settings folder:
- __Windows__: `%APPDATA%\VSCodium\User`
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
- __Linux__: `$HOME/.config/VSCodium/User`
To copy your settings manually:
- In Visual Studio Code, go to Settings (Command+, if on a Mac)
- Click the three dots `...` and choose 'Open settings.json'
- Copy the contents of settings.json into the same place in VSCodium
## <a id="signin-github"></a>Sign in with GitHub
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
Select the scopes dependending on the extension which needs access to GitHub. (GitLens requires the `repo` scope.)
### Linux
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
## <a id="portable"></a>How do I run VSCodium in portable mode?
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
- **Windows** / **Linux** : the instructions can be followed as written.
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
In some cases, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
```
[Default Applications]
inode/directory=org.gnome.Nautilus.desktop;
```
You can find your regular file manager with the command:
```
> grep directory /usr/share/applications/mimeinfo.cache
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
```
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
```bash
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
```
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
For macOS and Windows:
- Go to the command palette (View | Command Palette...)
- Choose `Shell command: Install 'codium' command in PATH`.
![](https://user-images.githubusercontent.com/2707340/60140295-18338a00-9766-11e9-8fda-b525b6f15c13.png)
This allows you to open files or directories in VSCodium directly from your terminal:
```bash
~/in-my-project $ codium . # open this directory
~/in-my-project $ codium file.txt # open this file
```
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
### <a id="from-linux-targz"></a>From Linux .tar.gz
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.
- [Linux](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#linux)
- [Other Resources](https://github.com/VSCodium/vscodium/blob/master/docs/others.md)
- [What are reh and reh-web archives?](https://github.com/VSCodium/vscodium/blob/master/docs/others.md#reh)
- [Contributing Guidelines](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
- [Building VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)

54
docs/migration.md Normal file
View File

@@ -0,0 +1,54 @@
<!-- order: 20 -->
# Migration
## Table of Contents
- [Manual Migration from Visual Studio Code to VSCodium](#manual-migration)
- [Semi-Automatic Migration with "Sync Settings" Extension](#semi-automatic-migration)
## <a id="manual-migration"></a>Manual Migration from Visual Studio Code to VSCodium
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
- __Windows__: `%APPDATA%\Code\User`
- __macOS__: `$HOME/Library/Application Support/Code/User`
- __Linux__: `$HOME/.config/Code/User`
You can copy these files to the VSCodium user settings folder:
- __Windows__: `%APPDATA%\VSCodium\User`
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
- __Linux__: `$HOME/.config/VSCodium/User`
To copy your settings manually:
- In Visual Studio Code, go to Settings (`Meta+,`)
- Click the three dots `...` and choose 'Open settings.json'
- Copy the contents of settings.json into the same place in VSCodium
## <a id="semi-automatic-migration"></a>Semi-Automatic Migration with "Sync Settings" Extension
The [**Sync Settings**](https://github.com/zokugun/vscode-sync-settings) extension can simplify the migration process by enabling synchronization of settings, keybindings, extensions, and more between Visual Studio Code and VSCodium. Its author is the main maintainer of VSCodium ;)
The extension is available in the Visual Studio Marketplace, OpenVSX or directly in its GitHub repository.
### Steps:
1. Install the **Sync Settings** extension in both Visual Studio Code and VSCodium.
2. Configure the extension on both Visual Studio Code and VSCodium:
- Open Command Palette (`Meta+Shift+P`).
- Search for `Sync Settings: Open the repository settings` and execute the command.
- Configure the repository
3. Export your current settings from Visual Studio Code:
- Open Command Palette (`Meta+Shift+P`).
- Search for `Sync Settings: Upload (user -> repository)` and execute the command.
4. Import the settings into VSCodium:
- I recommend the setting `"syncSettings.openOutputOnActivity": true,`.
- Open Command Palette (`Meta+Shift+P`).
- Search for `Sync Settings: Download (repository -> user)` and execute the command.
- Wait for all the extensions to be downloaded and installed (follow logs in the `Output` panel) before restarting VSCodium.
This method ensures that all supported configurations are seamlessly transferred.

12
docs/others.md Normal file
View File

@@ -0,0 +1,12 @@
<!-- order: 30 -->
# Other Resources
## Table of Contents
- [What are reh and reh-web archives?](#reh)
## <a id="reh"></a>What are reh and reh-web archives?
- Remote Host (`reh`) is the server component for remote ssh/wsl which runs it on a "remote" computer and makes that remote computer accessible via VSCodium.
- Web Host (`reh-web`) is the server component of the command `codium serve-web` which runs it locally and makes VSCodium accessible via a browser.

81
docs/telemetry.md Normal file
View File

@@ -0,0 +1,81 @@
<!-- order: 10 -->
# Getting all telemetry out
This page explains how VSCodium handles telemetry and how it enhances your privacy.
## Table of contents
- [Telemetry in VSCodium](#telemetry)
- [Replacements to Microsoft Online Services](#replacements)
- [Checking for telemetry](#checking)
- [VSCodium announcements](#announcements)
- [Malicious & deprecated extensions](#malicious-extensions)
## <a id="telemetry"></a>Telemetry in VSCodium
Even though we do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry, Microsoft still can track usage by default depending on your settings.
We disable all the following telemetry-related settings by default to enhance your privacy:
```
telemetry.telemetryLevel
telemetry.enableCrashReporter
telemetry.enableTelemetry
telemetry.editStats.enabled
workbench.enableExperiments
workbench.settings.enableNaturalLanguageSearch
workbench.commandPalette.experimental.enableNaturalLanguageSearch
```
It is also recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). You can use the search filter `@tag:usesOnlineServices` to show such settings and review what to change.
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__
For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft. Be sure to check each extension's settings page to disable their telemetry if applicable.
### Update services
By default, the app periodically fetches connections to check for the latest version available to download and install.
Extensions are also checked for updates automatically from time to time.
If you want to prevent such behaviors, modify the following preferences:
For the app itself:
- `update.mode` -> `manual` (or `none`)
- `update.enableWindowsBackgroundUpdates` -> `false` (only applicable for Microsoft Windows)
For extensions:
- `extensions.autoUpdate` -> `false`
- `extensions.autoCheckUpdates` -> `false`
*Note: on Linux, the app update service is disabled completely at build-time even if the `update.mode` preference is configured. This is because users will more likely use their package managers to update the app rather than updating via the app itself.*
### Feedback telemetry
By default, we keep the preference `telemetry.feedback.enabled` enabled. It's used to allow the button `Report Issue...` to be used on the app depending on the context. It does not send any data by having it enabled (other options already cover it). If you want, you can disable this behavior by toggling the preference value.
## <a id="replacements"></a>Replacements to Microsoft Online Services
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L132-L133) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to the Microsoft online service.
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L119) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft either.
## <a id="checking"></a>Checking for telemetry
If you want to verify that no telemetry is being sent, you can use network monitoring tools like:
- Wireshark
- Little Snitch (macOS)
- GlassWire (Windows)
Look for connections to Microsoft domains and telemetry endpoints.
## <a id="announcements"></a>VSCodium anouncements
The welcome page in VSCodium displays announcements that are fetched via the internet from the project's GitHub repository.
If you prefer to disable this feature, you can disable the preference `workbench.welcomePage.extraAnnouncements`.
## <a id="malicious-extensions"></a>Malicious & deprecated extensions
The definitions for malicious and deprecated extensions are dynamically loaded from the following URL:
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json
If you prefer to avoid any external connections, you can disable the preference `extensions.excludeUnsafes`.
However, this is not recommended as it may reduce the safety of your environment.

View File

@@ -1,3 +1,5 @@
<!-- order: 25 -->
# Troubleshooting
## Table of Contents
@@ -8,14 +10,10 @@
- [Global menu workaround for KDE](#linux-kde-global-menu)
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
- [Remote SSH doesn't work](#linux-remote-ssh)
- [macOS](#macos)
- [App can't be opened because Apple cannot check it for malicious software](#macos-unidentified-developer)
- ["VSCodium.app" is damaged and cant be opened. You should move it to the Bin](#macos-quarantine)
## <a id="linux"></a>Linux
#### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
The following command should help:
@@ -25,7 +23,7 @@ rm -rf ~/snap/codium/common/.cache
fc-cache -r
```
#### <a id="linux-rendering-glitches"></a>*Text and/or the entire interface not appearing*
### <a id="linux-rendering-glitches"></a>*Text and/or the entire interface not appearing*
You have likely encountered [a bug in Chromium and Electron](microsoft/vscode#190437) when compiling Mesa shaders, which has affected all Visual Studio Code and VSCodium versions for Linux distributions since 1.82. The current workaround (see microsoft/vscode#190437) is to delete the GPU cache as follows:
@@ -33,7 +31,7 @@ You have likely encountered [a bug in Chromium and Electron](microsoft/vscode#19
rm -rf ~/.config/VSCodium/GPUCache
```
#### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
Install these packages on Fedora:
@@ -45,7 +43,7 @@ On Ubuntu this package is called `libdbusmenu-glib4`.
Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/91)
#### <a id="linux-flatpak-most-common-issues"></a>*Flatpak most common issues*
### <a id="linux-flatpak-most-common-issues"></a>*Flatpak most common issues*
- blurry screen with HiDPI on wayland run:
```bash
@@ -65,26 +63,10 @@ Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/
- If you have any other problems with the flatpak package try to look on the [FAQ](https://github.com/flathub/com.vscodium.codium?tab=readme-ov-file#faq) maybe the solution is already there or open an [issue](https://github.com/flathub/com.vscodium.codium/issues).
##### <a id="linux-remote-ssh"></a>*Remote SSH doesn't work*
### <a id="linux-remote-ssh"></a>*Remote SSH doesn't work*
Use the VSCodium's compatible extension [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh).
On the server, in the `sshd` config, `AllowTcpForwarding` need to be set to `yes`.
It might requires additional dependeincies due to the OS/distro (alpine).
## <a id="macos"></a>macOS
Since the App is signed with a self-signed certificate, on the first launch, you might see the following messages:
#### <a id="macos-unidentified-developer"></a>*App can't be opened because Apple cannot check it for malicious software*
You can right-click the App and choose `Open`.
#### <a id="macos-quarantine"></a>*"VSCodium.app" is damaged and cant be opened. You should move it to the Bin.*
The following command will remove the quarantine attribute.
```
xattr -r -d com.apple.quarantine /Applications/VSCodium.app
```
It might requires additional dependencies due to the OS/distro (alpine).

76
docs/usage.md Normal file
View File

@@ -0,0 +1,76 @@
<!-- order: 25 -->
# Usage
## Table of Contents
- [Sign in with GitHub](#signin-github)
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
- [How do I run VSCodium in portable mode?](#portable)
- [How do I fix the default file manager?](#file-manager)
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
- [How do I open VSCodium from the terminal?](#terminal-support)
- [From Linux .tar.gz](#from-linux-targz)
## <a id="signin-github"></a>Sign in with GitHub
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
Select the scopes dependending on the extension which needs access to GitHub. (GitLens requires the `repo` scope.)
### Linux
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
## <a id="portable"></a>How do I run VSCodium in portable mode?
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
- **Windows** / **Linux** : the instructions can be followed as written.
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
In some cases, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
```
[Default Applications]
inode/directory=org.gnome.Nautilus.desktop;
```
You can find your regular file manager with the command:
```
> grep directory /usr/share/applications/mimeinfo.cache
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
```
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
```bash
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
```
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
For macOS and Windows:
- Go to the command palette (View | Command Palette...)
- Choose `Shell command: Install 'codium' command in PATH`.
![](https://user-images.githubusercontent.com/2707340/60140295-18338a00-9766-11e9-8fda-b525b6f15c13.png)
This allows you to open files or directories in VSCodium directly from your terminal:
```bash
~/in-my-project $ codium . # open this directory
~/in-my-project $ codium file.txt # open this file
```
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
### <a id="from-linux-targz"></a>From Linux .tar.gz
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.

View File

@@ -27,16 +27,16 @@ if [[ -z "${RELEASE_VERSION}" ]]; then
fi
fi
date=$( date +%Y%j )
TIME_PATCH=$( printf "%04d" $(($(date +%-j) * 24 + $(date +%-H))) )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
RELEASE_VERSION="${MS_TAG}${TIME_PATCH}-insider"
else
RELEASE_VERSION="${MS_TAG}.${date: -5}"
RELEASE_VERSION="${MS_TAG}${TIME_PATCH}"
fi
else
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+-insider$ ]];
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5])[0-9]+-insider$ ]];
then
MS_TAG="${BASH_REMATCH[1]}"
else
@@ -44,7 +44,7 @@ else
exit 1
fi
else
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+$ ]];
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5])[0-9]+$ ]];
then
MS_TAG="${BASH_REMATCH[1]}"
else
@@ -80,7 +80,7 @@ elif [[ -z "${MS_COMMIT}" ]]; then
if [[ -z "${REFERENCE}" ]]; then
echo "Error: The following tag can't be found: ${MS_TAG}"
exit 1
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-5])$ ]]; then
MS_COMMIT="${BASH_REMATCH[1]}"
MS_TAG="${BASH_REMATCH[2]}"
else

View File

@@ -6,20 +6,22 @@ set -e
# DEBUG
# set -o xtrace
QUALITY="stable"
COLOR="blue1"
while getopts ":i" opt; do
case "$opt" in
i)
export QUALITY="insider"
export COLOR="orange1"
QUALITY="insider"
[[ -z "${COLOR}" ]] && COLOR="orange1"
;;
*)
;;
esac
done
[[ -z "${COLOR}" ]] && COLOR="blue1"
[[ -z "${QUALITY}" ]] && QUALITY="stable"
[[ -z "${SRC_PREFIX}" ]] && SRC_PREFIX=""
[[ -z "${VSCODE_PREFIX}" ]] && VSCODE_PREFIX=""
check_programs() { # {{{
for arg in "$@"; do
if ! command -v "${arg}" &> /dev/null; then
@@ -31,27 +33,47 @@ check_programs() { # {{{
check_programs "icns2png" "composite" "convert" "png2icns" "icotool" "rsvg-convert" "sed"
. ./utils.sh
. "./${VSCODE_PREFIX}utils.sh"
SRC_PREFIX=""
VSCODE_PREFIX=""
if ! declare -F load_linux_png &>/dev/null; then
load_linux_png() {
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "$1"
}
fi
if ! declare -F load_windows_ico &>/dev/null; then
load_windows_ico() {
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "$1"
}
fi
build_darwin_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]]; then
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center "icons/template_macos.png" "code_1024.png"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/darwin"
if [[ "$1" == "no-template" ]]; then
rsvg-convert -w 1024 -h 1024 "icons/${QUALITY}/codium_cnl.svg" -o "code_1024.png"
else
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center "${VSCODE_PREFIX}icons/template_macos.png" "code_1024.png"
fi
convert "code_1024.png" -resize 512x512 code_512.png
convert "code_1024.png" -resize 256x256 code_256.png
convert "code_1024.png" -resize 128x128 code_128.png
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
rm code_1024.png code_512.png code_256.png code_128.png code_logo.png
rm -f code_1024.png code_512.png code_256.png code_128.png code_logo.png
fi
} # }}}
build_darwin_types() { # {{{
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
if [[ "$1" == "no-border" ]]; then
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
else
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
fi
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*; do
if [[ -f "${file}" ]]; then
@@ -60,7 +82,7 @@ build_darwin_types() { # {{{
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]]; then
icns2png -x -s 512x512 "${file}" -o .
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
composite -blend 100% -geometry +323+365 "${VSCODE_PREFIX}icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
composite -geometry +359+374 "code_logo.png" "${name}.png" "${name}.png"
convert "${name}.png" -resize 256x256 "${name}_256.png"
@@ -77,30 +99,52 @@ build_darwin_types() { # {{{
build_linux_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux"
load_linux_png "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
fi
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]]; then
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm"
fi
} # }}}
build_media() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]]; then
mkdir -p "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media"
cp "icons/${QUALITY}/codium_clt.svg" "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
gsed -i 's|width="100" height="100"|width="1024" height="1024"|' "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
fi
} # }}}
build_windows_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
build_server() { # {{{
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/server"
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico" ]]; then
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico"
fi
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png" ]]; then
convert -size "192x192" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png"
fi
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-512.png" ]]; then
convert -size "512x512" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/server/code-512.png"
fi
} # }}}
build_windows_type() {
build_windows_main() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]]; then
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
fi
} # }}}
build_windows_type() { # {{{
local FILE_PATH IMG_SIZE IMG_BG_COLOR LOGO_SIZE GRAVITY
FILE_PATH="$1"
@@ -118,12 +162,16 @@ build_windows_type() {
rsvg-convert -w "${LOGO_SIZE}" -h "${LOGO_SIZE}" "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
if [[ "${GRAVITY}" == "center" ]]; then
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
else
composite -gravity NorthWest -geometry "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
fi
fi
}
} # }}}
build_windows_types() { # {{{
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}"
rsvg-convert -b "#F5F6F7" -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
@@ -134,11 +182,11 @@ build_windows_types() { # {{{
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]]; then
icotool -x -w 256 "${file}"
composite -geometry +150+185 "code_logo.png" "${name}_9_256x256x32.png" "${name}.png"
composite -geometry +150+185 "code_logo.png" "${name}_1_256x256x32.png" "${name}.png"
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico"
rm "${name}_9_256x256x32.png" "${name}.png"
rm "${name}_1_256x256x32.png" "${name}.png"
fi
fi
done
@@ -174,4 +222,5 @@ if [[ "${0}" == "${BASH_SOURCE[0]}" ]]; then
build_windows_types
build_media
build_server
fi

View File

@@ -1,16 +0,0 @@
#!/usr/bin/env bash
set -ex
GH_ARCH="amd64"
TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" | jq --raw-output '.tag_name' )
VERSION=${TAG#v}
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
gh --version

View File

@@ -1,18 +1,18 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 7d58861..cefb8ad 100644
index c1d64c0..3e60e80 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -306,3 +306,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -321,3 +321,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), version, release }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, release, serverDownloadUrlTemplate: 'https://github.com/!!GH_REPO_PATH!!-insiders/releases/download/${version}.${release}-insider/!!APP_NAME_LC!!-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }))
- .pipe(json({ commit, date: readISODate('out-build'), version }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 4af4067..1bac2cc 100644
index 7046ee0..9aa7bb0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -261,3 +261,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -288,3 +288,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version, release }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, release, serverDownloadUrlTemplate: 'https://github.com/!!GH_REPO_PATH!!-insiders/releases/download/${version}.${release}-insider/!!APP_NAME_LC!!-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }))
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
.pipe(es.through(function (file) {

View File

@@ -19,5 +19,5 @@ index e12a33e..9300d62 100644
+
log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageName}`);
- const contents = cp.execSync(`docker run --rm ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
+ const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
+ const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 200 * 1024 * 1024, encoding: 'buffer' });
return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]);

View File

@@ -1,35 +1,23 @@
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 2686509..4fedec2 100644
index 7046ee0..faca888 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -289,7 +289,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
} else if (platform === 'darwin') {
const shortcut = gulp.src('resources/darwin/bin/code.sh')
@@ -376,3 +376,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
.pipe(replace('@@APPNAME@@', product.applicationName))
- .pipe(rename('bin/code'));
+ .pipe(rename('bin/' + product.applicationName));
all = es.merge(all, shortcut);
}
const policyDest = gulp.src('.build/policies/darwin/**', { base: '.build/policies/darwin' })
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
index f7bd477..a489ae4 100644
index 6324e98..3d2fba3 100644
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
@@ -351,7 +351,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
}
@@ -445,3 +445,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
- const target = resolve(this.environmentMainService.appRoot, 'bin', 'code');
+ const target = resolve(this.environmentMainService.appRoot, 'bin', this.productService.applicationName);
const source = `/usr/local/bin/${this.productService.applicationName}`;
// Ensure source exists
@@ -545,7 +545,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
// macOS
@@ -680,3 +680,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
if (this.environmentMainService.isBuilt) {
- return join(this.environmentMainService.appRoot, 'bin', 'code');
+ return join(this.environmentMainService.appRoot, 'bin', `${this.productService.applicationName}`);
}
return join(this.environmentMainService.appRoot, 'scripts', 'code-cli.sh');

File diff suppressed because it is too large Load Diff

9
patches/chat.patch Normal file
View File

@@ -0,0 +1,9 @@
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
index 549cfc6..9632509 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -171,3 +171,3 @@ configurationRegistry.registerConfiguration({
markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control chat (requires {0}).", '`#window.commandCenter#`'),
- default: true
+ default: false
},

311
patches/cli.patch Normal file
View File

@@ -0,0 +1,311 @@
diff --git a/cli/src/commands/serve_web.rs b/cli/src/commands/serve_web.rs
index d3f7db8..988024b 100644
--- a/cli/src/commands/serve_web.rs
+++ b/cli/src/commands/serve_web.rs
@@ -756,3 +756,3 @@ impl ConnectionManager {
let dir_fut = cache.create(&args.release.commit, |target_dir| async move {
- info!(log_for_fut, "Downloading server {}", release_for_fut.commit);
+ info!(log_for_fut, "Downloading server {}/{}", release_for_fut.commit, release_for_fut.name);
let tmpdir = tempfile::tempdir().unwrap();
@@ -784,3 +784,3 @@ impl ConnectionManager {
.join("bin")
- .join(args.release.quality.server_entrypoint());
+ .join(args.release.quality.server_entrypoint().unwrap());
diff --git a/cli/src/constants.rs b/cli/src/constants.rs
index 1e277a8..97f17d3 100644
--- a/cli/src/constants.rs
+++ b/cli/src/constants.rs
@@ -35,3 +35,6 @@ pub const DOCUMENTATION_URL: Option<&'static str> = option_env!("VSCODE_CLI_DOCU
pub const VSCODE_CLI_COMMIT: Option<&'static str> = option_env!("VSCODE_CLI_COMMIT");
-pub const VSCODE_CLI_UPDATE_ENDPOINT: Option<&'static str> = option_env!("VSCODE_CLI_UPDATE_URL");
+pub const VSCODE_CLI_UPDATE_ENDPOINT: Option<&'static str> = option_env!("VSCODE_CLI_UPDATE_ENDPOINT");
+pub const VSCODE_CLI_DOWNLOAD_ENDPOINT: Option<&'static str> = option_env!("VSCODE_CLI_DOWNLOAD_ENDPOINT");
+pub const VSCODE_CLI_APP_NAME: Option<&'static str> = option_env!("VSCODE_CLI_APP_NAME");
+pub const VSCODE_CLI_BINARY_NAME: Option<&'static str> = option_env!("VSCODE_CLI_BINARY_NAME");
diff --git a/cli/src/options.rs b/cli/src/options.rs
index 7d152c0..c0f2fb2 100644
--- a/cli/src/options.rs
+++ b/cli/src/options.rs
@@ -9,3 +9,3 @@ use serde::{Deserialize, Serialize};
-use crate::constants::SERVER_NAME_MAP;
+use crate::{constants::VSCODE_CLI_BINARY_NAME, util::errors::CodeError};
@@ -21,2 +21,6 @@ pub enum Quality {
+fn get_binary_name() -> Result<&'static str, CodeError> {
+ VSCODE_CLI_BINARY_NAME.ok_or_else(|| CodeError::UpdatesNotConfigured("no binary name"))
+}
+
impl Quality {
@@ -41,9 +45,4 @@ impl Quality {
/// Server application name
- pub fn server_entrypoint(&self) -> String {
- let mut server_name = SERVER_NAME_MAP
- .as_ref()
- .and_then(|m| m.get(self))
- .map(|s| s.server_application_name.as_str())
- .unwrap_or("code-server-oss")
- .to_string();
+ pub fn server_entrypoint(&self) -> Result<String, CodeError> {
+ let mut server_name = get_binary_name()?.to_string();
@@ -53,3 +52,3 @@ impl Quality {
- server_name
+ Ok(server_name)
}
diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs
index cf00bc4..b564330 100644
--- a/cli/src/tunnels/code_server.rs
+++ b/cli/src/tunnels/code_server.rs
@@ -457,3 +457,3 @@ impl<'a> ServerBuilder<'a> {
.join("bin")
- .join(self.server_params.release.quality.server_entrypoint()),
+ .join(self.server_params.release.quality.server_entrypoint().unwrap()),
&["--version"],
diff --git a/cli/src/tunnels/paths.rs b/cli/src/tunnels/paths.rs
index 3d7d718..98529bc 100644
--- a/cli/src/tunnels/paths.rs
+++ b/cli/src/tunnels/paths.rs
@@ -100,3 +100,3 @@ impl InstalledServer {
.join("bin")
- .join(self.quality.server_entrypoint())
+ .join(self.quality.server_entrypoint().unwrap())
},
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 9033914..a39bbf7 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -10,3 +10,3 @@ use serde::{Deserialize, Serialize};
use crate::{
- constants::VSCODE_CLI_UPDATE_ENDPOINT,
+ constants::{VSCODE_CLI_APP_NAME, VSCODE_CLI_DOWNLOAD_ENDPOINT, VSCODE_CLI_UPDATE_ENDPOINT},
debug, log, options, spanf,
@@ -18,3 +18,3 @@ use crate::{
zipper,
- },
+ }
};
@@ -58,4 +58,12 @@ fn quality_download_segment(quality: options::Quality) -> &'static str {
+fn get_app_name() -> Result<&'static str, CodeError> {
+ VSCODE_CLI_APP_NAME.ok_or_else(|| CodeError::UpdatesNotConfigured("no app name"))
+}
+
+fn get_download_endpoint() -> Result<&'static str, CodeError> {
+ VSCODE_CLI_DOWNLOAD_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no download url"))
+}
+
fn get_update_endpoint() -> Result<&'static str, CodeError> {
- VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no service url"))
+ VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no update url"))
}
@@ -67,3 +75,4 @@ impl UpdateService {
- pub async fn get_release_by_semver_version(
+ /// Gets the latest commit for the target of the given quality.
+ pub async fn get_latest_commit(
&self,
@@ -72,14 +81,10 @@ impl UpdateService {
quality: options::Quality,
- version: &str,
) -> Result<Release, AnyError> {
let update_endpoint = get_update_endpoint()?;
- let download_segment = target
- .download_segment(platform)
- .ok_or_else(|| CodeError::UnsupportedPlatform(platform.to_string()))?;
let download_url = format!(
- "{}/api/versions/{}/{}/{}",
+ "{}/{}/{}/{}/latest.json",
update_endpoint,
- version,
- download_segment,
quality_download_segment(quality),
+ platform.os(),
+ platform.arch(),
);
@@ -97,3 +102,3 @@ impl UpdateService {
let res = response.json::<UpdateServerVersion>().await?;
- debug!(self.log, "Resolved version {} to {}", version, res.version);
+ debug!(self.log, "Resolved quality {} to {}", quality, res.version);
@@ -108,40 +113,17 @@ impl UpdateService {
- /// Gets the latest commit for the target of the given quality.
- pub async fn get_latest_commit(
- &self,
- platform: Platform,
- target: TargetKind,
- quality: options::Quality,
- ) -> Result<Release, AnyError> {
- let update_endpoint = get_update_endpoint()?;
- let download_segment = target
- .download_segment(platform)
- .ok_or_else(|| CodeError::UnsupportedPlatform(platform.to_string()))?;
+ pub fn get_download_url(&self, release: &Release) -> Result<String, AnyError> {
+ let app_name = get_app_name()?;
+ let download_endpoint = get_download_endpoint()?;
+
let download_url = format!(
- "{}/api/latest/{}/{}",
- update_endpoint,
- download_segment,
- quality_download_segment(quality),
+ "{}/download/{}/{}-reh-web-{}-{}-{}.tar.gz",
+ download_endpoint,
+ release.name,
+ app_name,
+ release.platform.os(),
+ release.platform.arch(),
+ release.name,
);
- let mut response = spanf!(
- self.log,
- self.log.span("server.version.resolve"),
- self.client.make_request("GET", download_url)
- )?;
-
- if !response.status_code.is_success() {
- return Err(response.into_err().await.into());
- }
-
- let res = response.json::<UpdateServerVersion>().await?;
- debug!(self.log, "Resolved quality {} to {}", quality, res.version);
-
- Ok(Release {
- target,
- platform,
- quality,
- name: res.name,
- commit: res.version,
- })
+ Ok(download_url)
}
@@ -150,15 +132,3 @@ impl UpdateService {
pub async fn get_download_stream(&self, release: &Release) -> Result<SimpleResponse, AnyError> {
- let update_endpoint = get_update_endpoint()?;
- let download_segment = release
- .target
- .download_segment(release.platform)
- .ok_or_else(|| CodeError::UnsupportedPlatform(release.platform.to_string()))?;
-
- let download_url = format!(
- "{}/commit:{}/{}/{}",
- update_endpoint,
- release.commit,
- download_segment,
- quality_download_segment(release.quality),
- );
+ let download_url = self.get_download_url(release)?;
@@ -196,13 +166,2 @@ pub enum TargetKind {
-impl TargetKind {
- fn download_segment(&self, platform: Platform) -> Option<String> {
- match *self {
- TargetKind::Server => Some(platform.headless()),
- TargetKind::Archive => platform.archive(),
- TargetKind::Web => Some(platform.web()),
- TargetKind::Cli => Some(platform.cli()),
- }
- }
-}
-
#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)]
@@ -225,30 +184,17 @@ pub enum Platform {
impl Platform {
- pub fn archive(&self) -> Option<String> {
- match self {
- Platform::LinuxX64 => Some("linux-x64".to_owned()),
- Platform::LinuxARM64 => Some("linux-arm64".to_owned()),
- Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
- Platform::DarwinX64 => Some("darwin".to_owned()),
- Platform::DarwinARM64 => Some("darwin-arm64".to_owned()),
- Platform::WindowsX64 => Some("win32-x64-archive".to_owned()),
- Platform::WindowsX86 => Some("win32-archive".to_owned()),
- Platform::WindowsARM64 => Some("win32-arm64-archive".to_owned()),
- _ => None,
- }
- }
- pub fn headless(&self) -> String {
+ pub fn arch(&self) -> String {
match self {
- Platform::LinuxAlpineARM64 => "server-alpine-arm64",
- Platform::LinuxAlpineX64 => "server-linux-alpine",
- Platform::LinuxX64 => "server-linux-x64",
- Platform::LinuxX64Legacy => "server-linux-legacy-x64",
- Platform::LinuxARM64 => "server-linux-arm64",
- Platform::LinuxARM64Legacy => "server-linux-legacy-arm64",
- Platform::LinuxARM32 => "server-linux-armhf",
- Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
- Platform::DarwinX64 => "server-darwin",
- Platform::DarwinARM64 => "server-darwin-arm64",
- Platform::WindowsX64 => "server-win32-x64",
- Platform::WindowsX86 => "server-win32",
- Platform::WindowsARM64 => "server-win32-arm64",
+ Platform::LinuxAlpineARM64 => "arm64",
+ Platform::LinuxAlpineX64 => "x64",
+ Platform::LinuxX64 => "x64",
+ Platform::LinuxX64Legacy => "x64",
+ Platform::LinuxARM64 => "arm64",
+ Platform::LinuxARM64Legacy => "arm64",
+ Platform::LinuxARM32 => "armhf",
+ Platform::LinuxARM32Legacy => "armhf",
+ Platform::DarwinX64 => "x64",
+ Platform::DarwinARM64 => "arm64",
+ Platform::WindowsX64 => "x64",
+ Platform::WindowsX86 => "ia42",
+ Platform::WindowsARM64 => "arm64",
}
@@ -257,17 +203,17 @@ impl Platform {
- pub fn cli(&self) -> String {
+ pub fn os(&self) -> String {
match self {
- Platform::LinuxAlpineARM64 => "cli-alpine-arm64",
- Platform::LinuxAlpineX64 => "cli-alpine-x64",
- Platform::LinuxX64 => "cli-linux-x64",
- Platform::LinuxX64Legacy => "cli-linux-x64",
- Platform::LinuxARM64 => "cli-linux-arm64",
- Platform::LinuxARM64Legacy => "cli-linux-arm64",
- Platform::LinuxARM32 => "cli-linux-armhf",
- Platform::LinuxARM32Legacy => "cli-linux-armhf",
- Platform::DarwinX64 => "cli-darwin-x64",
- Platform::DarwinARM64 => "cli-darwin-arm64",
- Platform::WindowsARM64 => "cli-win32-arm64",
- Platform::WindowsX64 => "cli-win32-x64",
- Platform::WindowsX86 => "cli-win32",
+ Platform::LinuxAlpineARM64 => "alpine",
+ Platform::LinuxAlpineX64 => "alpine",
+ Platform::LinuxX64 => "linux",
+ Platform::LinuxX64Legacy => "linux",
+ Platform::LinuxARM64 => "linux",
+ Platform::LinuxARM64Legacy => "linux",
+ Platform::LinuxARM32 => "linux",
+ Platform::LinuxARM32Legacy => "linux",
+ Platform::DarwinX64 => "darwin",
+ Platform::DarwinARM64 => "darwin",
+ Platform::WindowsX64 => "win32",
+ Platform::WindowsX86 => "win32",
+ Platform::WindowsARM64 => "win32",
}
@@ -276,6 +222,2 @@ impl Platform {
- pub fn web(&self) -> String {
- format!("{}-web", self.headless())
- }
-
pub fn env_default() -> Option<Platform> {
diff --git a/extensions/tunnel-forwarding/src/extension.ts b/extensions/tunnel-forwarding/src/extension.ts
index 299c728..9fb635d 100644
--- a/extensions/tunnel-forwarding/src/extension.ts
+++ b/extensions/tunnel-forwarding/src/extension.ts
@@ -28,3 +28,3 @@ const cliPath = process.env.VSCODE_FORWARDING_IS_DEV
process.platform === 'darwin' ? 'bin' : '../../bin',
- vscode.env.appQuality === 'stable' ? 'code-tunnel' : 'code-tunnel-insiders',
+ '!!TUNNEL_APP_NAME!!'
) + (process.platform === 'win32' ? '.exe' : '');

View File

@@ -0,0 +1,49 @@
diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
index d5aa998..dab534b 100644
--- a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
+++ b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
@@ -1876,3 +1876,3 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
ChatContextKeys.Setup.disabled.negate(),
- ChatContextKeys.Setup.installed.negate(),
+ ChatContextKeys.Setup.installed,
);
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
index dbd2125..bceed38 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -696,3 +696,3 @@ configurationRegistry.registerConfiguration({
description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat, code completions and next edit suggestions."),
- default: false,
+ default: true,
scope: ConfigurationScope.WINDOW
diff --git a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
index 391a4de..a1489b2 100644
--- a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
@@ -67,9 +67,8 @@ const chatViewDescriptor: IViewDescriptor[] = [{
ctorDescriptor: new SyncDescriptor(ChatViewPane, [{ location: ChatAgentLocation.Chat }]),
- when: ContextKeyExpr.or(
- ContextKeyExpr.or(
- ChatContextKeys.Setup.hidden,
- ChatContextKeys.Setup.disabled
- )?.negate(),
+ when: ContextKeyExpr.and(
+ ChatContextKeys.Setup.installed,
+ ChatContextKeys.Setup.disabled.negate(),
+ ChatContextKeys.Setup.hidden.negate(),
ChatContextKeys.panelParticipantRegistered,
- ChatContextKeys.extensionInvalid
+ ChatContextKeys.extensionInvalid.negate()
)
diff --git a/src/vs/workbench/contrib/chat/browser/chatStatus.ts b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
index 05f6f0e..7fe62fd 100644
--- a/src/vs/workbench/contrib/chat/browser/chatStatus.ts
+++ b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
@@ -132,2 +132,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
+ const context = chatEntitlementService.context?.value;
+ if (!context) {
+ return; // disabled
+ }
+
this.update();

View File

@@ -0,0 +1,30 @@
diff --git a/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
index 89d9736..b2a1623 100644
--- a/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
+++ b/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
@@ -61,3 +61,3 @@ import { ExtensionStorageService, IExtensionStorageService } from '../../../plat
import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from '../../../platform/userDataSync/common/ignoredExtensions.js';
-import { IUserDataSyncLocalStoreService, IUserDataSyncLogService, IUserDataSyncEnablementService, IUserDataSyncService, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, IUserDataSyncUtilService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncResourceProviderService } from '../../../platform/userDataSync/common/userDataSync.js';
+import { IUserDataSyncLocalStoreService, IUserDataSyncEnablementService, IUserDataSyncService, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, IUserDataSyncUtilService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncResourceProviderService } from '../../../platform/userDataSync/common/userDataSync.js';
import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../../../platform/userDataSync/common/userDataSyncAccount.js';
@@ -65,3 +65,2 @@ import { UserDataSyncLocalStoreService } from '../../../platform/userDataSync/co
import { UserDataSyncAccountServiceChannel, UserDataSyncStoreManagementServiceChannel } from '../../../platform/userDataSync/common/userDataSyncIpc.js';
-import { UserDataSyncLogService } from '../../../platform/userDataSync/common/userDataSyncLog.js';
import { IUserDataSyncMachinesService, UserDataSyncMachinesService } from '../../../platform/userDataSync/common/userDataSyncMachines.js';
@@ -366,3 +365,2 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter {
services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService, undefined, true));
- services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService, undefined, true));
services.set(IUserDataSyncUtilService, ProxyChannel.toService(this.server.getChannel('userDataSyncUtil', client => client.ctx !== 'main')));
diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts
index 61d63db..ccd7ff7 100644
--- a/src/vs/workbench/workbench.common.main.ts
+++ b/src/vs/workbench/workbench.common.main.ts
@@ -157,4 +157,2 @@ import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService
import { ExtensionStorageService, IExtensionStorageService } from '../platform/extensionManagement/common/extensionStorage.js';
-import { IUserDataSyncLogService } from '../platform/userDataSync/common/userDataSync.js';
-import { UserDataSyncLogService } from '../platform/userDataSync/common/userDataSyncLog.js';
import { AllowedExtensionsService } from '../platform/extensionManagement/common/allowedExtensionsService.js';
@@ -164,3 +162,2 @@ import { AllowedMcpServersService } from '../platform/mcp/common/allowedMcpServe
-registerSingleton(IUserDataSyncLogService, UserDataSyncLogService, InstantiationType.Delayed);
registerSingleton(IAllowedExtensionsService, AllowedExtensionsService, InstantiationType.Delayed);

View File

@@ -1,14 +1,18 @@
diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
index 680e0dd..0b04279 100644
index 0a50a2e..5ee6782 100644
--- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts
+++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
@@ -86,2 +86,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
@@ -36,3 +36,2 @@ import {
IAllowedExtensionsService,
- VerifyExtensionSignatureConfigKey,
shouldRequireRepositorySignatureFor,
@@ -89,2 +88,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
@IFileService private readonly fileService: IFileService,
+ // @ts-expect-error no-unused-variable
@IConfigurationService private readonly configurationService: IConfigurationService,
@@ -347,4 +348,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
@@ -333,4 +333,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
if (verifySignature) {
- const value = this.configurationService.getValue('extensions.verifySignature');
- const value = this.configurationService.getValue(VerifyExtensionSignatureConfigKey);
- verifySignature = isBoolean(value) ? value : true;
+ verifySignature = false;
}

View File

@@ -0,0 +1,9 @@
diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.contribution.ts
index d96926b..43f5d90 100644
--- a/src/vs/platform/update/common/update.config.contribution.ts
+++ b/src/vs/platform/update/common/update.config.contribution.ts
@@ -20,3 +20,3 @@ configurationRegistry.registerConfiguration({
enum: ['none', 'manual', 'start', 'default'],
- default: 'default',
+ default: 'none',
scope: ConfigurationScope.APPLICATION,

View File

@@ -0,0 +1,185 @@
diff --git a/extensions/github/package.json b/extensions/github/package.json
index 726a882..b9a4969 100644
--- a/extensions/github/package.json
+++ b/extensions/github/package.json
@@ -44,19 +44,2 @@
},
- {
- "command": "github.copyVscodeDevLink",
- "title": "%command.copyVscodeDevLink%"
- },
- {
- "command": "github.copyVscodeDevLinkFile",
- "title": "%command.copyVscodeDevLink%"
- },
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "title": "%command.copyVscodeDevLink%"
- },
- {
- "command": "github.openOnVscodeDev",
- "title": "%command.openOnVscodeDev%",
- "icon": "$(globe)"
- },
{
@@ -72,11 +55,2 @@
],
- "continueEditSession": [
- {
- "command": "github.openOnVscodeDev",
- "when": "github.hasGitHubRepo",
- "qualifiedName": "Continue Working in vscode.dev",
- "category": "Remote Repositories",
- "remoteGroup": "virtualfs_44_vscode-vfs_2_web@2"
- }
- ],
"menus": {
@@ -91,18 +65,2 @@
},
- {
- "command": "github.copyVscodeDevLink",
- "when": "false"
- },
- {
- "command": "github.copyVscodeDevLinkFile",
- "when": "false"
- },
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "when": "false"
- },
- {
- "command": "github.openOnVscodeDev",
- "when": "false"
- },
{
@@ -112,42 +70,2 @@
],
- "file/share": [
- {
- "command": "github.copyVscodeDevLinkFile",
- "when": "github.hasGitHubRepo && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
- "editor/context/share": [
- {
- "command": "github.copyVscodeDevLink",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
- "explorer/context/share": [
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
- "editor/lineNumber/context": [
- {
- "command": "github.copyVscodeDevLink",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'",
- "group": "1_cutcopypaste@2"
- },
- {
- "command": "github.copyVscodeDevLink",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'",
- "group": "1_cutcopypaste@2"
- }
- ],
- "editor/title/context/share": [
- {
- "command": "github.copyVscodeDevLinkWithoutRange",
- "when": "github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'",
- "group": "0_vscode@0"
- }
- ],
"scm/historyItem/context": [
diff --git a/extensions/github/src/commands.ts b/extensions/github/src/commands.ts
index 48e9574..aa853a5 100644
--- a/extensions/github/src/commands.ts
+++ b/extensions/github/src/commands.ts
@@ -9,28 +9,3 @@ import { publishRepository } from './publish.js';
import { DisposableStore, getRepositoryFromUrl } from './util.js';
-import { LinkContext, getCommitLink, getLink, getVscodeDevHost } from './links.js';
-
-async function copyVscodeDevLink(gitAPI: GitAPI, useSelection: boolean, context: LinkContext, includeRange = true) {
- try {
- const permalink = await getLink(gitAPI, useSelection, true, getVscodeDevHost(), 'headlink', context, includeRange);
- if (permalink) {
- return vscode.env.clipboard.writeText(permalink);
- }
- } catch (err) {
- if (!(err instanceof vscode.CancellationError)) {
- vscode.window.showErrorMessage(err.message);
- }
- }
-}
-
-async function openVscodeDevLink(gitAPI: GitAPI): Promise<vscode.Uri | undefined> {
- try {
- const headlink = await getLink(gitAPI, true, false, getVscodeDevHost(), 'headlink');
- return headlink ? vscode.Uri.parse(headlink) : undefined;
- } catch (err) {
- if (!(err instanceof vscode.CancellationError)) {
- vscode.window.showErrorMessage(err.message);
- }
- return undefined;
- }
-}
+import { getCommitLink } from './links.js';
@@ -70,14 +45,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLink', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, true, context);
- }));
-
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLinkFile', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, false, context);
- }));
-
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLinkWithoutRange', async (context: LinkContext) => {
- return copyVscodeDevLink(gitAPI, true, context, false);
- }));
-
disposables.add(vscode.commands.registerCommand('github.openOnGitHub', async (url: string, historyItemId: string) => {
@@ -113,6 +76,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
- disposables.add(vscode.commands.registerCommand('github.openOnVscodeDev', async () => {
- return openVscodeDevLink(gitAPI);
- }));
-
return disposables;
diff --git a/extensions/github/src/extension.ts b/extensions/github/src/extension.ts
index 17906c5..86a0ca8 100644
--- a/extensions/github/src/extension.ts
+++ b/extensions/github/src/extension.ts
@@ -17,3 +17,2 @@ import { GitHubBranchProtectionProviderManager } from './branchProtection.js';
import { GitHubCanonicalUriProvider } from './canonicalUriProvider.js';
-import { VscodeDevShareProvider } from './shareProviders.js';
import { GitHubSourceControlHistoryItemDetailsProvider } from './historyItemDetailsProvider.js';
@@ -109,3 +108,2 @@ function initializeGitExtension(context: ExtensionContext, octokitService: Octok
disposables.add(new GitHubCanonicalUriProvider(gitAPI));
- disposables.add(new VscodeDevShareProvider(gitAPI));
setGitHubContext(gitAPI, disposables);
diff --git a/extensions/github/src/remoteSourceProvider.ts b/extensions/github/src/remoteSourceProvider.ts
index 291a3f1..6304ed8 100644
--- a/extensions/github/src/remoteSourceProvider.ts
+++ b/extensions/github/src/remoteSourceProvider.ts
@@ -10,3 +10,3 @@ import { Octokit } from '@octokit/rest';
import { getRepositoryFromQuery, getRepositoryFromUrl } from './util.js';
-import { getBranchLink, getVscodeDevHost } from './links.js';
+import { getBranchLink } from './links.js';
@@ -129,9 +129,2 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider {
}
- }, {
- label: l10n.t('Checkout on vscode.dev'),
- icon: 'globe',
- run(branch: string) {
- const link = getBranchLink(url, branch, getVscodeDevHost());
- env.openExternal(Uri.parse(link));
- }
}];

View File

@@ -1,21 +1,22 @@
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
index c581ac0..f11c0f0 100644
index e025130..f42db8d 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
@@ -319,2 +319,8 @@ configurationRegistry.registerConfiguration({
@@ -343,2 +343,9 @@ configurationRegistry.registerConfiguration({
},
+ 'workbench.welcomePage.extraAnnouncements': {
+ scope: ConfigurationScope.MACHINE,
+ type: 'boolean',
+ default: true,
+ description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from !!APP_NAME!!'s repository.")
+ description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from !!APP_NAME!!'s repository."),
+ tags: ['usesOnlineServices']
+ },
'workbench.startupEditor': {
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
index 664c55b..43f9e2e 100644
index 01778b2..615828d 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
@@ -113,4 +113,8 @@ type GettingStartedActionEvent = {
@@ -117,4 +117,8 @@ type GettingStartedActionEvent = {
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
+type AnnouncementEntry = { id: string, title: string, url: string };
@@ -24,26 +25,26 @@ index 664c55b..43f9e2e 100644
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
+
export class GettingStartedPage extends EditorPane {
@@ -149,2 +153,4 @@ export class GettingStartedPage extends EditorPane {
@@ -154,2 +158,4 @@ export class GettingStartedPage extends EditorPane {
private gettingStartedList?: GettingStartedIndexList<IResolvedWalkthrough>;
+ private announcementList?: GettingStartedIndexList<AnnouncementEntry>;
+ private announcementData?: AnnouncementEntry[];
@@ -812,2 +818,3 @@ export class GettingStartedPage extends EditorPane {
@@ -880,2 +886,3 @@ export class GettingStartedPage extends EditorPane {
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
+ const announcementList = await this.buildAnnouncementList();
@@ -822,3 +829,3 @@ export class GettingStartedPage extends EditorPane {
@@ -890,3 +897,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noWalkthroughs');
- reset(rightColumn, gettingStartedList.getDomElement());
+ reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
}
@@ -826,3 +833,3 @@ export class GettingStartedPage extends EditorPane {
@@ -894,3 +901,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noWalkthroughs');
- reset(rightColumn);
+ reset(rightColumn, announcementList.getDomElement());
}
@@ -978,2 +985,55 @@ export class GettingStartedPage extends EditorPane {
@@ -1047,2 +1054,55 @@ export class GettingStartedPage extends EditorPane {
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {

View File

@@ -0,0 +1,167 @@
diff --git a/src/vs/workbench/contrib/commands/common/commands.contribution.ts b/src/vs/workbench/contrib/commands/common/commands.contribution.ts
index 3fd6b59..97a0e04 100644
--- a/src/vs/workbench/contrib/commands/common/commands.contribution.ts
+++ b/src/vs/workbench/contrib/commands/common/commands.contribution.ts
@@ -9,2 +9,3 @@ import { Action2, registerAction2 } from '../../../../platform/actions/common/ac
import { ICommandService } from '../../../../platform/commands/common/commands.js';
+import { ConfigurationScope, IConfigurationRegistry } from '../../../../platform/configuration/common/configurationRegistry.js';
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
@@ -12,2 +13,3 @@ import { ILogService } from '../../../../platform/log/common/log.js';
import { INotificationService } from '../../../../platform/notification/common/notification.js';
+import { Registry } from '../../../../platform/registry/common/platform.js';
@@ -156,2 +158,30 @@ class RunCommands extends Action2 {
+Registry.as<IConfigurationRegistry>('base.contributions.configuration')
+ .registerConfiguration({
+ id: 'commands',
+ order: 30,
+ title: nls.localize('commandsConfigurationTitle', "Commands"),
+ type: 'object',
+ properties: {
+ 'commands.filters': {
+ additionalProperties: {
+ type: 'string',
+ enum: ['ask', 'off', 'on'],
+ enumDescriptions: [
+ nls.localize('commands.filters.ask', 'Ask the user before executing the command.'),
+ nls.localize('commands.filters.off', 'The command is never authorized.'),
+ nls.localize('commands.filters.on', 'The command is always authorized.'),
+ ],
+ description: nls.localize('commands.filters.value', "Authorization for the command."),
+ },
+ description: nls.localize('commands.filters', "Controls which commands are authorized to be executed."),
+ default: {
+ 'workbench.action.terminal.newLocal': 'off'
+ },
+ scope: ConfigurationScope.APPLICATION,
+ tags: []
+ },
+ }
+ });
+
registerAction2(RunCommands);
diff --git a/src/vs/workbench/services/commands/common/commandService.ts b/src/vs/workbench/services/commands/common/commandService.ts
index 93d1631..0533cf0 100644
--- a/src/vs/workbench/services/commands/common/commandService.ts
+++ b/src/vs/workbench/services/commands/common/commandService.ts
@@ -8,3 +8,6 @@ import { Emitter, Event } from '../../../../base/common/event.js';
import { Disposable } from '../../../../base/common/lifecycle.js';
+import Severity from '../../../../base/common/severity.js';
import { CommandsRegistry, ICommandEvent, ICommandService } from '../../../../platform/commands/common/commands.js';
+import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
+import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
@@ -20,2 +23,3 @@ export class CommandService extends Disposable implements ICommandService {
private _starActivation: CancelablePromise<void> | null;
+ private _commandFilters: Record<string, "ask" | "off" | "on">
@@ -30,3 +34,5 @@ export class CommandService extends Disposable implements ICommandService {
@IExtensionService private readonly _extensionService: IExtensionService,
- @ILogService private readonly _logService: ILogService
+ @ILogService private readonly _logService: ILogService,
+ @IConfigurationService private readonly _configurationService: IConfigurationService,
+ @IDialogService private readonly _dialogService: IDialogService
) {
@@ -35,2 +41,9 @@ export class CommandService extends Disposable implements ICommandService {
this._starActivation = null;
+ this._commandFilters = this._configurationService.getValue('commands.filters') ?? { 'workbench.action.terminal.newLocal': 'off' };
+
+ this._configurationService.onDidChangeConfiguration(async (event) => {
+ if (event.affectsConfiguration('commands.filters')) {
+ this._commandFilters = this._configurationService.getValue('commands.filters') ?? { 'workbench.action.terminal.newLocal': 'off' };
+ }
+ })
}
@@ -57,2 +70,27 @@ export class CommandService extends Disposable implements ICommandService {
+ const filter = this._commandFilters[id];
+ if (filter === 'off') {
+ return Promise.reject(new Error(`command '${id}' not authorized`));
+ }
+ else if (filter === 'ask') {
+ const { result } = await this._dialogService.prompt({
+ type: Severity.Error,
+ message: `Are you sure you want to execute the command "${id}"?`,
+ buttons: [
+ {
+ label: 'Yes',
+ run: () => true
+ },
+ {
+ label: 'No',
+ run: () => false
+ }
+ ],
+ });
+
+ if (!result) {
+ return Promise.reject(new Error(`command '${id}' not authorized`));
+ }
+ }
+
if (commandIsRegistered) {
diff --git a/src/vs/workbench/services/commands/test/common/commandService.test.ts b/src/vs/workbench/services/commands/test/common/commandService.test.ts
index ca3be11..fb456a3 100644
--- a/src/vs/workbench/services/commands/test/common/commandService.test.ts
+++ b/src/vs/workbench/services/commands/test/common/commandService.test.ts
@@ -12,2 +12,7 @@ import { NullExtensionService } from '../../../extensions/common/extensions.js';
import { CommandService } from '../../common/commandService.js';
+import { NullPolicyService } from '../../../../../platform/policy/common/policy.js';
+import { FileService } from '../../../../../platform/files/common/fileService.js';
+import { URI } from '../../../../../base/common/uri.js';
+import { ConfigurationService } from '../../../../../platform/configuration/common/configurationService.js';
+import { TestDialogService } from '../../../../../platform/dialogs/test/common/testDialogService.js';
@@ -16,4 +21,16 @@ suite('CommandService', function () {
const store = ensureNoDisposablesAreLeakedInTestSuite();
+ const testDisposables = ensureNoDisposablesAreLeakedInTestSuite();
+ let nullConfigService: ConfigurationService
setup(function () {
+ const nullPolicyService = new NullPolicyService();
+ const nullLogService = testDisposables.add(new NullLogService());
+ const nullFileService = testDisposables.add(new FileService(nullLogService));
+ nullConfigService = testDisposables.add(new ConfigurationService(
+ URI.file('/config.json'),
+ nullFileService,
+ nullPolicyService,
+ nullLogService,
+ ));
+
store.add(CommandsRegistry.registerCommand('foo', function () { }));
@@ -30,3 +47,3 @@ suite('CommandService', function () {
}
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -50,3 +67,3 @@ suite('CommandService', function () {
- const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService()));
+ const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -68,3 +85,3 @@ suite('CommandService', function () {
}
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -85,3 +102,3 @@ suite('CommandService', function () {
}
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -125,3 +142,3 @@ suite('CommandService', function () {
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -166,3 +183,3 @@ suite('CommandService', function () {
- }, new NullLogService()));
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
@@ -187,3 +204,3 @@ suite('CommandService', function () {
};
- const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService()));
+ const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService(), nullConfigService, new TestDialogService()));

View File

@@ -0,0 +1,27 @@
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
index 5974768..876f779 100644
--- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
@@ -1788,2 +1788,8 @@ export abstract class AbstractExtensionGalleryService implements IExtensionGalle
+ const excludeUnsafes = this.configurationService.getValue('extensions.excludeUnsafes') ?? true;
+
+ if (!excludeUnsafes) {
+ return { malicious: [], deprecated: {}, search: [] };
+ }
+
const context = await this.requestService.request({
diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
index 4c44d3b..fe989e0 100644
--- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
@@ -294,2 +294,9 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
},
+ 'extensions.excludeUnsafes': {
+ scope: ConfigurationScope.MACHINE,
+ type: 'boolean',
+ default: true,
+ description: localize('extensionsExcludeUnsafes', "When enabled, it will download and cache the list of malicious and deprecated extensions. It's recommended to leave it enabled."),
+ tags: ['usesOnlineServices']
+ },
}

View File

@@ -1,16 +1,17 @@
diff --git a/src/main.ts b/src/main.ts
index c132c9b..9684685 100644
index deba4c4..1b41bde 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -8,2 +8,3 @@ import * as fs from 'original-fs';
import * as os from 'os';
import * as os from 'node:os';
+import { createRequire } from 'node:module';
import { performance } from 'perf_hooks';
@@ -24,2 +25,3 @@ import { NativeParsedArgs } from './vs/platform/environment/common/argv.js';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
+const require = createRequire(import.meta.url);
import { performance } from 'node:perf_hooks';
@@ -22,2 +23,4 @@ import { NativeParsedArgs } from './vs/platform/environment/common/argv.js';
@@ -112,2 +114,14 @@ registerListeners();
+const require = createRequire(import.meta.url);
+
perf.mark('code/didStartMain');
@@ -109,2 +112,14 @@ registerListeners();
+function resolveUserProduct() {
+ const userProductPath = path.join(userDataPath, 'product.json');
@@ -25,29 +26,16 @@ index c132c9b..9684685 100644
+}
+
/**
@@ -208,2 +222,3 @@ async function startup(codeCachePath: string | undefined, nlsConfig: INLSConfigu
@@ -205,2 +220,3 @@ async function startup(codeCachePath: string | undefined, nlsConfig: INLSConfigu
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
+ resolveUserProduct();
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 1a2a619..3837df0 100644
index 5a6c171..275cbcf 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -29,2 +29,38 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
@@ -31,2 +31,25 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ const { serviceUrl, publisherUrl, itemUrl, controlUrl, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ publisherUrl: env['VSCODE_GALLERY_PUBLISHER_URL'] || publisherUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
+ }
+ });
+
+ // Merge user-customized product.json
+ try {
+ const merge = (...objects: any[]) =>

42
patches/fix-gallery.patch Normal file
View File

@@ -0,0 +1,42 @@
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index 3954823..f8026cd 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -112,2 +112,4 @@ export interface IProductConfiguration {
readonly accessSKUs?: string[];
+ readonly itemUrl: string;
+ readonly latestUrlTemplate?: string;
};
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
index 658219e..d1bf7a9 100644
--- a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
@@ -19,2 +19,3 @@ type ExtensionGalleryConfig = {
readonly nlsBaseUrl: string;
+ readonly latestUrlTemplate?: string;
};
@@ -49,3 +50,3 @@ export class ExtensionGalleryManifestService extends Disposable implements IExte
{
- id: `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
+ id: extensionsGallery.latestUrlTemplate ?? `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
type: ExtensionGalleryResourceType.ExtensionLatestVersionUri
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 5a6c171..112b31b 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,15 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ const { serviceUrl, controlUrl, itemUrl, latestUrlTemplate, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ latestUrlTemplate: env['VSCODE_GALLERY_LATEST_URL_TEMPLATE'] || latestUrlTemplate,
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
+ }
+ });
+
// Running out of sources

View File

@@ -1,8 +1,39 @@
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 99e495a..996044a 100644
index 31b1c4a..f808aa6 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -10,5 +10,5 @@
@@ -17,23 +17,23 @@
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
- "editor.formatOnSave": true,
+ // "editor.formatOnSave": true,
},
"[github-issues]": {
"editor.wordWrap": "on"
},
// --- Files ---
- "files.trimTrailingWhitespace": true,
- "files.insertFinalNewline": true,
+ // "files.trimTrailingWhitespace": true,
+ // "files.insertFinalNewline": true,
"files.exclude": {
".git": true,
".build": true,
@@ -42,9 +42,9 @@
".vscode-test": true,
"cli/target": true,
"build/**/*.js.map": true,
- "build/**/*.js": {
- "when": "$(basename).ts"
@@ -11,27 +42,22 @@ index 99e495a..996044a 100644
+ // "when": "$(basename).ts"
+ // }
},
@@ -59,2 +59,3 @@
"files.associations": {
"cglicenses.json": "jsonc",
@@ -55,7 +55,7 @@
"**/yarn.lock": true,
"**/package-lock.json": true,
"**/Cargo.lock": true,
- "build/**/*.js": true,
+ // "build/**/*.js": true,
"out/**": true,
"out-build/**": true,
"out-vscode/**": true,
@@ -71,6 +71,7 @@
"build/builtin/*.js": true,
"build/monaco/*.js": true,
"build/npm/*.js": true,
+ "build/**/*.js": true,
"build/*.js": true
@@ -108,3 +109,3 @@
"gulp.autoDetect": "off",
- "files.insertFinalNewline": true,
+ // "files.insertFinalNewline": true,
"[plaintext]": {
@@ -114,3 +115,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
@@ -118,3 +119,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
@@ -122,3 +123,3 @@
"editor.defaultFormatter": "rust-lang.rust-analyzer",
- "editor.formatOnSave": true,
+ // "editor.formatOnSave": true,
},

View File

@@ -1,15 +0,0 @@
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 5adfdfb..dfdb2af 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -115,6 +115,6 @@ function buildWin32Setup(arch, target) {
- if (quality === 'insider') {
- definitions['AppxPackage'] = `code_insiders_explorer_${arch}.appx`;
- definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
- }
+ // if (quality === 'insider') {
+ // definitions['AppxPackage'] = `code_insiders_explorer_${arch}.appx`;
+ // definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
+ // }

View File

@@ -1,13 +1,13 @@
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
index 81bf4b2..5a88688 100644
index 150908a..0759a8d 100644
--- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
@@ -233,7 +233,7 @@ export class Extension implements IExtension {
return false;
}
@@ -104,2 +104,3 @@ export class Extension implements IExtension {
@IFileService private readonly fileService: IFileService,
+ // @ts-ignore
@IProductService private readonly productService: IProductService
@@ -325,3 +326,3 @@ export class Extension implements IExtension {
// Do not allow updating system extensions in stable
- if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
+ if (this.type === ExtensionType.System) {
return false;
}
if (!this.local.preRelease && this.gallery.properties.isPreReleaseVersion) {

View File

@@ -1,5 +1,5 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index d836fb7..fbe67b0 100755
index 6805633..9d4b59f 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -2,3 +2,3 @@
@@ -7,11 +7,16 @@ index d836fb7..fbe67b0 100755
-set -e
+set -ex
@@ -22,3 +22,3 @@ else
echo "Downloading remote sysroot"
- SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
+ SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
fi
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 53ef6f3..d0770d6 100644
index 10b7b44..0ad7550 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -229,9 +229,23 @@ function nodejs(platform, arch) {
@@ -233,9 +233,23 @@ function nodejs(platform, arch) {
case 'linux':
- return (product.nodejsRepository !== 'https://nodejs.org' ?
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 }) :
@@ -43,10 +48,10 @@ index 53ef6f3..d0770d6 100644
+ }
case 'alpine':
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index da753e9..95f2cf0 100644
index 25d8916..250ba7c 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -385,2 +385,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -366,2 +366,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
+ const electronOverride = {};
+ if (process.env.VSCODE_ELECTRON_REPOSITORY) {
@@ -59,57 +64,57 @@ index da753e9..95f2cf0 100644
+ }
+
let result = all
@@ -389,3 +399,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -370,3 +380,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
.pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523
- .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
+ .pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
.pipe(filter(['**', '!LICENSE', '!version'], { dot: true }));
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 3bb58fb..306d91e 100644
index f58d0f8..4edb371 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -138,3 +138,3 @@ exports.referenceGeneratedDepsByArch = {
@@ -140,3 +140,3 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
- ]
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index e3d78d1..9f29943 100644
index 5b7ccd5..707129f 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -138,3 +138,3 @@ export const referenceGeneratedDepsByArch = {
@@ -140,3 +140,3 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
- ]
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 354c67a..2cd8f2d 100644
index d16e13b..18e409a 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -71,3 +71,5 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
@@ -73,3 +73,5 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -80,3 +82,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
@@ -82,3 +84,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repository} @ ${actualVersion}`);
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 8ea43a5..d8de38e 100644
index 670fb68..092fc68 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -83,3 +83,5 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
@@ -82,3 +82,5 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -92,3 +94,3 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
@@ -91,3 +93,3 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repository} @ ${actualVersion}`);

View File

@@ -1,24 +1,24 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index fbe67b0..5b2f5d8 100755
index c27358a..3e33f75 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -74,2 +74,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf"
@@ -76,2 +76,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf"
+elif [ "$npm_config_arch" == "ppc64" ]; then
+ # Set compiler toolchain for client native modules
+ export CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
+ export CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
+ export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
+ export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+ export CC=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
+ export CXX=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
+ export CXXFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
+ export LDFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+
+ # Set compiler toolchain for remote server
+ export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
+ export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+ export VSCODE_REMOTE_CC=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
+ export VSCODE_REMOTE_CXX=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
fi
diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
index c655ce7..c7150f2 100755
index 5294177..1e33aeb 100755
--- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
+++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
@@ -9,2 +9,4 @@ elif [ "$VSCODE_ARCH" == "armhf" ]; then
@@ -27,14 +27,14 @@ index c655ce7..c7150f2 100755
+ TRIPLE="powerpc64le-linux-gnu"
fi
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
index 0b5f38c..9f3b02b 100644
index 5744a5f..3fedbe9 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -6 +6,2 @@
dbb927408393041664a020661f2641c9785741be3d29b050b9dac58980967784 x86_64-linux-gnu-glibc-2.28.tar.gz
@@ -7 +7,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
84acc5a15566c98ddf80631731d672e0ce9febcf3f2e969101e0dfd7ef2405e3 x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz
+fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index d0770d6..8c83c13 100644
index 5ac9f95..cd04bdf 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -50,2 +50,3 @@ const BUILD_TARGETS = [
@@ -42,7 +42,7 @@ index d0770d6..8c83c13 100644
+ { platform: 'linux', arch: 'ppc64le' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index cbcdddb..274d889 100644
index aafc64e..484d5f4 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
@@ -50,15 +50,15 @@ index cbcdddb..274d889 100644
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 95f2cf0..7395ba4 100644
index 004417f..c38fc1a 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -494,2 +494,3 @@ const BUILD_TARGETS = [
@@ -475,2 +475,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index fb0e5a4..264cec1 100644
index cd8610d..707581d 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
@@ -66,27 +66,27 @@ index fb0e5a4..264cec1 100644
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
}
@@ -145,3 +145,3 @@ function getRpmBuildPath(rpmArch) {
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
}
@@ -307,2 +307,3 @@ const BUILD_TARGETS = [
@@ -304,2 +304,3 @@ const BUILD_TARGETS = [
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index 57934e6..b97d275 100644
index 34276ce..fdae163 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -51,2 +51,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
@@ -54,2 +54,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'ppc64el':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index c44e241..5a6e9b4 100644
index addc386..423c415 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -61,2 +61,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -99,10 +99,10 @@ index c44e241..5a6e9b4 100644
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 306d91e..64377e3 100644
index 057961c..ed10661 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -139,2 +139,41 @@ exports.referenceGeneratedDepsByArch = {
@@ -141,2 +141,41 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
@@ -145,10 +145,10 @@ index 306d91e..64377e3 100644
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 9f29943..aa769ad 100644
index 707129f..7fe60be 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -139,2 +139,41 @@ export const referenceGeneratedDepsByArch = {
@@ -141,2 +141,41 @@ export const referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
@@ -191,10 +191,10 @@ index 9f29943..aa769ad 100644
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 2cd8f2d..aef739c 100644
index 8fbdf3d..011b36f 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -137,2 +137,6 @@ async function getVSCodeSysroot(arch) {
@@ -146,2 +146,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
@@ -202,10 +202,10 @@ index 2cd8f2d..aef739c 100644
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index d8de38e..53b4866 100644
index 9f3fd15..756b7fd 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -154,2 +154,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
@@ -159,2 +159,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
@@ -235,10 +235,10 @@ index e97485e..43f2434 100644
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
index 04abee1..779dd69 100644
index 1f19c85..43ac5a0 100644
--- a/build/linux/rpm/dep-lists.js
+++ b/build/linux/rpm/dep-lists.js
@@ -310,2 +310,102 @@ exports.referenceGeneratedDepsByArch = {
@@ -316,2 +316,102 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
@@ -342,10 +342,10 @@ index 04abee1..779dd69 100644
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index 8761e40..1885210 100644
index db52338..4231f09 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -309,2 +309,102 @@ export const referenceGeneratedDepsByArch = {
@@ -315,2 +315,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
@@ -471,83 +471,70 @@ index c6a01da..3f3c3f5 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 9033914..bcab676 100644
index a39bbf7..84d3efe 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -217,2 +217,4 @@ pub enum Platform {
@@ -176,2 +176,3 @@ pub enum Platform {
LinuxARM32Legacy,
+ LinuxPPC64LE,
+ LinuxPPC64LELegacy,
DarwinX64,
@@ -230,2 +232,3 @@ impl Platform {
Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
+ Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
@@ -248,2 +251,4 @@ impl Platform {
Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
+ Platform::LinuxPPC64LE => "server-linux-ppc64le",
+ Platform::LinuxPPC64LELegacy => "server-linux-legacy-ppc64le",
Platform::DarwinX64 => "server-darwin",
@@ -267,2 +272,4 @@ impl Platform {
Platform::LinuxARM32Legacy => "cli-linux-armhf",
+ Platform::LinuxPPC64LE => "cli-linux-ppc64le",
+ Platform::LinuxPPC64LELegacy => "cli-linux-ppc64le",
Platform::DarwinX64 => "cli-darwin-x64",
@@ -299,2 +306,4 @@ impl Platform {
@@ -194,2 +195,3 @@ impl Platform {
Platform::LinuxARM32Legacy => "armhf",
+ Platform::LinuxPPC64LE => "ppc64le",
Platform::DarwinX64 => "x64",
@@ -213,2 +215,3 @@ impl Platform {
Platform::LinuxARM32Legacy => "linux",
+ Platform::LinuxPPC64LE => "linux",
Platform::DarwinX64 => "darwin",
@@ -241,2 +244,4 @@ impl Platform {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "ppc64le")) {
+ } else if cfg!(all(target_os = "linux", target_arch = "powerpc64")) {
+ Some(Platform::LinuxPPC64LE)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -326,2 +335,4 @@ impl fmt::Display for Platform {
@@ -268,2 +273,3 @@ impl fmt::Display for Platform {
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxPPC64LELegacy => "LinuxPPC64LELegacy",
Platform::DarwinX64 => "DarwinX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index e0fba27..4827a47 100644
index 44c8597..679aacb 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -86,2 +86,4 @@ impl PreReqChecker {
@@ -82,2 +82,4 @@ impl PreReqChecker {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "ppc64le") {
+ } else if cfg!(target_arch = "powerpc64") {
+ Platform::LinuxPPC64LE
} else {
@@ -95,2 +97,4 @@ impl PreReqChecker {
Platform::LinuxARM32Legacy
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LELegacy
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 8ef07a2..00dd3e2 100644
index 8ea4c0b..b9d3b47 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -56,2 +56,3 @@ case $ARCH in
@@ -55,2 +55,3 @@ case $ARCH in
;;
+ ppc64el) LDCONFIG_ARCH="64bit";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index ea7b30d..004df84 100644
index e91310f..a28beef 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -41,2 +41,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
@@ -64,2 +65,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -70,2 +71,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
@@ -99,2 +101,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -105,2 +107,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 5973d4d..a7d6298 100644
index 0b42527..69d6eb3 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -294,2 +294,3 @@ export const enum TargetPlatform {
@@ -329,2 +329,3 @@ export const enum TargetPlatform {
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',

View File

@@ -1,5 +1,5 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 8c83c13..b996472 100644
index cd04bdf..e284026 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -51,2 +51,3 @@ const BUILD_TARGETS = [
@@ -7,7 +7,7 @@ index 8c83c13..b996472 100644
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 274d889..0eafadc 100644
index 484d5f4..66c8e1f 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
@@ -15,15 +15,15 @@ index 274d889..0eafadc 100644
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 7395ba4..66bf180 100644
index 3ed2182..f0614d0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -495,2 +495,3 @@ const BUILD_TARGETS = [
@@ -492,2 +492,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 264cec1..37575e1 100644
index 707581d..298181d 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
@@ -31,27 +31,27 @@ index 264cec1..37575e1 100644
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
}
@@ -145,3 +145,3 @@ function getRpmBuildPath(rpmArch) {
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
@@ -308,2 +308,3 @@ const BUILD_TARGETS = [
@@ -305,2 +305,3 @@ const BUILD_TARGETS = [
{ arch: 'ppc64le' },
+ { arch: 'riscv64' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index b97d275..37a5835 100644
index fdae163..a08ebda 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -54,2 +54,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
@@ -57,2 +57,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`, `-l${chromiumSysroot}/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 5a6e9b4..903375f 100644
index 423c415..88ee2f0 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -67,2 +67,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -64,7 +64,7 @@ index 5a6e9b4..903375f 100644
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 64377e3..5fb20f8 100644
index a85352e..4ccdcd9 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -178,2 +178,42 @@ exports.referenceGeneratedDepsByArch = {
@@ -111,7 +111,7 @@ index 64377e3..5fb20f8 100644
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index aa769ad..5534874 100644
index 0d0f11b..b765492 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -178,2 +178,42 @@ export const referenceGeneratedDepsByArch = {
@@ -158,10 +158,10 @@ index aa769ad..5534874 100644
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 3dcd5c1..b4e3542 100644
index ab6b826..fc2817a 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -141,2 +141,6 @@ async function getVSCodeSysroot(arch) {
@@ -144,2 +144,6 @@ async function getVSCodeSysroot(arch) {
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
@@ -169,7 +169,7 @@ index 3dcd5c1..b4e3542 100644
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 52b3422..11d54b1 100644
index c23db0f..50c28b2 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -158,2 +158,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
@@ -224,74 +224,70 @@ index 3f3c3f5..d94537e 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index bcab676..29228cb 100644
index 84d3efe..4f2c8c2 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -219,2 +219,3 @@ pub enum Platform {
LinuxPPC64LELegacy,
@@ -177,2 +177,3 @@ pub enum Platform {
LinuxPPC64LE,
+ LinuxRISCV64,
DarwinX64,
@@ -233,2 +234,3 @@ impl Platform {
Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
+ Platform::LinuxRISCV64 => Some("linux-riscv64".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
@@ -253,2 +255,3 @@ impl Platform {
Platform::LinuxPPC64LELegacy => "server-linux-legacy-ppc64le",
+ Platform::LinuxRISCV64 => "server-linux-riscv64",
Platform::DarwinX64 => "server-darwin",
@@ -274,2 +277,3 @@ impl Platform {
Platform::LinuxPPC64LELegacy => "cli-linux-ppc64le",
+ Platform::LinuxRISCV64 => "cli-linux-riscv64",
Platform::DarwinX64 => "cli-darwin-x64",
@@ -308,2 +312,4 @@ impl Platform {
@@ -196,2 +197,3 @@ impl Platform {
Platform::LinuxPPC64LE => "ppc64le",
+ Platform::LinuxRISCV64 => "riscv64",
Platform::DarwinX64 => "x64",
@@ -216,2 +218,3 @@ impl Platform {
Platform::LinuxPPC64LE => "linux",
+ Platform::LinuxRISCV64 => "linux",
Platform::DarwinX64 => "darwin",
@@ -246,2 +249,4 @@ impl Platform {
Some(Platform::LinuxPPC64LE)
+ } else if cfg!(all(target_os = "linux", target_arch = "riscv64")) {
+ Some(Platform::LinuxRISCV64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -337,2 +343,3 @@ impl fmt::Display for Platform {
Platform::LinuxPPC64LELegacy => "LinuxPPC64LELegacy",
@@ -274,2 +279,3 @@ impl fmt::Display for Platform {
Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index 4827a47..137a257 100644
index 679aacb..1a37552 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -88,2 +88,4 @@ impl PreReqChecker {
@@ -84,2 +84,4 @@ impl PreReqChecker {
Platform::LinuxPPC64LE
+ } else if cfg!(target_arch = "riscv64") {
+ Platform::LinuxRISCV64
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 00dd3e2..91c9d20 100644
index b9d3b47..b18e402 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -57,2 +57,3 @@ case $ARCH in
@@ -56,2 +56,3 @@ case $ARCH in
ppc64el) LDCONFIG_ARCH="64bit";;
+ riscv64) LDCONFIG_ARCH="RISC-V";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 004df84..fb2acc7 100644
index 5400065..be95b04 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -42,2 +42,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -45,2 +45,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
@@ -66,2 +67,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -69,2 +70,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
@@ -104,2 +106,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -107,2 +109,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'riscv64') {
+ return TargetPlatform.LINUX_RISCV64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index a7d6298..a7aa2bb 100644
index 23f1bea..10152de 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -295,2 +295,3 @@ export const enum TargetPlatform {
@@ -320,2 +320,3 @@ export const enum TargetPlatform {
LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',

View File

@@ -1,5 +1,5 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index df4fda0c898..ce8f21bbc0e 100644
index e284026..52f9a12 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
@@ -7,7 +7,7 @@ index df4fda0c898..ce8f21bbc0e 100644
+ { platform: 'linux', arch: 'loong64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 0eafadc1fff..3c1d6fb5bfc 100644
index 66c8e1f..8a8c1eb 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -28,2 +28,3 @@ const BUILD_TARGETS = [
@@ -15,82 +15,78 @@ index 0eafadc1fff..3c1d6fb5bfc 100644
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index b208d700f2c..4be8f93f704 100644
index f0614d0..1438867 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -489,2 +489,3 @@ const BUILD_TARGETS = [
@@ -493,2 +493,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 29228cb4235..c1163029377 100644
index 4f2c8c2..4ea1bd2 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -220,2 +220,3 @@ pub enum Platform {
@@ -178,2 +178,3 @@ pub enum Platform {
LinuxRISCV64,
+ LinuxLoong64,
DarwinX64,
@@ -235,2 +236,3 @@ impl Platform {
Platform::LinuxRISCV64 => Some("linux-riscv64".to_owned()),
+ Platform::LinuxLoong64 => Some("linux-loong64".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
@@ -256,2 +258,3 @@ impl Platform {
Platform::LinuxRISCV64 => "server-linux-riscv64",
+ Platform::LinuxLoong64 => "server-linux-loong64",
Platform::DarwinX64 => "server-darwin",
@@ -278,2 +281,3 @@ impl Platform {
Platform::LinuxRISCV64 => "cli-linux-riscv64",
+ Platform::LinuxLoong64 => "cli-linux-loong64",
Platform::DarwinX64 => "cli-darwin-x64",
@@ -314,2 +318,4 @@ impl Platform {
@@ -198,2 +199,3 @@ impl Platform {
Platform::LinuxRISCV64 => "riscv64",
+ Platform::LinuxLoong64 => "loong64",
Platform::DarwinX64 => "x64",
@@ -219,2 +221,3 @@ impl Platform {
Platform::LinuxRISCV64 => "linux",
+ Platform::LinuxLoong64 => "linux",
Platform::DarwinX64 => "darwin",
@@ -251,2 +254,4 @@ impl Platform {
Some(Platform::LinuxRISCV64)
+ } else if cfg!(all(target_os = "linux", target_arch = "loongarch64")) {
+ Some(Platform::LinuxLoong64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -344,2 +350,3 @@ impl fmt::Display for Platform {
@@ -280,2 +285,3 @@ impl fmt::Display for Platform {
Platform::LinuxRISCV64 => "LinuxRISCV64",
+ Platform::LinuxLoong64 => "LinuxLoong64",
Platform::DarwinX64 => "DarwinX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index 137a2570130..8f1e20c2aa9 100644
index 1a37552..ff191a1 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -90,2 +90,4 @@ impl PreReqChecker {
@@ -86,2 +86,4 @@ impl PreReqChecker {
Platform::LinuxRISCV64
+ } else if cfg!(target_arch = "loongarch64") {
+ Platform::LinuxLoong64
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 91c9d203387..7776dbcbc24 100644
index b18e402..0b7aa4e 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -58,2 +58,3 @@ case $ARCH in
@@ -57,2 +57,3 @@ case $ARCH in
riscv64) LDCONFIG_ARCH="RISC-V";;
+ loongarch64) LDCONFIG_ARCH="double-float";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 03e78ca3116..8e59218d7ad 100644
index be95b04..1a0decd 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -44,2 +44,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -46,2 +46,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
+ case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
@@ -69,2 +70,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -71,2 +72,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
+ case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
@@ -113,2 +115,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -112,2 +114,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'loong64') {
+ return TargetPlatform.LINUX_LOONG64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index a7aa2bb23bf..a4d076ce596 100644
index 10152de..3eb0412 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -296,2 +296,3 @@ export const enum TargetPlatform {
@@ -321,2 +321,3 @@ export const enum TargetPlatform {
LINUX_RISCV64 = 'linux-riscv64',
+ LINUX_LOONG64 = 'linux-loong64',

View File

@@ -1,31 +1,31 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index fbe67b0..5b2f5d8 100755
index 3e33f75..052b38f 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -86,2 +86,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
@@ -88,2 +88,14 @@ elif [ "$npm_config_arch" == "ppc64" ]; then
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+elif [ "$npm_config_arch" == "s390x" ]; then
+ # Set compiler toolchain for client native modules
+ export CC=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
+ export CXX=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
+ export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
+ export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
+ export CC=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
+ export CXX=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
+ export CXXFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
+ export LDFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
+
+ # Set compiler toolchain for remote server
+ export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
+ export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
+ export VSCODE_REMOTE_CC=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
+ export VSCODE_REMOTE_CXX=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
fi
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
index 0b5f38c..9f3b02b 100644
index 3fedbe9..3c4e291 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -7 +7,2 @@
@@ -8 +8,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
+7055f3d40e7195fb1e13f0fbaf5ffadf781bddaca5fd5e0d9972f4157a203fb5 s390x-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index d0770d6..8c83c13 100644
index 52f9a12..4b890f4 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
@@ -33,7 +33,7 @@ index d0770d6..8c83c13 100644
+ { platform: 'linux', arch: 's390x' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index cbcdddb..274d889 100644
index 8a8c1eb..1ef390b 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -29,2 +29,3 @@ const BUILD_TARGETS = [
@@ -41,43 +41,43 @@ index cbcdddb..274d889 100644
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 95f2cf0..7395ba4 100644
index ee66585..c9f9ceb 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -498,2 +498,3 @@ const BUILD_TARGETS = [
@@ -478,2 +478,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index fb0e5a4..264cec1 100644
index 298181d..dcc42a8 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -31,3 +31,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64', s390x: 's390x' }[arch];
}
@@ -143,3 +143,3 @@ function getRpmBuildPath(rpmArch) {
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64', s390x: 's390x' }[arch];
}
@@ -307,2 +307,3 @@ const BUILD_TARGETS = [
@@ -306,2 +306,3 @@ const BUILD_TARGETS = [
{ arch: 'riscv64' },
+ { arch: 's390x' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index 57934e6..b97d275 100644
index a08ebda..9527119 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -57,2 +57,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
@@ -60,2 +60,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 's390x':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`, `-l${chromiumSysroot}/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/usr/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index c44e241..5a6e9b4 100644
index 88ee2f0..8037cf2 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -73,2 +73,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
@@ -90,10 +90,10 @@ index c44e241..5a6e9b4 100644
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 306d91e..64377e3 100644
index 13cf8f0..9ffd805 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -218,2 +218,42 @@ exports.referenceGeneratedDepsByArch = {
@@ -220,2 +220,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
@@ -137,10 +137,10 @@ index 306d91e..64377e3 100644
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 9f29943..aa769ad 100644
index 7e6938a..8a314ec 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -218,2 +218,42 @@ export const referenceGeneratedDepsByArch = {
@@ -220,2 +220,42 @@ export const referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
@@ -184,10 +184,10 @@ index 9f29943..aa769ad 100644
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 2cd8f2d..aef739c 100644
index e510426..ce7c75b 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -145,2 +145,6 @@ async function getVSCodeSysroot(arch) {
@@ -154,2 +154,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
@@ -195,10 +195,10 @@ index 2cd8f2d..aef739c 100644
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index d8de38e..53b4866 100644
index 42841f6..cffae59 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -162,2 +162,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
@@ -167,2 +167,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
@@ -206,7 +206,7 @@ index d8de38e..53b4866 100644
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index ce21d50..2c56b9c 100644
index cadefc2..8132812 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
@@ -215,7 +215,7 @@ index ce21d50..2c56b9c 100644
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485e..43f2434 100644
index 24fe452..9efba5b 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
@@ -228,10 +228,10 @@ index e97485e..43f2434 100644
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index 8761e40..1885210 100644
index 4231f09..fc70433 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -409,2 +409,102 @@ export const referenceGeneratedDepsByArch = {
@@ -415,2 +415,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "s390x": [
@@ -335,7 +335,7 @@ index 8761e40..1885210 100644
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index a20b9c2..7b58961 100644
index 99a8cff..e2f3548 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
@@ -344,7 +344,7 @@ index a20b9c2..7b58961 100644
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index c6a01da..3f3c3f5 100644
index d94537e..3834b94 100644
--- a/build/linux/rpm/types.ts
+++ b/build/linux/rpm/types.ts
@@ -5,6 +5,6 @@
@@ -356,75 +356,37 @@ index c6a01da..3f3c3f5 100644
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 9033914..bcab676 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -221,2 +221,3 @@ pub enum Platform {
LinuxLoong64,
+ LinuxS390X,
DarwinX64,
@@ -237,2 +238,3 @@ impl Platform {
Platform::LinuxLoong64 => Some("linux-loong64".to_owned()),
+ Platform::LinuxS390X => Some("linux-s390x".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
@@ -259,2 +261,3 @@ impl Platform {
Platform::LinuxLoong64 => "server-linux-loong64",
+ Platform::LinuxS390X => "server-linux-s390x",
Platform::DarwinX64 => "server-darwin",
@@ -282,2 +285,3 @@ impl Platform {
Platform::LinuxLoong64 => "cli-linux-loong64",
+ Platform::LinuxS390X => "cli-linux-s390x",
Platform::DarwinX64 => "cli-darwin-x64",
@@ -320,2 +324,4 @@ impl Platform {
Some(Platform::LinuxLoong64)
+ } else if cfg!(all(target_os = "linux", target_arch = "s390x")) {
+ Some(Platform::LinuxS390X)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -351,2 +357,3 @@ impl fmt::Display for Platform {
Platform::LinuxLoong64 => "LinuxLoong64",
+ Platform::LinuxS390X => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index e0fba27..4827a47 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -92,2 +92,4 @@ impl PreReqChecker {
Platform::LinuxLoong64
+ } else if cfg!(target_arch = "s390x") {
+ Platform::LinuxS390X
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 8ef07a2..00dd3e2 100644
index 0b7aa4e..e8b7ce0 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -59,2 +59,3 @@ case $ARCH in
@@ -58,2 +58,3 @@ case $ARCH in
loongarch64) LDCONFIG_ARCH="double-float";;
+ s390x) LDCONFIG_ARCH="64bit";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index ea7b30d..004df84 100644
index dedea4c..1043fe4 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -44,2 +44,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
+ case TargetPlatform.LINUX_S390X: return 'Linux S390X';
@@ -70,2 +71,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -76,2 +77,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
+ case TargetPlatform.LINUX_S390X: return TargetPlatform.LINUX_S390X;
@@ -114,2 +116,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -120,2 +122,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 's390x') {
+ return TargetPlatform.LINUX_S390X;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 5973d4d..a7d6298 100644
index 6d554ce..51d23fa 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -297,2 +297,3 @@ export const enum TargetPlatform {
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
LINUX_LOONG64 = 'linux-loong64',
+ LINUX_S390X = 'linux-s390x',

View File

@@ -1,39 +1,19 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index fb0e5a4..412a6cc 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -197,2 +197,3 @@ function prepareRpmPackage(arch) {
const spec = code.pipe(es.through(
+ null,
async function () {
@@ -312,4 +313,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch)));
- gulp.task(prepareDebTask);
- const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, buildDebPackage(arch));
+ const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, task.series(prepareDebTask, buildDebPackage(arch)));
gulp.task(buildDebTask);
@@ -318,4 +318,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch)));
- gulp.task(prepareRpmTask);
- const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, buildRpmPackage(arch));
+ const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, task.series(prepareRpmTask, buildRpmPackage(arch)));
gulp.task(buildRpmTask);
diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
index 39e2b4e..aae72ae 100644
index ae05d17..c692141 100644
--- a/build/linux/dependencies-generator.js
+++ b/build/linux/dependencies-generator.js
@@ -27,3 +27,3 @@ const product = require("../../product.json");
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false;
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/132.0.6834.196:chrome/installer/linux/BUILD.gn;l=64-80
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/138.0.7204.251:chrome/installer/linux/BUILD.gn;l=64-80
@@ -60,3 +60,3 @@ async function getDependencies(packageType, buildDir, applicationName, arch) {
// Add the tunnel binary.
- files.push(path_1.default.join(buildDir, 'bin', product.tunnelApplicationName));
+ // files.push(path_1.default.join(buildDir, 'bin', product.tunnelApplicationName));
// Add the main executable.
diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
index 83d2ec7..6c14583 100644
index 46c6d6c..23ae589 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -25,3 +25,3 @@ import product = require('../../product.json');

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index fa8da7d..5e2f51b 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -53,8 +53,9 @@ function npmInstall(dir, opts) {
log(dir, `Installing dependencies inside container ${process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME']}...`);
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64') {
- run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
+ const emulateArchList = ['arm64', 'arm', 'ppc64', 'riscv64', 's390x', 'loong64'];
+ if (process.env['DISABLE_QEMU'] !== 'true' && !!process.env['npm_config_arch'] && emulateArchList.includes(process.env['npm_config_arch'])) {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'tonistiigi/binfmt:latest', '--install', 'all'], opts);
}
run('sudo', [
'docker', 'run',

View File

@@ -1,25 +1,18 @@
diff --git a/src/bootstrap-esm.ts b/src/bootstrap-esm.ts
index f2cf101..d974f65 100644
index 54681a2..39f72ad 100644
--- a/src/bootstrap-esm.ts
+++ b/src/bootstrap-esm.ts
@@ -8,3 +8,3 @@ import * as fs from 'fs';
import { fileURLToPath } from 'url';
-import { createRequire, register } from 'node:module';
@@ -6,3 +6,3 @@
import * as fs from 'node:fs';
-import { register } from 'node:module';
+import * as Module from 'node:module';
import { product, pkg } from './bootstrap-meta.js';
@@ -14,3 +14,4 @@ import { INLSConfiguration } from './vs/nls.js';
-const require = createRequire(import.meta.url);
+// @ts-ignore
+const require = Module.createRequire(import.meta.url);
const __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -18,3 +19,4 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -13,3 +13,3 @@ import { INLSConfiguration } from './vs/nls.js';
// Install a hook to module resolution to map 'fs' to 'original-fs'
-if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) {
+// @ts-ignore
+if (Module.register && (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron'])) {
const jsCode = `
@@ -33,3 +35,4 @@ if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) {
@@ -28,3 +28,4 @@ if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) {
}`;
- register(`data:text/javascript;base64,${Buffer.from(jsCode).toString('base64')}`, import.meta.url);
+ // @ts-ignore

View File

@@ -5,7 +5,7 @@ index a73bc02..242bab0 100644
@@ -2,3 +2,3 @@ Name: @@NAME@@
Version: @@VERSION@@
-Release: @@RELEASE@@.el8
+Release: el9
+Release: el8
Summary: Code editing. Redefined.
@@ -88 +88,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_datadir}/zsh/site-functions/_%{name}

View File

@@ -1,17 +0,0 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index c1f22aa5002..a6fb2728b1f 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -53,8 +53,10 @@ function npmInstall(dir, opts) {
log(dir, `Installing dependencies inside container ${process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME']}...`);
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64') {
- run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
+ if ((process.env['npm_config_arch'] === 'arm64' || process.env['npm_config_arch'] === 'arm' || process.env['npm_config_arch'] === 'ppc64' || process.env['npm_config_arch'] === 'riscv64' || process.env['npm_config_arch'] === 's390x') && process.env['DISABLE_QEMU'] !== 'true') {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'tonistiigi/binfmt:latest', '--install', 'all'], opts);
+ } else if (process.env['npm_config_arch'] === 'loong64') {
+ run('sudo', ['docker', 'run', '--rm', '--privileged', 'loongcr.lcpu.dev/multiarch/archlinux', '--reset', '-p', 'yes'], opts);
}
run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/root/vscode`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/root/.netrc`, '-w', path.resolve('/root/vscode', dir), process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'sh', '-c', `\"chown -R root:root ${path.resolve('/root/vscode', dir)} && npm i -g node-gyp-build && npm ci\"`], opts);
run('sudo', ['chown', '-R', `${userinfo.uid}:${userinfo.gid}`, `${path.resolve(root, dir)}`], opts);

View File

@@ -1,161 +1,43 @@
diff --git a/build/package-lock.json b/build/package-lock.json
index 1e373f2..3ea31d0 100644
index 445e842..1dea5d1 100644
--- a/build/package-lock.json
+++ b/build/package-lock.json
@@ -53,3 +53,2 @@
@@ -59,3 +59,2 @@
"through2": "^4.0.2",
- "tree-sitter": "^0.20.5",
- "tree-sitter": "^0.22.4",
"vscode-universal-bundler": "^0.1.3",
@@ -59,2 +58,3 @@
@@ -65,2 +64,3 @@
"optionalDependencies": {
+ "tree-sitter": "^0.20.5",
"tree-sitter-typescript": "^0.20.5",
@@ -1381,3 +1381,3 @@
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "tree-sitter": "^0.22.4",
"tree-sitter-typescript": "^0.23.2",
@@ -3416,4 +3416,4 @@
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
- "devOptional": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
@@ -1433,3 +1433,2 @@
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "devOptional": true,
"funding": [
@@ -1448,2 +1447,3 @@
],
+ "optional": true,
"dependencies": {
@@ -1622,3 +1622,3 @@
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "devOptional": true
+ "optional": true
},
@@ -1830,3 +1830,3 @@
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "devOptional": true,
+ "optional": true,
"engines": {
@@ -1896,3 +1896,3 @@
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "devOptional": true,
+ "optional": true,
"engines": {
@@ -2150,3 +2150,3 @@
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
- "devOptional": true,
+ "optional": true,
"engines": {
@@ -2281,3 +2281,3 @@
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "devOptional": true
+ "optional": true
},
@@ -2363,3 +2363,3 @@
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
- "devOptional": true
+ "optional": true
},
@@ -2676,3 +2676,2 @@
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "devOptional": true,
"funding": [
@@ -2690,3 +2689,4 @@
}
- ]
+ ],
+ "optional": true
},
@@ -2713,3 +2713,3 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "devOptional": true
+ "optional": true
},
@@ -3165,3 +3165,3 @@
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "devOptional": true
+ "optional": true
},
@@ -3183,3 +3183,3 @@
"integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==",
- "devOptional": true
+ "optional": true
},
@@ -3189,3 +3189,3 @@
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
- "devOptional": true
+ "optional": true
},
@@ -3195,3 +3195,3 @@
"integrity": "sha512-qWO5l3SCqbwQavymOmtTVuCWZE23++S+rxyoHjXqUmPyzRcaoI4lA2gO55/drddGnedAyjA7sk76SfQ5lfUMnw==",
- "devOptional": true,
+ "optional": true,
"dependencies": {
@@ -3207,3 +3207,3 @@
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "devOptional": true,
+ "optional": true,
"dependencies": {
@@ -3475,3 +3475,3 @@
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
- "devOptional": true,
+ "optional": true,
"dependencies": {
@@ -3559,3 +3559,3 @@
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "devOptional": true,
+ "optional": true,
"dependencies": {
@@ -3772,3 +3772,2 @@
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "devOptional": true,
"funding": [
@@ -3786,3 +3785,4 @@
}
- ]
+ ],
+ "optional": true
},
@@ -3792,3 +3792,2 @@
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
- "devOptional": true,
"funding": [
@@ -3807,2 +3806,3 @@
],
+ "optional": true,
"dependencies": {
@@ -3901,3 +3901,3 @@
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo= sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "devOptional": true,
+ "optional": true,
"engines": {
@@ -3934,3 +3934,3 @@
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
- "devOptional": true,
+ "optional": true,
"dependencies": {
@@ -3946,3 +3946,3 @@
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "devOptional": true,
+ "optional": true,
"dependencies": {
@@ -4029,4 +4029,4 @@
"integrity": "sha512-GxJodajVpfgb3UREzzIbtA1hyRnTxVbWVXrbC6sk4xTMH5ERMBJk9HJNq4c8jOJeUaIOmLcwg+t6mez/PDvGqg==",
- "devOptional": true,
"bin": {
@@ -4243,5 +4243,5 @@
"integrity": "sha512-usbHZP9/oxNsUY65MQUsduGRqDHQOou1cagUSwjhoSYAmSahjQDAVsh9s+SlZkn8X8+O1FULRGwHu7AFP3kjzg==",
- "dev": true,
"hasInstallScript": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
@@ -4066,3 +4066,3 @@
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "devOptional": true,
@@ -4316,4 +4316,4 @@
"integrity": "sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==",
- "dev": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
"engines": {
diff --git a/build/package.json b/build/package.json
index aa94a21..9644be4 100644
index 73d4f42..0eaf964 100644
--- a/build/package.json
+++ b/build/package.json
@@ -47,3 +47,2 @@
@@ -53,3 +53,2 @@
"through2": "^4.0.2",
- "tree-sitter": "^0.20.5",
- "tree-sitter": "^0.22.4",
"vscode-universal-bundler": "^0.1.3",
@@ -59,2 +58,3 @@
@@ -65,2 +64,3 @@
"optionalDependencies": {
+ "tree-sitter": "^0.20.5",
"tree-sitter-typescript": "^0.20.5",
+ "tree-sitter": "^0.22.4",
"tree-sitter-typescript": "^0.23.2",

View File

@@ -1,8 +1,8 @@
diff --git a/src/vs/workbench/electron-sandbox/window.ts b/src/vs/workbench/electron-sandbox/window.ts
index 90c9654..3ef5d32 100644
--- a/src/vs/workbench/electron-sandbox/window.ts
+++ b/src/vs/workbench/electron-sandbox/window.ts
@@ -257,4 +257,4 @@ export class NativeWindow extends BaseWindow {
diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts
index d507690..1abeb63 100644
--- a/src/vs/workbench/electron-browser/window.ts
+++ b/src/vs/workbench/electron-browser/window.ts
@@ -251,4 +251,4 @@ export class NativeWindow extends BaseWindow {
const quality = this.productService.quality;
- const stableURL = 'https://code.visualstudio.com/docs/?dv=osx';
- const insidersURL = 'https://code.visualstudio.com/docs/?dv=osx&build=insiders';

View File

@@ -1,8 +1,8 @@
diff --git a/build/.moduleignore b/build/.moduleignore
index 6b7f365..2211e6e 100644
index 3e654cf..d9ee9f5 100644
--- a/build/.moduleignore
+++ b/build/.moduleignore
@@ -125,9 +125,11 @@ vsda/**
@@ -126,9 +126,11 @@ vsda/**
-@vscode/policy-watcher/build/**
-@vscode/policy-watcher/.husky/**
@@ -19,63 +19,63 @@ index 6b7f365..2211e6e 100644
+@vscodium/policy-watcher/binding.gyp
+@vscodium/policy-watcher/README.md
+@vscodium/policy-watcher/index.d.ts
+!@vscodium/policy-watcher/build/Release/vscode-policy-watcher.node
+!@vscodium/policy-watcher/build/Release/vscodium-policy-watcher.node
diff --git a/build/lib/policies.js b/build/lib/policies.js
index b76d9ff..a84f490 100644
index d2ef760..fa0eea4 100644
--- a/build/lib/policies.js
+++ b/build/lib/policies.js
@@ -64,3 +64,3 @@ class BasePolicy {
@@ -81,3 +81,3 @@ class BasePolicy {
return [
- `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
+ `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
` <parentCategory ref="${this.category.name.nlsKey}" />`,
@@ -376,3 +376,3 @@ function renderADMX(regKey, versions, categories, policies) {
@@ -501,3 +501,3 @@ function renderADMX(regKey, versions, categories, policies) {
<policyNamespaces>
- <target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
+ <target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
</policyNamespaces>
diff --git a/build/lib/policies.ts b/build/lib/policies.ts
index 2488920..8b268ce 100644
index 381d2f4..9cdec71 100644
--- a/build/lib/policies.ts
+++ b/build/lib/policies.ts
@@ -80,3 +80,3 @@ abstract class BasePolicy implements Policy {
@@ -107,3 +107,3 @@ abstract class BasePolicy implements Policy {
return [
- `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
+ `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
` <parentCategory ref="${this.category.name.nlsKey}" />`,
@@ -553,3 +553,3 @@ function renderADMX(regKey: string, versions: string[], categories: Category[],
@@ -703,3 +703,3 @@ function renderADMX(regKey: string, versions: string[], categories: Category[],
<policyNamespaces>
- <target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
+ <target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
</policyNamespaces>
diff --git a/eslint.config.js b/eslint.config.js
index 8e3d288..1fa7cc3 100644
index 127bb34..44d2b4c 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -793,3 +793,3 @@ export default tseslint.config(
@@ -800,3 +800,3 @@ export default tseslint.config(
'@vscode/iconv-lite-umd',
- '@vscode/policy-watcher',
+ '@vscodium/policy-watcher',
'@vscode/proxy-agent',
diff --git a/package-lock.json b/package-lock.json
index d4bc1fb..195cbe1 100644
index 4572a94..9f8c938 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,3 +18,2 @@
"@vscode/iconv-lite-umd": "0.7.0",
- "@vscode/policy-watcher": "^1.1.10",
"@vscode/proxy-agent": "^0.32.0",
- "@vscode/policy-watcher": "^1.3.2",
"@vscode/proxy-agent": "^0.35.0",
@@ -29,2 +28,3 @@
"@vscode/windows-registry": "^1.1.0",
+ "@vscodium/policy-watcher": "^1.1.10-2503041159",
"@xterm/addon-clipboard": "^0.2.0-beta.81",
@@ -2831,22 +2831,2 @@
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@xterm/addon-clipboard": "^0.2.0-beta.102",
@@ -2960,22 +2960,2 @@
},
- "node_modules/@vscode/policy-watcher": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.1.10.tgz",
- "integrity": "sha512-erRJiryjhP//MnRZo+j0LxjVSFa4eZMR9HeAGxIuxlZCQrnvrIG5nv/4qBxiMH0+uE4Z74YY/Ct0wus6l9U/xg==",
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.2.tgz",
- "integrity": "sha512-fmNPYysU2ioH99uCaBPiRblEZSnir5cTmc7w91hAxAoYoGpHt2PZPxT5eIOn7FGmPOsjLdQcd6fduFJGYVD4Mw==",
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
@@ -93,12 +93,12 @@ index d4bc1fb..195cbe1 100644
- }
- },
"node_modules/@vscode/proxy-agent": {
@@ -3247,2 +3227,22 @@
@@ -3372,2 +3352,22 @@
},
+ "node_modules/@vscodium/policy-watcher": {
+ "version": "1.1.10-2503041159",
+ "resolved": "https://registry.npmjs.org/@vscodium/policy-watcher/-/policy-watcher-1.1.10-2503041159.tgz",
+ "integrity": "sha512-Jz8MKbNIB4nJPnr3l3xmyp1VvrkFhOlcjZDoUzQAoVuAfkovedhvPkoZkiB21ygGb4ZxU0ApJXHfzanee0ltWA==",
+ "version": "1.3.2-252465",
+ "resolved": "https://registry.npmjs.org/@vscodium/policy-watcher/-/policy-watcher-1.3.2-252465.tgz",
+ "integrity": "sha512-kpnb656HMteBIm8d9LhBpQ5gL2A/4rJrsaLCF0D8IWyrZAQ0UR9EzXM6tZ6p5H+KWot3QUjm0Gry6vMV1yye5Q==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
@@ -117,14 +117,14 @@ index d4bc1fb..195cbe1 100644
+ },
"node_modules/@webassemblyjs/ast": {
diff --git a/package.json b/package.json
index 925462f..c4b6304 100644
index 8c0fdf3..0817f25 100644
--- a/package.json
+++ b/package.json
@@ -76,3 +76,3 @@
@@ -79,3 +79,3 @@
"@vscode/iconv-lite-umd": "0.7.0",
- "@vscode/policy-watcher": "^1.1.10",
+ "@vscodium/policy-watcher": "^1.1.10-2503041159",
"@vscode/proxy-agent": "^0.32.0",
- "@vscode/policy-watcher": "^1.3.2",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@vscode/proxy-agent": "^0.35.0",
diff --git a/src/vs/base/test/node/uri.perf.data.txt b/src/vs/base/test/node/uri.perf.data.txt
index ee0a24b..881ce36 100644
--- a/src/vs/base/test/node/uri.perf.data.txt
@@ -225,7 +225,7 @@ index ee0a24b..881ce36 100644
+/Users/example/node_modules/@vscodium/policy-watcher/src/windows/NumberPolicy.hh
/Users/example/node_modules/@vscode/vscode-languagedetection/CODE_OF_CONDUCT.md
diff --git a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
index e0b99f3..f3af586 100644
index 2a6acba..167d759 100644
--- a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
+++ b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts
@@ -62,5 +62,5 @@ flakySuite('Native Modules (all platforms)', () => {
@@ -238,7 +238,7 @@ index e0b99f3..f3af586 100644
+ assert.ok(typeof watcher.createWatcher === 'function', testErrorMessage('@vscodium/policy-watcher'));
});
diff --git a/src/vs/platform/policy/node/nativePolicyService.ts b/src/vs/platform/policy/node/nativePolicyService.ts
index 67f7892..5b8859c 100644
index 67f7892..840d655 100644
--- a/src/vs/platform/policy/node/nativePolicyService.ts
+++ b/src/vs/platform/policy/node/nativePolicyService.ts
@@ -8,3 +8,3 @@ import { IStringDictionary } from '../../../base/common/collections.js';

View File

@@ -1,8 +1,8 @@
diff --git a/build/lib/compilation.js b/build/lib/compilation.js
index 841dbe1..7cf692a 100644
index 61a6d28..831b7c2 100644
--- a/build/lib/compilation.js
+++ b/build/lib/compilation.js
@@ -148,24 +148,3 @@ function compileTask(src, out, build, options = {}) {
@@ -145,24 +145,3 @@ function compileTask(src, out, build, options = {}) {
}
- // mangle: TypeScript to TypeScript
- let mangleStream = event_stream_1.default.through();
@@ -28,15 +28,15 @@ index 841dbe1..7cf692a 100644
- .pipe(mangleStream)
.pipe(generator.stream)
diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts
index 6e1fcab..4e45106 100644
index a1de9f1..084fd2f 100644
--- a/build/lib/compilation.ts
+++ b/build/lib/compilation.ts
@@ -18,4 +18,2 @@ import File from 'vinyl';
import * as task from './task';
-import { Mangler } from './mangle/index';
-import { RawSourceMap } from 'source-map';
import { gulpPostcss } from './postcss';
@@ -138,27 +136,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
import ts = require('typescript');
@@ -133,27 +131,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
- // mangle: TypeScript to TypeScript
- let mangleStream = es.through();

View File

@@ -1,22 +1,22 @@
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
index 447f4c9..4ad0e18 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts
index 46120a9..6bc88c8 100644
--- a/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts
+++ b/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts
@@ -153,3 +153,3 @@ class ReportExtensionSlowAction extends Action {
- OS Version: \`${osVersion}\`
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
+- !!APP_NAME!! version: \`${this._productService.version}\`\n\n${message}`);
diff --git a/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts b/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
index 26d796b..1d1ff79 100644
index efe8061..831ce2e 100644
--- a/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
+++ b/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
@@ -630,3 +630,3 @@ export class BaseIssueReporterService extends Disposable {
@@ -591,3 +591,3 @@ export class BaseIssueReporterService extends Disposable {
if (title) {
- this.searchDuplicates(title, issueDescription);
+ this.searchGitHub('!!GH_REPO_PATH!!', title);
} else {
@@ -722,33 +722,2 @@ export class BaseIssueReporterService extends Disposable {
@@ -668,33 +668,2 @@ export class BaseIssueReporterService extends Disposable {
- @debounce(300)
- private searchDuplicates(title: string, body?: string): void {
@@ -50,20 +50,20 @@ index 26d796b..1d1ff79 100644
- }
-
private displaySearchResults(results: SearchResult[]) {
@@ -844,4 +813,4 @@ export class BaseIssueReporterService extends Disposable {
@@ -786,4 +755,4 @@ export class BaseIssueReporterService extends Disposable {
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
- sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "Visual Studio Code"), false));
- sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VS Code extension"), false));
+ sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "!!APP_NAME!!"), false));
+ sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A !!APP_NAME!! extension"), false));
if (this.product.reportMarketplaceIssueUrl) {
@@ -905,3 +874,3 @@ export class BaseIssueReporterService extends Disposable {
@@ -874,3 +843,3 @@ export class BaseIssueReporterService extends Disposable {
hide(descriptionTextArea);
- reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VS Code"));
+ reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of !!APP_NAME!!"));
reset(descriptionSubtitle, localize('elsewhereDescription', "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.", selectedExtension.displayName));
diff --git a/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts b/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
index 0bbd8ac..4cffa1a 100644
index 0bbd8ac..3f35022 100644
--- a/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
+++ b/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
@@ -92,3 +92,3 @@ ${this._data.issueDescription}
@@ -72,16 +72,21 @@ index 0bbd8ac..4cffa1a 100644
+!!APP_NAME!! version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
OS version: ${this._data.versionInfo && this._data.versionInfo.os}
diff --git a/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts b/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts
index 5cbc709..5d6b1e2 100644
index e739f44..0024f74 100644
--- a/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts
+++ b/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts
@@ -18,3 +18,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
@@ -14,3 +14,3 @@ const sendExperimentsLabel = escape(localize('sendExperiments', "Include A/B exp
const sendExtensionData = escape(localize('sendExtensionData', "Include additional extension info"));
-const acknowledgementsLabel = escape(localize('acknowledgements', "I acknowledge that my VS Code version is not updated and this issue may be closed."));
+const acknowledgementsLabel = escape(localize('acknowledgements', "I acknowledge that my !!APP_NAME!! version is not updated and this issue may be closed."));
const reviewGuidanceLabel = localize( // intentionally not escaped because of its embedded tags
@@ -19,3 +19,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
comment: [
- '{Locked="<a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
+ '{Locked="<a href=\"https://github.com/!!GH_REPO_PATH!!/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
'{Locked="</a>"}'
@@ -22,3 +22,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
@@ -23,3 +23,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
},
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
+ 'Before you report an issue here please <a href="https://github.com/!!GH_REPO_PATH!!/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>. Please complete the form in English.'
+ 'Before you report an issue here please <a href="https://github.com/!!GH_REPO_PATH!!/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>. Please complete the form in English.'
);

112
patches/sourcemaps.patch Normal file
View File

@@ -0,0 +1,112 @@
diff --git a/build/gulpfile.extensions.js b/build/gulpfile.extensions.js
index 7826f48..eca4a1d 100644
--- a/build/gulpfile.extensions.js
+++ b/build/gulpfile.extensions.js
@@ -23,2 +23,3 @@ const plumber = require('gulp-plumber');
const ext = require('./lib/extensions');
+const product = require('../product.json');
@@ -74,3 +75,3 @@ const compilations = [
-const getBaseUrl = out => `https://main.vscode-cdn.net/sourcemaps/${commit}/${out}`;
+const getBaseUrl = out => `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/${out.replaceAll('/', '-')}`;
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 10b7b44..79861bf 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -454,3 +454,3 @@ function tweakProductForServerWeb(product) {
util.rimraf(`out-vscode-${type}-min`),
- optimize.minifyTask(`out-vscode-${type}`, `https://main.vscode-cdn.net/sourcemaps/${commit}/core`)
+ optimize.minifyTask(`out-vscode-${type}`, `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/core`)
));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ed06b6a..9488983 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -147,3 +147,3 @@ gulp.task(bundleVSCodeTask);
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
const minifyVSCodeTask = task.define('minify-vscode', task.series(
diff --git a/build/gulpfile.vscode.web.js b/build/gulpfile.vscode.web.js
index 295a977..318ce92 100644
--- a/build/gulpfile.vscode.web.js
+++ b/build/gulpfile.vscode.web.js
@@ -140,3 +140,3 @@ const minifyVSCodeWebTask = task.define('minify-vscode-web', task.series(
util.rimraf('out-vscode-web-min'),
- optimize.minifyTask('out-vscode-web', `https://main.vscode-cdn.net/sourcemaps/${commit}/core`)
+ optimize.minifyTask('out-vscode-web', `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/core`)
));
diff --git a/build/lib/extensions.js b/build/lib/extensions.js
index c80a1be..25cf259 100644
--- a/build/lib/extensions.js
+++ b/build/lib/extensions.js
@@ -75,4 +75,5 @@ const vzip = require('gulp-vinyl-zip');
const root = path_1.default.dirname(path_1.default.dirname(__dirname));
+const product = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'product.json'), 'utf8'));
const commit = (0, getVersion_1.getVersion)(root);
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
function minifyExtensionResources(input) {
@@ -205,3 +206,3 @@ function fromLocalWebpack(extensionPath, webpackConfigFileName, disableMangle) {
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
- return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path_1.default.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
+ return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path_1.default.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
}), 'utf8');
diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts
index 9e7cf9f..eed31ca 100644
--- a/build/lib/extensions.ts
+++ b/build/lib/extensions.ts
@@ -30,4 +30,5 @@ const vzip = require('gulp-vinyl-zip');
const root = path.dirname(path.dirname(__dirname));
+const product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
const commit = getVersion(root);
-const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
+const sourceMappingURLBase = `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}`;
@@ -179,3 +180,3 @@ function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string,
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
- return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
+ return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
}), 'utf8');
diff --git a/build/lib/optimize.js b/build/lib/optimize.js
index fbc455b..4e7fe85 100644
--- a/build/lib/optimize.js
+++ b/build/lib/optimize.js
@@ -186,3 +186,3 @@ function bundleTask(opts) {
function minifyTask(src, sourceMapBaseUrl) {
- const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
+ const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
return cb => {
diff --git a/build/lib/optimize.ts b/build/lib/optimize.ts
index d89d0d6..fca30cf 100644
--- a/build/lib/optimize.ts
+++ b/build/lib/optimize.ts
@@ -211,3 +211,3 @@ export function bundleTask(opts: IBundleESMTaskOpts): () => NodeJS.ReadWriteStre
export function minifyTask(src: string, sourceMapBaseUrl?: string): (cb: any) => void {
- const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
+ const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
diff --git a/build/lib/util.js b/build/lib/util.js
index 389b9e0..f80d8e5 100644
--- a/build/lib/util.js
+++ b/build/lib/util.js
@@ -235,4 +235,4 @@ function rewriteSourceMappingURL(sourceMappingURLBase) {
const contents = f.contents.toString('utf8');
- const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path_1.default.dirname(f.relative).replace(/\\/g, '/')}/$1`;
- f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
+ const fp = path_1.default.dirname(f.relative).replace(/\\/g, '/').replaceAll('/', '-');
+ f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, (_m, p) => `//# sourceMappingURL=${sourceMappingURLBase}/${fp}-${p.replaceAll('/', '-')}`));
return f;
diff --git a/build/lib/util.ts b/build/lib/util.ts
index 4931342..833091c 100644
--- a/build/lib/util.ts
+++ b/build/lib/util.ts
@@ -285,4 +285,4 @@ export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.Re
const contents = (<Buffer>f.contents).toString('utf8');
- const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path.dirname(f.relative).replace(/\\/g, '/')}/$1`;
- f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
+ const fp = path.dirname(f.relative).replace(/\\/g, '/').replaceAll('/', '-');
+ f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, (_m, p) => `//# sourceMappingURL=${sourceMappingURLBase}/${fp}-${p.replaceAll('/', '-')}`));
return f;

59
patches/telemetry.patch Normal file
View File

@@ -0,0 +1,59 @@
diff --git a/src/vs/platform/telemetry/common/telemetryService.ts b/src/vs/platform/telemetry/common/telemetryService.ts
index ef676bd..4feb98b 100644
--- a/src/vs/platform/telemetry/common/telemetryService.ts
+++ b/src/vs/platform/telemetry/common/telemetryService.ts
@@ -219,3 +219,3 @@ configurationRegistry.registerConfiguration({
'markdownDescription': getTelemetryLevelSettingDescription(),
- 'default': TelemetryConfiguration.ON,
+ 'default': TelemetryConfiguration.OFF,
'restricted': true,
@@ -245,3 +245,3 @@ configurationRegistry.registerConfiguration({
localize('telemetry.enableTelemetryMd', "Enable diagnostic data to be collected. This helps us to better understand how {0} is performing and where improvements need to be made. [Read more]({1}) about what we collect and our privacy statement.", product.nameLong, product.privacyStatementUrl),
- 'default': true,
+ 'default': false,
'restricted': true,
diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts
index d09ab3f..f37edd6 100644
--- a/src/vs/workbench/browser/workbench.contribution.ts
+++ b/src/vs/workbench/browser/workbench.contribution.ts
@@ -496,3 +496,3 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
'description': localize('enableNaturalLanguageSearch', "Controls whether the command palette should include similar commands. You must have an extension installed that provides Natural Language support."),
- 'default': true
+ 'default': false
},
diff --git a/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts b/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts
index 16fd396..587e1e3 100644
--- a/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts
+++ b/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.ts
@@ -28,3 +28,3 @@ configurationRegistry.registerConfiguration({
type: 'boolean',
- default: true,
+ default: false,
tags: ['experimental'],
diff --git a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts
index e5cec6f..9c9e169 100644
--- a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts
+++ b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts
@@ -113,3 +113,3 @@ registry.registerConfiguration({
'description': nls.localize('enableNaturalLanguageSettingsSearch', "Controls whether to enable the natural language search mode for settings. The natural language search is provided by a Microsoft online service."),
- 'default': true,
+ 'default': false,
'scope': ConfigurationScope.WINDOW,
diff --git a/src/vs/workbench/electron-browser/desktop.contribution.ts b/src/vs/workbench/electron-browser/desktop.contribution.ts
index 3517cc1..7b365fa 100644
--- a/src/vs/workbench/electron-browser/desktop.contribution.ts
+++ b/src/vs/workbench/electron-browser/desktop.contribution.ts
@@ -342,3 +342,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
'description': localize('telemetry.enableCrashReporting', "Enable crash reports to be collected. This helps us improve stability. \nThis option requires restart to take effect."),
- 'default': true,
+ 'default': false,
'tags': ['usesOnlineServices', 'telemetry'],
diff --git a/src/vs/workbench/services/assignment/common/assignmentService.ts b/src/vs/workbench/services/assignment/common/assignmentService.ts
index 4a3d96b..e587d5b 100644
--- a/src/vs/workbench/services/assignment/common/assignmentService.ts
+++ b/src/vs/workbench/services/assignment/common/assignmentService.ts
@@ -277,3 +277,3 @@ registry.registerConfiguration({
'description': localize('workbench.enableExperiments', "Fetches experiments to run from a Microsoft online service."),
- 'default': true,
+ 'default': false,
'scope': ConfigurationScope.APPLICATION,

View File

@@ -1,6 +1,6 @@
diff --git a/extensions/terminal-suggest/src/completions/codium-insiders.ts b/extensions/terminal-suggest/src/completions/codium-insiders.ts
new file mode 100644
index 0000000..a5769b1
index 0000000..f3c0f9d
--- /dev/null
+++ b/extensions/terminal-suggest/src/completions/codium-insiders.ts
@@ -0,0 +1,9 @@
@@ -15,7 +15,7 @@ index 0000000..a5769b1
+export default codiumInsidersCompletionSpec;
diff --git a/extensions/terminal-suggest/src/completions/codium.ts b/extensions/terminal-suggest/src/completions/codium.ts
new file mode 100644
index 0000000..b1fa812
index 0000000..1daa1fe
--- /dev/null
+++ b/extensions/terminal-suggest/src/completions/codium.ts
@@ -0,0 +1,9 @@
@@ -29,16 +29,16 @@ index 0000000..b1fa812
+
+export default codiumCompletionSpec;
diff --git a/extensions/terminal-suggest/src/terminalSuggestMain.ts b/extensions/terminal-suggest/src/terminalSuggestMain.ts
index 3f181bc..34054ed 100644
index b0f197f..6884365 100644
--- a/extensions/terminal-suggest/src/terminalSuggestMain.ts
+++ b/extensions/terminal-suggest/src/terminalSuggestMain.ts
@@ -12,2 +12,4 @@ import codeCompletionSpec from './completions/code';
@@ -10,2 +10,4 @@ import codeCompletionSpec from './completions/code';
import codeInsidersCompletionSpec from './completions/code-insiders';
+import codiumCompletionSpec from './completions/codium';
+import codiumInsidersCompletionSpec from './completions/codium-insiders';
import setLocationSpec from './completions/set-location';
@@ -52,2 +54,4 @@ export const availableSpecs: Fig.Spec[] = [
codeCompletionSpec,
import codeTunnelCompletionSpec from './completions/code-tunnel';
@@ -64,2 +66,4 @@ export const availableSpecs: Fig.Spec[] = [
npxCompletionSpec,
+ codiumInsidersCompletionSpec,
+ codiumCompletionSpec,
setLocationSpec,

View File

@@ -1,191 +0,0 @@
diff --git a/.npmrc b/.npmrc
index e10d4a0..4553a7b 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,3 +1,3 @@
disturl="https://electronjs.org/headers"
-target="34.2.0"
+target="34.3.2"
ms_build_id="11161602"
diff --git a/build/checksums/electron.txt b/build/checksums/electron.txt
index dcc7bf5..d390d7a 100644
--- a/build/checksums/electron.txt
+++ b/build/checksums/electron.txt
@@ -1,75 +1,75 @@
-c0a187acca68906c4a6387e8fabd052cb031ace6132d60a71001d9a0e891958e *chromedriver-v34.2.0-darwin-arm64.zip
-fa5a46d752267d8497d375e19079e8b6a8df70c234a79b2d6b48f5862e1a0abc *chromedriver-v34.2.0-darwin-x64.zip
-61e03d4fa570976d80f740637f56192b6448a05a73d1fba9717900b29f2b1b4d *chromedriver-v34.2.0-linux-arm64.zip
-ec774d9b1a1b828a0db1502a1017fcab1dfed99b1b6b2fd2308dd600a1efa98a *chromedriver-v34.2.0-linux-armv7l.zip
-cc15a6e6206485a2d96649ceb60509b9da04fa2811c4824b2e0eb43d1f4b1417 *chromedriver-v34.2.0-linux-x64.zip
-9777122f6684180ef375b9b21dcabbc731d8a8befa300d1d47ad954a5b64c1c8 *chromedriver-v34.2.0-mas-arm64.zip
-69451fa148b105fec9644646b22ca758a206499574c5816591354835c8056679 *chromedriver-v34.2.0-mas-x64.zip
-eb7adc7e720f5e0f1d2c12ecbe886bdc01f2c9aaa3954bd6ebd313750bb18819 *chromedriver-v34.2.0-win32-arm64.zip
-cb1973b0c2f5565974d5c2cb51816692f064b6cdc7897fa341d528ba7f9b14bf *chromedriver-v34.2.0-win32-ia32.zip
-af5575b4727c3dbe7272016cbbaa8872043f843168a47d86748a50397efb4f77 *chromedriver-v34.2.0-win32-x64.zip
-fcc718af2a28fb953290dc971e945818b4dbb293f297e6e25acb669d450cc0dd *electron-api.json
-fa47e752e559a6472b87d8907f63296ed8cd53ecf862a4ae113018474d40aa8e *electron-v34.2.0-darwin-arm64-dsym-snapshot.zip
-336c3374e721e2379901141be6345459f78d243b037c65b55bac4ae8cb14bfbe *electron-v34.2.0-darwin-arm64-dsym.zip
-ac3b9d712d9f036f066d8eba42797117a513e2d250fcc117f0354300b7d5c1e5 *electron-v34.2.0-darwin-arm64-symbols.zip
-ee447c17b2ac545e48083113d7e39a916821c1316f60f42cbcbee4fffe7c022a *electron-v34.2.0-darwin-arm64.zip
-d7510bc038d06b26690ac9a78fbb256626502303ff7f5b1c2242f64a02832b1b *electron-v34.2.0-darwin-x64-dsym-snapshot.zip
-0e95c2bbda00afe78e6229b824e3ffe0cc8612956dc11a5a30380224acdbecae *electron-v34.2.0-darwin-x64-dsym.zip
-6d734ef8e8fd007071aae9a13534894dd801f11900f3e73e49cf5352b426e575 *electron-v34.2.0-darwin-x64-symbols.zip
-8ef741819c8a5370dabc3b9df5e6ac217366477c5d5c656ed23c800bc984d887 *electron-v34.2.0-darwin-x64.zip
-c2f448882a0392ebfd9810058a6a9580b087002c74fca3dcd3cf4ba5c3b27a7c *electron-v34.2.0-linux-arm64-debug.zip
-51e887c382593021127593ceba89ad662d3a6de0f748b94fe3a0ce78a7393923 *electron-v34.2.0-linux-arm64-symbols.zip
-818c91309da8ff948c43df58a996c05c0d27daa690e1d659355d9db01e351919 *electron-v34.2.0-linux-arm64.zip
-c2f448882a0392ebfd9810058a6a9580b087002c74fca3dcd3cf4ba5c3b27a7c *electron-v34.2.0-linux-armv7l-debug.zip
-71ec2b7473db766194bcf04648229c4affedce06e150e692745cc72dbc3749c5 *electron-v34.2.0-linux-armv7l-symbols.zip
-0c75996c6bf2d37d0441d3e1021386a9348f8d21783d75571cdb10ede606424f *electron-v34.2.0-linux-armv7l.zip
-d1f17be8df8ec6dc1a23afd8a7752f0b949c755a493b8a2c1e83f76c629258ca *electron-v34.2.0-linux-x64-debug.zip
-d8fa79154b0b663dbd0054d69f53aec326997449ef21943d27225a2d6899660f *electron-v34.2.0-linux-x64-symbols.zip
-f12a02d86cc657500978d263ec6d1841b6e2085cd3bd4d30a97cfe14685396f3 *electron-v34.2.0-linux-x64.zip
-71ef8bfebb8513a405fd2beb44ad18f802bbac2248f81a5328ddaaa12906d70c *electron-v34.2.0-mas-arm64-dsym-snapshot.zip
-437aca6cad3158f15fd852e5913462637052940f812b20ccc10fccc133d5a0d6 *electron-v34.2.0-mas-arm64-dsym.zip
-7f253375a7b43d34b770c03153e47185be7a64bc0c10a783993a93144eb35492 *electron-v34.2.0-mas-arm64-symbols.zip
-1f601c20430b036b485c7dc02a39a297f0d08905462a4568306c12f299375e2f *electron-v34.2.0-mas-arm64.zip
-d32664181804a17f825bf1fbfd8f0cbe01e0b41b284937359e6d9754b3481ed8 *electron-v34.2.0-mas-x64-dsym-snapshot.zip
-f6b394b89fb77dfeefdf525739fe8cd9695f8c2ac2251ed7c571a376cde059e9 *electron-v34.2.0-mas-x64-dsym.zip
-539328d93e9bc122e6e34faeab6a42f4845c523f796c7a11bbdcfe5e856f6b98 *electron-v34.2.0-mas-x64-symbols.zip
-749b6ced7a9d35a719ad98d4c3bf1a08c315c19ce97d2497235d4ac302cda665 *electron-v34.2.0-mas-x64.zip
-e843ea4cb7a93686728d056c957c124760886167932ff619b518e45917edf38a *electron-v34.2.0-win32-arm64-pdb.zip
-4908423be5f8ad1b5dd737edfd69ee0870460e16bb639bb963b0981bda2628e4 *electron-v34.2.0-win32-arm64-symbols.zip
-9d13b2bd61416eec28f43faa399cc5c0dc9e36dec226314bbf397828f55d74de *electron-v34.2.0-win32-arm64-toolchain-profile.zip
-1629cec7b5620e6ca3b5305c393ae147d1a3871a8f164d686b7bee3810fc1109 *electron-v34.2.0-win32-arm64.zip
-e7182f1ef5ed13187fe12f35133cefb50c59e1d52ada758cbb72813dda575205 *electron-v34.2.0-win32-ia32-pdb.zip
-a10f778f62bf060a7e38f5ea75ea472679b9ef4f12767ee0703e6d77effae78a *electron-v34.2.0-win32-ia32-symbols.zip
-9d13b2bd61416eec28f43faa399cc5c0dc9e36dec226314bbf397828f55d74de *electron-v34.2.0-win32-ia32-toolchain-profile.zip
-96396712a0240f04471f71246b3885a513b08e3f2d40154272d34e59419db7e6 *electron-v34.2.0-win32-ia32.zip
-0c55ef5b1a6ea4604e3f0e9f8b5e946944abd1cfc3b974432d40e924a9996812 *electron-v34.2.0-win32-x64-pdb.zip
-d6b67cf12edabcc62ae21e7c90ac6b1161dbefe4e6b765c69fc7040096b7d026 *electron-v34.2.0-win32-x64-symbols.zip
-9d13b2bd61416eec28f43faa399cc5c0dc9e36dec226314bbf397828f55d74de *electron-v34.2.0-win32-x64-toolchain-profile.zip
-a4fdf617dca787b7f1c6f8d0d1cb69c8adb37ee23f9553fe69803f9cad713360 *electron-v34.2.0-win32-x64.zip
-5ca44a4ee9cc74a56c9556ce3f3774986dbb8b4f4953088c7f4577bfba4356a8 *electron.d.ts
-86247a6815cc98f321374edcbfc0ab7ee79bcb13a5c25213f42151e4059ec690 *ffmpeg-v34.2.0-darwin-arm64.zip
-e94f4707a91194f97d0451f9d5a27982c873a5c13d83d20926ce6fdb613f536c *ffmpeg-v34.2.0-darwin-x64.zip
-947d7b7cb035eab94cc15b602dfa8a925cf238c1d9225c01732fe0c41f59c571 *ffmpeg-v34.2.0-linux-arm64.zip
-64d74b6b94ac4fd755b97e0ec8d50af9cd73810fdb52f6c081b13a3337ace0ea *ffmpeg-v34.2.0-linux-armv7l.zip
-a62cb20c5e5f2ba6f1df6f1bc406cc30f7ed44fe6380b506afa333d1b4ad7a87 *ffmpeg-v34.2.0-linux-x64.zip
-715bbb3d193b1ca57d4b329edd05cd6b125dc188cdb73d1c66f220f62c8562e3 *ffmpeg-v34.2.0-mas-arm64.zip
-866bf47106e8c3e50f046783eb8f5c756069c6de962a46f4edc7a5ee7e4593ee *ffmpeg-v34.2.0-mas-x64.zip
-71a2a6c4cca15ccbcbf8912f5d73f855b0ca79804f941f68527ae808f8163957 *ffmpeg-v34.2.0-win32-arm64.zip
-399f841cca166781078ca42c8ea060e3d5850ec6cb79716186d0806f3ce20842 *ffmpeg-v34.2.0-win32-ia32.zip
-afad2a44f20a0c0c01fb1fea637f3f821842399593c9961c74d650ca12d32cbb *ffmpeg-v34.2.0-win32-x64.zip
-c95fdc9dba05aa68aeccb69d4c34f0cb1fb98d7f5291d974d0b638488693655f *hunspell_dictionaries.zip
-0abe74138afdb6e45a085d77407659f13c75ab96f694313d4e98bd662f9c6df2 *libcxx-objects-v34.2.0-linux-arm64.zip
-3d0cbf6fb150b006428eab78235856d2204d5e93ca85f162e429b4c8bd9b0d3b *libcxx-objects-v34.2.0-linux-armv7l.zip
-3a5491e32cec825499919be1b8bf0550d28fe5a31ff00a95572d49a58bb4820a *libcxx-objects-v34.2.0-linux-x64.zip
-ff8753d52f759041b8e5462125ee2b96798fe8b5047f8fb8ae60cd07af2fb13d *libcxx_headers.zip
-c98cce0091681bc367a48f66c5f4602961aa9cb6dd1a995d8969d6b39ce732f3 *libcxxabi_headers.zip
-78a9606190fb227460ddcd276ad540873595d6a82fd1007f42900f53347e3eb1 *mksnapshot-v34.2.0-darwin-arm64.zip
-6d4587a36f509356a908b6752de527cfe8a294a2d435b82ea3a98288c3a3a178 *mksnapshot-v34.2.0-darwin-x64.zip
-17737bd34f7feefc5143b745f2c4f0e5a41678780e144eb43de41f8d4b9d7852 *mksnapshot-v34.2.0-linux-arm64-x64.zip
-565aa9a84d913b7b5eb8d3b868cff151cb8a6c16548233ffd92b2f9bf3789227 *mksnapshot-v34.2.0-linux-armv7l-x64.zip
-7332d7864ab4e5ee7fa8d00580d9357f30d0e69d3d1434d67c61f79f666314a4 *mksnapshot-v34.2.0-linux-x64.zip
-cc81bfc9894378a9fc8a777429e04cc80860663b3dff8eba1f8cc72559a4f23d *mksnapshot-v34.2.0-mas-arm64.zip
-c98230088698638159f6e7e0c5ddde3cb4dba9fa81d76e3c58fc86f96b63ef81 *mksnapshot-v34.2.0-mas-x64.zip
-cc7b42943d998e1083ad8119dc2201dd27d709c15aa2a9b78f409485d2927592 *mksnapshot-v34.2.0-win32-arm64-x64.zip
-ade9e3126f113318e226f9bdeba068b4383b30a98517a361386eff448459effa *mksnapshot-v34.2.0-win32-ia32.zip
-344292ea318dc0e21f37bc7c82d57a57449f0fb278d9868f1b1b597bdcb1f36f *mksnapshot-v34.2.0-win32-x64.zip
+c9b82c9f381742e839fea00aeb14f24519bcaf38a0f4eed25532191701f9535b *chromedriver-v34.3.2-darwin-arm64.zip
+d556c1e2b06f1bf131e83c2fb981de755c28e1083a884d257eb964815be16b0c *chromedriver-v34.3.2-darwin-x64.zip
+1cabad4f3303ac2ff172a9f22185f64944dbaa6fc68271609077158eaefdee35 *chromedriver-v34.3.2-linux-arm64.zip
+4213ce52c72ef414179b5c5c22ae8423847ff030d438296bd6c2aac763930a7b *chromedriver-v34.3.2-linux-armv7l.zip
+3c64c08221fdfc0f4be60ea8b1b126f2ecca45f60001b63778522f711022c6ea *chromedriver-v34.3.2-linux-x64.zip
+e8388734d88e011cb6cd79795431de9206820749219d80565ee49d90501d2bf3 *chromedriver-v34.3.2-mas-arm64.zip
+3ad1dd37bd6e0bb37e8503898db7aedd56bd5213e6d6760b05c3d11f4625062b *chromedriver-v34.3.2-mas-x64.zip
+d567b481a0f5d88e84bba7718f89fb08f56363bfc4cb5914e1c2086358a5c252 *chromedriver-v34.3.2-win32-arm64.zip
+df6732e9dc61cb20a3c0b2a2de453aac7e2bd54e7cbff43512afa614852c15fa *chromedriver-v34.3.2-win32-ia32.zip
+dda0765c8d064924632e18cd152014ecd767f3808fc51c8249a053bfb7ca70a2 *chromedriver-v34.3.2-win32-x64.zip
+1945f15caff98f2e0f1ee539c483d352fb8d4d0c13f342caa7abe247676d828c *electron-api.json
+c078bbf727b3c3026f60e07a0f4643b85c06c581b54be017d0a6c284ba6772d3 *electron-v34.3.2-darwin-arm64-dsym-snapshot.zip
+35f587754d6a3272606258386bf73688d63dd53c7e572d3a7cbaae6f3f60bdae *electron-v34.3.2-darwin-arm64-dsym.zip
+08b14ee02c98353de3c738120dfd017322666e82b914a7f6de9b9888dcc5c0f0 *electron-v34.3.2-darwin-arm64-symbols.zip
+2a4aa7e8fa30f229e465ebd18d3e4722e2b41529dc51a68a954d333a7e556ffe *electron-v34.3.2-darwin-arm64.zip
+1509ccdeb80024f5e3edd5ecf804b4cef4e47ea2bd74e33ef0b39044b0ccf892 *electron-v34.3.2-darwin-x64-dsym-snapshot.zip
+3bbe5d587c3f582ed8c126b0fb635cc02ad9a14d077b04892fe6f862092445b0 *electron-v34.3.2-darwin-x64-dsym.zip
+fa7ece82e6ecaf1c94ed341e8ebff98e64687c68fe113f52cd9a21400302e22f *electron-v34.3.2-darwin-x64-symbols.zip
+23938c62257a65a863ed7aa7c7966ba5f257a7d3dc16c78293e826962cc39c5c *electron-v34.3.2-darwin-x64.zip
+0547eecf8ab538d74fa854f591ce8b888a3dbb339256d2db3038e7bb2c6dd929 *electron-v34.3.2-linux-arm64-debug.zip
+676d0dc2b1c1c85c8b2abbb8cd5376ee22ecdb910493b910d9ae5a998532136a *electron-v34.3.2-linux-arm64-symbols.zip
+774e4ccb39d553e5487994a9f8c60774a90f08cdb049ff65f3963fc27c969ff2 *electron-v34.3.2-linux-arm64.zip
+0547eecf8ab538d74fa854f591ce8b888a3dbb339256d2db3038e7bb2c6dd929 *electron-v34.3.2-linux-armv7l-debug.zip
+ba33bf53fcb35dea568a2795f5b23ecf46c218abe8258946611c72a1f42f716c *electron-v34.3.2-linux-armv7l-symbols.zip
+73ae92c8fffb351d3a455569cf57ce9a3f676f42bf61939c613c607fe0fc3bfb *electron-v34.3.2-linux-armv7l.zip
+e61a9a69dd7ea6f2687708a8e83516670cdea53c728226e598e2f6f1fad5b77b *electron-v34.3.2-linux-x64-debug.zip
+f1a04df7fe67dd1cd29e7b87871525458d2eb24c0cf3b5835a1c56974707562a *electron-v34.3.2-linux-x64-symbols.zip
+7b74c0c4fae82e27c7e9cbca13e9763e046113dba8737d3e27de9a0b300ac87e *electron-v34.3.2-linux-x64.zip
+8571a6aa83e00925ceb39fdc5a45a9f6b9aa3d92fd84951c6f252ed723aea4ae *electron-v34.3.2-mas-arm64-dsym-snapshot.zip
+477410c6f9a6c5eeaedf376058a02c2996fc0a334aa40eeec7d3734c09347f4d *electron-v34.3.2-mas-arm64-dsym.zip
+c2e62dcd6630cb51b2d8e2869e74e47d29bda785521cea6e82e546d0fc58aabb *electron-v34.3.2-mas-arm64-symbols.zip
+a1698e8546a062fd59b7f8e5507a7f3220fb00b347f2377de83fc9a07f7f3507 *electron-v34.3.2-mas-arm64.zip
+741a24ac230a3651dca81d211f9f00b835c428a5ed0c5f67d370d4e88b62f8d6 *electron-v34.3.2-mas-x64-dsym-snapshot.zip
+aeff97ec9e5c9e173ac89e38acd94476025c5640d5f27be1e8c2abd54398bab3 *electron-v34.3.2-mas-x64-dsym.zip
+9f14b66b1d612ac66697288e8763171c388f7f200854871a5f0ab464a6a921c2 *electron-v34.3.2-mas-x64-symbols.zip
+c979d7e7175f1e8e03ca187997d4c156b878189fc3611b347fadebcb16f3e027 *electron-v34.3.2-mas-x64.zip
+f43c700641e8220205dd356952e32718d113cf530520c4ed7209b59851eac266 *electron-v34.3.2-win32-arm64-pdb.zip
+3ba6e01c99bffac6b5dd3fd6f122ecdb571cf6f675dc5498c65050bd7a382ef8 *electron-v34.3.2-win32-arm64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.3.2-win32-arm64-toolchain-profile.zip
+9b9cb65d75a16782088b492f9ef3bb4d27525012b819c12bf29bd27e159d749b *electron-v34.3.2-win32-arm64.zip
+1006e7af4c149114b5ebc3497617aaa6cd1bb0b131e0a225fd73709ff308f9c5 *electron-v34.3.2-win32-ia32-pdb.zip
+1ecb6430cd04454f08f557c9579163f3552144bfcc0b67b768dad8868b5b891d *electron-v34.3.2-win32-ia32-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.3.2-win32-ia32-toolchain-profile.zip
+d004fd5f853754001fafaec33e383d1950b30c935ee71b297ec1c9e084355e9b *electron-v34.3.2-win32-ia32.zip
+4e0721552fd2f09e9466e88089af8b965f1bfbc4ae00a59aaf6245b1d1efabfd *electron-v34.3.2-win32-x64-pdb.zip
+9dea812a7e7cd0fb18e5fed9a99db5531959a068c24d3c0ecedceb644cd3ffa0 *electron-v34.3.2-win32-x64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.3.2-win32-x64-toolchain-profile.zip
+1785e161420fb90d2331c26e50bba3413cae9625b7db3c8524ea02ade631efba *electron-v34.3.2-win32-x64.zip
+722b304c31ddac58b0083d94a241c5276464f04bd8ea4fcbfd33051d197be103 *electron.d.ts
+31ce159b2e47d1de5bc907d8e1c89726b0f2ba530ec2e9d7a8e5c723b1ccf6e0 *ffmpeg-v34.3.2-darwin-arm64.zip
+565539bac64a6ee9cf6f188070f520210a1507341718f5dc388ac7c454b1e1d5 *ffmpeg-v34.3.2-darwin-x64.zip
+6006ea0f46ab229feb2685be086b0fafd65981e2939dd2218a078459c75ab527 *ffmpeg-v34.3.2-linux-arm64.zip
+9404ce2e85df7c40f809f2cf62c7af607de299839fe6b7ae978c3015500abcc8 *ffmpeg-v34.3.2-linux-armv7l.zip
+79aec96898b7e2462826780ee0b52b9ab299dc662af333e128a34fd5ddae87f1 *ffmpeg-v34.3.2-linux-x64.zip
+9190743c78210574faf5d5ecb82a00f8fa15e5f2253378cb925a99ca9d39961b *ffmpeg-v34.3.2-mas-arm64.zip
+48915adcb1a6342efeda896035101300f0432c0304cfb38f2378e98c6309ebae *ffmpeg-v34.3.2-mas-x64.zip
+745d5ef786de6d4a720475079836e2fda7b501cfcd255819485a47de5b24b74e *ffmpeg-v34.3.2-win32-arm64.zip
+d0d86d60978439dc8ae4a723d4e4c1f853891d596bfd84033440a232fa762e2f *ffmpeg-v34.3.2-win32-ia32.zip
+4441539fd8c9cbe79880ff1bade9bdc0c3744c33d7409130af6404e57ee401ff *ffmpeg-v34.3.2-win32-x64.zip
+39edd1eeefe881aa75af0e438204e0b1c6e6724e34fa5819109276331c0c2c9a *hunspell_dictionaries.zip
+20dd417536e5f4ebc01f480221284c0673729c27b082bc04e2922f16cd571719 *libcxx-objects-v34.3.2-linux-arm64.zip
+7e53c5779c04f895f8282c0450ec4a63074d15a0e910e41006cfea133d0288af *libcxx-objects-v34.3.2-linux-armv7l.zip
+92e2283c924ab523ffec3ea22513beaab6417f7fc3d570f57d51a1e1ceb7f510 *libcxx-objects-v34.3.2-linux-x64.zip
+9bf3c6e8ad68f523fe086fada4148dd04e5bb0b9290d104873e66f2584a5cf50 *libcxx_headers.zip
+34e4b44f9c5e08b557a2caed55456ce7690abab910196a783a2a47b58d2b9ac9 *libcxxabi_headers.zip
+11f67635e6659f9188198e4086c51b89890b61a22f6c17c99eff35595ee8f51d *mksnapshot-v34.3.2-darwin-arm64.zip
+c0add9ef4ac27c73fa043d04b4c9635fd3fd9f5c16d7a03e961864ba05252813 *mksnapshot-v34.3.2-darwin-x64.zip
+6262adf86a340d8d28059937b01ef1117b93212e945fddbceea5c18d7e7c64f0 *mksnapshot-v34.3.2-linux-arm64-x64.zip
+f7db8ebe91a1cc8d24ef6aad12949a18d8e4975ac296e3e5e9ecd88c9bccb143 *mksnapshot-v34.3.2-linux-armv7l-x64.zip
+6642038e86bda362980ff1c8973a404e2b02efdd87de9e35b650fc1e743833da *mksnapshot-v34.3.2-linux-x64.zip
+15883bf8e8cd737c3682d1e719d7cbac92f50b525681aac324dca876861dfc7d *mksnapshot-v34.3.2-mas-arm64.zip
+4da23a950bfcc377ef21c37d496017ab4c36da03f3b41049ac114042c42608ce *mksnapshot-v34.3.2-mas-x64.zip
+fab59573d3c2f9bdf31146a1896d24ac0c51f736aad86d2f3c7ecef13c05a7fd *mksnapshot-v34.3.2-win32-arm64-x64.zip
+66f25e07c6f8d5d2009577a129440255a3baf63c929a5b60b2e77cd52e46105b *mksnapshot-v34.3.2-win32-ia32.zip
+8168bfbf61882cfac80aed1e71e364e1c7f2fccd11eac298e6abade8b46894ea *mksnapshot-v34.3.2-win32-x64.zip
diff --git a/package-lock.json b/package-lock.json
index bdf4631..1691dae 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -98,3 +98,3 @@
"deemon": "^1.8.0",
- "electron": "34.2.0",
+ "electron": "34.3.2",
"eslint": "^9.11.1",
@@ -6101,5 +6101,5 @@
"node_modules/electron": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/electron/-/electron-34.2.0.tgz",
- "integrity": "sha512-SYwBJNeXBTm1q/ErybQMUBZAYqEreBUqBwTrNkw1rV4YatDZk5Aittpcus3PPeC4UoI/tqmJ946uG8AKHTd6CA==",
+ "version": "34.3.2",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-34.3.2.tgz",
+ "integrity": "sha512-n9tzmFexVLxipZXwMTY30H10f0X9k2OP0SkpSwL5VvnDZi0l/Hc+8CEArKkQPbbSf/IS7nxgc96gtTaR+XoSBg==",
"dev": true,
diff --git a/package.json b/package.json
index 7aab481..4ddc6f0 100644
--- a/package.json
+++ b/package.json
@@ -156,3 +156,3 @@
"deemon": "^1.8.0",
- "electron": "34.2.0",
+ "electron": "34.3.2",
"eslint": "^9.11.1",

View File

@@ -0,0 +1,206 @@
diff --git a/.npmrc b/.npmrc
index 05f84f8..62dbfd8 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,3 +1,3 @@
disturl="https://electronjs.org/headers"
-target="34.5.1"
+target="34.5.4"
ms_build_id="11369351"
diff --git a/build/checksums/electron.txt b/build/checksums/electron.txt
index 9bfbc95..086fa93 100644
--- a/build/checksums/electron.txt
+++ b/build/checksums/electron.txt
@@ -1,75 +1,75 @@
-249f89d35cb6bd74edc07551b141bffc2045847c4cf9e57e21089d5082bdb4b4 *chromedriver-v34.5.1-darwin-arm64.zip
-7ff68fd26f225deaa8c6fbcd76dc80a00f9ef73f9118075f3e2ab54dfb0c810e *chromedriver-v34.5.1-darwin-x64.zip
-749f692603527e8743c81d05eb2de2e281e2b03b148ec00379f13e8da17ca7a4 *chromedriver-v34.5.1-linux-arm64.zip
-14bcc062457cf31d606451aa7fae1baae720a944dead06231fe2a55f17d39966 *chromedriver-v34.5.1-linux-armv7l.zip
-57cf85eb9dafe28ccdd8ba4a095cb1fd5b8c71f0743bf532b132bc45e56630ef *chromedriver-v34.5.1-linux-x64.zip
-e90e10cf45f4aaba1d8b763279b7c4b85e1132bdc9faef834ffda41ee1460df8 *chromedriver-v34.5.1-mas-arm64.zip
-1206e1c71ec0360be9531e48c0292ffac37e40d8d7a48dd38f1108d3d3ccc0c0 *chromedriver-v34.5.1-mas-x64.zip
-1b226994cfa02663f23edfb0c8a4d3e218b7c4d037a90bbb4800a7c396b67d9f *chromedriver-v34.5.1-win32-arm64.zip
-dc38291ccad6f715a82cc2ce0cfffe3bb37612fa86013d405e878ea74e4c5fb8 *chromedriver-v34.5.1-win32-ia32.zip
-3ccc7e4b65adde12e26b7affeea30b9597b8841fc2a4d3c50c042e80b85853ac *chromedriver-v34.5.1-win32-x64.zip
-71fe75d29208ca9e38754d903af4d5d6e80c62b04097605c36ebf722c2447842 *electron-api.json
-009c833bd014b6f873974c5d3189905e705ebcb188a90ae05b60ea252319a46e *electron-v34.5.1-darwin-arm64-dsym-snapshot.zip
-c5f5722c55e75e9860cb203e03626c04f30f272ef17b735946fd723600ee07ea *electron-v34.5.1-darwin-arm64-dsym.zip
-06de49512ac4b0b4e374bdcd296e8c70584fb47207bb6caed9122e3cef5da8f7 *electron-v34.5.1-darwin-arm64-symbols.zip
-78411442b5bd2252cf4605b6a44c35ad6a06807d03c63c61726ad7693c6d5893 *electron-v34.5.1-darwin-arm64.zip
-e90b292974251336ae8990a74977065ac4dd6388836ccd1cfee3a1599a37bd39 *electron-v34.5.1-darwin-x64-dsym-snapshot.zip
-35a0ac52f6036cd0a7d4bc9848477b653095b210497e36797427ff8fe3194c7f *electron-v34.5.1-darwin-x64-dsym.zip
-0457bb7413c770245912342a6dd07c3588f586e8d868e0dd534179e22b07898c *electron-v34.5.1-darwin-x64-symbols.zip
-8d4bc5f4495ef952589891b6c70a86d8a9d143a1d4d90d15dd81926639822031 *electron-v34.5.1-darwin-x64.zip
-73be60acd1f3773f87b283eef8c26e257f16efd46a179c143311b1b9fcb4a61a *electron-v34.5.1-linux-arm64-debug.zip
-53677a8f437b36b79481eb6c6f9f7557606af04ef94cce751620e8206dad36a8 *electron-v34.5.1-linux-arm64-symbols.zip
-4c0d5833faa01cc3a586087b82f719c2fe331515d26bb3fa098dc79bd3ea153f *electron-v34.5.1-linux-arm64.zip
-73be60acd1f3773f87b283eef8c26e257f16efd46a179c143311b1b9fcb4a61a *electron-v34.5.1-linux-armv7l-debug.zip
-6eb39e79bd52f566d18a1140242c7484b89d7cd77573b92fc2e2993b51d6fbf1 *electron-v34.5.1-linux-armv7l-symbols.zip
-7ed517eeaff56960a01fe53fc445e4118135eeb8267d61c37ef9df943dcc35fb *electron-v34.5.1-linux-armv7l.zip
-582a2206cf1e09baa8511ca21b697cc49fddd76ef7723406b449b130b3d21730 *electron-v34.5.1-linux-x64-debug.zip
-7b5d60f3d6c4ef84b0855148f14295624527cc27ab395bf54640a06eb3f7a5b0 *electron-v34.5.1-linux-x64-symbols.zip
-3ae6f75fa08f5c1bdb7bbcec4dc9cf7d7f53ffcf6a4292e4a482b2ce515505e7 *electron-v34.5.1-linux-x64.zip
-e6ff5c411167c0cf8c82cd737f8d0c863f4371e8e1fe213d04b502584411d239 *electron-v34.5.1-mas-arm64-dsym-snapshot.zip
-8d1cb700f23d8ac7ec078d4d5d07018dfae594346e7bc5652356a5fe242a2b44 *electron-v34.5.1-mas-arm64-dsym.zip
-3b74614ef81382e63f189aceb87f6c3830a23ffed046d06f672d0c1a1b361e96 *electron-v34.5.1-mas-arm64-symbols.zip
-eabc29959b914f623f5f2e4011cb4e35182ed9528dc30664e59ca37c806c1d7d *electron-v34.5.1-mas-arm64.zip
-ee3de3f5a96efb0197022557ec2de36d92d7423426636577864b1ae744053dea *electron-v34.5.1-mas-x64-dsym-snapshot.zip
-a3db9cc489720701e3f35d2f7425c97e24f74fdb78a38bc0950b68b3f82aebb2 *electron-v34.5.1-mas-x64-dsym.zip
-a9131003b1ac4a3c3327ff405e1cd8f3e61dc8a73cfae3e05cb5eb0f2d872bee *electron-v34.5.1-mas-x64-symbols.zip
-1b44d42dbe9cb6bc5c2fb77f708d639e01f8ec6f74b95710fc6c8dbd70181f3b *electron-v34.5.1-mas-x64.zip
-4495d8bf4d3dbb5ebc3ad135f4658e09d706368d002af9f24d236e1a0a28e994 *electron-v34.5.1-win32-arm64-pdb.zip
-2c31fa61d24e736f3e327eba4d354c09471fba5aa277e215f7e2ea275b323a80 *electron-v34.5.1-win32-arm64-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-arm64-toolchain-profile.zip
-c0cff1c83094a430f1b202bb5035b51ebcefa54cd53d798bb63de9cb96abf223 *electron-v34.5.1-win32-arm64.zip
-d662fb7afc288aa15d929fecbb391c7067448ea86b4bf01e941fa8da744a8167 *electron-v34.5.1-win32-ia32-pdb.zip
-2cd1f41a3297fc271e426bd0cc5f8c3474f73438a7a303186701cb7d8b26bdb6 *electron-v34.5.1-win32-ia32-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-ia32-toolchain-profile.zip
-cf86edf6cdb47d5cfb00c4eb68f7a18d70bf9e33f1f6a0481d51673cf6af7050 *electron-v34.5.1-win32-ia32.zip
-9dd0e6f6ef53f8bd4d7ecd97a3bfc7e8a98de8771986071692afc57d57d199d6 *electron-v34.5.1-win32-x64-pdb.zip
-f50ab96420bddd43bd5dbd56130cfcd69eea2dba18bfd3c8c3b4bb189bb033e6 *electron-v34.5.1-win32-x64-symbols.zip
-c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.1-win32-x64-toolchain-profile.zip
-da606d1a085a52ddf5592110b58284fc3bf49f273f6f2e7d6a8341c98af8498e *electron-v34.5.1-win32-x64.zip
-793ae7822cbdad6270c318f3c93c0e8b4f9276dea6dd87db2d1297cadc7381c6 *electron.d.ts
-1d1465b4f6a3919a6e8e2fb8612b29f61b09d80f386a8fa2b806859b9be0d0bf *ffmpeg-v34.5.1-darwin-arm64.zip
-e138b6422dd1648cbe817b99f59476c65ed9946d50e50094124eae660b416378 *ffmpeg-v34.5.1-darwin-x64.zip
-346101611df565cabcfaa3515b1db3f70d0891ba8f1241074dd09b69e12630d2 *ffmpeg-v34.5.1-linux-arm64.zip
-5c77c712ee93bd26706daa78f0651d9b4ba8e4b46a115908f29d2742a2e1b9f0 *ffmpeg-v34.5.1-linux-armv7l.zip
-f5ab70d399d528450c9499966e88ce02a368bb8c7dd7ac0676a6628fa29b3f14 *ffmpeg-v34.5.1-linux-x64.zip
-10e3424c01b946274fa8c651d4ea79032637feca4c8712ebb1c00f392711594f *ffmpeg-v34.5.1-mas-arm64.zip
-4db0373915c2c2a055bd04755acdbcd08e00456f1fb92fefc0e05cd7fb48e4fa *ffmpeg-v34.5.1-mas-x64.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-arm64.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-ia32.zip
-c8cca82fc9315f86ffb60b39e824ebec7f98361f8773ea0618d9feea92b88412 *ffmpeg-v34.5.1-win32-x64.zip
-9ae3a56bf29d9704cd8cf32924aad89414f28d439e61dd54bdd8b4259b8d0b1d *hunspell_dictionaries.zip
-691e23913b7dbde1f9c9b6e9f13f06353d5c7927cbab6d48b7de43e76e5eacd8 *libcxx-objects-v34.5.1-linux-arm64.zip
-eaaa18779a96873daeece21c7c823d1f5d4759f8eca79dbbbf2055635df6112f *libcxx-objects-v34.5.1-linux-armv7l.zip
-6a2e3dfcea9d0582ecbc2a6be124f0e830e2194111bd9aa6a9843cb956c946c4 *libcxx-objects-v34.5.1-linux-x64.zip
-d4b70d94523ebd770009dba04c842450539a9bdc856de660a7391620d3bcc1fb *libcxx_headers.zip
-0ed01bc1908fd8f7519ccdf636b5732c6fe2c095a6dc35a13eb6c79b9e87d7d1 *libcxxabi_headers.zip
-f633cd0df0b08a15938ccdc77480bc28eb96fd85936ef76c343cc3f47fe74f3c *mksnapshot-v34.5.1-darwin-arm64.zip
-a8643285a2386960ceb608ff34d6dac33942142e821e2e0c670b282389a87e53 *mksnapshot-v34.5.1-darwin-x64.zip
-70863b79d4b7ab75d013a9192f7b23165e3e523b243632c7b55418767527e022 *mksnapshot-v34.5.1-linux-arm64-x64.zip
-c30319434ea16416c38bbdf847432fd37fd8e1aa78c1c22b6345d02e3743c016 *mksnapshot-v34.5.1-linux-armv7l-x64.zip
-e882e32b67501d36710da396167274158c1940afe67459ffa1d9df534a8f6df1 *mksnapshot-v34.5.1-linux-x64.zip
-af1d08dbd3c572ae10db0d24203a28d83c87e92e966064134ec5d7770c74e3ac *mksnapshot-v34.5.1-mas-arm64.zip
-238058875abebcb9233e609fadad76e85b79530f1bdfb60498b144fec82ff8fc *mksnapshot-v34.5.1-mas-x64.zip
-779e494cf2088ee386bb3ffd68d5efc2de3d43e5a2e6a5a768638799c460fdab *mksnapshot-v34.5.1-win32-arm64-x64.zip
-9f9790fab86209ca76ecfae3e20dc028bc0e49574872f6ac17b8856093811357 *mksnapshot-v34.5.1-win32-ia32.zip
-5c39077fd59426108f15e4981c7be5ebe56aa706b9d166853225de882fee8d6e *mksnapshot-v34.5.1-win32-x64.zip
+f68064647df820d9f207d039850cb055fddb2539a8b01838a5af787d9413dde1 *chromedriver-v34.5.4-darwin-arm64.zip
+7bf6fe1aa4be3a9b8a6583667a8c81c1bb7e01ec62a886c2fecd1fac108fa8ab *chromedriver-v34.5.4-darwin-x64.zip
+d5eb1a8e1748b74341acab18eb928a5e139f9a530e153c1c59b6e8383ff284bd *chromedriver-v34.5.4-linux-arm64.zip
+5d8f205a4b326b65528bf24988457129d40f5c393b0af43410d28e252bc2170d *chromedriver-v34.5.4-linux-armv7l.zip
+08d86fb4cd0a2ae190ef43de117fa8a1b02079b302709fc0d3d7df5b60869429 *chromedriver-v34.5.4-linux-x64.zip
+8ef6b029dbb939162ef43bfceffd14f36f4674c6ac28daf2be9f29fd58eab343 *chromedriver-v34.5.4-mas-arm64.zip
+53318dcb6d29f9e23efe88fda1fc88bc9d22aaa588538bfde42ecbc9f8c61306 *chromedriver-v34.5.4-mas-x64.zip
+130d0fc9f96c83486ee8e37121dc1a412bfa71f65aa8ad67f6f4e4ed30cc4d1e *chromedriver-v34.5.4-win32-arm64.zip
+00ef5fc423142150758fdb1968f0b0db996ae035c211df164e7af9422743dfae *chromedriver-v34.5.4-win32-ia32.zip
+01f6371487d173f0b2d8b41d7aab5affa9ac7f0cc5154f1ee39ba2120e36026d *chromedriver-v34.5.4-win32-x64.zip
+7cfbc13990047fe5917ad9cf3269f83c4759551a5c300011bf8eda3af96efabb *electron-api.json
+194074a282320343e0997c9071f70f64cafcd6113f7741a628c45249105a0801 *electron-v34.5.4-darwin-arm64-dsym-snapshot.zip
+cb2deebc1596cfdea6889f37c7827bcd31af9645209288b3a92d0f25b78761e8 *electron-v34.5.4-darwin-arm64-dsym.zip
+f2402094acdc73d8123a8535f623934948662316a340ec767c3ddfd75c73dd9b *electron-v34.5.4-darwin-arm64-symbols.zip
+92dc77f80fde9267ce2db8e7094c6e49b1766a19c3da90c25e2b5024b7a4501b *electron-v34.5.4-darwin-arm64.zip
+8ef7c227cce20a4da7dbfc85f83f4d1af0a8d698cc9e8cea8487571e412b1591 *electron-v34.5.4-darwin-x64-dsym-snapshot.zip
+276dce4418ad0c630c82757a5242575eff67793a10151a65c0ed81965cbf2b1c *electron-v34.5.4-darwin-x64-dsym.zip
+a7a57b5e02f86e545dadf479e5c2652760c1cb2f9738e0f75f3d3db06e40ee1d *electron-v34.5.4-darwin-x64-symbols.zip
+c631318672a1b6ecc9835ccf1501562380728a044a78de2fa105608a6610fa01 *electron-v34.5.4-darwin-x64.zip
+fd49778abd8eb28b00241137db97c5c9eaf27a52aadcbff3b8832d1eedfec954 *electron-v34.5.4-linux-arm64-debug.zip
+cef68467ee2d5e4ed0f60c44168b0e1c885582e6ff2dc6773848b6983fee5c08 *electron-v34.5.4-linux-arm64-symbols.zip
+f4b4dcc92a0f4bf92c68571868dd13d49b33bca51f7b1352319f55f5abbf3505 *electron-v34.5.4-linux-arm64.zip
+fd49778abd8eb28b00241137db97c5c9eaf27a52aadcbff3b8832d1eedfec954 *electron-v34.5.4-linux-armv7l-debug.zip
+2a3a78b068ac2cbe223d9aec30012125586ea84e357ba05cab9def032ce649c5 *electron-v34.5.4-linux-armv7l-symbols.zip
+048256f513e036df0f056c32b249b0ca48f6c3c0481b1e6bdc686df409289f8d *electron-v34.5.4-linux-armv7l.zip
+6e108ee8b073619bf0760947f4a71c0846602aa18820593566362eaadc4f8ff5 *electron-v34.5.4-linux-x64-debug.zip
+cc962ac6ec063d6cb222892e0e0dc1d9efdb64ac2086790e35d61f035b6d31fd *electron-v34.5.4-linux-x64-symbols.zip
+c8c871ef0cf83e1e937afa620e9eb2fa7fc22f5a1302e9ec666923fc22bc0bd0 *electron-v34.5.4-linux-x64.zip
+4131d194d5e7be6e1c2b6e43fd115f679264df397a1bbf653c1bbbbb83109cc0 *electron-v34.5.4-mas-arm64-dsym-snapshot.zip
+c252bc1b97bcc50615ac3b1296152481b4deaa7f79f6b0e42a56614991695413 *electron-v34.5.4-mas-arm64-dsym.zip
+1a435e5c0db5a52b607b57e5627d2862d67826a732ce4c2db9ecc86ff843ffd0 *electron-v34.5.4-mas-arm64-symbols.zip
+a309cc5d77994e27c2bdd2d753642dd217e909ca0d1de336d2f72f4f89bdac6f *electron-v34.5.4-mas-arm64.zip
+4388832d22a4f10ced28ed15daa254cb3805dbb0e33f2816a74c7b82dca93926 *electron-v34.5.4-mas-x64-dsym-snapshot.zip
+c6d7c1b5c605db62b25bb5ee0bd6159b9e063019d970e418e3c5773c8074e6b6 *electron-v34.5.4-mas-x64-dsym.zip
+539cd04e89ad98afa71159ba6e7e001387a5fc22ca9a1421890d8be0e1cbf8bd *electron-v34.5.4-mas-x64-symbols.zip
+c8319f49a04c9de7792225847f0f52358c0cdeedbc83dd8edc1949d917d3d377 *electron-v34.5.4-mas-x64.zip
+e5331a5cf9d100982ae15dddad4abdaedf5d7976f325af4c39d5bdd094122880 *electron-v34.5.4-win32-arm64-pdb.zip
+3e87f89afc24ce72b8dd8b7df56561dd7a5474cfe8df3788a94bbc5cf446fd87 *electron-v34.5.4-win32-arm64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-arm64-toolchain-profile.zip
+912346508a25c56a0f4a5eeda466bb145cabcbff9e68b0f8759bf8847e01dab3 *electron-v34.5.4-win32-arm64.zip
+f98be086997be9534e991a1374755cfcfbbf9f53a95ab17e9291ef224370da79 *electron-v34.5.4-win32-ia32-pdb.zip
+aaa12a153b0bb2746cf7acd8f994a2c714d27791393383e1e78403de16388131 *electron-v34.5.4-win32-ia32-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-ia32-toolchain-profile.zip
+19f272b112ad2b2468caa3a01ceaa0f4ab83e100a0decdda36b261c0b584e848 *electron-v34.5.4-win32-ia32.zip
+2bac4be5bed9eff8a7adb3732c112beaf06a643f8c8b91c02cf226101bee2ca3 *electron-v34.5.4-win32-x64-pdb.zip
+3eb34ea1553ccfbd33a95c65827dac1d07119ede1749b8010a113a1693b80394 *electron-v34.5.4-win32-x64-symbols.zip
+c23f84aabb09c24cd2ae759a547fdba4206af19a3bb0f4554a91cd9528648ad0 *electron-v34.5.4-win32-x64-toolchain-profile.zip
+42c05407af7584c9b8134647b7f217ae683c3a04991d3de7524094cceff95505 *electron-v34.5.4-win32-x64.zip
+9a321b11432efca3d64439b1a398911de27c33fab0d6c3458924f5c71088b046 *electron.d.ts
+9483ab113a02e4520c20ea9d1b4464f0f677a4f9a408b0df12632a9e3ef4bade *ffmpeg-v34.5.4-darwin-arm64.zip
+c2fb961e4219f41772c796db759703240bfea2251366e6a77580805a70a8ecfe *ffmpeg-v34.5.4-darwin-x64.zip
+346101611df565cabcfaa3515b1db3f70d0891ba8f1241074dd09b69e12630d2 *ffmpeg-v34.5.4-linux-arm64.zip
+5c77c712ee93bd26706daa78f0651d9b4ba8e4b46a115908f29d2742a2e1b9f0 *ffmpeg-v34.5.4-linux-armv7l.zip
+f5ab70d399d528450c9499966e88ce02a368bb8c7dd7ac0676a6628fa29b3f14 *ffmpeg-v34.5.4-linux-x64.zip
+c7d14c50640283759e21932d3c478b3bad01e15add490efb3fc18446c32a5fe1 *ffmpeg-v34.5.4-mas-arm64.zip
+944918f694a9c37a74faee19feb989c02b78aaf32bfaa945ccce688fa76126ce *ffmpeg-v34.5.4-mas-x64.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-arm64.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-ia32.zip
+39d841fb03d07e6831533c29bf55446f16a2116a5f02beb1022b68232bac6a55 *ffmpeg-v34.5.4-win32-x64.zip
+2caad55fb223f7aa9652f9b68ce29440c8c714e9be65ff657682dc4f9a05d67a *hunspell_dictionaries.zip
+f584b71abbbb021e1002fdc85d67773898219af2982209abfff4f92f8b255243 *libcxx-objects-v34.5.4-linux-arm64.zip
+51e2db3cb02ab656404d7a28beab866d07b59dc2cc3127e5984ec5397f0f43d8 *libcxx-objects-v34.5.4-linux-armv7l.zip
+6e6ca30cdedb38b9bfbcf79d8f14f466ab023145c464c1f75d581482e9fe601f *libcxx-objects-v34.5.4-linux-x64.zip
+3191ca448f1978a80181ab0e31ecd7c1fbfe9cd409018b82f3879c0b2b299fc7 *libcxx_headers.zip
+6afe922a6e3006d40a5342719af3d40de669bb4e03aa938816f3732901677407 *libcxxabi_headers.zip
+6d3bed9a1eb9e6692f9c936336d65d4cc1f43401b5570e75b8e2838605057f88 *mksnapshot-v34.5.4-darwin-arm64.zip
+8022267c02204f75495a23177a144af4bdce8a56aa89b918df127e4b98cb7e2d *mksnapshot-v34.5.4-darwin-x64.zip
+4901999d515c571a9882a50fb6b92e12423c6fe3775d1d7574bdaf8cc9fd32bd *mksnapshot-v34.5.4-linux-arm64-x64.zip
+723c47202c2553c930057328be3ddfcef53da9e71140e8ba581295e3000dde00 *mksnapshot-v34.5.4-linux-armv7l-x64.zip
+0e8b27412c7a223035d16599134f783e9d77b9372898e64b45401e9c3cace29a *mksnapshot-v34.5.4-linux-x64.zip
+2d194587b295c6119b690917c1508d7ed8ee6e2798778afd6de5114cae1bd9b9 *mksnapshot-v34.5.4-mas-arm64.zip
+8e3c743227136f327e928bca25d8fe16a8f003feb33bb936dda4fb1f20765a88 *mksnapshot-v34.5.4-mas-x64.zip
+669c3375bac1ee3b2c8737432d0d2a6e2dc4d44f0d9fa1aa6a1aaf10b6db8224 *mksnapshot-v34.5.4-win32-arm64-x64.zip
+3a54ef58fb4cfc3e2f4b006f96b260e2ac980203a653ad6c1d2bd24d004106dc *mksnapshot-v34.5.4-win32-ia32.zip
+20ec7d86c5f42061c544a2461b6a35a2d69a38cbf69418043ed73856c2ac2a95 *mksnapshot-v34.5.4-win32-x64.zip
\ No newline at end of file
diff --git a/cgmanifest.json b/cgmanifest.json
index 6ee72b3..9344b4e 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -530,3 +530,3 @@
"repositoryUrl": "https://github.com/electron/electron",
- "commitHash": "d0594707ded4d564c95badf5322d5893295da4ed"
+ "commitHash": "200a6ff5c6be89cb07221fff7025a2f9201bf25b"
}
@@ -535,3 +535,3 @@
"license": "MIT",
- "version": "34.5.1"
+ "version": "34.5.4"
},
diff --git a/package-lock.json b/package-lock.json
index beb023f..31df569 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -98,3 +98,3 @@
"deemon": "^1.13.4",
- "electron": "34.5.1",
+ "electron": "34.5.4",
"eslint": "^9.11.1",
@@ -6004,5 +6004,5 @@
"node_modules/electron": {
- "version": "34.5.1",
- "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.1.tgz",
- "integrity": "sha512-z2Wm7QjhnJ5592fLITynj8UwIk1mBiT402mOakxSYiADrERIci3IOPk7xWHAFOMvt/eoG5RW16PPhgJiedZcGA==",
+ "version": "34.5.4",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.4.tgz",
+ "integrity": "sha512-WXc3ElYW/1LH50CnpigSeRsK1AfFB/J8hCySFnhXDmz6BBAKhXlJ6bgw1k9ZldR5i+8JqX323773Jn8X3/Wagw==",
"dev": true,
diff --git a/package.json b/package.json
index 4d41ab6..304a0b0 100644
--- a/package.json
+++ b/package.json
@@ -157,3 +157,3 @@
"deemon": "^1.13.4",
- "electron": "34.5.1",
+ "electron": "34.5.4",
"eslint": "^9.11.1",

View File

@@ -1,43 +1,5 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e0df76f..04354d8 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -310,2 +310,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const name = product.nameShort;
+ const release = packageJson.release;
@@ -313,3 +314,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined, type: 'module' }))
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined, type: 'module' }))
.pipe(es.through(function (file) {
@@ -321,3 +322,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), version }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, release }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index a63f693..62e0080 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -261,3 +261,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
- let version = packageJson.version;
+ let version = packageJson.version
const quality = product.quality;
@@ -269,3 +269,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const name = product.nameShort;
- const packageJsonUpdates = { name, version };
+ const release = packageJson.release;
+ const packageJsonUpdates = { name, version, release };
@@ -285,3 +286,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, release }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index fb0e5a4..170c60b 100644
index cd8610d..2d928b1 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -27,4 +27,2 @@ const commit = getVersion(root);
@@ -45,116 +7,30 @@ index fb0e5a4..170c60b 100644
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -89,3 +87,3 @@ function prepareDebPackage(arch) {
@@ -90,3 +88,3 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
+ .pipe(replace('@@VERSION@@', packageJson.version))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -204,4 +202,3 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@ICON@@', product.linuxIconName))
- .pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -281,3 +278,3 @@ function prepareSnapPackage(arch) {
@@ -204,3 +202,2 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -278,3 +275,3 @@ function prepareSnapPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
+ .pipe(replace('@@VERSION@@', packageJson.version))
// Possible run-on values https://snapcraft.io/docs/architectures
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 98175f5..afacbe3 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -89,4 +89,4 @@ function buildWin32Setup(arch, target) {
DirName: product.win32DirName,
- Version: pkg.version,
- RawVersion: pkg.version.replace(/-\w+$/, ''),
+ Version: `${pkg.version}.${pkg.release}`,
+ RawVersion: `${pkg.version.replace(/-\w+$/, '')}.${pkg.release}`,
NameVersion: product.win32NameVersion + (target === 'user' ? ' (User)' : ''),
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index 52c4c94..00fc9f8 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -58,2 +58,3 @@ export interface IProductConfiguration {
readonly version: string;
+ readonly release: string;
readonly date?: string;
diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts
index 5f6efd5..da3c54d 100644
--- a/src/vs/platform/diagnostics/node/diagnosticsService.ts
+++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts
@@ -232,3 +232,3 @@ export class DiagnosticsService implements IDiagnosticsService {
const output: string[] = [];
- output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
+ output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`);
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 1a2a619..2a8d683 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
if (!product.version) {
- const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string };
+ const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string, release: string };
diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts
index 0db2369..5cac67b 100644
--- a/src/vs/workbench/api/common/extHost.api.impl.ts
+++ b/src/vs/workbench/api/common/extHost.api.impl.ts
@@ -1537,5 +1537,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
Object.assign(product, {
- version: pkg.version
+ version: pkg.version,
+ release: pkg.release
});
diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
index 7563b30..0873839 100644
--- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
@@ -23,2 +23,3 @@ import { ResultKind } from '../../../../platform/keybinding/common/keybindingRes
import { IOpenerService } from '../../../../platform/opener/common/opener.js';
+import { getReleaseString } from '../../../../workbench/common/release.js';
@@ -81,2 +82,4 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
const detailString = (useAgo: boolean): string => {
+ const releaseString = getReleaseString();
+ const version = initData.version.replace(/^([0-9]+\.[0-9]+\.[0-5]).*$/, '$1');
+
return localize('aboutDetail',
@@ -87,3 +90,3 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
navigator.userAgent
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
};
diff --git a/src/vs/workbench/common/release.ts b/src/vs/workbench/common/release.ts
new file mode 100644
index 0000000..82dbe6a
--- /dev/null
+++ b/src/vs/workbench/common/release.ts
@@ -0,0 +1,14 @@
+import { language } from '../../base/common/platform.js';
+
+const DEFAULT_LABEL = 'Release:';
+const LABELS: { [key: string]: string } = {
+ 'en': DEFAULT_LABEL,
+ 'fr': 'Révision :',
+ 'ru': 'Релиз:',
+ 'zh-hans': '发布版本:',
+ 'zh-hant': '發布版本:',
+};
+
+export function getReleaseString(): string {
+ return LABELS[language] ?? DEFAULT_LABEL;
+}
diff --git a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
index 6c61a59..d58f8fc 100644
--- a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
@@ -15,2 +15,3 @@ import { process } from '../../../../base/parts/sandbox/electron-sandbox/globals
import { getActiveWindow } from '../../../../base/browser/dom.js';
+import { getReleaseString } from '../../../../workbench/common/release.js';
@@ -80,2 +81,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
const osProps = await this.nativeHostService.getOSProperties();
+ const releaseString = getReleaseString();
@@ -93,3 +95,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
`${osProps.type} ${osProps.arch} ${osProps.release}${isLinuxSnap ? ' snap' : ''}`
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
};
// eslint-disable-next-line local/code-no-dangerous-type-assertions
return <typeof vscode>{
- version: initData.version,
+ version,
// namespaces

View File

@@ -49,7 +49,7 @@ index 199f433..a6cbb10 100644
+ | "user";
\ No newline at end of file
diff --git a/src/vs/platform/update/electron-main/abstractUpdateService.ts b/src/vs/platform/update/electron-main/abstractUpdateService.ts
index a1ec3fe..f954720 100644
index 48d0d86..840b9d3 100644
--- a/src/vs/platform/update/electron-main/abstractUpdateService.ts
+++ b/src/vs/platform/update/electron-main/abstractUpdateService.ts
@@ -14,6 +14,10 @@ import { IProductService } from '../../product/common/productService.js';
@@ -67,7 +67,7 @@ index a1ec3fe..f954720 100644
+ }
}
diff --git a/src/vs/platform/update/electron-main/updateService.darwin.ts b/src/vs/platform/update/electron-main/updateService.darwin.ts
index 57398fb..8e36930 100644
index b78ebc5..a4a3b1d 100644
--- a/src/vs/platform/update/electron-main/updateService.darwin.ts
+++ b/src/vs/platform/update/electron-main/updateService.darwin.ts
@@ -15,3 +15,3 @@ import { ILogService } from '../../log/common/log.js';
@@ -80,7 +80,7 @@ index 57398fb..8e36930 100644
+import { CancellationToken } from '../../../base/common/cancellation.js';
+import * as semver from 'semver';
@@ -76,9 +78,3 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
@@ -76,17 +78,3 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
protected buildUpdateFeedUrl(quality: string): string | undefined {
- let assetID: string;
- if (!this.productService.darwinUniversalAssetId) {
@@ -89,17 +89,21 @@ index 57398fb..8e36930 100644
- assetID = this.productService.darwinUniversalAssetId;
- }
- const url = createUpdateURL(assetID, quality, this.productService);
+ const url = createUpdateURL(this.productService, quality, process.platform, process.arch);
try {
@@ -94,4 +90,29 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
protected doCheckForUpdates(context: any): void {
+ if (!this.url) {
+ return;
+ }
+
this.setState(State.CheckingForUpdates(context));
- try {
- electron.autoUpdater.setFeedURL({ url });
- } catch (e) {
- // application is very likely not signed
- this.logService.error('Failed to set update feed URL', e);
- return undefined;
- }
- return url;
+ return createUpdateURL(this.productService, quality, process.platform, process.arch);
}
@@ -100,5 +88,30 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
- const url = explicit ? this.url : `${this.url}?bg=true`;
- electron.autoUpdater.setFeedURL({ url });
- electron.autoUpdater.checkForUpdates();
+
+ this.requestService.request({ url: this.url }, CancellationToken.None)
+ .then<IUpdate | null>(asJson)
+ .then(update => {
@@ -109,30 +113,68 @@ index 57398fb..8e36930 100644
+ return Promise.resolve(null);
+ }
+
+ const fetchedVersion = update.productVersion.replace(/(\d+\.\d+\.\d+)(?:\.(\d+))(\-\w+)?/, '$1$3+$2');
+ const currentVersion = `${this.productService.version}+${this.productService.release}`;
+ const fetchedVersion = /\d+\.\d+\.\d+\.\d+/.test(update.productVersion) ? update.productVersion.replace(/(\d+\.\d+\.\d+)\.\d+(\-\w+)?/, '$1$2') : update.productVersion.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+
+ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) {
+ this.setState(State.Idle(UpdateType.Setup));
+ }
+ else {
+ electron.autoUpdater.setFeedURL({ url: this.url! });
+ electron.autoUpdater.checkForUpdates();
+ }
+
+ return Promise.resolve(null);
+ })
+ .then(undefined, err => {
+ this.logService.error(err);
+ // only show message when explicitly checking for updates
+ const message: string | undefined = explicit ? (err.message || err) : undefined;
+ this.setState(State.Idle(UpdateType.Setup, message));
+ });
}
diff --git a/src/vs/platform/update/electron-main/updateService.linux.ts b/src/vs/platform/update/electron-main/updateService.linux.ts
index dd18900..920dc10 100644
index 8550ace..c2fddcb 100644
--- a/src/vs/platform/update/electron-main/updateService.linux.ts
+++ b/src/vs/platform/update/electron-main/updateService.linux.ts
@@ -31,3 +31,3 @@ export class LinuxUpdateService extends AbstractUpdateService {
@@ -15,2 +15,3 @@ import { AvailableForDownload, IUpdate, State, UpdateType } from '../common/upda
import { AbstractUpdateService, createUpdateURL } from './abstractUpdateService.js';
+import * as semver from 'semver';
@@ -31,3 +32,3 @@ export class LinuxUpdateService extends AbstractUpdateService {
protected buildUpdateFeedUrl(quality: string): string {
- return createUpdateURL(`linux-${process.arch}`, quality, this.productService);
+ return createUpdateURL(this.productService, quality, process.platform, process.arch);
}
@@ -39,6 +40,5 @@ export class LinuxUpdateService extends AbstractUpdateService {
- const url = explicit ? this.url : `${this.url}?bg=true`;
this.setState(State.CheckingForUpdates(explicit));
- this.requestService.request({ url }, CancellationToken.None)
+ this.requestService.request({ url: this.url }, CancellationToken.None)
.then<IUpdate | null>(asJson)
@@ -47,5 +47,17 @@ export class LinuxUpdateService extends AbstractUpdateService {
this.setState(State.Idle(UpdateType.Archive));
- } else {
+
+ return Promise.resolve(null);
+ }
+
+ const fetchedVersion = /\d+\.\d+\.\d+\.\d+/.test(update.productVersion) ? update.productVersion.replace(/(\d+\.\d+\.\d+)\.\d+(\-\w+)?/, '$1$2') : update.productVersion.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+
+ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) {
+ this.setState(State.Idle(UpdateType.Archive));
+ }
+ else {
this.setState(State.AvailableForDownload(update));
}
+
+ return Promise.resolve(null);
})
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index db92de2..06981b3 100644
index 8f92a3e..020e690 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -11,3 +11,2 @@ import { CancellationToken } from '../../../base/common/cancellation.js';
@@ -193,10 +235,10 @@ index db92de2..06981b3 100644
- return createUpdateURL(platform, quality, this.productService);
+ return createUpdateURL(this.productService, quality, process.platform, process.arch, target);
}
@@ -130,2 +145,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -131,2 +146,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
+ const fetchedVersion = update.productVersion.replace(/(\d+\.\d+\.\d+)(?:\.(\d+))(\-\w+)?/, '$1$3+$2');
+ const currentVersion = `${this.productService.version}+${this.productService.release}`;
+ const fetchedVersion = /\d+\.\d+\.\d+\.\d+/.test(update.productVersion) ? update.productVersion.replace(/(\d+\.\d+\.\d+)\.\d+(\-\w+)?/, '$1$2') : update.productVersion.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+ const currentVersion = this.productService.version.replace(/(\d+\.\d+\.)0+(\d+)(\-\w+)?/, '$1$2$3')
+
+ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) {
+ this.setState(State.Idle(updateType));
@@ -204,16 +246,16 @@ index db92de2..06981b3 100644
+ }
+
if (updateType === UpdateType.Archive) {
@@ -156,3 +179,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -157,3 +180,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- const fastUpdatesEnabled = this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
+ const fastUpdatesEnabled = getUpdateType() == UpdateType.Setup && this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
if (fastUpdatesEnabled) {
@@ -168,3 +191,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -169,3 +192,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
.then(undefined, err => {
- this.telemetryService.publicLog2<{ messageHash: string }, UpdateErrorClassification>('update:error', { messageHash: String(hash(String(err))) });
this.logService.error(err);
@@ -252,6 +274,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
@@ -253,6 +275,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
} else {
- spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- detached: true,

View File

@@ -0,0 +1,56 @@
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ed06b6a..f2b4a82 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -406,18 +406,18 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
- if (quality === 'stable' || quality === 'insider') {
- result = es.merge(result, gulp.src('.build/win32/appx/**', { base: '.build/win32' }));
- const rawVersion = version.replace(/-\w+$/, '').split('.');
- const appxVersion = `${rawVersion[0]}.0.${rawVersion[1]}.${rawVersion[2]}`;
- result = es.merge(result, gulp.src('resources/win32/appx/AppxManifest.xml', { base: '.' })
- .pipe(replace('@@AppxPackageName@@', product.win32AppUserModelId))
- .pipe(replace('@@AppxPackageVersion@@', appxVersion))
- .pipe(replace('@@AppxPackageDisplayName@@', product.nameLong))
- .pipe(replace('@@AppxPackageDescription@@', product.win32NameVersion))
- .pipe(replace('@@ApplicationIdShort@@', product.win32RegValueName))
- .pipe(replace('@@ApplicationExe@@', product.nameShort + '.exe'))
- .pipe(replace('@@FileExplorerContextMenuID@@', quality === 'stable' ? 'OpenWithCode' : 'OpenWithCodeInsiders'))
- .pipe(replace('@@FileExplorerContextMenuCLSID@@', product.win32ContextMenu[arch].clsid))
- .pipe(replace('@@FileExplorerContextMenuDLL@@', `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`))
- .pipe(rename(f => f.dirname = `appx/manifest`)));
- }
+ // if (quality === 'stable' || quality === 'insider') {
+ // result = es.merge(result, gulp.src('.build/win32/appx/**', { base: '.build/win32' }));
+ // const rawVersion = version.replace(/-\w+$/, '').split('.');
+ // const appxVersion = `${rawVersion[0]}.0.${rawVersion[1]}.${rawVersion[2]}`;
+ // result = es.merge(result, gulp.src('resources/win32/appx/AppxManifest.xml', { base: '.' })
+ // .pipe(replace('@@AppxPackageName@@', product.win32AppUserModelId))
+ // .pipe(replace('@@AppxPackageVersion@@', appxVersion))
+ // .pipe(replace('@@AppxPackageDisplayName@@', product.nameLong))
+ // .pipe(replace('@@AppxPackageDescription@@', product.win32NameVersion))
+ // .pipe(replace('@@ApplicationIdShort@@', product.win32RegValueName))
+ // .pipe(replace('@@ApplicationExe@@', product.nameShort + '.exe'))
+ // .pipe(replace('@@FileExplorerContextMenuID@@', quality === 'stable' ? 'OpenWithCode' : 'OpenWithCodeInsiders'))
+ // .pipe(replace('@@FileExplorerContextMenuCLSID@@', product.win32ContextMenu[arch].clsid))
+ // .pipe(replace('@@FileExplorerContextMenuDLL@@', `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`))
+ // .pipe(rename(f => f.dirname = `appx/manifest`)));
+ // }
} else if (platform === 'linux') {
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 9207df5..ff6c116 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -113,7 +113,7 @@ function buildWin32Setup(arch, target) {
- if (quality !== 'exploration') {
- definitions['AppxPackage'] = `${quality === 'stable' ? 'code' : 'code_insider'}_${arch}.appx`;
- definitions['AppxPackageDll'] = `${quality === 'stable' ? 'code' : 'code_insider'}_explorer_command_${arch}.dll`;
- definitions['AppxPackageName'] = `${product.win32AppUserModelId}`;
- }
+ // if (quality !== 'exploration') {
+ // definitions['AppxPackage'] = `${product.applicationName.replace(/-/g, '_')}_${arch}.appx`;
+ // definitions['AppxPackageDll'] = `${product.applicationName.replace(/-/g, '_')}_explorer_command_${arch}.dll`;
+ // definitions['AppxPackageName'] = `${product.win32AppUserModelId}`;
+ // }

View File

@@ -0,0 +1,9 @@
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index a39bbf7..26ad204 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -84,3 +84,3 @@ impl UpdateService {
let download_url = format!(
- "{}/{}/{}/{}/latest.json",
+ "{}/{}/{}/{}/user/latest.json",
update_endpoint,

View File

@@ -71,7 +71,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then
cd ..
fi
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" && "${SHOULD_BUILD_DMG}" != "no" ]]; then
echo "Building and moving DMG"
pushd "VSCode-darwin-${VSCODE_ARCH}"
npx create-dmg ./*.app .
@@ -95,18 +95,20 @@ if [[ "${OS_NAME}" == "osx" ]]; then
elif [[ "${OS_NAME}" == "windows" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
npm run gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
fi
# . ../build/windows/appx/build.sh
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
npm run gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
npm run gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
@@ -152,11 +154,13 @@ else
fi
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
npm run gulp "vscode-linux-${VSCODE_ARCH}-prepare-deb"
npm run gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
fi
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
npm run gulp "vscode-linux-${VSCODE_ARCH}-prepare-rpm"
npm run gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
@@ -214,6 +218,32 @@ if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
cd ..
fi
set -ex
if [[ "${SHOULD_BUILD_CLI}" != "no" ]]; then
echo "Building and moving CLI"
APPLICATION_NAME="$( node -p "require(\"./vscode/product.json\").applicationName" )"
NAME_SHORT="$( node -p "require(\"./vscode/product.json\").nameShort" )"
TUNNEL_APPLICATION_NAME="$( node -p "require(\"./vscode/product.json\").tunnelApplicationName" )"
mkdir -p "vscode-cli"
cd "vscode-cli"
if [[ "${OS_NAME}" == "osx" ]]; then
cp "../VSCode-${VSCODE_PLATFORM}-${VSCODE_ARCH}/${NAME_SHORT}.app/Contents/Resources/app/bin/${TUNNEL_APPLICATION_NAME}" "${APPLICATION_NAME}"
elif [[ "${OS_NAME}" == "windows" ]]; then
cp "../VSCode-${VSCODE_PLATFORM}-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}.exe" "${APPLICATION_NAME}.exe"
else
cp "../VSCode-${VSCODE_PLATFORM}-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}" "${APPLICATION_NAME}"
fi
tar czf "../assets/${APP_NAME_LC}-cli-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
cd ..
fi
if [[ "${OS_NAME}" != "windows" ]]; then
./prepare_checksums.sh
fi

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