Compare commits

..

572 Commits

Author SHA1 Message Date
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
Baptiste Augrain
1313e56599 fix: use electron v34.3.2 (#2273) 2025-03-18 22:59:18 +01:00
Baptiste Augrain
89b4e9a712 fix: upload only notary files [skip ci] 2025-03-18 20:43:28 +01:00
Baptiste Augrain
b63c8404c3 fix(linux): update electron to avoid crash on 16k page size (#2271) 2025-03-18 19:47:00 +01:00
Baptiste Augrain
bc784e7823 chore: optional log [skip ci] 2025-03-18 18:01:00 +01:00
Baptiste Augrain
71edc8b5e2 fix: apply replacement to all [skip ci] 2025-03-18 15:12:42 +01:00
Baptiste Augrain
ce9450ec98 fix: add log for generic variables [skip ci] 2025-03-18 13:56:01 +01:00
Baptiste Augrain
c3ba8f9bb6 chore: move user patches last [skip ci] 2025-03-18 13:50:02 +01:00
Baptiste Augrain
5ca1fc84d3 fix: use correct repository [skip ci] 2025-03-17 18:11:06 +01:00
Baptiste Augrain
109d240f13 fix: default values 2025-03-16 21:28:58 +01:00
Baptiste Augrain
9c310cba11 feat: make build more generic (#2268) 2025-03-16 21:22:25 +01:00
Alex Garcia
addf837996 fix: error with qemu and ppc64le segfaults on build reh (#2264) 2025-03-14 17:27:00 +01:00
Baptiste Augrain
8c23c50846 build(stable): update to commit ddc367e 2025-03-13 18:14:03 +00:00
Baptiste Augrain
336e9ce32f docs: fix release links (#2257) 2025-03-12 11:21:38 +01:00
Baptiste Augrain
0af2244d05 build(stable): update to commit 2fc07b8 2025-03-11 18:17:26 +00:00
darkyzhou
27af1a39b3 build(loong64): update electron and build agent (#2249) 2025-03-09 12:35:27 +01:00
Baptiste Augrain
0de1698e15 feat: update patch and data (#2247) 2025-03-08 21:31:24 +01:00
Baptiste Augrain
6192957778 Merge branch 'insider' 2025-03-08 19:51:33 +01:00
Manuel Thalmann
03be485c33 feat: add terminal-suggest support (#2233) 2025-03-08 10:59:59 +01:00
Baptiste Augrain
b9975ba5d2 feat(1.98): update patches (#2244) 2025-03-08 03:59:27 +01:00
Baptiste Augrain
adaefe4ed5 fix(linux): force remove dependencies before cleanup [skip ci] 2025-02-14 21:40:31 +01:00
Baptiste Augrain
7d6a521838 fix(window): update patch [skip ci] 2025-02-14 19:34:20 +01:00
Baptiste Augrain
3bee276094 build(stable): update to commit e54c774 2025-02-14 18:15:26 +00:00
Baptiste Augrain
803289b688 build: fix snap check [skip ci] 2025-02-13 18:20:38 +01:00
Baptiste Augrain
2a016207cc fix(snap): remove plugs [skip ci] 2025-02-13 18:04:36 +01:00
Baptiste Augrain
5ef55c6c48 fix(snap): set plugin to nil [skip ci] 2025-02-13 17:14:58 +01:00
Baptiste Augrain
3150c6a9b0 fix(snap): correctly add audio-playback [skip ci] 2025-02-13 16:34:21 +01:00
Baptiste Augrain
ef81b3de3b build(stable): update to commit e249dad 2025-02-13 14:52:09 +00:00
Baptiste Augrain
05759066e3 fix: update patch 2025-02-13 15:25:47 +01:00
Baptiste Augrain
c773d683f4 fix(1.97): update patches 2025-02-06 20:13:50 +01:00
Baptiste Augrain
8d180a2888 feat(1.97): update api [skip ci] 2025-01-27 15:04:54 +01:00
Baptiste Augrain
b895f72f2c Merge branch 'master' into insider 2025-01-27 14:51:22 +01:00
Baptiste Augrain
941e4a01a2 fix(linux): checks [skip ci] 2025-01-27 14:11:08 +01:00
Baptiste Augrain
306c01d5cd fix(linux): checks [skip ci] 2025-01-27 13:54:49 +01:00
Baptiste Augrain
1108d8ef70 fix: check linux tags should also check alpine [skip ci] 2025-01-27 04:19:47 +01:00
Baptiste Augrain
6d7d20d5e7 feat(alpine): enable reh-web (#2219) 2025-01-27 04:12:13 +01:00
Baptiste Augrain
30e3df2bdd feat(update): directly use versions repo (#2216) 2025-01-26 12:27:06 +01:00
Baptiste Augrain
a755da638b docs(update): add new variables 2025-01-26 12:24:49 +01:00
Baptiste Augrain
0a2efd96eb feat(1.97): add new extension endpoint (#2214) 2025-01-25 15:44:29 +01:00
Baptiste Augrain
94187707d3 fix(update): correct comparison [skip ci] 2025-01-25 14:15:35 +01:00
Baptiste Augrain
5094d6d12d fix(1.97): update patch [skip ci] 2025-01-24 23:13:15 +01:00
Baptiste Augrain
79dfaf1991 fix(sign): update function call [skip ci] 2025-01-24 19:22:31 +01:00
Baptiste Augrain
30a637eb3f fix(sign): update varname [skip ci] 2025-01-24 18:16:50 +01:00
Baptiste Augrain
38de66d324 build(insider): update to commit f5782f5 2025-01-24 16:23:28 +00:00
Baptiste Augrain
446d8ebc0e fix(1.97): add extensions to imports [skip ci] 2025-01-24 17:10:25 +01:00
Baptiste Augrain
11f3d7c371 feat(update): directly use versions repo (#2211) 2025-01-24 16:00:31 +01:00
Baptiste Augrain
7fab58adba feat(1.97): update patches 2025-01-24 15:54:56 +01:00
Baptiste Augrain
856c5e3dad fix(1.97): update patch 2025-01-23 13:43:32 +01:00
Baptiste Augrain
624dc9436d fix(windows): replace all policy-watcher [slip ci] 2025-01-21 19:35:53 +01:00
Baptiste Augrain
6fdc08b665 build: use node-v20.18.1 [skip ci] 2025-01-21 19:31:52 +01:00
Baptiste Augrain
b17a273e47 feat: add patch to use policies (#2209) 2025-01-21 18:08:31 +01:00
Baptiste Augrain
62e1bd290b ci: update version 2025-01-21 18:03:37 +01:00
Baptiste Augrain
a895ded49e feat(1.97): update patch 2025-01-21 12:45:09 +01:00
VSCodium CI
6c79f57434 build(stable): update to commit cd4ee3b 2025-01-17 18:16:05 +00:00
VSCodium CI
0b8e88072a build(stable): update to commit 91fbddd 2025-01-13 18:15:50 +00:00
Baptiste Augrain
d84b144ea6 fix: undo mistaken moved file [skip ci] 2025-01-09 14:05:36 +01:00
Baptiste Augrain
b5928d7a3c build(insider): update to commit 2569d71 2025-01-09 10:18:38 +00:00
Baptiste Augrain
50e1085c52 ci: use gpg to sign commit [skip ci] 2025-01-08 12:22:53 +01:00
Baptiste Augrain
7bef72f48b build(insider): update to commit 9b0b13d 2025-01-08 10:41:35 +00:00
Baptiste Augrain
dae0a9ebce enhance: update svg to avoid symbol (#2190) 2025-01-08 04:11:27 +01:00
Baptiste Augrain
13cedd5950 ci: use gpg to sign commit [skip ci] 2025-01-08 04:03:35 +01:00
Baptiste Augrain
6818d7e831 build(insider): update to commit 70866d5 2025-01-07 15:13:11 +01:00
Baptiste Augrain
2b8d91b170 ci: correctly pass values [skip ci] 2025-01-07 15:00:17 +01:00
Baptiste Augrain
092b639253 ci: get hash of commit [skip ci] 2025-01-07 14:40:16 +01:00
Baptiste Augrain
54a977bc14 feat(snap): add audio playback (#2189) 2025-01-07 13:20:18 +01:00
Baptiste Augrain
097441843d ci: remove token check [skip ci] 2025-01-06 16:49:04 +01:00
Baptiste Augrain
e82135fa3e ci: use verified commit (#2186) 2025-01-06 16:23:34 +01:00
Baptiste Augrain
ddea3c8c24 refactor: move dev files [skip ci] 2025-01-06 15:43:28 +01:00
Baptiste Augrain
fef4a9aa03 refactor: reorganize files (#2185) 2025-01-06 15:40:23 +01:00
Baptiste Augrain
31f2fa2936 feat(1.97): update patches (#2184) 2025-01-06 12:49:22 +01:00
Thibaud CANALE
292d2783db ci: use jq to get gh cli (#2168)
Signed-off-by: Thibaud CANALE <thican@thican.net>
2025-01-06 10:51:27 +01:00
Thibaud CANALE
d0d0da180d ci: use jq to get gh cli (#2168)
Signed-off-by: Thibaud CANALE <thican@thican.net>
2024-12-21 01:38:49 +01:00
VSCodium CI
6aae07dad9 build(stable): update to commit fabdb6a 2024-12-20 18:18:06 +00:00
VSCodium CI
a6ae85fa52 build(stable): update to commit 42b2661 2024-12-18 18:16:30 +00:00
Baptiste Augrain
3a9708856a fix: update apis 2024-12-17 23:45:44 +01:00
Baptiste Augrain
52cc756ed2 fix(reh): move to nodejs-v20 (#2167) 2024-12-17 23:44:54 +01:00
Baptiste Augrain
1bff9fc2e9 fix(reh): move to nodejs-v20 (#2167) 2024-12-17 21:16:52 +01:00
Baptiste Augrain
169506fb8d feat(1.97): update patches (#2166) 2024-12-17 18:59:47 +01:00
VSCodium CI
91fa81be98 build(stable): update to commit 138f619 2024-12-12 16:18:06 +00:00
VSCodium CI
e53ab6ab9b build(insider): update to commit 475acb4 2024-12-10 07:15:02 +00:00
VSCodium CI
5cdecc4b06 build(insider): update to commit b18e7a7 2024-12-09 07:18:45 +00:00
VSCodium CI
d0aed99033 build(insider): update to commit e8e69d3 2024-12-08 11:43:00 +00:00
Baptiste Augrain
33711f5a48 fix: update patch and electron hashes 2024-12-08 12:30:19 +01:00
Baptiste Augrain
453b07c8c6 ci(macos): use available runner (#2138) 2024-12-06 11:56:02 +01:00
Baptiste Augrain
96905a4dec fix: update electron (#2136) 2024-12-06 10:35:33 +01:00
Baptiste Augrain
e5db309f8f feat(1.96): update patches 2024-12-06 08:22:56 +01:00
Baptiste Augrain
e61cd2295d Merge branch 'master' into insider 2024-12-06 08:08:15 +01:00
VSCodium CI
244841eb46 build(insider): update to commit 2ed1e9b 2024-12-03 07:15:19 +00:00
Lex
7df2a31432 feat: add ppc64le client (#2132) 2024-12-02 16:54:51 +01:00
VSCodium CI
93fd95feb2 build(insider): update to commit 275faf6 2024-11-29 07:15:17 +00:00
VSCodium CI
7930db61b8 build(insider): update to commit 709e28f 2024-11-27 11:49:02 +00:00
Baptiste Augrain
67fd09f6b8 feat(1.96): update patches and build process (#2131) 2024-11-27 12:34:24 +01:00
Baptiste Augrain
573a70ede1 Merge branch 'master' into insider 2024-11-27 00:19:43 +01:00
Baptiste Augrain
7ca11a2b2e fix(macos): update urls when using emulated app (#2122) 2024-11-26 15:22:18 +01:00
Levi Zim
8ddfccd6b8 fix: replace ripgrep binary for riscv64 (#2128) 2024-11-26 15:21:39 +01:00
darkyzhou
8bcb412ec5 feat: loong64 support for client (#2121) 2024-11-22 14:28:10 +01:00
Baptiste Augrain
52601b91bf fix(linux): update riscv64 electron [skip ci] 2024-11-16 10:50:33 +01:00
Baptiste Augrain
81562bbd3a ci: disable all steps when building app [skip ci] 2024-11-16 02:01:57 +01:00
Baptiste Augrain
1aa1ba1eba fix(linux): update electron to fix menu bug (#2117) 2024-11-16 01:45:16 +01:00
Baptiste Augrain
377ff77104 fix: replace all RELEASE_VERSION in notes [skip ci] 2024-11-15 22:07:33 +01:00
Baptiste Augrain
b9b5425af1 fix: generate release notes in several steps [skip ci] 2024-11-15 21:48:30 +01:00
Baptiste Augrain
4317f99fc4 fix: generate release notes in several steps [skip ci] 2024-11-15 20:07:54 +01:00
VSCodium CI
c4debee59f build(stable): update to commit f1a4fb1 2024-11-15 18:15:17 +00:00
Baptiste Augrain
5537da3d42 docs: remove infringing urls (#2113)
This PR is due to a complaint from MS.
2024-11-15 12:57:29 +01:00
Baptiste Augrain
e7ed2de4f8 Merge branch 'master' into insider 2024-11-09 20:18:30 +01:00
Baptiste Augrain
1364ac4639 ci: generate better release notes (#2103) 2024-11-09 20:16:58 +01:00
Andreas Grapentin
c9e2046201 feat: s390x support for reh server (#2099) 2024-11-09 19:46:27 +01:00
Baptiste Augrain
e8abb85f36 build(linux): allows patch per arch for reh 2024-11-09 01:55:09 +01:00
VSCodium CI
023fee37a3 build(stable): update to commit e865366 2024-11-08 18:14:59 +00:00
KnowZero
45927b08c7 fix(appimage): build by setting ARCH env (#2095) 2024-11-07 01:11:05 +01:00
Baptiste Augrain
aae1c62fe4 Merge branch 'master' into insider 2024-11-05 18:30:26 +01:00
Baptiste Augrain
6cb2291016 fix(snap): check correct channel [skip ci] 2024-11-05 18:27:45 +01:00
Baptiste Augrain
e3a0ba975b fix(reh): build reh archives 2024-11-05 18:04:24 +01:00
Baptiste Augrain
d7e6fa1217 feat: update patch 2024-11-05 17:52:20 +01:00
Baptiste Augrain
29779adedd Merge branch 'master' into insider 2024-11-05 16:54:21 +01:00
Baptiste Augrain
d598450d02 fix: move misplaced code (#2092) 2024-11-05 16:52:48 +01:00
VSCodium CI
da8a3ee91f build(insider): update to commit 231d373 2024-11-05 07:14:23 +00:00
AgFlore
ccec55599b fix: undo forever disabled crashpad (#1838) 2024-11-05 02:28:27 +01:00
Baptiste Augrain
5fb2dedcbd feat: remove mangling in extensions (#2090) 2024-11-04 19:14:35 +01:00
darkyzhou
a023a24173 feat: loong64 support for reh server (#2087) 2024-11-04 18:54:40 +01:00
266-750Balloons
d736414896 docs: add render glitch workwaround (#1699) 2024-11-04 18:16:28 +01:00
Baptiste Augrain
1731aa55d1 build: split big arch patch (#2085) 2024-11-04 12:14:15 +01:00
Baptiste Augrain
cc540f9f83 feat(1.96): update patches (#2083) 2024-11-03 15:00:10 +01:00
Baptiste Augrain
fe2d6e465b build(windows): pre-compile on linux 2024-11-02 15:52:01 +01:00
Baptiste Augrain
77e58edfe0 Merge branch 'insider' 2024-11-02 15:45:41 +01:00
Baptiste Augrain
2aae045dba fix(windows): build reh [skip ci] 2024-11-02 15:01:36 +01:00
Baptiste Augrain
7e79fdc303 build(windows): pre-compile on linux (#2080) 2024-11-02 12:51:21 +01:00
Baptiste Augrain
0baf7a131d build: make it easier on windows 2024-11-02 03:20:23 +01:00
Baptiste Augrain
04a8a93152 feat(1.95.0): update apis 2024-10-29 21:08:54 +01:00
Baptiste Augrain
820be10fd0 Merge branch 'insider' 2024-10-29 20:12:14 +01:00
Baptiste Augrain
606a83c4c5 ci(windows): add flag to disable signing [skip ci] 2024-10-29 19:13:00 +01:00
Baptiste Augrain
2b8134a202 fix(linux): build ppc64 (#2077) 2024-10-29 14:22:26 +01:00
Baptiste Augrain
1125a02e16 fix: tree-sitter is optional (#2076) 2024-10-29 12:19:38 +01:00
Baptiste Augrain
e4e4be70c9 docs: update thanks 2024-10-29 11:00:57 +01:00
VSCodium CI
b80aa30a35 build(insider): update to commit 912bb68 2024-10-29 08:54:00 +00:00
Baptiste Augrain
85ce7aa131 chore(linux): update version of riscv electron 2024-10-29 00:18:40 +01:00
Baptiste Augrain
7fbe30a3f5 ci: support vars.DISABLE_STABLE_LINUX_REH_<ARCH> 2024-10-29 00:12:58 +01:00
VSCodium CI
9ed563921b build(insider): update to commit 39fd376 2024-10-24 08:30:44 +00:00
Baptiste Augrain
34a8803363 fix(linux): move patch so it's enabled during compile job (#2073) 2024-10-23 17:07:32 +02:00
Baptiste Augrain
33a2643e1b fix: correct rpm patch and increase signing timeout [skip ci] 2024-10-23 11:22:55 +02:00
Baptiste Augrain
4418bab702 ci: update nodejs version [skip ci] 2024-10-23 10:14:47 +02:00
Baptiste Augrain
c910d1447d fix: update patches 2024-10-23 09:43:39 +02:00
Baptiste Augrain
656d6cea58 feat(linux): update XDG_RUNTIME_DIR for flatpak (#2071) 2024-10-23 02:27:04 +02:00
VSCodium CI
3d2a91c693 build(insider): update to commit defe52d 2024-10-22 14:04:15 +00:00
Baptiste Augrain
b10b54d0be build(windows): add signing with SignPath (#2069) 2024-10-22 15:53:04 +02:00
Baptiste Augrain
9eff6e1bc0 feat(1.95): update patches (#2066) 2024-10-19 09:18:19 +02:00
Levi Zim
5db0194218 fix(riscv64): bump nodejs to 20.16.0 (#2061) 2024-10-15 11:12:09 +02:00
Baptiste Augrain
8386f6057b ci: directly set the env variable to disable steps 2024-10-14 19:26:57 +02:00
Baptiste Augrain
b4943a7ef5 ci: fix condition 2024-10-14 19:22:50 +02:00
Baptiste Augrain
773b81f25f ci: add flag to disable reh build 2024-10-14 18:59:32 +02:00
Baptiste Augrain
f02532900b ci: add flag to disable reh build 2024-10-14 18:47:39 +02:00
Baptiste Augrain
8aa6281b5d build: re-enable ppc64 2024-10-14 15:12:38 +02:00
Baptiste Augrain
929efa9c89 chore: reformat value 2024-10-14 15:12:31 +02:00
Baptiste Augrain
a6cd884c37 build(windows): calculate checksums after signing [skip ci] 2024-10-14 01:03:50 +02:00
Baptiste Augrain
e5d9fa5143 wip: use correct signpath configuration [skip ci] 2024-10-14 00:15:36 +02:00
Baptiste Augrain
aa4d1fe3c9 wip: sign only user installer [skip ci] 2024-10-13 23:28:57 +02:00
Baptiste Augrain
6c5a93fd32 wip: disable msi and rename unsigned artifact [skip ci] 2024-10-13 22:52:30 +02:00
Baptiste Augrain
46b4f54548 feat: signing windows .exe (#2058) 2024-10-13 21:59:42 +02:00
Baptiste Augrain
7578449a67 feat(1.95): update patches (#2055) 2024-10-13 20:16:48 +02:00
Baptiste Augrain
95fd5b764a fix: correctly read user's product.json (#2057) 2024-10-12 21:57:19 +02:00
VSCodium CI
d5c18fc231 build(stable): update to commit 384ff73 2024-10-10 18:18:21 +00:00
Baptiste Augrain
0489bd5ca1 Merge branch 'master' into insider 2024-10-09 21:17:55 +02:00
Baptiste Augrain
d1f10c1c24 feat(1.94.1): manually set correct commit id (#2054) 2024-10-09 21:16:34 +02:00
DetachHead
d54e101a92 docs: add basedpyright to alternative extensions list (#1833) 2024-10-08 17:23:23 +02:00
Baptiste Augrain
826c2fab92 fix(linux): remove unnecessary hook for reh (#2050) 2024-10-08 16:11:46 +02:00
Baptiste Augrain
18ec65a491 build(linux): disable appimage when flagged [skip ci] 2024-10-08 14:30:49 +02:00
Baptiste Augrain
3047fd50fb fix: add git workaround [skip ci] 2024-10-08 14:06:42 +02:00
Baptiste Augrain
fc453f25f8 build: correctly build pr to generate assets (#2051) 2024-10-08 13:23:42 +02:00
Baptiste Augrain
48cabed6ba feat(1.94): update patches and build process (#2047) 2024-10-07 16:33:38 +02:00
Suyun
5e4ba54b43 fix: manual build on linux arm64 (#2041) 2024-09-25 17:24:14 +02:00
Simon Sobisch
a3718a2039 GH action stale update
exemption label "never-stale" for issues
inclusion label "needs-information" for PRs
2024-09-18 10:43:55 +02:00
VSCodium CI
30ee9c1f69 build(stable): update to commit 38c31bc 2024-09-12 18:20:35 +00:00
Baptiste Augrain
cdbf4e17bd Merge branch 'master' into insider 2024-09-12 16:24:59 +02:00
Baptiste Augrain
e336b1a3ff fix(1.93): update linux build (#2023) 2024-09-09 13:18:18 +02:00
Baptiste Augrain
b520aa1b9b feat: 1.93 (#2022) 2024-09-09 12:29:14 +02:00
Baptiste Augrain
5cb1be9c61 fix(alpine): download node's docker image (#2013) 2024-08-30 02:45:04 +02:00
Baptiste Augrain
aa340c1b5b fix(1.93): update patch [skip ci] 2024-08-29 22:43:38 +02:00
Baptiste Augrain
237be4bef0 docs: remove old docker commands 2024-08-29 15:25:27 +02:00
Baptiste Augrain
318f111ff7 fix: correct json for announcements file [skip ci] 2024-08-22 13:00:59 +02:00
Baptiste Augrain
043f1c4c60 feat(1.93): update patches (#2001) 2024-08-21 15:39:29 +02:00
Baptiste Augrain
f10855ca77 fix(linux): update patch for reh 2024-08-18 12:01:40 +02:00
Baptiste Augrain
be2896f6f9 ci(linux): disable riscv64 client [skip ci] 2024-08-18 10:21:33 +02:00
VSCodium CI
ae80c0cd05 build(stable): update to commit fee1edb 2024-08-15 18:20:18 +00:00
Baptiste Augrain
53ca646162 feat: add reh-web (#1993) 2024-08-14 17:04:41 +02:00
Vedant
4aa7ec7928 ci(windows): bump winget-releaser (#1990) 2024-08-14 11:52:07 +02:00
VSCodium CI
c6f099228b build(insider): update to commit 922413f 2024-08-14 07:16:42 +00:00
Baptiste Augrain
98747a7251 ci(insider): use insider branch for dispatch [skip ci] 2024-08-13 12:11:14 +02:00
Baptiste Augrain
5d1d56247d feat: prepare 1.93 (#1989) 2024-08-13 11:11:46 +02:00
Baptiste Augrain
41b1e88740 ci(linux): add flag to disable appimage [skip ci] 2024-08-12 15:55:04 +02:00
Baptiste Augrain
9d70d6b0a2 feat: update to 1.91 (#1986) 2024-08-12 14:40:29 +02:00
Baptiste Augrain
a01f36bf8c feat: prepare for 1.92 (#1970) 2024-08-12 12:04:31 +02:00
Baptiste Augrain
7538e45f92 Merge branch 'master' into insider 2024-07-22 18:42:21 +02:00
Baptiste Augrain
51f2ec84c1 doc: add remote ssh 2024-07-22 16:07:57 +02:00
Levi Zim
092d1404e3 build(riscv): check electron version and bump to 29.4.0.riscv3 (#1965) 2024-07-21 10:26:38 +02:00
VSCodium CI
b70e809fb6 build(stable): update to commit f1e16e1 2024-07-11 18:18:27 +00:00
Baptiste Augrain
8451268bb4 feat: update to 1.91.0 (#1950) 2024-07-08 17:17:26 +02:00
Baptiste Augrain
f1bf0000b4 feat: add channel for snap [skip ci] 2024-06-20 16:20:19 +02:00
VSCodium CI
baa7fe4155 build(stable): update to commit 5437499 2024-06-19 18:23:53 +00:00
VSCodium CI
1709f8b501 build(stable): update to commit 611f9bf 2024-06-13 18:34:39 +00:00
Baptiste Augrain
aed67b3d81 build: add flag to disable snaps 2024-06-13 20:20:59 +02:00
Baptiste Augrain
60ebbedbf8 build: add flag to disable snaps 2024-06-13 20:16:43 +02:00
Baptiste Augrain
5a769efcb9 build: add flag to disable snaps 2024-06-13 20:13:07 +02:00
Lex
0c31a54dea feat: add Github Enterprise support (#1926) 2024-06-11 19:30:12 +02:00
Levi Zim
8c9acad540 feat: add riscv64 client (#1922) 2024-06-11 18:41:17 +02:00
Lex
ffd7e631b0 build: prepare for PPC64LE client (#1923) 2024-06-11 16:56:15 +02:00
VSCodium CI
8f2868d2ea build(insider): update to commit 5f646b8 2024-06-07 07:16:25 +00:00
Baptiste Augrain
6a38a6e9db feat: update to 1.90.0 2024-06-06 18:45:13 +02:00
Baptiste Augrain
7b846f5dd1 Merge branch 'insider' 2024-06-06 18:14:38 +02:00
Baptiste Augrain
a652d7a26b build(linux): make it build (#1916) 2024-06-06 16:54:10 +02:00
Baptiste Augrain
a7c7014502 fix: disable signature verification (#1915) 2024-06-06 13:46:04 +02:00
Baptiste Augrain
b5bbda7208 fix(macos): clean keychain only after dmg [skip ci] 2024-06-04 11:00:07 +02:00
Baptiste Augrain
c3064a2cb3 build(macos): allow local codesign [skip ci] 2024-06-02 17:45:59 +02:00
Baptiste Augrain
3860f2832c fix(macos): add keychain to available keychains [skip ci] 2024-06-02 03:03:55 +02:00
Baptiste Augrain
8e077dc483 fix(macos): patch electron-sign for spaces [skip ci] 2024-06-01 22:56:59 +02:00
Baptiste Augrain
c703bf5868 fix(macos): add quote to sign [skip ci] 2024-06-01 22:15:40 +02:00
Baptiste Augrain
b39a7be7a8 fix(macos): add quote to sign [skip ci] 2024-06-01 21:29:11 +02:00
Baptiste Augrain
11b7b8dc40 fix(macos): pass missing env variables [skip ci] 2024-06-01 19:54:48 +02:00
Baptiste Augrain
e8a3ac3cab build: update to node-v20 [skip ci] 2024-06-01 19:23:10 +02:00
Baptiste Augrain
73ba20791e build: update to node-v20 2024-06-01 18:41:51 +02:00
Baptiste Augrain
b6411b1af1 feat(1.90): update patches and notarize macos (#1864) 2024-06-01 18:31:12 +02:00
VSCodium CI
02a9d03154 build(stable): update to commit dc96b83 2024-05-09 18:12:33 +00:00
Yevhen Popok
f93746b300 fix(linux): deprecate unity-launch flag (#1866) 2024-05-06 16:08:01 +02:00
Baptiste Augrain
0d28b4dfb7 feat(1.89): update patches (#1863) 2024-05-05 10:55:17 +02:00
Lex
39df447b12 feat: use sysroot for PPC64LE (#1857) 2024-04-26 08:59:33 +02:00
Baptiste Augrain
ac0f6f2011 ci: add missing snap_name [skip ci] 2024-04-13 03:33:45 +02:00
Baptiste Augrain
c8a5d87903 ci(snap): make sure that version is set [skip ci] 2024-04-13 03:26:00 +02:00
Baptiste Augrain
7733660b8a ci: correctly check assets [skip ci] 2024-04-13 02:55:38 +02:00
Baptiste Augrain
193d8e0a44 ci(macos): filter python setup [skip ci] 2024-04-13 02:42:44 +02:00
Baptiste Augrain
6c180b2903 ci: re-using self-hosted runner [skip ci] 2024-04-13 02:39:23 +02:00
Baptiste Augrain
07b7cb95cf ci: correctly check assets [skip ci] 2024-04-13 02:30:32 +02:00
Baptiste Augrain
a1f3d6ff6c ci(linux): add option to check all architectures [skip ci] 2024-04-13 01:32:54 +02:00
Levi Zim
ab01a1aa00 feat: add linux riscv64 reh build (#1851) 2024-04-12 14:27:37 +02:00
VSCodium CI
50cd49e73c build(stable): update to commit e170252 2024-04-11 18:10:45 +00:00
Baptiste Augrain
4dc6ac4efb feat: update apis [skip ci] 2024-04-05 14:11:23 +02:00
Baptiste Augrain
97bd0850e2 feat(1.88): update patches (#1839) 2024-04-04 23:14:54 +02:00
Baptiste Augrain
e4b7667390 Merge branch 'master' into insider 2024-03-30 15:36:07 +01:00
VSCodium CI
6253c391d1 build(stable): update to commit 863d258 2024-03-12 18:13:22 +00:00
VSCodium CI
846ff03638 build(stable): update to commit 1e790d7 2024-03-08 18:11:59 +00:00
noons
f9dd596d7b feat: add scalable icon for linux (#1818) 2024-03-06 19:20:50 +01:00
Debayan Sutradhar
e97b042f36 typo: fix minor "contect" (#1824) 2024-03-05 14:27:58 +01:00
Baptiste Augrain
27e012b8c4 feat(1.87): update apis 2024-02-29 23:05:36 +01:00
Baptiste Augrain
4a5eac45bc build(linux): add alpine reh 2024-02-29 22:24:14 +01:00
VSCodium CI
218db9297e build(insider): update to commit 019f4d1 2024-02-28 07:14:28 +00:00
Baptiste Augrain
df8b53671c build(linux): don't use env [skip ci] 2024-02-27 10:51:07 +01:00
Baptiste Augrain
6f7b5f7e5b build(linux): update snap version [skip ci] 2024-02-27 09:55:38 +01:00
VSCodium CI
d7c458fbb3 build(insider): update to commit e73419b 2024-02-27 02:04:48 +00:00
Baptiste Augrain
ecb34d2fde fix(snap): broken mesa driver [skip ci] 2024-02-27 02:54:15 +01:00
Baptiste Augrain
9cde10c3c8 build(linux): use correct task for reh alpine [skip ci] 2024-02-27 02:19:00 +01:00
Baptiste Augrain
ec3440c945 build(linux): use correct task for reh alpine [skip ci] 2024-02-27 02:00:45 +01:00
Baptiste Augrain
54643d2d20 ci(linux): use upload-artifact@v3 to upload vscode artifact [skip ci] 2024-02-27 01:36:38 +01:00
Baptiste Augrain
b5c6d4ed25 ci(linux): install dep for alpine reh [skip ci] 2024-02-27 01:10:52 +01:00
Baptiste Augrain
d7b3f79225 ci: upgrade most actions/upload-artifact [skip ci] 2024-02-27 00:44:20 +01:00
Baptiste Augrain
5260770ebf build(linux): remove node18 requirements [skip ci] 2024-02-27 00:24:22 +01:00
Baptiste Augrain
2e7169a51a build(linux): install reh dependencies for alpine 2024-02-27 00:03:36 +01:00
Baptiste Augrain
fc5bb5232e ci: upload assets as artifacts 2024-02-27 00:03:03 +01:00
Baptiste Augrain
b3ab572f67 ci(windows): fix generate assets [skip ci] 2024-02-26 22:59:19 +01:00
Baptiste Augrain
914fb42eed build(linux): add alpine reh [skip ci] 2024-02-26 15:32:48 +01:00
Baptiste Augrain
3c21a8ca23 build(windows): use node-gyp-v10.0.1 2024-02-26 15:32:09 +01:00
Baptiste Augrain
c25403efaa build(linux): update node-v16 patch [skip ci] 2024-02-26 14:53:49 +01:00
Baptiste Augrain
5269066280 ci(linux): update insider workflow [skip ci] 2024-02-26 14:46:20 +01:00
Baptiste Augrain
fc5bc75ba8 build(linux): update snapcraft for insiders 2024-02-26 14:35:38 +01:00
Baptiste Augrain
6a0df191ba feat(1.87): update patches 2024-02-26 14:30:28 +01:00
Baptiste Augrain
02883594db chore: clean up 2024-02-26 14:19:04 +01:00
Baptiste Augrain
ed0de172c4 docs(readme): official flatpak and remove split lines 2024-02-26 11:51:33 +01:00
Baptiste Augrain
9959ea3883 docs(readme): add link 2024-02-26 11:49:14 +01:00
Baptiste Augrain
97127baae4 docs: update supported platforms 2024-02-26 11:47:44 +01:00
Baptiste Augrain
eb7d54bd62 build(linux): build snap with core20 [skip ci] 2024-02-26 01:18:15 +01:00
Baptiste Augrain
ad280d74db build(linux): wip snap [skip ci] 2024-02-25 20:00:05 +01:00
Baptiste Augrain
def8660f29 ci(linux): skip review when generating assets [skip ci] 2024-02-25 19:20:38 +01:00
Baptiste Augrain
333d381b79 ci(linux): fix workflow [skip ci] 2024-02-25 18:42:23 +01:00
Baptiste Augrain
3d7a4ca324 ci(linux): bypass build job to generate all assets [skip ci] 2024-02-25 18:37:47 +01:00
Baptiste Augrain
6fc1f3d9ad ci(linux): run snap job when generating assets [skip ci] 2024-02-25 18:04:29 +01:00
Baptiste Augrain
60f14dadc8 ci(linux): fix workflow [skip ci] 2024-02-25 17:36:24 +01:00
Baptiste Augrain
9eab456963 ci(linux): wip for aur and snap [skip ci] 2024-02-25 17:34:30 +01:00
Baptiste Augrain
9c56656f21 Merge branch 'insider' 2024-02-23 02:00:55 +01:00
Baptiste Augrain
f4759fb36a ci(linux): keep extensions node_modules [skip ci] 2024-02-23 01:33:26 +01:00
Baptiste Augrain
e117bf98d5 ci(linux): keep .git [skip ci] 2024-02-23 00:40:52 +01:00
Baptiste Augrain
5108f834ff ci(linux): keep dotfiles [skip ci] 2024-02-23 00:16:37 +01:00
Baptiste Augrain
694f559418 ci(linux): keep extensions node_modules [skip ci] 2024-02-22 23:26:50 +01:00
noons
d06c8d52f8 docs(flatpak): add common problems fix to troubleshooting.md (#1811) 2024-02-22 22:53:34 +01:00
Baptiste Augrain
6764917005 ci(linux): keep extensions node_modules [skip ci] 2024-02-22 22:45:55 +01:00
Baptiste Augrain
f309a13e49 chore: add drips funding [skip ci] 2024-02-22 19:42:33 +01:00
VSCodium CI
908ad168f3 build(stable): update to commit 903b1e9 2024-02-22 14:45:49 +00:00
Baptiste Augrain
d493f78ac7 ci: fix flag to check latest version [skip ci] 2024-02-22 15:33:36 +01:00
Baptiste Augrain
b1347db351 ci: fix flag to check latest version [skip ci] 2024-02-22 15:31:48 +01:00
Baptiste Augrain
2f1f18834d ci: add logs [skip ci] 2024-02-22 15:28:20 +01:00
Baptiste Augrain
3df8eaac79 ci(linux): update stable worflow [skip ci] 2024-02-22 15:19:09 +01:00
Baptiste Augrain
be0dcd1712 chore: remove unused file [skip ci] 2024-02-22 15:10:21 +01:00
Baptiste Augrain
e8021d07ee ci(linux): use correct BUILD_SOURCEVERSION [skip ci] 2024-02-22 14:39:50 +01:00
Baptiste Augrain
b409f3472c ci(linux): check all assets [skip ci] 2024-02-22 13:50:53 +01:00
Baptiste Augrain
99f92269eb ci(linux): only run jobs on build condition [skip ci] 2024-02-22 13:48:01 +01:00
Baptiste Augrain
ab1a6fa244 ci(linux): skip checking assets [skip ci] 2024-02-22 13:40:29 +01:00
Baptiste Augrain
3b86373e7c ci(linux): regroup checks [skip ci] 2024-02-22 13:34:57 +01:00
Baptiste Augrain
d87569085d ci(linux): determine correct version [skip ci] 2024-02-22 13:22:07 +01:00
Baptiste Augrain
2fff1a6f83 ci(linux): add additional conditions for steps [skip ci] 2024-02-22 12:14:44 +01:00
Baptiste Augrain
3187e3121f ci(linux): check only concerned archives [skip ci] 2024-02-22 11:45:36 +01:00
Baptiste Augrain
c480c943b2 ci(linux): calcutate checksums for reh [skip ci] 2024-02-22 11:21:25 +01:00
Baptiste Augrain
0f31cbabbd ci(linux): disable remote from non-server build [skip ci] 2024-02-22 10:13:27 +01:00
Baptiste Augrain
a6ee6e7e7f ci(linux): remove remote from non-server build [skip ci] 2024-02-22 09:43:59 +01:00
Baptiste Augrain
8d023eb88b ci(Linux): add libkrb5-dev [skip ci] 2024-02-22 09:14:43 +01:00
Baptiste Augrain
aebe54143c ci)linux): don't prepare reh in client branch [skip ci] 2024-02-22 01:54:40 +01:00
Baptiste Augrain
c11e8cb34f ci(linux): remove git clean [skip ci] 2024-02-22 01:27:39 +01:00
Baptiste Augrain
9ce4c29b64 ci(linux): fix artifact files rights [skip ci] 2024-02-22 01:07:03 +01:00
Baptiste Augrain
a6150955be ci(linux): debug [ci] 2024-02-22 00:45:48 +01:00
Baptiste Augrain
4f407ac513 ci(linux): fix git error by yarn [skip ci] 2024-02-22 00:08:50 +01:00
Baptiste Augrain
5da67f762f ci(linux): archive .git [skip ci] 2024-02-21 23:16:19 +01:00
Baptiste Augrain
f1d7201c3c ci(linux): fix env variables [skip ci] 2024-02-21 22:51:36 +01:00
Baptiste Augrain
58bf4cb91c ci(linux): fix command [skip ci] 2024-02-21 21:48:39 +01:00
Baptiste Augrain
80cfae0ef8 ci(linux): fix flags order [skip ci] 2024-02-21 21:24:48 +01:00
Baptiste Augrain
4d712a77a8 ci(linux): re-add gz compression and add debug [skip ci] 2024-02-21 20:27:52 +01:00
Baptiste Augrain
a4ed6272bb ci(linux): fix artifact usage [skip ci] 2024-02-21 20:03:44 +01:00
Baptiste Augrain
158d27571f ci(linux): update conditions [skip ci] 2024-02-21 19:49:17 +01:00
Baptiste Augrain
1dc9cbec09 ci(linux): simple deps install on compile step [skip ci] 2024-02-21 17:51:13 +01:00
Baptiste Augrain
25743e2b1b ci(linux): add vscode arch to compile step [skip ci] 2024-02-21 17:43:55 +01:00
Baptiste Augrain
15b22644df ci(linux): remove arch patches [skip ci] 2024-02-21 17:37:39 +01:00
Baptiste Augrain
36626d3e3e ci(linux): compile vscode [skip ci] 2024-02-21 17:30:33 +01:00
Baptiste Augrain
4d072a64c4 ci(linux): fix workflow [skip ci] 2024-02-21 17:22:50 +01:00
Baptiste Augrain
db7d4c33f3 ci(linux): split to compile, build and reh jobs [skip ci] 2024-02-21 17:19:36 +01:00
Baptiste Augrain
90f88ba638 ci(linux): dont use apt-get [skip ci] 2024-02-20 11:28:24 +01:00
Baptiste Augrain
a3a8234ce8 ci(linux): use devtoolset images to build [skip ci] 2024-02-20 11:17:07 +01:00
Baptiste Augrain
fb5f9a59e4 ci(linux): updating debug for remote [skip ci] 2024-02-20 10:57:51 +01:00
Baptiste Augrain
f2368757f3 ci(linux): updating debug for remote [skip ci] 2024-02-20 10:46:37 +01:00
Baptiste Augrain
c2fad13012 ci(linux): updating debug for remote [skip ci] 2024-02-20 10:32:19 +01:00
Baptiste Augrain
49c508607d ci(linux): updating debug for remote [skip ci] 2024-02-20 10:21:32 +01:00
Baptiste Augrain
279758278b ci(linux): add debug for remote [skip ci] 2024-02-20 10:18:41 +01:00
Baptiste Augrain
f18abb0ab8 ci(linux): use container dependencies only for remote [skip ci] 2024-02-20 09:54:49 +01:00
Baptiste Augrain
95db40ceb0 ci(linux): disable ppc64 2024-02-19 22:08:12 +01:00
Baptiste Augrain
1341b7b7af ci(linux): try fixing arm32 and ppc64 [skip ci] 2024-02-19 21:52:42 +01:00
Baptiste Augrain
096bb6e6d7 ci(linux): try fixing arm32 and ppc64 [skip ci] 2024-02-19 21:24:48 +01:00
Baptiste Augrain
5ab85e4972 ci(linux): re-install libkrb5-dev [skip ci] 2024-02-19 20:00:51 +01:00
Baptiste Augrain
a54f8f25f5 ci(linux): appimage only on x64 [skip ci] 2024-02-19 19:18:18 +01:00
Baptiste Augrain
12a0fa0cf6 ci(linux): use older checkout [skip ci] 2024-02-19 17:55:51 +01:00
Baptiste Augrain
db835abaf1 ci(linux): use bionic build agents [skip ci] 2024-02-19 17:48:43 +01:00
Baptiste Augrain
e04c06d5e3 ci(linux): increase glibcxx min-version [skip ci] 2024-02-19 16:57:48 +01:00
Baptiste Augrain
5427f5c36a ci(linux): add detail to error [skip ci] 2024-02-19 16:37:53 +01:00
Baptiste Augrain
2be4e5af47 ci(linux): install dependencies in build [skip ci] 2024-02-19 15:56:39 +01:00
Baptiste Augrain
da43928fde ci(linux): specify npm registry [skip ci] 2024-02-19 15:50:06 +01:00
Baptiste Augrain
509931a6d1 ci(linux): yarn install done by azure script [skip ci] 2024-02-19 15:44:12 +01:00
Baptiste Augrain
0b4117ed49 ci(linux): install dependencies from devtool images [skip ci] 2024-02-19 14:45:13 +01:00
Baptiste Augrain
b0e8397279 fix(linux): switch to node-v16 [skip ci] 2024-02-18 01:03:33 +01:00
Baptiste Augrain
76d1aa5ab3 feat(linux): use node-v16 [skip ci] 2024-02-17 04:20:25 +01:00
Baptiste Augrain
a633e4ef15 ci(linux): fix postinstall on armhf [skip ci] 2024-02-17 03:31:49 +01:00
Baptiste Augrain
53b09bb494 ci(insider): add flag to disable dispatchs [skip ci] 2024-02-17 01:35:18 +01:00
Baptiste Augrain
969b50bb4d ci(reh): use armhf container for armhf version [skip ci] 2024-02-16 11:08:39 +01:00
Baptiste Augrain
f7e347f027 feat(reh): use node-v16 [skip ci] 2024-02-16 11:06:59 +01:00
Baptiste Augrain
e23717a28a ci(linux): add missing lib [skip ci] 2024-02-16 05:09:39 +01:00
Baptiste Augrain
a2c4dbed20 feat(1.86.2): use legacy support [skip ci] 2024-02-16 05:01:14 +01:00
Baptiste Augrain
799e20364d ci(linux): fix workflow [skip ci] 2024-02-16 02:04:33 +01:00
Baptiste Augrain
ad4d2c612d fix: use sysroot with glibc-2.17 [skip ci] 2024-02-16 01:45:48 +01:00
Baptiste Augrain
9fae90974b ci: don't get latest [skip ci] 2024-02-08 19:18:47 +01:00
Baptiste Augrain
7661574791 ci: use github runners [skip ci] 2024-02-08 19:15:07 +01:00
Baptiste Augrain
33596505a6 ci: add new flag [skip ci] 2024-02-08 19:13:09 +01:00
Baptiste Augrain
4e32237f33 fix: disable snap [skip ci] 2024-02-08 19:00:58 +01:00
Baptiste Augrain
3cad271b5c fix(snap): use snapcore action [skip ci] 2024-02-08 18:26:48 +01:00
Baptiste Augrain
6144fec97d fix(snap): fix path [skip ci] 2024-02-08 18:16:53 +01:00
Baptiste Augrain
3f66ba03df fix(snap): build 2024-02-08 18:08:34 +01:00
Baptiste Augrain
3465153c6e fix(snap): squash changes [skip ci] 2024-02-08 16:10:05 +01:00
Baptiste Augrain
96f53366b7 fix(reh): use compatible node-pty [skip ci] 2024-02-08 15:53:32 +01:00
Baptiste Augrain
1588f9cabf docs: add snapcraft 2024-02-07 15:18:32 +01:00
Baptiste Augrain
b5eb8aa469 fix: correct search .deb 2024-02-07 12:15:01 +01:00
Baptiste Augrain
8024004702 fix: fetch when building assets 2024-02-07 03:50:19 +01:00
Baptiste Augrain
d490b06bdb feat: preparing for 1.86 (#1802) 2024-02-07 00:51:19 +01:00
Baptiste Augrain
799b71046d feat: use new macos-14 runner 2024-02-03 19:30:27 +01:00
Baptiste Augrain
a1cae6f671 feat(1.87): update patches 2024-02-03 18:49:19 +01:00
Baptiste Augrain
4f360377b1 Merge branch 'master' into insider 2024-02-03 18:20:31 +01:00
Baptiste Augrain
2faafce844 feat(1.86): update patches 2024-02-03 18:19:42 +01:00
dependabot[bot]
a49d4f1de0 build(deps): bump peter-evans/repository-dispatch from 2 to 3 (#1794) 2024-01-29 14:05:13 +01:00
VSCodium CI
eea73cb564 build(stable): update to commit 8b37750 2024-01-19 19:14:48 +01:00
Baptiste Augrain
6ada8c9026 ci: add user/email for merge [skip ci] 2023-12-17 19:41:35 +01:00
Baptiste Augrain
1c424b6c05 ci: do not commit PR testing [skip ci] 2023-12-17 19:28:39 +01:00
Baptiste Augrain
8168609ee9 ci: do not commit PR testing [skip ci] 2023-12-17 19:19:19 +01:00
Baptiste Augrain
24aafd81b9 ci: unshallow for PR testing [skip ci] 2023-12-17 19:15:12 +01:00
Baptiste Augrain
508642510a ci: skip message for merge [skip ci] 2023-12-17 18:47:41 +01:00
Baptiste Augrain
ef4d13a0c6 ci: merge PR with main branch [skip ci] 2023-12-17 18:42:23 +01:00
Baptiste Augrain
f09882677b ci: disable PR for dependencies [skip ci] 2023-12-17 18:21:55 +01:00
Baptiste Augrain
0952b2f0dc ci: checkout PR [skip ci] 2023-12-17 18:13:34 +01:00
Baptiste Augrain
0d7ded33f3 ci: checkout PR with git commands [skip ci] 2023-12-17 18:00:43 +01:00
Baptiste Augrain
40c487fcf9 ci: generate assets for a pr [skip ci] 2023-12-17 00:30:20 +01:00
VSCodium CI
01f2c461ad build(stable): update to commit 0ee08df 2023-12-14 21:19:46 +01:00
Baptiste Augrain
56e99f2989 fix: update commit msg and branch name [skip ci] 2023-12-14 21:11:53 +01:00
dependabot[bot]
e159da782a build(deps): bump actions/setup-python from 4 to 5 (#1758) 2023-12-11 14:45:10 +01:00
dependabot[bot]
ae0d209284 build(deps): bump actions/stale from 8 to 9 (#1759) 2023-12-11 14:06:44 +01:00
Baptiste Augrain
d6d31a6443 ci(linux): use node-v18 (#1754) 2023-12-09 23:30:17 +01:00
Baptiste Augrain
f3a832f6cb feat(1.85.0): update patches 2023-12-08 20:38:04 +01:00
dependabot[bot]
9cfdb0fa14 build(deps): bump dessant/lock-threads from 4 to 5 (#1734) 2023-11-20 14:29:42 +01:00
Mizux
48f5958d8b docs: add vscode link (#1730)
Add link to microsoft/vscode repo to easily find original source.
2023-11-16 10:22:09 +01:00
Baptiste Augrain
b0c823fc07 ci: streamline insider dispatch [skip ci] 2023-11-15 23:31:19 +01:00
Baptiste Augrain
4de18fae52 build: add spearhead checking [skip ci] 2023-11-15 22:41:07 +01:00
Baptiste Augrain
5039d2d09b ci: disable slow cache [skip ci] 2023-11-15 22:33:43 +01:00
Baptiste Augrain
8bb53bf173 ci: add single event to dispatch all build [skip ci] 2023-11-15 22:30:37 +01:00
Baptiste Augrain
8606615423 fix: make prepare_src.sh executable [skip ci] 2023-11-15 22:02:08 +01:00
Baptiste Augrain
efca1a2c2c fix: don't checkout insider for stable [skip ci] 2023-11-15 20:45:18 +01:00
Baptiste Augrain
3b1a4e39c6 build: add debug [skip ci] 2023-11-15 20:28:00 +01:00
Baptiste Augrain
40b1d413f5 fix: workflow name [skip ci] 2023-11-15 17:33:27 +01:00
Baptiste Augrain
b8eac1f27b feat: notarize commit id (#1728) 2023-11-15 17:31:04 +01:00
Baptiste Augrain
dfc41b2911 fix(windows): disable background update for MSI (#1722) 2023-11-13 13:40:07 +01:00
Baptiste Augrain
fbeaf45cdb feat(1.84.2): fix patch (#1715) 2023-11-10 14:23:58 +01:00
Baptiste Augrain
6748d842bb build: skip setup-python on self-hosted runner 2023-11-10 13:33:29 +01:00
Baptiste Augrain
e658a1cf0b build: use specific python version 2023-11-07 19:24:04 +01:00
Max Kratz
f3a6b9555b docs: fixes typos (#1714) 2023-11-07 19:20:49 +01:00
VSCodium CI
2e4dbca8e6 build(insider): update to commit 9aacac6 2023-11-06 08:18:26 +01:00
VSCodium CI
3699c22652 build(insider): update to commit e550098 2023-11-04 08:19:11 +01:00
VSCodium CI
32e07ef39a build(insider): update to commit a9d8fbc 2023-11-03 08:18:11 +01:00
Baptiste Augrain
ce52a2931b feat: disable cloud (#1709) 2023-11-02 10:05:07 +01:00
Baptiste Augrain
6868dc47cd Merge branch 'insider' 2023-11-02 09:59:29 +01:00
Baptiste Augrain
f470320501 docs: reorganize docs pages and CONTRIBUTING.md (#1705) 2023-11-02 09:36:13 +01:00
Baptiste Augrain
7580fb767a fix: always add platform info for windows (#1707) 2023-10-31 14:49:34 +01:00
Baptiste Augrain
49583eb39d feat: prepare for 1.85 (#1706) 2023-10-31 12:39:06 +01:00
Ahhj93
f1fa60db6d Update DOCS.md (#1679) 2023-10-13 21:44:11 +03:00
Baptiste Augrain
fef49abfd5 fix(windows): path of node-gyp with spectre mitigation (#1690) 2023-10-10 14:49:35 +02:00
Baptiste Augrain
f38ad8b6a2 fix(windows): path of node-gyp with spectre mitigation (#1690) 2023-10-10 13:49:41 +02:00
Baptiste Augrain
b1ca680ce7 feat: update to 1.84 2023-10-10 01:28:12 +02:00
Baptiste Augrain
282e23dff0 fix: use node-v18.17 to generate all artifacts (#1689) 2023-10-10 00:06:20 +02:00
Baptiste Augrain
fa6fbaa4e0 wip: use latest npm [skip ci] 2023-10-09 22:21:14 +02:00
Baptiste Augrain
e727f395ba wip: use specific python version [skip ci] 2023-10-07 22:17:29 +02:00
Baptiste Augrain
5f055bf5ae wip: testing windows-build-tools 2023-10-07 22:02:11 +02:00
Baptiste Augrain
e863d764eb wip: add debug [skip ci] 2023-10-07 20:08:07 +02:00
Baptiste Augrain
5e143f4297 wip: update node_gyp path [skip ci] 2023-10-07 20:00:52 +02:00
Baptiste Augrain
df298f9630 wip: install python 2.x [skip ci] 2023-10-07 19:53:03 +02:00
Simon Sobisch
0851b9abd3 docs: choco install for insiders 2023-10-06 13:31:31 +02:00
Baptiste Augrain
5e61d7d3db wip: fix git merge [skip ci] 2023-10-05 17:25:23 +02:00
Baptiste Augrain
fc7ef66af4 wip: fix git merge [skip ci] 2023-10-05 17:20:04 +02:00
Baptiste Augrain
240fb384a2 wip: fix git merge [skip ci] 2023-10-05 17:08:54 +02:00
Baptiste Augrain
8de14b5c6a wip: use patched node-gyp [skip ci] 2023-10-05 16:44:52 +02:00
Baptiste Augrain
dd84d4841a wip: try latest windows [skip ci] 2023-10-05 16:17:09 +02:00
Baptiste Augrain
5290310677 fix: update patch [skip ci] 2023-10-04 19:42:31 +02:00
Baptiste Augrain
fca50b1b9b Merge branch 'master' into insider 2023-10-04 19:16:42 +02:00
Baptiste Augrain
75e7f71ac6 fix: full revert of gh actions [skip ci] 2023-10-04 18:24:54 +02:00
Baptiste Augrain
5d50317e0e revert: newest gh actions aren't compatible with linux images [skip ci] 2023-10-04 18:09:05 +02:00
Simon Sobisch
b667614448 Add Insiders to README 2023-09-29 11:26:20 +02:00
dependabot[bot]
51b0ff47bc build(deps): bump docker/setup-qemu-action from 2 to 3 (#1647) 2023-09-26 14:18:33 +02:00
dependabot[bot]
1789f03920 build(deps): bump actions/checkout from 3 to 4 (#1637) 2023-09-26 14:16:53 +02:00
Baptiste Augrain
1861b90513 fix: stop cheking appiamge [skip ci] 2023-09-21 10:36:52 +02:00
Baptiste Augrain
5631262eb7 fix: disabling appimage [skip ci] 2023-09-13 09:14:23 +02:00
VSCodium CI
2523267fed build(insider): update to commit 5a400e5 2023-09-08 09:17:57 +02:00
Baptiste Augrain
5600db3e57 feat(1.82): update patch and api [skip ci] 2023-09-07 20:18:23 +02:00
Baptiste Augrain
4314fdae01 Merge branch 'insider' 2023-09-07 20:14:03 +02:00
Baptiste Augrain
d7f0ff07dc fix: update insider version [skip ci] 2023-09-07 18:00:22 +02:00
Baptiste Augrain
5621279b19 fix: disable node check on linux 2023-09-07 17:35:38 +02:00
VSCodium CI
ffebe6ddf1 build(insider): update to commit f1302be 2023-09-04 09:36:29 +02:00
Baptiste Augrain
4930c5a71e feat: use node-v18 for insider workflow [skip ci] 2023-09-04 09:22:59 +02:00
Baptiste Augrain
1c6056c2c0 feat: add apis for open-remote-wsl extension (#1627) 2023-09-03 16:32:02 +02:00
Baptiste Augrain
c2d980b0a2 fix: script to update insider.json [skip ci] 2023-09-03 15:53:14 +02:00
Baptiste Augrain
61f4931efb feat(1.82): update patches and use node-v18 (#1626) 2023-09-03 14:59:11 +02:00
osfanbuff63
6333caaf8a docs: clarify winget install command (#1251) 2023-09-03 12:32:28 +02:00
DodoLeDev
e7f41946a4 docs: add vscodium-electron for arch (#1317) 2023-09-03 12:31:15 +02:00
Zac
c2894d5563 revert: fix the patch file for linux builds (#1617) 2023-09-03 12:25:03 +02:00
theskcd
6f36a980aa [vscodium][linux] Fix the patch file for linux builds (#1608)
The URL was updated on the vscode repo, but not updated for the patch. Fixing it on this commit
2023-08-23 22:27:46 +03:00
153 changed files with 9718 additions and 2840 deletions

View File

@@ -14,7 +14,7 @@ A clear and concise description of what the bug is.
- [ ] This bug doesn't happen if I use Microsoft's Visual Studio Code. It only happens in VSCodium.
**Please confirm that the issue/resolution isn't already documented**
- [ ] I checked [the Docs page](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) and my issue is not mentioned there.
- [ ] I checked [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) and [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) and my issue is not mentioned there.
**To Reproduce**
Steps to reproduce the behavior:

View File

@@ -3,30 +3,36 @@ name: insider-linux
on:
workflow_dispatch:
inputs:
release_version:
force_version:
type: boolean
description: Force update version
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Forced release version
new_release:
type: boolean
description: Force new Release
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 8 * * *'
description: Checkout PR
repository_dispatch:
types: [insider]
push:
branches: [ insider ]
paths-ignore:
- '**/*.md'
- 'upstream/*.json'
pull_request:
branches: [ insider ]
paths-ignore:
- '**/*.md'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
BINARY_NAME: codium-insiders
DISABLE_UPDATE: 'yes'
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
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -34,8 +40,6 @@ env:
jobs:
check:
runs-on: ubuntu-latest
container:
image: vscodium/vscodium-linux-build-agent:bionic-x64
outputs:
MS_COMMIT: ${{ env.MS_COMMIT }}
MS_TAG: ${{ env.MS_TAG }}
@@ -44,150 +48,428 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
- name: Switch to relevant branch
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
dependencies:
needs:
- check
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v2
if: matrix.vscode_arch == 'arm64' || matrix.vscode_arch == 'ppc64le'
- name: Install remote dependencies
run: ./install_remote_dependencies.sh
- name: Save remote dependencies
uses: actions/upload-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
build:
needs:
- check
- dependencies
runs-on: ubuntu-latest
env:
DISABLE_UPDATE: 'yes'
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:bionic-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
container:
image: ${{ matrix.image }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Install GH
run: ./install_gh.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
CHECK_ALL: 'yes'
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Restore remote dependencies
uses: actions/download-artifact@v3
compile:
needs:
- check
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
VSCODE_ARCH: 'x64'
outputs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Compress vscode artifact
run: |
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
echo "vscode/.build/extensions/node_modules" >> vscode.txt
echo "vscode/.git" >> vscode.txt
tar -czf vscode.tar.gz -T vscode.txt
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
with:
name: vscode
path: ./vscode.tar.gz
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
if: env.SHOULD_BUILD == 'yes'
build:
needs:
- check
- compile
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- slug: X64
vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:focal-x64
- slug: ARM64
vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:focal-arm64
- slug: ARM32
vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:focal-armhf
- slug: RISCV64
vscode_arch: riscv64
npm_arch: riscv64
image: vscodium/vscodium-linux-build-agent:focal-riscv64
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
image: vscodium/vscodium-linux-build-agent:beige-loong64
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
container:
image: ${{ matrix.image }}
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_APP_{0}', matrix.slug)] }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Install GH
run: ./install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
CHECK_REH: 'no'
DISABLE_APPIMAGE: ${{ vars.DISABLE_INSIDER_APPIMAGE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- 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
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
run: ./build/linux/package_bin.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Prepare assets
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
reh_linux:
needs:
- check
- compile
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- slug: X64
vscode_arch: x64
npm_arch: x64
- slug: ARM64
vscode_arch: arm64
npm_arch: arm64
- slug: ARM32
vscode_arch: armhf
npm_arch: arm
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
- slug: RISCV64
vscode_arch: riscv64
npm_arch: riscv64
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
- slug: S390X
vscode_arch: s390x
npm_arch: s390x
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_REH_{0}', matrix.slug)] }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.DISABLED != 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.DISABLED != 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.DISABLED != 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ONLY_REH: 'yes'
run: ./check_tags.sh
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build/linux/package_reh.sh
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
reh_alpine:
needs:
- check
- compile
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- slug: X64
vscode_arch: x64
npm_arch: x64
- slug: ARM64
vscode_arch: arm64
npm_arch: arm64
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
DISABLED: ${{ vars[format('DISABLE_INSIDER_ALPINE_REH_{0}', matrix.slug)] }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
OS_NAME: alpine
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
- name: Install GH
run: ./install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ONLY_REH: 'yes'
run: ./check_tags.sh
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build/alpine/package_reh.sh
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
aur:
needs:
- check
- build
runs-on: ubuntu-latest
strategy:
@@ -196,12 +478,12 @@ jobs:
include:
- package_name: vscodium-insiders-bin
- package_name: vscodium-insiders
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
steps:
- name: Get version
env:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
run: echo "PACKAGE_VERSION=${RELEASE_VERSION/-*/}" >> "${GITHUB_ENV}"
- name: Publish ${{ matrix.package_name }}
@@ -215,50 +497,61 @@ jobs:
snap:
needs:
- check
- build
runs-on: ubuntu-latest
env:
APP_NAME: codium
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SNAP_NAME: codium-insiders
strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64
# if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
if: false
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: insider
ref: ${{ env.GITHUB_BRANCH }}
- name: Check version
- name: Switch to relevant branch
env:
ARCHITECTURE: ${{ matrix.platform }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
run: ./stores/snapcraft/check_version.sh
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- uses: docker/setup-qemu-action@v2
if: env.SHOULD_DEPLOY == 'yes'
- uses: docker/setup-qemu-action@v3
- uses: diddlesnaps/snapcraft-multiarch-action@v1
with:
path: stores/snapcraft/insider
architecture: ${{ matrix.platform }}
id: build
if: env.SHOULD_DEPLOY == 'yes'
- uses: diddlesnaps/snapcraft-review-action@v1
with:
snap: ${{ steps.build.outputs.snap }}
isClassic: 'true'
if: env.SHOULD_DEPLOY == 'yes'
# - uses: diddlesnaps/snapcraft-review-action@v1
# with:
# snap: ${{ steps.build.outputs.snap }}
# isClassic: 'true'
- uses: snapcore/action-publish@master
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
- uses: svenstaro/upload-release-action@v2
with:
snap: ${{ steps.build.outputs.snap }}
release: edge
if: env.SHOULD_DEPLOY == 'yes'
repo_name: ${{ env.ASSETS_REPOSITORY }}
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@v3
with:
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
repository: VSCodium/repositories-linux
event-type: deploy

View File

@@ -3,21 +3,22 @@ name: insider-macos
on:
workflow_dispatch:
inputs:
release_version:
force_version:
type: boolean
description: Force update version
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Forced release version
new_release:
type: boolean
description: Force new Release
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 8 * * *'
description: Checkout PR
repository_dispatch:
types: [insider]
push:
branches: [ insider ]
paths-ignore:
- '**/*.md'
- 'upstream/*.json'
pull_request:
branches: [ insider ]
paths-ignore:
@@ -26,7 +27,10 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
BINARY_NAME: codium-insiders
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -40,35 +44,43 @@ jobs:
fail-fast: false
matrix:
include:
- runner: macos-12
- runner: macos-13
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: insider
ref: ${{ env.GITHUB_BRANCH }}
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16'
node-version: '22.14.0'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
run: . get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: . check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
run: . check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
@@ -80,11 +92,13 @@ jobs:
- name: Prepare assets
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -95,11 +109,20 @@ jobs:
- name: Update versions repo
env:
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
- name: Clean up keychain
if: always()
run: |

View File

@@ -2,30 +2,46 @@ name: insider-spearhead
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_dispatch:
type: boolean
description: Force dispatch
dont_update:
type: boolean
description: Don't update VSCode
dont_dispatch:
type: boolean
description: Disable dispatch
schedule:
- cron: '0 7 * * *'
jobs:
build:
runs-on: [self-hosted, macOS, ARM64]
runs-on: macos-14
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
BINARY_NAME: codium-insiders
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_ARCH: arm64
VSCODE_LATEST: yes
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
VSCODE_QUALITY: insider
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16'
node-version: '22.14.0'
- name: Clone VSCode repo
run: . get_repo.sh
@@ -33,36 +49,42 @@ jobs:
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
IS_SPEARHEAD: 'yes'
run: . check_tags.sh
- name: Compute cache key
id: yarnCacheKey
run: echo "value=$(node build/azure-pipelines/computeYarnCacheKey.js)" >> $GITHUB_OUTPUT
if: env.SHOULD_BUILD == 'yes'
- name: Get yarn cache directory path
id: yarnCacheDirPath
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
if: env.SHOULD_BUILD == 'yes'
- name: Cache yarn directory
uses: actions/cache@v3
with:
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Update insider.json
run: ./update_insider.sh
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
- name: Update upstream version
run: ./update_upstream.sh
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
- name: Prepare source
run: ./prepare_src.sh
if: env.SHOULD_BUILD == 'yes'
- name: Release source
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes'
- name: Dispatch builds
uses: peter-evans/repository-dispatch@v3
with:
event-type: insider
if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true')

View File

@@ -3,21 +3,22 @@ name: insider-windows
on:
workflow_dispatch:
inputs:
release_version:
force_version:
type: boolean
description: Force update version
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Forced release version
new_release:
type: boolean
description: Force new Release
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 8 * * *'
description: Checkout PR
repository_dispatch:
types: [insider]
push:
branches: [ insider ]
paths-ignore:
- '**/*.md'
- 'upstream/*.json'
pull_request:
branches: [ insider ]
paths-ignore:
@@ -26,76 +27,225 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
BINARY_NAME: codium-insiders
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
jobs:
build:
runs-on: windows-2019
defaults:
run:
shell: bash
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
vscode_arch:
- x64
- ia32
- arm64
check:
runs-on: ubuntu-latest
outputs:
MS_COMMIT: ${{ env.MS_COMMIT }}
MS_TAG: ${{ env.MS_TAG }}
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
CHECK_ALL: 'yes'
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
compile:
needs:
- check
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
VSCODE_ARCH: 'x64'
outputs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Compress vscode artifact
run: |
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
echo "vscode/.build/extensions/node_modules" >> vscode.txt
echo "vscode/.git" >> vscode.txt
tar -czf vscode.tar.gz -T vscode.txt
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
with:
name: vscode
path: ./vscode.tar.gz
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
if: env.SHOULD_BUILD == 'yes'
build:
needs:
- check
- compile
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
vscode_arch:
- x64
- arm64
defaults:
run:
shell: bash
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Check existing VSCodium tags/releases
env:
DISABLE_MSI: ${{ vars.DISABLE_INSIDER_MSI }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
run: ./build/windows/package.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Upload unsigned artifacts
id: upload-unsigned-artifacts
uses: actions/upload-artifact@v4
with:
name: unsigned-${{ matrix.vscode_arch }}
path: |
assets/*.exe
assets/*.msi
retention-days: 1
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Signing
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
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
output-artifact-directory: assets/
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Prepare checksums
run: ./prepare_checksums.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -106,11 +256,20 @@ jobs:
- name: Update versions repo
env:
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
winget:
needs: build
runs-on: windows-latest
@@ -123,7 +282,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
@@ -133,7 +292,7 @@ jobs:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
- name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@v2
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: ${{ env.APP_IDENTIFIER }}
version: ${{ env.RELEASE_VERSION }}

View File

@@ -8,7 +8,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4
- uses: dessant/lock-threads@v5
with:
github-token: ${{ github.token }}
issue-inactive-days: '90'

View File

@@ -3,29 +3,35 @@ name: stable-linux
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_version:
type: boolean
description: Force update version
test_asset_builder:
generate_assets:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 18 * * *'
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [stable]
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
- 'upstream/*.json'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
DISABLE_UPDATE: 'yes'
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
@@ -33,8 +39,6 @@ env:
jobs:
check:
runs-on: ubuntu-latest
container:
image: vscodium/vscodium-linux-build-agent:bionic-x64
outputs:
MS_COMMIT: ${{ env.MS_COMMIT }}
MS_TAG: ${{ env.MS_TAG }}
@@ -43,135 +47,210 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
dependencies:
needs:
- check
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v2
if: matrix.vscode_arch == 'arm64' || matrix.vscode_arch == 'ppc64le'
- name: Install remote dependencies
run: ./install_remote_dependencies.sh
- name: Save remote dependencies
uses: actions/upload-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
build:
needs:
- check
- dependencies
runs-on: ubuntu-latest
env:
DISABLE_UPDATE: 'yes'
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:bionic-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
container:
image: ${{ matrix.image }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Install GH
run: ./install_gh.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
CHECK_ALL: 'yes'
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Restore remote dependencies
uses: actions/download-artifact@v3
compile:
needs:
- check
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
VSCODE_ARCH: 'x64'
outputs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.SHOULD_BUILD == 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Compress vscode artifact
run: |
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
echo "vscode/.build/extensions/node_modules" >> vscode.txt
echo "vscode/.git" >> vscode.txt
tar -czf vscode.tar.gz -T vscode.txt
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
with:
name: vscode
path: ./vscode.tar.gz
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
if: env.SHOULD_BUILD == 'yes'
build:
needs:
- check
- compile
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- slug: X64
vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:focal-x64
- slug: ARM64
vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:focal-arm64
- slug: ARM32
vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:focal-armhf
- slug: RISCV64
vscode_arch: riscv64
npm_arch: riscv64
image: vscodium/vscodium-linux-build-agent:focal-riscv64
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
image: vscodium/vscodium-linux-build-agent:beige-loong64
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
container:
image: ${{ matrix.image }}
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_APP_{0}', matrix.slug)] }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
CHECK_REH: 'no'
DISABLE_APPIMAGE: ${{ vars.DISABLE_STABLE_APPIMAGE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- 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
with:
name: vscode
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
run: ./build/linux/package_bin.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
- name: Prepare assets
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
@@ -179,10 +258,219 @@ jobs:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
reh_linux:
needs:
- check
- compile
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- slug: X64
vscode_arch: x64
npm_arch: x64
- slug: ARM64
vscode_arch: arm64
npm_arch: arm64
- slug: ARM32
vscode_arch: armhf
npm_arch: arm
- slug: PPC64
vscode_arch: ppc64le
npm_arch: ppc64
- slug: RISCV64
vscode_arch: riscv64
npm_arch: riscv64
- slug: LOONG64
vscode_arch: loong64
npm_arch: loong64
- slug: S390X
vscode_arch: s390x
npm_arch: s390x
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_REH_{0}', matrix.slug)] }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.DISABLED != 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.DISABLED != 'yes'
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
if: env.DISABLED != 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.DISABLED != 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.DISABLED != 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.DISABLED != 'yes'
- name: Install GH
run: ./install_gh.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ONLY_REH: 'yes'
run: ./check_tags.sh
if: env.DISABLED != 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build/linux/package_reh.sh
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
reh_alpine:
needs:
- check
- compile
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- slug: X64
vscode_arch: x64
npm_arch: x64
- slug: ARM64
vscode_arch: arm64
npm_arch: arm64
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
DISABLED: ${{ vars[format('DISABLE_STABLE_ALPINE_REH_{0}', matrix.slug)] }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
OS_NAME: alpine
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
- name: Install GH
run: ./install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ONLY_REH: 'yes'
run: ./check_tags.sh
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
with:
name: vscode
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build/alpine/package_reh.sh
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
aur:
needs:
- check
- build
runs-on: ubuntu-latest
strategy:
@@ -191,9 +479,9 @@ jobs:
include:
- package_name: vscodium
package_type: stable
- package_name: vscodium-git
package_type: rolling
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
# - package_name: vscodium-git
# package_type: rolling
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- name: Publish ${{ matrix.package_name }}
@@ -207,59 +495,94 @@ jobs:
snap:
needs:
- check
- build
runs-on: ubuntu-latest
env:
APP_NAME: codium
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SNAP_NAME: codium
strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Check version
env:
ARCHITECTURE: ${{ matrix.platform }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
SNAPCRAFT_STORE_CHANNEL: ${{ vars.SNAP_STORE_CHANNEL }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
run: ./stores/snapcraft/check_version.sh
- uses: docker/setup-qemu-action@v2
if: env.SHOULD_DEPLOY == 'yes'
- uses: docker/setup-qemu-action@v3
if: env.SHOULD_BUILD == 'yes'
- uses: diddlesnaps/snapcraft-multiarch-action@v1
with:
path: stores/snapcraft/stable
architecture: ${{ matrix.platform }}
id: build
if: env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes'
- uses: diddlesnaps/snapcraft-review-action@v1
with:
snap: ${{ steps.build.outputs.snap }}
isClassic: 'true'
if: env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes' || env.SHOULD_DEPLOY_TO_STORE == 'yes'
- uses: svenstaro/upload-release-action@v2
with:
repo_name: ${{ env.ASSETS_REPOSITORY }}
repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
file: ${{ steps.build.outputs.snap }}
tag: ${{ env.RELEASE_VERSION }}
if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes'
- uses: snapcore/action-publish@master
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
with:
snap: ${{ steps.build.outputs.snap }}
release: stable
if: env.SHOULD_DEPLOY == 'yes'
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.build.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@v3
with:
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
repository: VSCodium/repositories-linux
event-type: deploy

View File

@@ -3,21 +3,22 @@ name: stable-macos
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_version:
type: boolean
description: Force update version
test_asset_builder:
generate_assets:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 18 * * *'
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [stable]
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
- 'upstream/*.json'
pull_request:
branches: [ master ]
paths-ignore:
@@ -26,6 +27,9 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
@@ -39,31 +43,43 @@ jobs:
fail-fast: false
matrix:
include:
- runner: macos-12
- runner: macos-13
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: . get_pr.sh
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16'
node-version: '22.14.0'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'
- name: Clone VSCode repo
run: . get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: . check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
run: . check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
@@ -75,11 +91,13 @@ jobs:
- name: Prepare assets
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -95,6 +113,14 @@ jobs:
run: ./update_version.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
- name: Clean up keychain
if: always()
run: |

85
.github/workflows/stable-spearhead.yml vendored Normal file
View File

@@ -0,0 +1,85 @@
name: stable-spearhead
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_dispatch:
type: boolean
description: Force dispatch
dont_update:
type: boolean
description: Don't update VSCode
schedule:
- cron: '0 18 * * *'
jobs:
build:
runs-on: macos-14
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: osx
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
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
- name: Clone VSCode repo
run: . get_repo.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
IS_SPEARHEAD: 'yes'
run: . check_tags.sh
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
- name: Update upstream version
run: ./update_upstream.sh
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
- name: Prepare source
run: ./prepare_src.sh
if: env.SHOULD_BUILD == 'yes'
- name: Release source
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes'
- name: Dispatch builds
uses: peter-evans/repository-dispatch@v3
with:
event-type: stable
if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true'

View File

@@ -3,21 +3,22 @@ name: stable-windows
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_version:
type: boolean
description: Force update version
test_asset_builder:
generate_assets:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 18 * * *'
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [stable]
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
- 'upstream/*.json'
pull_request:
branches: [ master ]
paths-ignore:
@@ -26,72 +27,224 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
GH_REPO_PATH: ${{ github.repository }}
ORG_NAME: ${{ github.repository_owner }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
jobs:
build:
runs-on: windows-2019
defaults:
run:
shell: bash
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
vscode_arch:
- x64
- ia32
- arm64
check:
runs-on: ubuntu-latest
outputs:
MS_COMMIT: ${{ env.MS_COMMIT }}
MS_TAG: ${{ env.MS_TAG }}
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/setup-node@v3
- uses: actions/checkout@v4
with:
node-version: '16'
ref: ${{ env.GITHUB_BRANCH }}
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
CHECK_ALL: 'yes'
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
compile:
needs:
- check
runs-on: ubuntu-22.04
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
VSCODE_ARCH: 'x64'
outputs:
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
- name: Setup GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 10
platform: x64
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
run: ./get_repo.sh
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Compress vscode artifact
run: |
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
echo "vscode/.build/extensions/node_modules" >> vscode.txt
echo "vscode/.git" >> vscode.txt
tar -czf vscode.tar.gz -T vscode.txt
if: env.SHOULD_BUILD == 'yes'
- name: Upload vscode artifact
uses: actions/upload-artifact@v4
with:
name: vscode
path: ./vscode.tar.gz
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
if: env.SHOULD_BUILD == 'yes'
build:
needs:
- check
- compile
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
vscode_arch:
- x64
- arm64
defaults:
run:
shell: bash
env:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Switch to relevant branch
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_pr.sh
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.SHOULD_BUILD == 'yes'
- name: Check existing VSCodium tags/releases
env:
DISABLE_MSI: ${{ vars.DISABLE_STABLE_MSI }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v4
with:
name: vscode
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
run: ./build/windows/package.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Upload unsigned artifacts
id: upload-unsigned-artifacts
uses: actions/upload-artifact@v4
with:
name: unsigned-${{ matrix.vscode_arch }}
path: |
assets/*.exe
assets/*.msi
retention-days: 1
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Signing
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
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
output-artifact-directory: assets/
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Prepare checksums
run: ./prepare_checksums.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -105,7 +258,15 @@ jobs:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
winget:
needs: build
@@ -118,7 +279,9 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Check version
run: ./stores/winget/check_version.sh
@@ -126,7 +289,7 @@ jobs:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
- name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@v2
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: ${{ env.APP_IDENTIFIER }}
version: ${{ env.RELEASE_VERSION }}

View File

@@ -11,7 +11,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
- uses: actions/stale@v9
with:
days-before-stale: 180
days-before-close: 30
@@ -21,5 +21,5 @@ jobs:
This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment!
close-issue-message: >
This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue.
exempt-issue-labels: discussion
only-pr-labels: not-a-real-label
exempt-issue-labels: discussion,never-stale
only-pr-labels: needs-information

4
.gitignore vendored
View File

@@ -8,9 +8,11 @@ assets/
build/linux/appimage/out
build/linux/appimage/pkg2appimage.AppDir
build/linux/appimage/pkg2appimage-*.AppImage
build/linux/appimage/pkg2appimage.AppImage
build/linux/appimage/squashfs-root
build/linux/appimage/VSCodium
build/windows/msi/releasedir
build/windows/msi/Files*.wxs
build/windows/msi/Files*.wixobj
remote-dependencies.tar
stores/snapcraft/insider/*.snap
stores/snapcraft/stable/*.snap

2
.nvmrc
View File

@@ -1 +1 @@
16.20
22.14.0

42
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,42 @@
# Contributing
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
#### Table Of Contents
- [Code of Conduct](#code-of-conduct)
- [Reporting Bugs](#reporting-bugs)
- [Making Changes](#making-changes)
## Code of Conduct
This project and everyone participating in it is governed by the [VSCodium Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
## Reporting Bugs
### Before Submitting an Issue
Before creating bug reports, please check existing issues and [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) as you might find out that you don't need to create one.
When you are creating a bug report, please include as many details as possible. Fill out [the required template](https://github.com/VSCodium/vscodium/issues/new?&labels=bug&&template=bug_report.md), the information it asks for helps us resolve issues faster.
## Making Changes
If you want to make changes, please read [the Build page](./docs/howto-build.md).
### Building VSCodium
To build VSCodium, please follow the command found in the section [`Build Scripts`](./docs/howto-build.md#build-scripts).
### Updating patches
If you want to update the existing patches, please follow the section [`Patch Update Process - Semi-Automated`](./docs/howto-build.md#patch-update-process-semiauto).
### Add a new patch
- 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 `npm run watch`
- run `./script/code.sh`
- make your changes
- press any key to continue the script `patch.sh`

220
DOCS.md
View File

@@ -1,220 +0,0 @@
# More Info
## 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 the VS Code Marketplace](#howto-vscode-marketplace)
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
- [Proprietary Extensions](#proprietary-extensions)
- [Migrating from Visual Studio Code to VSCodium](#migrating)
- [Sign in with GitHub](#signin-github)
- [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)
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/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 default `telemetry.enableCrashReporter` and `telemetry.enableTelemetry` values 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) and [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-crash-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.
These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
With the following environment variables:
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
- `VSCODE_GALLERY_CONTROL_URL=''`
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:
- Note: set `cacheUrl` to empty string for every other extension gallery
```jsonc
{
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"itemUrl": "https://marketplace.visualstudio.com/items",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"controlUrl": ""
}
}
```
### <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. In all of these cases you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
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="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
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.
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
### <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 of the extension which need 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 case, 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`.

7
FUNDING.json Normal file
View File

@@ -0,0 +1,7 @@
{
"drips": {
"ethereum": {
"ownedBy": "0x7806393Cb27692C6A52eE3D5338A75cECD168219"
}
}
}

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">
@@ -19,7 +19,7 @@
</div>
**This is not a fork. This is a repository of scripts to automatically build Microsoft's `vscode` repository into freely-licensed binaries with a community-driven default configuration.**
**This is not a fork. This is a repository of scripts to automatically build [Microsoft's `vscode` repository](https://github.com/microsoft/vscode) into freely-licensed binaries with a community-driven default configuration.**
## Table of Contents
@@ -39,31 +39,48 @@
## <a id="download-install"></a>Download/Install
:tada: :tada: [Download latest release here](https://github.com/VSCodium/vscodium/releases) :tada: :tada:
:tada: :tada:
Download latest release here:
[stable](https://github.com/VSCodium/vscodium/releases) or
[insiders](https://github.com/VSCodium/vscodium-insiders/releases)
:tada: :tada:
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/docs/index.md)
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/DOCS.md)
#### <a id="install-with-brew"></a>Install with Brew (Mac)
If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
```bash
# stable
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/wiki/Troubleshooting#macos).*
*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:
```bash
winget install vscodium
```cmd
:: stable
winget install -e --id VSCodium.VSCodium
:: insider
winget install -e --id VSCodium.VSCodium.Insiders
```
#### <a id="install-with-choco"></a>Install with Chocolatey (Windows)
If you use Windows and have [Chocolatey](https://chocolatey.org) installed (thanks to [@Thilas](https://github.com/Thilas)):
```bash
```cmd
:: stable
choco install vscodium
:: insider
choco install vscodium-insiders
```
#### <a id="install-with-scoop"></a>Install with Scoop (Windows)
@@ -78,34 +95,45 @@ scoop install vscodium
VSCodium is available in the [Snap Store](https://snapcraft.io/) as [Codium](https://snapcraft.io/codium), thanks to the help of the [Snapcrafters](https://github.com/snapcrafters/codium) community.
If your GNU/Linux distribution has support for [snaps](https://snapcraft.io/docs/installing-snapd):
```bash
snap install codium --classic
```
#### <a id="install-with-package-manager"></a>Install with Package Manager (GNU/Linux)
You can always install using the downloads (deb, rpm, tar) on the [releases page](https://github.com/VSCodium/vscodium/releases), but you can also install using your favorite package manager and get automatic updates. [@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo). Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
You can always install using the downloads (deb, rpm, tar) on the releases page for [stable](https://github.com/VSCodium/vscodium/releases) or [insiders](https://github.com/VSCodium/vscodium-insiders/releases), but you can also install using your favorite package manager and get automatic updates.
[@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions for `apt`, `dnf` and `zypper` [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo).
Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
#### <a id="install-on-arch-linux"></a>Install on Arch Linux
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@binex-dsk](https://github.com/binex-dsk). An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository), maintained by [@binex-dsk](https://github.com/binex-dsk) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/) (stable) and as [vscodium-insiders-bin](https://aur.archlinux.org/packages/vscodium-insiders-bin).
If you want to save disk space by having VSCodium use the Electron system-wide, you also have [vscodium-electron](https://aur.archlinux.org/packages/vscodium-electron),
maintained by [@m00nw4tch3r](https://aur.archlinux.org/account/m00nw4tch3r).
An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
#### <a id="flatpak"></a>Flatpak Option (GNU/Linux)
VSCodium is (unofficially) available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium). If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
VSCodium is available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium).
If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
```bash
flatpak install flathub com.vscodium.codium
flatpak run com.vscodium.codium
```
## <a id="build"></a>Build
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
## <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:
@@ -115,7 +143,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:
@@ -131,13 +159,17 @@ Microsoft's build process (which we are running to build the binaries) does down
### Documentation
For more information on getting all the telemetry disabled and tips for migrating from Visual Studio Code to VSCodium, have a look at this [Docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) page.
For more information on getting all the telemetry disabled, tips for migrating from Visual Studio Code to VSCodium and more, have a look at [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) page.
### Troubleshooting
If you have any issue, please check [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) or the existing issues.
### 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.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.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/index.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
### How are the VSCodium binaries built?
@@ -148,22 +180,19 @@ The builds are run every day, but exit early if there isn't a new release from M
## <a id="supported-platforms"></a>Supported Platforms
The minimal version is limited by the core component Electron, you may want to check its [platform prerequisites](https://www.electronjs.org/docs/latest/development/build-instructions-gn#platform-prerequisites).
- [x] macOS (`zip`, `dmg`) OS X 10.10 or newer x64
- [x] macOS (`zip`, `dmg`) macOS 10.15 or newer x64
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `tar.gz`)
- [x] GNU/Linux x86 (`deb`, `rpm`, `tar.gz`) ([up to v1.35.1](https://code.visualstudio.com/updates/v1_36#_linux-32bit-support-ends))
- [x] GNU/Linux arm64 (`deb`, `tar.gz`)
- [x] GNU/Linux armhf (`deb`, `tar.gz`)
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `snap`, `tar.gz`)
- [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`)
- [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`)
- [x] GNU/Linux riscv64 (`tar.gz`)
- [x] GNU/Linux loong64 (`tar.gz`)
- [x] GNU/Linux ppc64le (`tar.gz`)
- [x] Windows 10 / Server 2012 R2 or newer x64
- [x] Windows 10 / Server 2012 R2 or newer x86
- [x] Windows 10 / Server 2012 R2 or newer arm64
## <a id="donate"></a>Donate
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N`.
Special thanks to:
## <a id="thanks"></a>Special thanks
<table>
<tr>
@@ -178,6 +207,14 @@ Special thanks to:
<td><a href="https://www.macstadium.com" target="_blank"><img src="https://images.prismic.io/macstadium/66fbce64-707e-41f3-b547-241908884716_MacStadium_Logo.png?w=128&q=75" width="128" height="49" alt="MacStadium logo" /></a></td>
<td>for providing a Mac mini M1</td>
</tr>
<tr>
<td><a href="https://github.com/daiyam" target="_blank">@daiyam</a></td>
<td>for macOS certificate</td>
</tr>
<tr>
<td><a href="https://signpath.org/" target="_blank"><img src="https://avatars.githubusercontent.com/u/34448643" height="30" alt="SignPath logo" /></a></td>
<td>free code signing on Windows provided by <a href="https://signpath.io/" target="_blank">SignPath.io</a>, certificate by <a href="https://signpath.org/" target="_blank">SignPath Foundation</a></td>
</tr>
</table>
## <a id="license"></a>License

View File

@@ -1,2 +1,7 @@
[
{
"id": "#2358",
"title": "Wanted! Feedback for new website :)",
"url": "https://github.com/VSCodium/vscodium/discussions/2358"
}
]

View File

@@ -3,10 +3,6 @@
set -ex
if [[ -f "./remote-dependencies.tar" ]]; then
tar -xf ./remote-dependencies.tar ./vscode/remote/node_modules
fi
. version.sh
if [[ "${SHOULD_BUILD}" == "yes" ]]; then
@@ -16,43 +12,67 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
yarn monaco-compile-check
yarn valid-layers-check
export NODE_OPTIONS="--max-old-space-size=8192"
yarn gulp compile-build
yarn gulp compile-extension-media
yarn gulp compile-extensions-build
yarn gulp minify-vscode
npm run monaco-compile-check
npm run valid-layers-check
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"
# 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
. ../build/windows/rtf/make.sh
# generate Group Policy definitions
node build/lib/policies win32
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
. ../build/windows/rtf/make.sh
if [[ "${VSCODE_ARCH}" != "ia32" && "${VSCODE_ARCH}" != "x64" ]]; then
SHOULD_BUILD_REH="no"
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"
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then # linux-ppc64le
VSCODE_PLATFORM="linux"
else # linux
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
# in CI, packaging will be done by a different job
if [[ "${CI_BUILD}" == "no" ]]; then
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
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
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi
cd ..

98
build/alpine/package_reh.sh Executable file
View File

@@ -0,0 +1,98 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -ex
if [[ "${CI_BUILD}" == "no" ]]; then
exit 1
fi
# include common functions
. ./utils.sh
mkdir -p assets
tar -xzf ./vscode.tar.gz
cd vscode || { echo "'vscode' dir not found"; exit 1; }
export VSCODE_PLATFORM='alpine'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
VSCODE_HOST_MOUNT="$( pwd )"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"
export VSCODE_HOST_MOUNT VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
if [[ -d "../patches/alpine/reh/" ]]; then
for file in "../patches/alpine/reh/"*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 3 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
PA_NAME="linux-alpine"
else
PA_NAME="alpine-arm64"
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building REH"
npm run gulp minify-vscode-reh
npm run gulp "vscode-reh-${PA_NAME}-min-ci"
pushd "../vscode-reh-${PA_NAME}"
echo "Archiving REH"
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
popd
fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building REH-web"
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-${PA_NAME}-min-ci"
pushd "../vscode-reh-web-${PA_NAME}"
echo "Archiving REH-web"
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
popd
fi
cd ..
npm install -g checksum
sum_file() {
if [[ -f "${1}" ]]; then
echo "Calculating checksum for ${1}"
checksum -a sha256 "${1}" > "${1}".sha256
checksum "${1}" > "${1}".sha1
fi
}
cd assets
for FILE in *; do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi
done
cd ..

View File

@@ -1,24 +0,0 @@
const fs = require("fs");
const crypto = require("crypto");
const path = require("path");
const { dirs } = require('../../vscode/build/npm/dirs');
const ROOT = path.join(__dirname, '../../vscode');
const shasum = crypto.createHash('sha1');
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
// Add `yarn.lock` files
for (let dir of dirs) {
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
shasum.update(fs.readFileSync(yarnLockPath));
}
// Add any other command line arguments
for (let i = 2; i < process.argv.length; i++) {
shasum.update(process.argv[i]);
}
process.stdout.write(shasum.digest('hex'));

View File

@@ -1,117 +0,0 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091,SC2129
### Windows
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
###
export APP_NAME="VSCodium"
export CI_BUILD="no"
export SHOULD_BUILD="yes"
export SKIP_ASSETS="yes"
export SKIP_BUILD="no"
export SKIP_SOURCE="no"
export VSCODE_LATEST="no"
export VSCODE_QUALITY="stable"
while getopts ":ilops" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
l)
export VSCODE_LATEST="yes"
;;
o)
export SKIP_BUILD="yes"
;;
p)
export SKIP_ASSETS="no"
;;
s)
export SKIP_SOURCE="yes"
;;
*)
;;
esac
done
case "${OSTYPE}" in
darwin*)
export OS_NAME="osx"
;;
msys* | cygwin*)
export OS_NAME="windows"
;;
*)
export OS_NAME="linux"
;;
esac
UNAME_ARCH=$( uname -m )
if [[ "${UNAME_ARCH}" == "arm64" ]]; then
export VSCODE_ARCH="arm64"
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
export VSCODE_ARCH="ppc64le"
else
export VSCODE_ARCH="x64"
fi
echo "OS_NAME=\"${OS_NAME}\""
echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
if [[ "${SKIP_SOURCE}" == "no" ]]; then
rm -rf vscode* VSCode*
. get_repo.sh
. version.sh
# save variables for later
echo "MS_TAG=\"${MS_TAG}\"" > build.env
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
else
if [[ "${SKIP_ASSETS}" != "no" ]]; then
rm -rf VSCode*
fi
. build.env
echo "MS_TAG=\"${MS_TAG}\""
echo "MS_COMMIT=\"${MS_COMMIT}\""
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
fi
if [[ "${SKIP_BUILD}" == "no" ]]; then
if [[ "${SKIP_SOURCE}" != "no" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
cd ..
fi
. build.sh
if [[ "${VSCODE_QUALITY}" == "insider" && "${VSCODE_LATEST}" == "yes" ]]; then
jsonTmp=$( jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. "insider.json" | .tag=$tag | .commit=$commit' )
echo "${jsonTmp}" > "insider.json" && unset jsonTmp
fi
fi
if [[ "${SKIP_ASSETS}" == "no" ]]; then
if [[ "${OS_NAME}" == "windows" ]]; then
rm -rf build/windows/msi/releasedir
fi
. prepare_assets.sh
fi

View File

@@ -27,16 +27,20 @@ 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
export ARCH=x86_64
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
rm -f pkg2appimage-*.AppImage

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

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
export ELECTRON_VERSION="35.4.0"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@@ -0,0 +1,9 @@
139fa3fda65865ee141b0f411945eff7b26c4bb35a2647e55d38aeedcc08e129 *chromedriver-v35.4.0-linux-loong64.zip
319dab705a38634e6b0c4090eaf17d171e493432cebdb96d0c6956f2dad4feba *electron-v35.4.0-linux-loong64-debug.zip
7cc0f0feeb987d22096a9d6c17b5ef35705b948d0814127eb666d3aefa989e79 *electron-v35.4.0-linux-loong64-symbols.zip
37d95342b35c20e36f85ef3cccf8d714e83ca8fd58f8413b0b6b46b251a0f47d *electron-v35.4.0-linux-loong64.zip
617060c7b79d3a311c750fb8795ef12679b3e522d70d29edd11f3f367ae2659c *hunspell-dictionaries.zip
be95f332f4d4760fde24ef88fb70dab1ef4bb059dfd0d740eaa8cbe10f6f6fbb *libcxx-headers.zip
0a0c40917b61afa3da0e1661dd78dad54c4ad1c0fc7d8c923a453d969638dd8b *libcxx-objects-v35.4.0-linux-loong64.zip
b3fdfe044f22c60de5589eb57be9d6d0fdbf30439ff2b67541318356dc331faa *libcxxabi-headers.zip
84dc28d1402a347db08a834228a27626bff8b853c21146141863ce8202a56e72 *mksnapshot-v35.4.0-linux-loong64.zip

18
build/linux/loong64/ripgrep.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt,
# however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one.
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <path_to_node_modules>"
exit 1
fi
RG_PATH="$1/@vscode/ripgrep/bin/rg"
RG_VERSION="14.1.1"
echo "Replacing ripgrep binary with loong64 one"
rm "${RG_PATH}"
curl --silent --fail -L https://github.com/darkyzhou/ripgrep-loongarch64-musl/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
chmod +x "${RG_PATH}"

140
build/linux/package_bin.sh Executable file
View File

@@ -0,0 +1,140 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -ex
if [[ "${CI_BUILD}" == "no" ]]; then
exit 1
fi
# include common functions
. ./utils.sh
tar -xzf ./vscode.tar.gz
chown -R root:root vscode
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.28-gcc-10.5.0'
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
export VSCODE_SKIP_SYSROOT=1
export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_SKIP_SETUPENV=1
export VSCODE_ELECTRON_REPOSITORY='lex-ibm/electron-ppc64le-build-scripts'
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
export VSCODE_ELECTRON_REPOSITORY='riscv-forks/electron-riscv-releases'
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_SKIP_SETUPENV=1
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64'
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_SKIP_SETUPENV=1
fi
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sh" ]]; then
# add newline at the end of the file
echo "" >> build/checksums/electron.txt
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sha256sums" ]]; then
cat "../build/linux/${VSCODE_ARCH}/electron.sha256sums" >> build/checksums/electron.txt
fi
# shellcheck disable=SC1090
source "../build/linux/${VSCODE_ARCH}/electron.sh"
TARGET=$( npm config get target )
# Only fails at different major versions
if [[ "${ELECTRON_VERSION%%.*}" != "${TARGET%%.*}" ]]; then
# Fail the pipeline if electron target doesn't match what is used.
echo "Electron ${VSCODE_ARCH} binary version doesn't match target electron version!"
echo "Releases available at: https://github.com/${VSCODE_ELECTRON_REPOSITORY}/releases"
exit 1
fi
if [[ "${ELECTRON_VERSION}" != "${TARGET}" ]]; then
# Force version
replace "s|target=\"${TARGET}\"|target=\"${ELECTRON_VERSION}\"|" .npmrc
fi
fi
if [[ -d "../patches/linux/client/" ]]; then
for file in "../patches/linux/client/"*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
if [[ -n "${USE_GNUPP2A}" ]]; then
INCLUDES=$(cat <<EOF
{
"target_defaults": {
"conditions": [
["OS=='linux'", {
'cflags_cc!': [ '-std=gnu++20' ],
'cflags_cc': [ '-std=gnu++2a' ],
}]
]
}
}
EOF
)
if [ ! -d "$HOME/.gyp" ]; then
mkdir -p "$HOME/.gyp"
fi
echo "${INCLUDES}" > "$HOME/.gyp/include.gypi"
fi
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 3 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
else
source ./build/azure-pipelines/linux/setup-env.sh
fi
fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i -eq 3 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
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"
fi
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
. ../build_cli.sh
cd ..

229
build/linux/package_reh.sh Executable file
View File

@@ -0,0 +1,229 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -ex
if [[ "${CI_BUILD}" == "no" ]]; then
exit 1
fi
# include common functions
. ./utils.sh
mkdir -p assets
tar -xzf ./vscode.tar.gz
cd vscode || { echo "'vscode' dir not found"; exit 1; }
GLIBC_VERSION="2.28"
GLIBCXX_VERSION="3.4.26"
NODE_VERSION="22.14.0"
export VSCODE_NODEJS_URLROOT='/download/release'
export VSCODE_NODEJS_URLSUFFIX=''
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
GLIBC_VERSION="2.17"
GLIBCXX_VERSION="3.4.22"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-x64"
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
export VSCODE_NODEJS_URLSUFFIX='-glibc-217'
export VSCODE_SKIP_SETUPENV=1
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
EXPECTED_GLIBC_VERSION="2.30"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-arm64"
export VSCODE_SKIP_SYSROOT=1
export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
EXPECTED_GLIBC_VERSION="2.30"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-armhf"
export VSCODE_SKIP_SYSROOT=1
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'
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
NODE_VERSION="20.16.0"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
export VSCODE_SKIP_SETUPENV=1
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
NODE_VERSION="20.16.0"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:beige-devtoolset-loong64"
export VSCODE_SKIP_SETUPENV=1
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'
fi
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_PLATFORM='linux'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
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 )"
export VSCODE_HOST_MOUNT
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
sed -i "/target/s/\"22.*\"/\"${NODE_VERSION}\"/" remote/.npmrc
if [[ -d "../patches/linux/reh/" ]]; then
for file in "../patches/linux/reh/"*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
if [[ -d "../patches/linux/reh/${VSCODE_ARCH}/" ]]; then
for file in "../patches/linux/reh/${VSCODE_ARCH}/"*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
fi
done
fi
if [[ -n "${USE_GNUPP2A}" ]]; then
INCLUDES=$(cat <<EOF
{
"target_defaults": {
"conditions": [
["OS=='linux'", {
'cflags_cc!': [ '-std=gnu++20' ],
'cflags_cc': [ '-std=gnu++2a' ],
}]
]
}
}
EOF
)
if [ ! -d "${HOME}/.gyp" ]; then
mkdir -p "${HOME}/.gyp"
fi
echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
fi
mv .npmrc .npmrc.bak
cp ../npmrc .npmrc
for i in {1..5}; do # try 5 times
npm ci --prefix build && break
if [[ $i == 3 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
else
source ./build/azure-pipelines/linux/setup-env.sh
fi
fi
for i in {1..5}; do # try 5 times
npm ci && break
if [[ $i == 3 ]]; then
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
# remove dependencies that fail during cleanup
rm -rf node_modules/@vscode node_modules/node-pty
done
mv .npmrc.bak .npmrc
node build/azure-pipelines/distro/mixin-npm
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building REH"
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
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
fi
echo "Archiving REH"
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
popd
fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building REH-web"
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
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
fi
echo "Archiving REH-web"
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
popd
fi
cd ..
npm install -g checksum
sum_file() {
if [[ -f "${1}" ]]; then
echo "Calculating checksum for ${1}"
checksum -a sha256 "${1}" > "${1}".sha256
checksum "${1}" > "${1}".sha1
fi
}
cd assets
for FILE in *; do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi
done
cd ..

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
export ELECTRON_VERSION="35.4.0"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"

View File

@@ -0,0 +1,11 @@
c010d5d6e71b5e264fbf9c489793255a7f8eeaf052ee397f422beee69dc14142 *chromedriver-v35.4.0-linux-ppc64le.zip
a34c7355c47a401c32c0d4dfc2ed563ff34e7d3a21d81711742ede3e997c1120 *electron-v35.4.0-linux-ppc64le-debug.zip
41d6dce1d6f9708bb2e7ba8abb2c9634a1617f4efd499d184b31db4e2487b9c4 *electron-v35.4.0-linux-ppc64le-symbols.zip
9d2e29007fc1126ffca8c340531f3d8df7403fb0cfbe6301522dc3ee9d8ed8df *electron-v35.4.0-linux-ppc64le.zip
22c1723e008a8f2db879588d705ba528894c5d56053539f29de54de30cbe36a3 *electron.d.ts
29ffe919d9d7e6c4253f75bccfc8a56cb524dc4525a05b11f1b5d7a28b83fc77 *ffmpeg-v35.4.0-linux-ppc64le.zip
e14732b467e29f89231fe938a976e101ce9895e40eb3a837200f8f6e129b638b *hunspell_dictionaries.zip
dba6e62837a78f87bdc0c4acbbde2cdb88639d7ec5685e666a7b101e15d68d0c *libcxx-objects-v35.4.0-linux-ppc64le.zip
14916583d55720189f6afc9d55bb5e2ad81ab30fea8a1790026e64575c0b8dc4 *libcxx_headers.zip
0ce292706006d9e17c590f2704d844e2b837c37da28ff9baab36d7497c4917a0 *libcxxabi_headers.zip
962262bc16dc1d452f67656b897899c471b11d6e6e37bccd536bc0cb0b36ef47 *mksnapshot-v35.4.0-linux-ppc64le.zip

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
export ELECTRON_VERSION="35.4.0"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"

View File

@@ -0,0 +1,11 @@
62a100f36cb8898ca4df50b6160c5fc72618f4447486a154b3521e2d5ca58a2a *chromedriver-v35.4.0-linux-riscv64.zip
92408a3b8a0fdb1be0cdf9473b97a4bb5a0ec3351d3519f5a15831b071eaad27 *electron-v35.4.0-linux-riscv64-debug.tar.zst
7a7fc08874d7dd9f24a27e06ce4f10223d0b81860408a5a6e67441ca7a7a0df9 *electron-v35.4.0-linux-riscv64-symbols.tar.zst
b61f163296cc498e459a71839d68f7f1e2d9a5e2cb0ac9e85b1e360f437f4ecc *electron-v35.4.0-linux-riscv64.zip
41cd1f566a422a59370fc8928a73a4255336f7d870f3eeeabed99b56eb482c6d *ffmpeg-v35.4.0-linux-riscv64.zip
53b80b77c753d06a01349f7cb1c4eec7d4565366a67fd94abb5748f3204b1bd4 *hunspell-dictionaries.zip
252d1279aeafe27e1e54f10fbf9cf07ef0ae49d5b1ff8c7c9876ebba616a878b *libcxx-headers.zip
522a5719369b66749cd966963a94db1c5837d5bc4aecf77caf32f99a8978bfaa *libcxx-objects-v35.4.0-linux-riscv64.zip
48fb04fb8616d48b9a7125e5b6a038b29b5858f170ae65c4e09b576b7931f7ae *libcxxabi-headers.zip
f2ab79663741550142623e7af5aa0fc62eff200c43a8c42d5476e06ff70858ca *mksnapshot-v35.4.0-linux-riscv64.zip
2f4c2d4212fd83f284fef12e1feae01d79bbbd1a68ee05128f1717e0ecfb2b17 *node-v35.4.0-headers.tar.gz

18
build/linux/riscv64/ripgrep.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# microsoft/ripgrep-prebuilt doesn't support riscv64.
# Tracking PR: https://github.com/microsoft/ripgrep-prebuilt/pull/41
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <path_to_node_modules>"
exit 1
fi
RG_PATH="$1/@vscode/ripgrep/bin/rg"
RG_VERSION="14.1.1-4"
echo "Replacing ripgrep binary with riscv64 one"
rm "${RG_PATH}"
curl --silent --fail -L https://github.com/riscv-forks/ripgrep-riscv64-prebuilt/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
chmod +x "${RG_PATH}"

11
build/osx/include.gypi Normal file
View File

@@ -0,0 +1,11 @@
{
'target_defaults': {
'conditions': [
['OS=="mac"', {
'xcode_settings': {
'OTHER_CPLUSPLUSFLAGS': ['-std=c++20']
}
}]
]
}
}

View File

@@ -1,60 +0,0 @@
#!/usr/bin/env bash
export VSCODE_QUALITY="stable"
while getopts ":i" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
*)
;;
esac
done
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
for FILE in ../patches/*.patch; do
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
if ! git apply --ignore-whitespace "${FILE}"; then
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for FILE in ../patches/insider/*.patch; do
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
if ! git apply --ignore-whitespace "${FILE}"; then
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
done
fi

View File

@@ -13,9 +13,9 @@
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file context menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory context menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>

45
build/windows/package.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -ex
if [[ "${CI_BUILD}" == "no" ]]; then
exit 1
fi
tar -xzf ./vscode.tar.gz
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
echo "Npm install failed too many times" >&2
exit 1
fi
echo "Npm install failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
. ../build/windows/rtf/make.sh
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"
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"
npm run gulp minify-vscode-reh-web
npm run gulp "vscode-reh-web-win32-${VSCODE_ARCH}-min-ci"
fi
fi
cd ..

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

@@ -6,7 +6,7 @@ set -e
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
echo "It's a PR"
export SHOULD_BUILD="yes"
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
echo "It's a Push"
@@ -14,8 +14,8 @@ elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
if [[ "${TEST_ASSET_BUILDER}" == "true" ]]; then
echo "It's testing the assets builder"
if [[ "${GENERATE_ASSETS}" == "true" ]]; then
echo "It will generate the assets"
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"

View File

@@ -3,42 +3,60 @@
set -e
if [[ -z "${GITHUB_TOKEN}" ]]; then
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
echo "Will not build because no GITHUB_TOKEN defined"
exit 0
else
GITHUB_TOKEN="${GH_TOKEN:-${GITHUB_TOKEN:-${GH_ENTERPRISE_TOKEN:-${GITHUB_ENTERPRISE_TOKEN}}}}"
fi
# Support for GitHub Enterprise
GH_HOST="${GH_HOST:-github.com}"
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" )
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
if [[ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]]; then
echo "New VSCode version, new build"
export SHOULD_BUILD="yes"
elif [[ "${NEW_RELEASE}" == "true" ]]; then
echo "New release build"
export SHOULD_BUILD="yes"
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
if [[ "${SHOULD_DEPLOY}" == "no" ]]; then
ASSETS="null"
else
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.${GH_HOST}/repos/${ASSETS_REPOSITORY}/releases/latest" )
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
RECHECK_ASSETS="${SHOULD_BUILD}"
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
if [[ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]]; then
echo "New VSCode Insiders version, new build"
export SHOULD_BUILD="yes"
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"
elif [[ "${NEW_RELEASE}" == "true" ]]; then
echo "New release build"
export SHOULD_BUILD="yes"
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
if [[ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]]; then
echo "New VSCode Insiders version, new build"
export SHOULD_BUILD="yes"
fi
fi
fi
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
export RELEASE_VERSION="${LATEST_VERSION}"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
export RELEASE_VERSION="${LATEST_VERSION}"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
echo "Switch to release version: ${RELEASE_VERSION}"
echo "Switch to release version: ${RELEASE_VERSION}"
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
elif [[ "${RECHECK_ASSETS}" == "yes" ]]; then
export SHOULD_BUILD="no"
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
else
ASSETS="null"
fi
else
ASSETS="null"
echo "can't check assets"
exit 1
fi
fi
@@ -47,17 +65,18 @@ contains() {
echo "${ASSETS}" | grep "${1}\""
}
if [[ "${ASSETS}" != "null" ]]; then
# macos
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
if [[ -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" ) || -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.zip" ) ]]; then
echo "Building on MacOS because we have no SRC"
export SHOULD_BUILD="yes"
export SHOULD_BUILD_SRC="yes"
fi
# shellcheck disable=SC2153
if [[ "${CHECK_ASSETS}" == "no" ]]; then
echo "Don't check assets, yet"
elif [[ "${ASSETS}" != "null" ]]; then
if [[ "${IS_SPEARHEAD}" == "yes" ]]; then
if [[ -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" ) || -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.zip" ) ]]; then
echo "Building because we have no SRC"
export SHOULD_BUILD="yes"
export SHOULD_BUILD_SRC="yes"
fi
# macos
elif [[ "${OS_NAME}" == "osx" ]]; then
if [[ -z $( contains "${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
echo "Building on MacOS because we have no ZIP"
export SHOULD_BUILD="yes"
@@ -79,6 +98,20 @@ if [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on MacOS because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
@@ -108,59 +141,19 @@ if [[ "${ASSETS}" != "null" ]]; then
fi
export SHOULD_BUILD_REH="no"
export SHOULD_BUILD_REH_WEB="no"
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_CLI="no"
fi
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"
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 [[ -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 [[ -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 [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows ia32 builds"
fi
# windows-x64
else
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
@@ -184,14 +177,18 @@ if [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_ZIP="no"
fi
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
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 x64 because we have no msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI="no"
fi
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
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 x64 because we have no updates-disabled msi"
export SHOULD_BUILD="yes"
else
@@ -205,161 +202,444 @@ if [[ "${ASSETS}" != "null" ]]; then
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 x64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
fi
elif [[ "${OS_NAME}" == "linux" ]]; then
else
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${CHECK_ONLY_REH}" == "yes" ]]; then
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux ${VSCODE_ARCH} because we have no REH archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Linux REH ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux ${VSCODE_ARCH} because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Linux REH-web ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH_WEB="no"
fi
# linux-arm64
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
if [[ -z $( contains "arm64.deb" ) ]]; then
echo "Building on Linux arm64 because we have no DEB"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DEB="no"
fi
if [[ -z $( contains "aarch64.rpm" ) ]]; then
echo "Building on Linux arm64 because we have no RPM"
export SHOULD_BUILD="yes"
# linux-arm64
if [[ "${VSCODE_ARCH}" == "arm64" || "${CHECK_ALL}" == "yes" ]]; then
if [[ -z $( contains "arm64.deb" ) ]]; then
echo "Building on Linux arm64 because we have no DEB"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DEB="no"
fi
if [[ -z $( contains "aarch64.rpm" ) ]]; then
echo "Building on Linux arm64 because we have no RPM"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "arm64.snap" ) ]]; then
echo "Building on Linux arm64 because we have no SNAP"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_SNAP="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
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
fi
# linux-armhf
if [[ "${VSCODE_ARCH}" == "armhf" || "${CHECK_ALL}" == "yes" ]]; then
if [[ -z $( contains "armhf.deb" ) ]]; then
echo "Building on Linux arm because we have no DEB"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DEB="no"
fi
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
echo "Building on Linux arm because we have no RPM"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
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
fi
# linux-ppc64le
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${CHECK_ALL}" == "yes" ]]; then
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"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux PowerPC64LE because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux PowerPC64LE because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
fi
# linux-riscv64
if [[ "${VSCODE_ARCH}" == "riscv64" || "${CHECK_ALL}" == "yes" ]]; then
export SHOULD_BUILD_DEB="no"
export SHOULD_BUILD_RPM="no"
export SHOULD_BUILD_APPIMAGE="no"
if [[ -z $( contains "${APP_NAME}-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V 64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V 64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V 64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
fi
# linux-loong64
if [[ "${VSCODE_ARCH}" == "loong64" || "${CHECK_ALL}" == "yes" ]]; then
export SHOULD_BUILD_DEB="no"
export SHOULD_BUILD_RPM="no"
export SHOULD_BUILD_APPIMAGE="no"
if [[ -z $( contains "${APP_NAME}-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux Loong64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux Loong64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux Loong64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
fi
# linux-s390x
if [[ "${VSCODE_ARCH}" == "s390x" || "${CHECK_ALL}" == "yes" ]]; then
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-s390x-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux s390x 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-linux-s390x-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux s390x because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
fi
# linux-x64
if [[ "${VSCODE_ARCH}" == "x64" || "${CHECK_ALL}" == "yes" ]]; then
if [[ -z $( contains "amd64.deb" ) ]]; then
echo "Building on Linux x64 because we have no DEB"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DEB="no"
fi
if [[ -z $( contains "x86_64.rpm" ) ]]; then
echo "Building on Linux x64 because we have no RPM"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ "${DISABLE_APPIMAGE}" == "yes" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
elif [[ -z $( contains "x86_64.AppImage" ) ]]; then
echo "Building on Linux x64 because we have no AppImage"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_APPIMAGE="no"
fi
if [[ -z $( contains "amd64.snap" ) ]]; then
echo "Building on Linux x64 because we have no SNAP"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_SNAP="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
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
fi
fi
fi
if [[ "${OS_NAME}" == "alpine" ]] || [[ "${OS_NAME}" == "linux" && "${CHECK_ALL}" == "yes" ]]; then
if [[ "${CHECK_ONLY_REH}" == "yes" ]]; then
if [[ -z $( contains "${APP_NAME_LC}-reh-alpine-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine ${VSCODE_ARCH} because we have no REH archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Alpine REH ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-alpine-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine ${VSCODE_ARCH} because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Alpine REH-web ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH_WEB="no"
fi
else
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
# alpine-arm64
if [[ "${VSCODE_ARCH}" == "arm64" || "${CHECK_ALL}" == "yes" ]]; then
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-alpine-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine arm64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-alpine-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine arm64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
fi
export SHOULD_BUILD_APPIMAGE="no"
# alpine-x64
if [[ "${VSCODE_ARCH}" == "x64" || "${CHECK_ALL}" == "yes" ]]; then
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-alpine-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine x64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm64 builds"
fi
# linux-armhf
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
if [[ -z $( contains "armhf.deb" ) ]]; then
echo "Building on Linux arm because we have no DEB"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DEB="no"
fi
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
echo "Building on Linux arm because we have no RPM"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
export SHOULD_BUILD_APPIMAGE="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm builds"
fi
# linux-ppc64le
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux PowerPC64LE because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux PowerPC64LE builds"
fi
# linux-x64
else
if [[ -z $( contains "amd64.deb" ) ]]; then
echo "Building on Linux x64 because we have no DEB"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DEB="no"
fi
if [[ -z $( contains "x86_64.rpm" ) ]]; then
echo "Building on Linux x64 because we have no RPM"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
echo "Building on Linux x64 because we have no AppImage"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_APPIMAGE="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux x64 builds"
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-alpine-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine x64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
fi
fi
fi
fi
else
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${IS_SPEARHEAD}" == "yes" ]]; then
export SHOULD_BUILD_SRC="yes"
elif [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
elif [[ "${VSCODE_ARCH}" != "x64" ]]; then
export SHOULD_BUILD_APPIMAGE="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
elif [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
export SHOULD_BUILD_SRC="yes"
if [[ "${VSCODE_ARCH}" != "x64" || "${DISABLE_APPIMAGE}" == "yes" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
export SHOULD_BUILD_REH="no"
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${DISABLE_MSI}" == "yes" ]]; then
export SHOULD_BUILD_MSI="no"
export SHOULD_BUILD_MSI_NOUP="no"
fi
fi
@@ -377,7 +657,10 @@ echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
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}"
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_SRC=${SHOULD_BUILD_SRC}" >> "${GITHUB_ENV}"

View File

@@ -3,4 +3,4 @@
# first so `bash` is the one installed with `git`, avoid conflict with WSL
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
bash ./build/build.sh
bash ./dev/build.sh

158
dev/build.sh Executable file
View File

@@ -0,0 +1,158 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091,SC2129
### Windows
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./dev/build.sh
###
export APP_NAME="VSCodium"
export ASSETS_REPOSITORY="VSCodium/vscodium"
export BINARY_NAME="codium"
export CI_BUILD="no"
export GH_REPO_PATH="VSCodium/vscodium"
export ORG_NAME="VSCodium"
export SHOULD_BUILD="yes"
export SKIP_ASSETS="yes"
export SKIP_BUILD="no"
export SKIP_SOURCE="no"
export VSCODE_LATEST="no"
export VSCODE_QUALITY="stable"
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"
;;
l)
export VSCODE_LATEST="yes"
;;
o)
export SKIP_BUILD="yes"
;;
p)
export SKIP_ASSETS="no"
;;
s)
export SKIP_SOURCE="yes"
;;
*)
;;
esac
done
case "${OSTYPE}" in
darwin*)
export OS_NAME="osx"
;;
msys* | cygwin*)
export OS_NAME="windows"
;;
*)
export OS_NAME="linux"
;;
esac
UNAME_ARCH=$( uname -m )
if [[ "${UNAME_ARCH}" == "aarch64" || "${UNAME_ARCH}" == "arm64" ]]; then
export VSCODE_ARCH="arm64"
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
export VSCODE_ARCH="ppc64le"
elif [[ "${UNAME_ARCH}" == "riscv64" ]]; then
export VSCODE_ARCH="riscv64"
elif [[ "${UNAME_ARCH}" == "loongarch64" ]]; then
export VSCODE_ARCH="loong64"
elif [[ "${UNAME_ARCH}" == "s390x" ]]; then
export VSCODE_ARCH="s390x"
else
export VSCODE_ARCH="x64"
fi
export NODE_OPTIONS="--max-old-space-size=8192"
echo "OS_NAME=\"${OS_NAME}\""
echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
if [[ "${SKIP_SOURCE}" == "no" ]]; then
rm -rf vscode* VSCode*
. get_repo.sh
. version.sh
# save variables for later
echo "MS_TAG=\"${MS_TAG}\"" > dev/build.env
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> dev/build.env
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> dev/build.env
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> dev/build.env
else
if [[ "${SKIP_ASSETS}" != "no" ]]; then
rm -rf vscode-* VSCode-*
fi
. dev/build.env
echo "MS_TAG=\"${MS_TAG}\""
echo "MS_COMMIT=\"${MS_COMMIT}\""
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
fi
if [[ "${SKIP_BUILD}" == "no" ]]; then
if [[ "${SKIP_SOURCE}" != "no" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
rm -rf .build out*
cd ..
fi
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
echo "Installing custom ~/.gyp/include.gypi"
mkdir -p ~/.gyp
if [[ -f "${HOME}/.gyp/include.gypi" ]]; then
mv ~/.gyp/include.gypi ~/.gyp/include.gypi.pre-vscodium
else
echo "{}" > ~/.gyp/include.gypi.pre-vscodium
fi
cp ./build/osx/include.gypi ~/.gyp/include.gypi
fi
. build.sh
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
mv ~/.gyp/include.gypi.pre-vscodium ~/.gyp/include.gypi
fi
if [[ "${VSCODE_LATEST}" == "yes" ]]; then
jsonTmp=$( cat "./upstream/${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
echo "${jsonTmp}" > "./upstream/${VSCODE_QUALITY}.json" && unset jsonTmp
fi
fi
if [[ "${SKIP_ASSETS}" == "no" ]]; then
if [[ "${OS_NAME}" == "windows" ]]; then
rm -rf build/windows/msi/releasedir
fi
if [[ "${OS_NAME}" == "osx" && -f "dev/osx/codesign.env" ]]; then
. dev/osx/macos-codesign.env
echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}"
fi
. prepare_assets.sh
fi

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

@@ -0,0 +1,5 @@
CERTIFICATE_OSX_APP_PASSWORD=
CERTIFICATE_OSX_ID=
CERTIFICATE_OSX_P12_DATA=
CERTIFICATE_OSX_P12_PASSWORD=
CERTIFICATE_OSX_TEAM_ID=

View File

@@ -1,29 +1,54 @@
#!/usr/bin/env bash
set -e
echo "$#"
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
git reset -q --hard HEAD~
done
git apply --reject "../patches/helper/settings.patch"
while [ $# -gt 1 ]; do
echo "Parameter: $1"
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
fi
git apply --reject "${FILE}"
shift
done
git add .
git commit --no-verify -q -m "VSCODIUM HELPER"
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
fi
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
if [[ -f "${FILE}" ]]; then
git apply --reject "${FILE}"
fi
if [[ -f "${FILE}.bak" ]]; then
mv -f $FILE{.bak,}
fi
git apply --reject "../patches/helper/settings.patch"
git apply --reject "${FILE}" || true
fi
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
cd ..
git reset -q --hard HEAD~
echo "The patch has been generated."

View File

@@ -33,6 +33,7 @@ fi
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/resources/app/product.json" )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp

93
dev/update_patches.sh Executable file
View File

@@ -0,0 +1,93 @@
#!/usr/bin/env bash
export VSCODE_QUALITY="stable"
while getopts ":i" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
*)
;;
esac
done
check_file() {
while [ $# -gt 1 ]; do
git apply --reject "${1}"
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}"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${1}"
fi
git add .
git reset -q --hard HEAD~
fi
}
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
for FILE in ../patches/*.patch; do
check_file "${FILE}"
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for FILE in ../patches/insider/*.patch; do
check_file "${FILE}"
done
fi
for ARCH in alpine linux osx windows; do
for FILE in "../patches/${ARCH}/"*.patch; do
if [[ "${ARCH}" == "linux" && "${FILE}" == *"/arch-"* ]] || [[ "${ARCH}" == "windows" && "${FILE}" == *"/cli"* ]]; then
echo "skip ${FILE}"
else
check_file "${FILE}"
fi
done
if [[ "${ARCH}" == "linux" ]]; then
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
for FILE in "../patches/${ARCH}/${TARGET}/"*.patch; do
check_file "${FILE}"
done
for FILE in "../patches/${ARCH}/${TARGET}/"*/*.patch; do
check_file "${FILE}"
done
done
done

View File

@@ -0,0 +1,19 @@
<!-- order: 0 -->
# Accounts authentication
## GitHub
The GitHub authentication has been patched to use personal access tokens.
Here is how to create a new personal access token: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
## Microsoft
The Microsoft authentication hasn't been patched so its status is unknown.
## When does it happen?
An account authentication occurs only when an extension is asking for it.
For `GitLens`, since the `12 non-plus` version, it won't ask for any new authentication.

View File

@@ -1,149 +0,0 @@
# Build
## Table of Contents
- [Dependencies](#dependencies)
- [Linux](#dependencies-linux)
- [MacOS](#dependencies-macos)
- [Windows](#dependencies-windows)
- [Build Scripts](#build-scripts)
- [Build in Docker](#build-docker)
- [X64](#build-docker-x64)
- [ARM 32bits](#build-docker-arm32)
- [Build Snap](#build-snap)
- [Patch Update Process](#patch-update-process)
- [Semi-Automated](#patch-update-process-semiauto)
- [Manual](#patch-update-process-manual)
## <a id="dependencies"></a>Dependencies
- node 16
- yarn
- jq
- git
### <a id="dependencies-linux"></a>Linux
- GCC
- make
- pkg-config
- libx11-dev
- libxkbfile-dev
- libsecret-1-dev
- fakeroot
- rpm
- rpmbuild
- dpkg
- python3
- imagemagick (for AppImage)
### <a id="dependencies-macos"></a>MacOS
- imagemagick
- png2icns (`npm install png2icns -g`)
- librsvg
### <a id="dependencies-windows"></a>Windows
- powershell
- sed
- 7z
- [WiX Toolset](http://wixtoolset.org/releases/)
- python3
- 'Tools for Native Modules' from official Node.js installer
## <a id="build-scripts"></a>Build Scripts
A build helper script can be found at `build/build.sh`.
- Linux: `./build/build.sh`
- MacOS: `./build/build.sh`
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./build/build.sh`
### Insider
The `insider` version can be built with `./build/build.sh -i` on the `insider` branch.
You can try the lastest version with the command `./build/build.sh -il` but the patches might not be up to date.
## <a id="build-docker"></a>Build in Docker
To build for Linux, you can alternatively build VSCodium in docker
### <a id="build-docker-x64"></a>X64
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
```
When inside the container, you can use the following commands to build:
```
cd /root/vscodium
./build/build.sh
```
### <a id="build-docker-arm32"></a>ARM 32bits
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash
```
When inside the container, you can use the following commands to build:
```
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs desktop-file-utils
cd /root/vscodium
./build/build.sh
```
## <a id="build-snap"></a>Build Snap
```
# for the stable version
cd ./stores/snapcraft/stable
# for the insider version
cd ./stores/snapcraft/insider
# create the snap
snapcraft --use-lxd
# verify the snap
review-tools.snap-review --allow-classic codium*.snap
```
## <a id="patch-update-process"></a>Patch Update Process
## <a id="patch-update-process-semiauto"></a>Semi-Automated
- run `./build/build_<os>.sh`, if a patch is failing then,
- run `./build/update_patches.sh`
- when the script pause at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- fix all the `*.rej` files
- run `yarn watch`
- run `./script/code.sh` until everything ok
- press any key to continue the script `update_patches.sh`
## <a id="patch-update-process-manual"></a>Manual
- run `./build/build_<os>.sh`, if a patch is failing then,
- open `vscode` directory in **VSCodium**
- revert all changes
- run `git apply --reject ../patches/<name>.patch`
- fix all the `*.rej` files
- run `yarn watch`
- run `./script/code.sh` until everything ok
- run `git diff > ../patches/<name>.patch`

View File

@@ -0,0 +1,45 @@
<!-- order: 0 -->
# Extensions compatibility
## Table of Contents
- [Incompatibility](#incompatibility)
- [Replacements](#replacements)
- [C/C++](#cc)
- [Python](#python)
- [Remote](#remote)
## <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
- [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)
## <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)

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

148
docs/howto-build.md Normal file
View File

@@ -0,0 +1,148 @@
<!-- order: 35 -->
# How to build VSCodium
## Table of Contents
- [Dependencies](#dependencies)
- [Linux](#dependencies-linux)
- [MacOS](#dependencies-macos)
- [Windows](#dependencies-windows)
- [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)
- [Manual](#patch-update-process-manual)
## <a id="dependencies"></a>Dependencies
- node 20.18
- jq
- git
- python3 3.11
- rustup
### <a id="dependencies-linux"></a>Linux
- gcc
- g++
- make
- pkg-config
- libx11-dev
- libxkbfile-dev
- libsecret-1-dev
- libkrb5-dev
- fakeroot
- rpm
- rpmbuild
- dpkg
- imagemagick (for AppImage)
- snapcraft
### <a id="dependencies-macos"></a>MacOS
see [the common dependencies](#dependencies)
### <a id="dependencies-windows"></a>Windows
- powershell
- sed
- 7z
- [WiX Toolset](http://wixtoolset.org/releases/)
- 'Tools for Native Modules' from the official Node.js installer
## <a id="build-dev"></a>Build for Development
A build helper script can be found at `dev/build.sh`.
- Linux: `./dev/build.sh`
- MacOS: `./dev/build.sh`
- Windows: `powershell -ExecutionPolicy ByPass -File .\dev\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./dev/build.sh`
### Insider
The `insider` version can be built with `./dev/build.sh -i` on the `insider` branch.
You can try the latest version with the command `./dev/build.sh -il` but the patches might not be up to date.
### Flags
The script `dev/build.sh` provides several flags:
- `-i`: build the Insiders version
- `-l`: build with latest version of Visual Studio Code
- `-o`: skip the build step
- `-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
```
# for the stable version
cd ./stores/snapcraft/stable
# for the insider version
cd ./stores/snapcraft/insider
# create the snap
snapcraft --use-lxd
# verify the snap
review-tools.snap-review --allow-classic codium*.snap
```
## <a id="patch-update-process"></a>Patch Update Process
## <a id="patch-update-process-semiauto"></a>Semi-Automated
- run `./dev/build.sh`, if a patch is failing then,
- 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 `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,
- 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 `npm run watch`
- run `./script/code.sh` until everything is ok
- 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
To run `icons/build_icons.sh`, you will need:
- imagemagick
- png2icns (`npm install png2icns -g`)
- librsvg

43
docs/index.md Normal file
View File

@@ -0,0 +1,43 @@
# Documentation
## Table of Contents
- [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)
- [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.

78
docs/telemetry.md Normal file
View File

@@ -0,0 +1,78 @@
<!-- order: 10 -->
# Getting all the Telemetry Out
This page explains how VSCodium handles telemetry and how to ensure your privacy.
## Table of Contents
- [Telemetry in VSCodium](#telemetry)
- [Replacements to Microsoft Online Services](#replacements)
- [Checking for Telemetry](#checking)
- [Additional Privacy Settings](#additional-settings)
- [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 will still track usage by default.
We do however set the default `telemetry.enableTelemetry` and `telemetry.enableCrashReporter` values to `false`. You can see those by viewing your VSCodium `settings.json` and searching for `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="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/master/prepare_vscode.sh#L135) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to 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/master/prepare_vscode.sh#L121) 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="additional-settings"></a>Additional Privacy Settings
For maximum privacy, you can add these settings to your `settings.json`:
```json
{
"telemetry.enableTelemetry": false,
"telemetry.enableCrashReporter": false,
"telemetry.feedback.enabled": false,
"update.enableWindowsBackgroundUpdates": false,
"update.mode": "manual",
"workbench.enableExperiments": false,
"workbench.settings.enableNaturalLanguageSearch": false
}
```
These settings will disable various telemetry and tracking features.
## <a id="announcements"></a>VSCodium Announcements
The Welcome page in VSCodium displays announcements that are fetched from the project's GitHub repository.
If you prefer to disable this feature, you can set the `workbench.welcomePage.extraAnnouncements` setting to `false` in your `settings.json`.
## <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 set the`extensions.excludeUnsafes` setting to `false` in your `settings.json`.
However, this is not recommended as it may reduce the safety of your environment.

72
docs/troubleshooting.md Normal file
View File

@@ -0,0 +1,72 @@
<!-- order: 25 -->
# Troubleshooting
## Table of Contents
- [Linux](#linux)
- [Fonts showing up as rectangles](#linux-fonts-rectangle)
- [Text and/or the entire interface not appearing](#linux-rendering-glitches)
- [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)
## <a id="linux"></a>Linux
### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
The following command should help:
```
rm -rf ~/.cache/fontconfig
rm -rf ~/snap/codium/common/.cache
fc-cache -r
```
### <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:
```bash
rm -rf ~/.config/VSCodium/GPUCache
```
### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
Install these packages on Fedora:
* libdbusmenu-devel
* dbus-glib-devel
* libdbusmenu
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*
- blurry screen with HiDPI on wayland run:
```bash
flatpak override --user --nosocket=wayland com.vscodium.codium
```
- To execute commands on the host system, run inside the sandbox
```bash
flatpak-spawn --host <COMMAND>
# or
host-spawn <COMMAND>
```
- Where is my X extension? AKA modify product.json
TL;DR: use https://open-vsx.org/extension/zokugun/vsix-manager
- SDKs
see [this](https://github.com/flathub/com.vscodium.codium?tab=readme-ov-file#sdks)
- 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*
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 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`.

19
get_pr.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -e
# git workaround
if [[ "${CI_BUILD}" != "no" ]]; then
git config --global --add safe.directory "/__w/$( echo "${GITHUB_REPOSITORY}" | awk '{print tolower($0)}' )"
fi
if [[ -n "${PULL_REQUEST_ID}" ]]; then
BRANCH_NAME=$( git rev-parse --abbrev-ref HEAD )
git config --global user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config --global user.name "${GITHUB_USERNAME} CI"
git fetch --unshallow
git fetch origin "pull/${PULL_REQUEST_ID}/head"
git checkout FETCH_HEAD
git merge --no-edit "origin/${BRANCH_NAME}"
fi

View File

@@ -9,15 +9,13 @@ if [[ "${CI_BUILD}" != "no" ]]; then
fi
if [[ -z "${RELEASE_VERSION}" ]]; then
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "insider.json" ]]; then
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/insider/0000000000000000000000000000000000000000 )
else
MS_COMMIT=$( jq -r '.commit' insider.json )
MS_TAG=$( jq -r '.tag' insider.json )
fi
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "./upstream/${VSCODE_QUALITY}.json" ]]; then
echo "Retrieve lastest version"
UPDATE_INFO=$( curl --silent --fail "https://update.code.visualstudio.com/api/update/darwin/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" )
else
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/stable/0000000000000000000000000000000000000000 )
echo "Get version from ${VSCODE_QUALITY}.json"
MS_COMMIT=$( jq -r '.commit' "./upstream/${VSCODE_QUALITY}.json" )
MS_TAG=$( jq -r '.tag' "./upstream/${VSCODE_QUALITY}.json" )
fi
if [[ -z "${MS_COMMIT}" ]]; then
@@ -29,31 +27,24 @@ 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
echo "Error: Bad RELEASE_VERSION: ${RELEASE_VERSION}"
exit 1
fi
if [[ "${MS_TAG}" == "$( jq -r '.tag' insider.json )" ]]; then
MS_COMMIT=$( jq -r '.commit' insider.json )
else
echo "Error: No MS_COMMIT for ${RELEASE_VERSION}"
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
@@ -61,6 +52,13 @@ else
exit 1
fi
fi
if [[ "${MS_TAG}" == "$( jq -r '.tag' "./upstream/${VSCODE_QUALITY}.json" )" ]]; then
MS_COMMIT=$( jq -r '.commit' "./upstream/${VSCODE_QUALITY}.json" )
else
echo "Error: No MS_COMMIT for ${RELEASE_VERSION}"
exit 1
fi
fi
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
@@ -73,11 +71,7 @@ git remote add origin https://github.com/Microsoft/vscode.git
# figure out latest tag by calling MS update API
if [[ -z "${MS_TAG}" ]]; then
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/insider/0000000000000000000000000000000000000000 )
else
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/stable/0000000000000000000000000000000000000000 )
fi
UPDATE_INFO=$( curl --silent --fail "https://update.code.visualstudio.com/api/update/darwin/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" )
MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
elif [[ -z "${MS_COMMIT}" ]]; then
@@ -86,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
@@ -112,4 +106,4 @@ fi
export MS_TAG
export MS_COMMIT
export RELEASE_VERSION
export RELEASE_VERSION

View File

@@ -94,13 +94,27 @@ build_media() { # {{{
fi
} # }}}
build_server() { # {{{
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "${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_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"
fi
} # }}}
build_windows_type() {
build_windows_type() { # {{{
local FILE_PATH IMG_SIZE IMG_BG_COLOR LOGO_SIZE GRAVITY
FILE_PATH="$1"
@@ -120,7 +134,7 @@ build_windows_type() {
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
fi
}
} # }}}
build_windows_types() { # {{{
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
@@ -174,4 +188,5 @@ if [[ "${0}" == "${BASH_SOURCE[0]}" ]]; then
build_windows_types
build_media
build_server
fi

View File

@@ -1 +0,0 @@

View File

@@ -4,9 +4,10 @@ set -ex
GH_ARCH="amd64"
VERSION=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2- )
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/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
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"

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bash
set -e
cd vscode || { echo "'vscode' dir not found"; exit 1; }
yarn --cwd remote --frozen-lockfile --check-files
cd ..
tar -cf remote-dependencies.tar ./vscode/remote/node_modules

3
npmrc Normal file
View File

@@ -0,0 +1,3 @@
build_from_source="true"
legacy-peer-deps="true"
timeout=180000

View File

@@ -0,0 +1,18 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c1d64c0..3e60e80 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -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 }))
+ .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 7046ee0..9aa7bb0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -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 }))
+ .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

@@ -0,0 +1,23 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e12a33e..9300d62 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -188,5 +188,16 @@ function getNodeChecksum(expectedName) {
function extractAlpinefromDocker(nodeVersion, platform, arch) {
- const imageName = arch === 'arm64' ? 'arm64v8/node' : 'node';
+ let imageName = 'node';
+ let dockerPlatform = '';
+
+ if (arch === 'arm64') {
+ imageName = 'arm64v8/node';
+
+ const architecture = cp.execSync(`docker info --format '{{json .Architecture}}'`, { encoding: 'utf8' }).trim();
+ if (architecture != '"aarch64"') {
+ dockerPlatform = '--platform=linux/arm64';
+ }
+ }
+
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: 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

View File

@@ -1,167 +0,0 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 2a0c236..9fea722 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -250,4 +250,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const name = product.nameShort;
+ const release = packageJson.release;
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined }));
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined }));
@@ -256,3 +257,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version }));
+ .pipe(json({ commit, date, version, release }));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 0ca2cfd..3fb21d5 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -225,3 +225,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
- let version = packageJson.version;
+ let version = packageJson.version
const quality = product.quality;
@@ -233,3 +233,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 };
@@ -244,3 +245,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version };
+ const productJsonUpdate = { commit, date, checksums, version, release };
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 90f75cc..275c958 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -25,4 +25,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -88,3 +86,3 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -193,4 +191,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))
@@ -267,3 +264,3 @@ function prepareSnapPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
// Possible run-on values https://snapcraft.io/docs/architectures
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 6e9a6f3..9d80b6b 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -94,4 +94,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/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index 06b8549..3af1f45 100644
--- a/resources/linux/rpm/code.spec.template
+++ b/resources/linux/rpm/code.spec.template
@@ -2,3 +2,3 @@ Name: @@NAME@@
Version: @@VERSION@@
-Release: @@RELEASE@@.el7
+Release: el7
Summary: Code editing. Redefined.
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index ac9cd5d..87b6105 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 0be311f..d6c4a18 100644
--- a/src/vs/platform/diagnostics/node/diagnosticsService.ts
+++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts
@@ -224,3 +224,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 51a55e1..26dfe7b 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 };
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 4b320bb..6619c75 100644
--- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
@@ -22,2 +22,3 @@ import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaul
import { ResultKind } from 'vs/platform/keybinding/common/keybindingResolver';
+import { getReleaseString } from 'vs/workbench/common/release';
@@ -79,2 +80,4 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
const detailString = (useAgo: boolean): string => {
+ const releaseString = getReleaseString();
+
return localize('aboutDetail',
@@ -85,3 +88,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..2a8ea57
--- /dev/null
+++ b/src/vs/workbench/common/release.ts
@@ -0,0 +1,14 @@
+import { language } from 'vs/base/common/platform';
+
+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 575bde3..f427833 100644
--- a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
@@ -14,2 +14,3 @@ import { IProductService } from 'vs/platform/product/common/productService';
import { process } from 'vs/base/parts/sandbox/electron-sandbox/globals';
+import { getReleaseString } from 'vs/workbench/common/release';
@@ -77,2 +78,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
const osProps = await this.nativeHostService.getOSProperties();
+ const releaseString = getReleaseString();
@@ -89,3 +91,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
`${osProps.type} ${osProps.arch} ${osProps.release}${isLinuxSnap ? ' snap' : ''}`
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
};

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 56220de..68d708f 100644
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
@@ -142,3 +142,3 @@ configurationRegistry.registerConfiguration({
markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control Copilot (requires {0}).", '`#window.commandCenter#`'),
- default: true
+ default: false
},

302
patches/cli.patch Normal file
View File

@@ -0,0 +1,302 @@
diff --git a/cli/src/commands/serve_web.rs b/cli/src/commands/serve_web.rs
index 2ddefe1..ab9c658 100644
--- a/cli/src/commands/serve_web.rs
+++ b/cli/src/commands/serve_web.rs
@@ -730,3 +730,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();
@@ -758,3 +758,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> {

View File

@@ -1,13 +0,0 @@
diff --git a/src/main.js b/src/main.js
index 19dde20..d9611f2 100644
--- a/src/main.js
+++ b/src/main.js
@@ -409,6 +409,8 @@ function configureCrashReporter() {
argv.splice(endOfArgsMarkerIndex, 0, '--crash-reporter-id', crashReporterId);
}
}
+ } else {
+ return;
}
}

View File

@@ -0,0 +1,61 @@
diff --git a/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts b/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
index 1bb5eb3..70f1b37 100644
--- a/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
+++ b/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
@@ -7,3 +7,3 @@ import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.j
import { localize } from '../../../../nls.js';
-import { Action2, MenuId, MenuRegistry, registerAction2 } from '../../../../platform/actions/common/actions.js';
+import { Action2, MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';
import { ContextKeyExpr, IContextKey, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
@@ -17,3 +17,3 @@ import { AuthenticationSession, AuthenticationSessionsChangeEvent, IAuthenticati
import { IExtensionService } from '../../../services/extensions/common/extensions.js';
-import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource, EDIT_SESSIONS_PENDING_KEY } from '../common/editSessions.js';
+import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource } from '../common/editSessions.js';
import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
@@ -93,3 +93,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
- this.registerSignInAction();
this.registerResetAuthenticationAction();
@@ -456,42 +455,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
- private registerSignInAction() {
- if (!this.serverConfiguration?.url) {
- return;
- }
- const that = this;
- const id = 'workbench.editSessions.actions.signIn';
- const when = ContextKeyExpr.and(ContextKeyExpr.equals(EDIT_SESSIONS_PENDING_KEY, false), ContextKeyExpr.equals(EDIT_SESSIONS_SIGNED_IN_KEY, false));
- this._register(registerAction2(class ResetEditSessionAuthenticationAction extends Action2 {
- constructor() {
- super({
- id,
- title: localize('sign in', 'Turn on Cloud Changes...'),
- category: EDIT_SESSION_SYNC_CATEGORY,
- precondition: when,
- menu: [{
- id: MenuId.CommandPalette,
- },
- {
- id: MenuId.AccountsContext,
- group: '2_editSessions',
- when,
- }]
- });
- }
-
- async run() {
- return await that.initialize('write', false);
- }
- }));
-
- this._register(MenuRegistry.appendMenuItem(MenuId.AccountsContext, {
- group: '2_editSessions',
- command: {
- id,
- title: localize('sign in badge', 'Turn on Cloud Changes... (1)'),
- },
- when: ContextKeyExpr.and(ContextKeyExpr.equals(EDIT_SESSIONS_PENDING_KEY, true), ContextKeyExpr.equals(EDIT_SESSIONS_SIGNED_IN_KEY, false))
- }));
- }
-
private registerResetAuthenticationAction() {

View File

@@ -0,0 +1,18 @@
diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
index 0a50a2e..5ee6782 100644
--- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts
+++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
@@ -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,
@@ -333,4 +333,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
if (verifySignature) {
- const value = this.configurationService.getValue(VerifyExtensionSignatureConfigKey);
- verifySignature = isBoolean(value) ? value : true;
+ verifySignature = false;
}

19
patches/ext-from-gh.patch Normal file
View File

@@ -0,0 +1,19 @@
diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js
index 249777c..129af8a 100644
--- a/build/lib/builtInExtensions.js
+++ b/build/lib/builtInExtensions.js
@@ -87,5 +87,2 @@ function getExtensionDownloadStream(extension) {
}
- else if (productjson.extensionsGallery?.serviceUrl) {
- input = ext.fromMarketplace(productjson.extensionsGallery.serviceUrl, extension);
- }
else {
diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts
index e9a1180..b8348e3 100644
--- a/build/lib/builtInExtensions.ts
+++ b/build/lib/builtInExtensions.ts
@@ -75,4 +75,2 @@ function getExtensionDownloadStream(extension: IExtensionDefinition) {
input = ext.fromVsix(path.join(root, extension.vsix), extension);
- } else if (productjson.extensionsGallery?.serviceUrl) {
- input = ext.fromMarketplace(productjson.extensionsGallery.serviceUrl, extension);
} else {

View File

@@ -0,0 +1,11 @@
--- vscode-1.80.1/extensions/mangle-loader.js.old 2023-07-12 18:45:52.000000000 +0200
+++ vscode-1.80.1/extensions/mangle-loader.js 2023-07-28 11:55:01.177444702 +0200
@@ -37,7 +37,7 @@ function getMangledFileContents(projectP
* @type {webpack.LoaderDefinitionFunction}
*/
module.exports = async function (source, sourceMap, meta) {
- if (this.mode !== 'production') {
+ if (true) {
// Only enable mangling in production builds
return source;
}

View File

@@ -1,18 +1,19 @@
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
index 8c2aa42..18b0975 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
@@ -300,2 +300,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 VSCodium'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 9dd5330..9e2b6a2 100644
index 01778b2..615828d 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
@@ -117,4 +117,8 @@ type GettingStartedActionEvent = {
@@ -24,26 +25,26 @@ index 9dd5330..9e2b6a2 100644
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
+
export class GettingStartedPage extends EditorPane {
@@ -153,2 +157,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[];
private featuredExtensionsList?: GettingStartedIndexList<IFeaturedExtension>;
@@ -774,2 +780,3 @@ export class GettingStartedPage extends EditorPane {
@@ -880,2 +886,3 @@ export class GettingStartedPage extends EditorPane {
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
+ const announcementList = await this.buildAnnouncementList();
@@ -784,3 +791,3 @@ export class GettingStartedPage extends EditorPane {
@@ -890,3 +897,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noWalkthroughs');
- reset(rightColumn, featuredExtensionList.getDomElement(), gettingStartedList.getDomElement());
+ reset(rightColumn, featuredExtensionList.getDomElement(), gettingStartedList.getDomElement(), announcementList.getDomElement());
- reset(rightColumn, gettingStartedList.getDomElement());
+ reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
}
@@ -788,3 +795,3 @@ export class GettingStartedPage extends EditorPane {
@@ -894,3 +901,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noWalkthroughs');
- reset(rightColumn, featuredExtensionList.getDomElement());
+ reset(rightColumn, featuredExtensionList.getDomElement(), announcementList.getDomElement());
- reset(rightColumn);
+ reset(rightColumn, announcementList.getDomElement());
}
@@ -946,2 +953,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) => {
@@ -62,7 +63,7 @@ index 9dd5330..9e2b6a2 100644
+ if (this.announcementList) { this.announcementList.dispose(); }
+
+ const announcementList = this.announcementList = new GettingStartedIndexList({
+ title: localize('announcements', "VSCodium Announcements"),
+ title: localize('announcements', "!!APP_NAME!! Announcements"),
+ klass: 'announcements',
+ limit: 5,
+ empty: $('.empty-recent', {}, localize('noAnnouncements', "There are no current announcements.")),
@@ -75,7 +76,7 @@ index 9dd5330..9e2b6a2 100644
+
+ if (showExtras) {
+ const branch = this.productService.quality === 'insider' ? 'insider' : 'master';
+ await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`)
+ await fetch(`https://raw.githubusercontent.com/!!GH_REPO_PATH!!/${branch}/announcements-extra.json`)
+ .then(async res => {
+ if (res.ok) {
+ var extraAnnouncements = await res.json() as AnnouncementEntry[];

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,43 +0,0 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 0d7d3c5..90f75cc 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -299,4 +299,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(util.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);
@@ -305,4 +304,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(util.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 0ea6699..c4524de 100644
--- a/build/linux/dependencies-generator.js
+++ b/build/linux/dependencies-generator.js
@@ -22,3 +22,3 @@ const types_2 = require("./rpm/types");
// 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/108.0.5359.215:chrome/installer/linux/BUILD.gn;l=64-80
diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
index c0d8112..3bb0366 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -23,3 +23,3 @@ import { isRpmArchString, RpmArchString } from './rpm/types';
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = false;
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index 06b8549..a7e3dfb 100644
--- a/resources/linux/rpm/code.spec.template
+++ b/resources/linux/rpm/code.spec.template
@@ -81 +81,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_datadir}/zsh/site-functions/_%{name}
+
+%config(noreplace) /usr/share/%{name}/resources/app/product.json
\ No newline at end of file

View File

@@ -1,15 +1,15 @@
diff --git a/src/vs/workbench/browser/parts/banner/bannerPart.ts b/src/vs/workbench/browser/parts/banner/bannerPart.ts
index b120c94..1bb2b88 100644
index 1f329c4..3e36bff 100644
--- a/src/vs/workbench/browser/parts/banner/bannerPart.ts
+++ b/src/vs/workbench/browser/parts/banner/bannerPart.ts
@@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
-import { IStorageService } from 'vs/platform/storage/common/storage';
+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { IThemeService } from 'vs/platform/theme/common/themeService';
@@ -30,2 +30,3 @@ import { widgetClose } from 'vs/platform/theme/common/iconRegistry';
import { BannerFocused } from 'vs/workbench/common/contextkeys';
+import { INeverShowAgainOptions, NeverShowAgainScope } from 'vs/platform/notification/common/notification';
@@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from '../../../../platform/insta
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
-import { IStorageService } from '../../../../platform/storage/common/storage.js';
+import { IStorageService, StorageScope } from '../../../../platform/storage/common/storage.js';
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
@@ -30,2 +30,3 @@ import { widgetClose } from '../../../../platform/theme/common/iconRegistry.js';
import { BannerFocused } from '../../../common/contextkeys.js';
+import { INeverShowAgainOptions, NeverShowAgainScope } from '../../../../platform/notification/common/notification.js';
@@ -67,3 +68,3 @@ export class BannerPart extends Part implements IBannerService {
@IWorkbenchLayoutService layoutService: IWorkbenchLayoutService,
@@ -31,7 +31,7 @@ index b120c94..1bb2b88 100644
+ }
+
// Clear previous item
@@ -234,2 +247,15 @@ export class BannerPart extends Part implements IBannerService {
@@ -235,2 +248,15 @@ export class BannerPart extends Part implements IBannerService {
+ private toStorageScope(options: INeverShowAgainOptions): StorageScope {
+ switch (options.scope) {
@@ -47,31 +47,15 @@ index b120c94..1bb2b88 100644
+ }
+
toJSON(): object {
diff --git a/src/vs/workbench/electron-sandbox/window.ts b/src/vs/workbench/electron-sandbox/window.ts
index cf6af9d..108ce8f 100644
--- a/src/vs/workbench/electron-sandbox/window.ts
+++ b/src/vs/workbench/electron-sandbox/window.ts
@@ -725,3 +725,4 @@ export class NativeWindow extends Disposable {
actions,
- icon: Codicon.warning
+ icon: Codicon.warning,
+ neverShowAgain: { id: 'windowseol', isSecondary: true, scope: NeverShowAgainScope.APPLICATION }
});
@@ -764,3 +765,4 @@ export class NativeWindow extends Disposable {
actions,
- icon: Codicon.warning
+ icon: Codicon.warning,
+ neverShowAgain: { id: 'macoseol', isSecondary: true, scope: NeverShowAgainScope.APPLICATION }
});
diff --git a/src/vs/workbench/services/banner/browser/bannerService.ts b/src/vs/workbench/services/banner/browser/bannerService.ts
index 639b1b2..70e8847 100644
index 2db0fa4..d179055 100644
--- a/src/vs/workbench/services/banner/browser/bannerService.ts
+++ b/src/vs/workbench/services/banner/browser/bannerService.ts
@@ -10,2 +10,3 @@ import { ILinkDescriptor } from 'vs/platform/opener/browser/link';
import { ThemeIcon } from 'vs/base/common/themables';
+import { INeverShowAgainOptions } from 'vs/platform/notification/common/notification';
@@ -10,2 +10,3 @@ import { ILinkDescriptor } from '../../../../platform/opener/browser/link.js';
import { ThemeIcon } from '../../../../base/common/themables.js';
+import { INeverShowAgainOptions } from '../../../../platform/notification/common/notification.js';
@@ -18,2 +19,3 @@ export interface IBannerItem {
readonly onClose?: () => void;
+ readonly neverShowAgain?: INeverShowAgainOptions;
}
readonly closeLabel?: string;

View File

@@ -0,0 +1,25 @@
diff --git a/remote/package-lock.json b/remote/package-lock.json
index f0ed1cc..a973af3 100644
--- a/remote/package-lock.json
+++ b/remote/package-lock.json
@@ -40,2 +40,3 @@
"tas-client-umd": "0.2.0",
+ "tslib": "^2.6.3",
"vscode-oniguruma": "1.7.0",
@@ -1109,2 +1110,8 @@
},
+ "node_modules/tslib": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "license": "0BSD"
+ },
"node_modules/tunnel-agent": {
diff --git a/remote/package.json b/remote/package.json
index 33afee9..525ed07 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -35,2 +35,3 @@
"tas-client-umd": "0.2.0",
+ "tslib": "^2.6.3",
"vscode-oniguruma": "1.7.0",

View File

@@ -1,9 +1,9 @@
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 7ae8bce..724b9ad 100644
index 99e495a..996044a 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -9,5 +9,5 @@
"cli/target": true,
@@ -10,5 +10,5 @@
"build/**/*.js.map": true,
- "build/**/*.js": {
- "when": "$(basename).ts"
- }
@@ -11,14 +11,27 @@ index 7ae8bce..724b9ad 100644
+ // "when": "$(basename).ts"
+ // }
},
@@ -81,3 +81,3 @@
@@ -59,2 +59,3 @@
"build/npm/*.js": true,
+ "build/**/*.js": true,
"build/*.js": true
@@ -108,3 +109,3 @@
"gulp.autoDetect": "off",
- "files.insertFinalNewline": true,
+ // "files.insertFinalNewline": true,
"[plaintext]": {
@@ -91,4 +91,4 @@
"[javascript]": {
@@ -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,18 +0,0 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 2a0c236..0f10f17 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -256,3 +256,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version, release }));
+ .pipe(json({ commit, date, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 0ca2cfd..9bf83a7 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -244,3 +244,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version, release };
+ const productJsonUpdate = { commit, date, checksums, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' };

View File

@@ -1,15 +1,15 @@
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 0d3abda..9e5143a 100644
index 5adfdfb..dfdb2af 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -116,6 +116,6 @@ function buildWin32Setup(arch, target) {
@@ -115,6 +115,6 @@ function buildWin32Setup(arch, target) {
- if (quality === 'insider') {
- definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`;
- 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 === 'ia32' ? 'x86' : arch}.appx`;
+ // 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

@@ -0,0 +1,121 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index a148d51..fb2f8ff 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -2,3 +2,3 @@
-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 c1d64c0..5ac9f95 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -232,9 +232,23 @@ function nodejs(platform, arch) {
case 'linux':
- return (product.nodejsRepository !== 'https://nodejs.org' ?
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 }) :
- fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
- ).pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
- .pipe(filter('**/node'))
- .pipe(util.setExecutableBit('**'))
- .pipe(rename('node'));
+ if (process.env.VSCODE_NODEJS_SITE && process.env.VSCODE_NODEJS_URLROOT) {
+ return fetchUrls(`${process.env.VSCODE_NODEJS_URLROOT}/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}${process.env.VSCODE_NODEJS_URLSUFFIX}.tar.gz`, { base: process.env.VSCODE_NODEJS_SITE, checksumSha256 })
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
+ .pipe(rename('node'));
+ }
+ if (product.nodejsRepository !== 'https://nodejs.org') {
+ return fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 })
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
+ .pipe(rename('node'));
+ }
+ else {
+ return fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
+ .pipe(rename('node'));
+ }
case 'alpine':
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 26a6287..004417f 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -366,2 +366,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
+ const electronOverride = {};
+ if (process.env.VSCODE_ELECTRON_REPOSITORY) {
+ // official electron doesn't support all arch, override the repo with `VSCODE_ELECTRON_REPOSITORY`.
+ electronOverride.repo = process.env.VSCODE_ELECTRON_REPOSITORY;
+ }
+
+ if (process.env.VSCODE_ELECTRON_TAG) {
+ electronOverride.tag = process.env.VSCODE_ELECTRON_TAG;
+ }
+
let result = all
@@ -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 4ef448d..057961c 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -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 5b7ccd5..707129f 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -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 612d0a3..8fbdf3d 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -74,3 +74,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,
@@ -83,3 +85,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 8a61159..9f3fd15 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)
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)
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

@@ -0,0 +1,540 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index c27358a..3e33f75 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -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_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_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 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
TRIPLE="arm-rpi-linux-gnueabihf"
+elif [ "$VSCODE_ARCH" == "ppc64le" ]; then
+ TRIPLE="powerpc64le-linux-gnu"
fi
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
index 5744a5f..3fedbe9 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -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 5ac9f95..cd04bdf 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -50,2 +50,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index aafc64e..484d5f4 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 004417f..c38fc1a 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -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 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);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
}
@@ -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];
}
@@ -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 34276ce..fdae163 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)
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 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
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/dep-lists.js b/build/linux/debian/dep-lists.js
index 057961c..ed10661 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -141,2 +141,41 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.9.14)',
+ 'libdrm2 (>= 2.4.75)',
+ 'libexpat1 (>= 2.1~beta3)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.37.3)',
+ 'libgssapi-krb5-2 (>= 1.17)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libkrb5-3 (>= 1.6.dfsg.2)',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.30)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.5.0)',
+ 'libxkbfile1 (>= 1:1.1.0)',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 707129f..7fe60be 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -141,2 +141,41 @@ export const referenceGeneratedDepsByArch = {
],
+ 'ppc64el': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.9.14)',
+ 'libdrm2 (>= 2.4.75)',
+ 'libexpat1 (>= 2.1~beta3)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.37.3)',
+ 'libgssapi-krb5-2 (>= 1.17)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libkrb5-3 (>= 1.6.dfsg.2)',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.30)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.5.0)',
+ 'libxkbfile1 (>= 1:1.1.0)',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 8fbdf3d..011b36f 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -146,2 +146,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 9f3fd15..756b7fd 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -159,2 +159,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index ce21d50..2c56b9c 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485e..43f2434 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
index 1f19c85..43ac5a0 100644
--- a/build/linux/rpm/dep-lists.js
+++ b/build/linux/rpm/dep-lists.js
@@ -316,2 +316,102 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index db52338..4231f09 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -315,2 +315,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index a20b9c2..7b58961 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index c6a01da..3f3c3f5 100644
--- a/build/linux/rpm/types.ts
+++ b/build/linux/rpm/types.ts
@@ -5,6 +5,6 @@
-export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64';
+export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le';
export function isRpmArchString(s: string): s is RpmArchString {
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index a39bbf7..84d3efe 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -176,2 +176,3 @@ pub enum Platform {
LinuxARM32Legacy,
+ LinuxPPC64LE,
DarwinX64,
@@ -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 = "powerpc64")) {
+ Some(Platform::LinuxPPC64LE)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -268,2 +273,3 @@ impl fmt::Display for Platform {
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
Platform::DarwinX64 => "DarwinX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index 44c8597..679aacb 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -82,2 +82,4 @@ impl PreReqChecker {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "powerpc64") {
+ Platform::LinuxPPC64LE
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 8ea4c0b..b9d3b47 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -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 e91310f..a28beef 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
@@ -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;
@@ -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 0b42527..69d6eb3 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -329,2 +329,3 @@ export const enum TargetPlatform {
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',

View File

@@ -0,0 +1,293 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index cd04bdf..e284026 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -51,2 +51,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 484d5f4..66c8e1f 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 3ed2182..f0614d0 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -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 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);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
}
@@ -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];
}
@@ -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 fdae163..a08ebda 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)
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 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
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/dep-lists.js b/build/linux/debian/dep-lists.js
index a85352e..4ccdcd9 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -178,2 +178,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
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 = {
],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index ab6b826..fc2817a 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -144,2 +144,6 @@ async function getVSCodeSysroot(arch) {
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
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>
break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index 2c56b9c..cadefc2 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index 43f2434..24fe452 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index 7b58961..99a8cff 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index 3f3c3f5..d94537e 100644
--- a/build/linux/rpm/types.ts
+++ b/build/linux/rpm/types.ts
@@ -5,6 +5,6 @@
-export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le';
+export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64';
export function isRpmArchString(s: string): s is RpmArchString {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 84d3efe..4f2c8c2 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -177,2 +177,3 @@ pub enum Platform {
LinuxPPC64LE,
+ LinuxRISCV64,
DarwinX64,
@@ -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")) {
@@ -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 679aacb..1a37552 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -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 b9d3b47..b18e402 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
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 5400065..be95b04 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -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';
@@ -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;
@@ -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 23f1bea..10152de 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -320,2 +320,3 @@ export const enum TargetPlatform {
LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',

View File

@@ -0,0 +1,92 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e284026..52f9a12 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 66c8e1f..8a8c1eb 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -28,2 +28,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'riscv64' },
+ { platform: 'linux', arch: 'loong64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index f0614d0..1438867 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -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 4f2c8c2..4ea1bd2 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -178,2 +178,3 @@ pub enum Platform {
LinuxRISCV64,
+ LinuxLoong64,
DarwinX64,
@@ -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")) {
@@ -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 1a37552..ff191a1 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -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 b18e402..0b7aa4e 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
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 be95b04..1a0decd 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -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';
@@ -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;
@@ -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 10152de..3eb0412 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -321,2 +321,3 @@ export const enum TargetPlatform {
LINUX_RISCV64 = 'linux-riscv64',
+ LINUX_LOONG64 = 'linux-loong64',

View File

@@ -0,0 +1,392 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index 3e33f75..052b38f 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -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_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_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 3fedbe9..3c4e291 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -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 52f9a12..4b890f4 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
{ platform: 'alpine', arch: 'arm64' },
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 8a8c1eb..1ef390b 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -29,2 +29,3 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'loong64' },
+ { platform: 'linux', arch: 's390x' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index ee66585..c9f9ceb 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -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 298181d..dcc42a8 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);
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];
}
@@ -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];
}
@@ -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 a08ebda..9527119 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -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 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
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/dep-lists.js b/build/linux/debian/dep-lists.js
index 13cf8f0..9ffd805 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -220,2 +220,42 @@ exports.referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 7e6938a..8a314ec 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -220,2 +220,42 @@ export const referenceGeneratedDepsByArch = {
],
+ 's390x': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index e510426..ce7c75b 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -154,2 +154,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
+ triple = 's390x-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index 42841f6..cffae59 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -167,2 +167,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
break;
+ case 's390x':
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
+ triple = 's390x-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index cadefc2..8132812 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index 24fe452..9efba5b 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64' | 's390x';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
+ 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 4231f09..fc70433 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -415,2 +415,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "s390x": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index 99a8cff..e2f3548 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
+ 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 d94537e..3834b94 100644
--- a/build/linux/rpm/types.ts
+++ b/build/linux/rpm/types.ts
@@ -5,6 +5,6 @@
-export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64';
+export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64' | 's390x';
export function isRpmArchString(s: string): s is RpmArchString {
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
}
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 0b7aa4e..e8b7ce0 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
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 dedea4c..1043fe4 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
+ case TargetPlatform.LINUX_S390X: return 'Linux S390X';
@@ -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;
@@ -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 6d554ce..51d23fa 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
LINUX_LOONG64 = 'linux-loong64',
+ LINUX_S390X = 'linux-s390x',

View File

@@ -0,0 +1,17 @@
diff --git a/src/main.ts b/src/main.ts
index c132c9b..51a7290 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -524,2 +524,12 @@ function getJSFlags(cliArgs: NativeParsedArgs): string | null {
+ // Fix cppgc crash on Linux with 16KB page size.
+ // Refs https://issues.chromium.org/issues/378017037
+ // The fix from https://github.com/electron/electron/commit/6c5b2ef55e08dc0bede02384747549c1eadac0eb
+ // only affects non-renderer process.
+ // The following will ensure that the flag will be
+ // applied to the renderer process as well.
+ // TODO: Remove this once we update to
+ // Chromium >= 134.
+ jsFlags.push('--nodecommit_pooled_pages');
+
return jsFlags.length > 0 ? jsFlags.join(' ') : null;

View File

@@ -0,0 +1,14 @@
diff --git a/build/npm/dirs.js b/build/npm/dirs.js
index b9645e6..22f3450 100644
--- a/build/npm/dirs.js
+++ b/build/npm/dirs.js
@@ -47,4 +47,2 @@ const dirs = [
'extensions/vscode-test-resolver',
- 'remote',
- 'remote/web',
'test/automation',
@@ -59,4 +57,2 @@ if (fs.existsSync(`${__dirname}/../../.build/distro/npm`)) {
dirs.push('.build/distro/npm');
- dirs.push('.build/distro/npm/remote');
- dirs.push('.build/distro/npm/remote/web');
}

View File

@@ -0,0 +1,28 @@
diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
index 7521729..92c0d8e 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/134.0.6998.205: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 9383703..5e6bcf2 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -25,3 +25,3 @@ import product = require('../../product.json');
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = false;
@@ -62,3 +62,3 @@ export async function getDependencies(packageType: 'deb' | 'rpm', buildDir: stri
// Add the tunnel binary.
- files.push(path.join(buildDir, 'bin', product.tunnelApplicationName));
+ // files.push(path.join(buildDir, 'bin', product.tunnelApplicationName));
// Add the main executable.

View File

@@ -0,0 +1,27 @@
diff --git a/src/bootstrap-esm.ts b/src/bootstrap-esm.ts
index f2cf101..d974f65 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';
+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));
// 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']) {
}`;
- register(`data:text/javascript;base64,${Buffer.from(jsCode).toString('base64')}`, import.meta.url);
+ // @ts-ignore
+ Module.register(`data:text/javascript;base64,${Buffer.from(jsCode).toString('base64')}`, import.meta.url);
}

View File

@@ -0,0 +1,26 @@
diff --git a/package-lock.json b/package-lock.json
index fd395eb..f56bc78 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18274,6 +18274,7 @@
"node_modules/web-tree-sitter": {
- "version": "0.20.8",
- "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz",
- "integrity": "sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==",
- "dev": true
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.23.0.tgz",
+ "integrity": "sha512-p1T+ju2H30fpVX2q5yr+Wv/NfdMMWMjQp9Q+4eEPrHAJpPFh9DPfI2Yr9L1f5SA5KPE+g1cNUqPbpihxUDzmVw==",
+ "dev": true,
+ "license": "MIT"
},
diff --git a/package.json b/package.json
index eb0abcc..40b107a 100644
--- a/package.json
+++ b/package.json
@@ -226,2 +226,5 @@
"node-addon-api": "7.1.0"
+ },
+ "@vscode/l10n-dev@0.0.35": {
+ "web-tree-sitter": "0.23.0"
}

14
patches/linux/rpm.patch Normal file
View File

@@ -0,0 +1,14 @@
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index a73bc02..242bab0 100644
--- a/resources/linux/rpm/code.spec.template
+++ b/resources/linux/rpm/code.spec.template
@@ -2,3 +2,3 @@ Name: @@NAME@@
Version: @@VERSION@@
-Release: @@RELEASE@@.el8
+Release: el8
Summary: Code editing. Redefined.
@@ -88 +88,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_datadir}/zsh/site-functions/_%{name}
+
+%config(noreplace) /usr/share/%{name}/resources/app/product.json
\ No newline at end of file

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