Compare commits

..

255 Commits

Author SHA1 Message Date
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
Baptiste Augrain
9468e97c13 fix(linux): regroup deb and rpm package preparation [skip ci] 2023-08-04 19:52:37 +02:00
Baptiste Augrain
a631bc594c fix: remove npm config [skip ci] 2023-08-04 19:03:41 +02:00
Baptiste Augrain
13a608979c ci: nodejs is installed in build agents [skip ci] 2023-08-04 17:51:58 +02:00
Baptiste Augrain
025a078b3b fix(windows): don't move zip [skip ci] 2023-08-04 15:04:48 +02:00
Baptiste Augrain
f51c90526f feat: add flag to test assets builder in CI (#1590) 2023-08-04 14:36:30 +02:00
Baptiste Augrain
61e44afbc4 feat(1.81): update patches and build agents (#1588) 2023-08-04 14:00:28 +02:00
Baptiste Augrain
63dc9d739b Merge branch 'master' into insider 2023-08-04 11:03:00 +02:00
Baptiste Augrain
1e41cef8a6 fix: exit when patching fails (#1587) 2023-08-04 11:02:12 +02:00
VSCodium CI
b9cfdf370d build(insider): update to commit 83fc3ad 2023-08-04 09:18:29 +02:00
Baptiste Augrain
a8262e5152 fix: build archive (#1586) 2023-08-04 01:38:44 +02:00
Baptiste Augrain
d468b7a1e0 Merge branch 'master' into insider 2023-08-04 00:22:50 +02:00
Baptiste Augrain
0b2fc64a3b fix: correctly update product.json (#1581) 2023-07-27 02:11:09 +02:00
Baptiste Augrain
8dcc87596b fix: correctly download pkg2appimage (#1577) 2023-07-24 22:20:13 +02:00
Baptiste Augrain
0810ba2404 revert: correctly detect assets (#1576) 2023-07-24 22:05:24 +02:00
Zac
79baded01d refactor: shell optimizations 2023-07-23 18:35:27 +02:00
VSCodium CI
17f154098d build(insider): update to commit 822ad2d 2023-07-22 09:13:00 +02:00
Zac
1c0c30e6d6 refactor: passing linter on all bash scripts 2023-07-21 16:45:07 +02:00
VSCodium CI
06e05f233a build(insider): update to commit daf9647 2023-07-21 09:18:42 +02:00
Zac
b4318d78a0 refactor: passing linter for root bash scripts (#1569) 2023-07-20 20:25:13 +02:00
VSCodium CI
3e1420722c build(insider): update to commit c85bf61 2023-07-19 10:59:38 +02:00
Baptiste Augrain
9a210dc964 feat: update to 1.81 2023-07-18 22:25:40 +02:00
Baptiste Augrain
11083b9a1b Merge branch 'master' into insider 2023-07-18 21:59:13 +02:00
Baptiste Augrain
d6b7880a05 fix: use blank commit id 2023-07-18 21:57:50 +02:00
Baptiste Augrain
3fa7f2179b feat: used latest nodejs 16 2023-07-07 00:23:35 +02:00
Baptiste Augrain
d06d8127d5 feat: update to 1.80 2023-07-07 00:10:45 +02:00
Simon Sobisch
02d21f5264 Merge pull request #1548 from daiyam/disable-update-linux
fix: disable update on linux
2023-06-23 09:47:45 +02:00
Baptiste Augrain
7710a09830 fix: disable update on linux 2023-06-16 18:28:28 +02:00
Baptiste Augrain
e8161f6e4f fix(linux): type for ppc64le 2023-06-14 11:48:56 +02:00
Baptiste Augrain
31b5e5b919 Merge branch 'master' into insider 2023-06-14 11:47:56 +02:00
Baptiste Augrain
a17ae154cc Merge branch 'master' into insider 2023-06-13 15:33:13 +02:00
Baptiste Augrain
bd8b0d5920 feat(insider): v1.80.0 2023-06-13 15:23:37 +02:00
94 changed files with 3988 additions and 1974 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,14 +3,17 @@ name: insider-linux
on:
workflow_dispatch:
inputs:
release_version:
type: string
description: Forced release version
new_release:
force_version:
type: boolean
description: Force new Release
schedule:
- cron: '0 8 * * *'
description: Force update version
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [insider]
push:
branches: [ insider ]
paths-ignore:
@@ -23,7 +26,9 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
BINARY_NAME: codium-insiders
DISABLE_UPDATE: 'yes'
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -31,8 +36,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 }}
@@ -41,87 +44,98 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_repo.sh
- name: Check PR or cron
env:
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
dependencies:
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ALL: 'yes'
run: ./check_tags.sh
compile:
needs:
- check
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
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:bionic-x64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
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@v3
- uses: actions/checkout@v4
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'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16.17'
node-version: '18.17'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
if: env.SHOULD_BUILD == 'yes'
- name: Install remote dependencies (x64)
- 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 install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
env:
npm_config_arch: x64
run: ./install_remote_dependencies.sh
if: matrix.vscode_arch == 'x64'
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_repo.sh
if: env.SHOULD_BUILD == 'yes'
# - name: Install remote dependencies (arm64)
# run: |
# set -e
# docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscodium vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64 /root/vscodium/install_remote_dependencies.sh
# if: matrix.vscode_arch == 'arm64'
- name: Build
env:
SHOULD_BUILD_REH: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Save remote dependencies
- 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@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
name: vscode
path: ./vscode.tar.gz
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
if: env.SHOULD_BUILD == 'yes'
build:
needs:
- check
- dependencies
- compile
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 }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
@@ -131,65 +145,64 @@ jobs:
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:buster-arm64
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:buster-armhf
image: vscodium/vscodium-linux-build-agent:bionic-armhf
container:
image: ${{ matrix.image }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
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_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
if: env.SHOULD_BUILD == 'yes'
- name: Install GH
run: ./install_gh.sh
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: '16.17'
- name: Install Yarn
run: npm install -g yarn
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
CHECK_REH: 'no'
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes'
- name: Restore remote dependencies
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
name: vscode
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
run: ./package_linux_bin.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
env:
SHOULD_BUILD_REH: 'no'
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -200,13 +213,178 @@ 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@v3
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'
reh_linux:
needs:
- check
- compile
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
- vscode_arch: arm64
npm_arch: arm64
- vscode_arch: armhf
npm_arch: arm
- vscode_arch: ppc64le
npm_arch: ppc64
- vscode_arch: riscv64
npm_arch: riscv64
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 }}
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@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18.17'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
- 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: Download vscode artifact
uses: actions/download-artifact@v3
with:
name: vscode
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./package_linux_reh.sh
if: env.SHOULD_BUILD_REH != '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.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
reh_alpine:
needs:
- check
- compile
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
- vscode_arch: arm64
npm_arch: arm64
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 }}
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@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- 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 install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v3
with:
name: vscode
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./package_alpine_reh.sh
if: env.SHOULD_BUILD_REH != '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.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
aur:
needs:
- check
- build
runs-on: ubuntu-latest
strategy:
@@ -215,12 +393,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 }}
@@ -234,50 +412,39 @@ 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'
steps:
- uses: actions/checkout@v3
with:
ref: insider
- name: Check version
env:
ARCHITECTURE: ${{ matrix.platform }}
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
- 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: 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 }}

View File

@@ -3,14 +3,17 @@ name: insider-macos
on:
workflow_dispatch:
inputs:
release_version:
type: string
description: Forced release version
new_release:
force_version:
type: boolean
description: Force new Release
schedule:
- cron: '0 8 * * *'
description: Force update version
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [insider]
push:
branches: [ insider ]
paths-ignore:
@@ -23,7 +26,7 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -39,31 +42,37 @@ jobs:
include:
- runner: macos-12
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
- runner: macos-14
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: insider
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16.17'
node-version: '18.17'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: . get_repo.sh
- name: Check PR or cron
env:
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'
@@ -79,7 +88,7 @@ jobs:
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -90,11 +99,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,43 @@ 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
OS_NAME: osx
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.17'
node-version: '18'
- name: Clone VSCode repo
run: . get_repo.sh
@@ -33,36 +46,36 @@ 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: Update <quality>.json
run: ./update_qualityjson.sh
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
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,14 +3,17 @@ name: insider-windows
on:
workflow_dispatch:
inputs:
release_version:
type: string
description: Forced release version
new_release:
force_version:
type: boolean
description: Force new Release
schedule:
- cron: '0 8 * * *'
description: Force update version
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [insider]
push:
branches: [ insider ]
paths-ignore:
@@ -23,7 +26,7 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -41,44 +44,45 @@ jobs:
matrix:
vscode_arch:
- x64
- ia32
# - ia32
- arm64
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
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
uses: actions/setup-node@v4
with:
node-version: '16.17'
node-version: '18.17'
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 3
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'
python-version: '3.11'
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_repo.sh
- name: Check PR or cron
env:
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'
if: env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
@@ -90,7 +94,7 @@ jobs:
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -101,11 +105,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
@@ -118,7 +131,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}

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,14 +3,17 @@ name: stable-linux
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_version:
type: boolean
description: Force update version
schedule:
- cron: '0 18 * * *'
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [stable]
push:
branches: [ master ]
paths-ignore:
@@ -23,6 +26,8 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
DISABLE_UPDATE: 'yes'
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
@@ -30,8 +35,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 }}
@@ -40,85 +43,98 @@ jobs:
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_repo.sh
- name: Check PR or cron
env:
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
dependencies:
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_ALL: 'yes'
run: ./check_tags.sh
compile:
needs:
- check
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
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:bionic-x64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
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@v3
- uses: actions/checkout@v4
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'
if: env.SHOULD_BUILD == 'yes'
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16.17'
node-version: '18.17'
if: env.SHOULD_BUILD == 'yes'
- name: Install Yarn
run: npm install -g yarn
if: env.SHOULD_BUILD == 'yes'
- name: Install remote dependencies (x64)
- 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 install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
env:
npm_config_arch: x64
run: ./install_remote_dependencies.sh
if: matrix.vscode_arch == 'x64'
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_repo.sh
if: env.SHOULD_BUILD == 'yes'
# - name: Install remote dependencies (arm64)
# run: |
# set -e
# docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscodium vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64 /root/vscodium/install_remote_dependencies.sh
# if: matrix.vscode_arch == 'arm64'
- name: Build
env:
SHOULD_BUILD_REH: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Save remote dependencies
- 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@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
name: vscode
path: ./vscode.tar.gz
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
if: env.SHOULD_BUILD == 'yes'
build:
needs:
- check
- dependencies
- compile
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 }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
@@ -128,67 +144,69 @@ jobs:
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:buster-arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:buster-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
image: vscodium/vscodium-linux-build-agent:bionic-armhf
container:
image: ${{ matrix.image }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
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_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
with:
ref: ${{ env.GITHUB_BRANCH }}
if: env.SHOULD_BUILD == 'yes'
- name: Install GH
run: ./install_gh.sh
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: '16.17'
- name: Install Yarn
run: npm install -g yarn
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NEW_RELEASE: ${{ github.event.inputs.new_release }}
CHECK_REH: 'no'
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes'
- name: Restore remote dependencies
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
name: vscode
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
run: ./package_linux_bin.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
env:
SHOULD_BUILD_REH: 'no'
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: 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'
@@ -198,10 +216,174 @@ jobs:
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@v3
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'
reh_linux:
needs:
- check
- compile
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
- vscode_arch: arm64
npm_arch: arm64
- vscode_arch: armhf
npm_arch: arm
# - vscode_arch: ppc64le
# npm_arch: ppc64
- vscode_arch: riscv64
npm_arch: riscv64
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 }}
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@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18.17'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
- 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: Download vscode artifact
uses: actions/download-artifact@v3
with:
name: vscode
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./package_linux_reh.sh
if: env.SHOULD_BUILD_REH != '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.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-linux-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
reh_alpine:
needs:
- check
- compile
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
- vscode_arch: arm64
npm_arch: arm64
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 }}
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@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- 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 install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
uses: actions/download-artifact@v3
with:
name: vscode
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./package_alpine_reh.sh
if: env.SHOULD_BUILD_REH != '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.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
with:
name: reh-alpine-${{ matrix.vscode_arch }}
path: assets/
retention-days: 3
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
aur:
needs:
- check
- build
runs-on: ubuntu-latest
strategy:
@@ -212,7 +394,7 @@ jobs:
package_type: stable
- package_name: vscodium-git
package_type: rolling
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- name: Publish ${{ matrix.package_name }}
@@ -226,17 +408,19 @@ 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'
steps:
- uses: actions/checkout@v3
@@ -244,24 +428,33 @@ jobs:
- name: Check version
env:
ARCHITECTURE: ${{ matrix.platform }}
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
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:
@@ -269,13 +462,14 @@ jobs:
with:
snap: ${{ steps.build.outputs.snap }}
release: stable
if: env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_DEPLOY_TO_STORE == 'yes'
deb-rpm-repo-hook:
needs:
- check
- build
runs-on: ubuntu-latest
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- name: Trigger repository rebuild

View File

@@ -3,14 +3,17 @@ name: stable-macos
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_version:
type: boolean
description: Force update version
schedule:
- cron: '0 18 * * *'
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [stable]
push:
branches: [ master ]
paths-ignore:
@@ -38,27 +41,37 @@ jobs:
include:
- runner: macos-12
vscode_arch: x64
# - runner: macos-14
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16.17'
node-version: '18.17'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'
- name: Clone VSCode repo
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: . get_repo.sh
- name: Check PR or cron
env:
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'
@@ -74,7 +87,7 @@ jobs:
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -90,6 +103,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: |

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

@@ -0,0 +1,76 @@
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 }}
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
OS_NAME: osx
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: '18'
- 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: Update <quality>.json
run: ./update_qualityjson.sh
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
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,14 +3,17 @@ name: stable-windows
on:
workflow_dispatch:
inputs:
new_release:
type: boolean
description: Force new Release
force_version:
type: boolean
description: Force update version
schedule:
- cron: '0 18 * * *'
generate_assets:
type: boolean
description: Generate assets
checkout_pr:
type: string
description: Checkout PR
repository_dispatch:
types: [stable]
push:
branches: [ master ]
paths-ignore:
@@ -41,44 +44,48 @@ jobs:
matrix:
vscode_arch:
- x64
- ia32
# - ia32
- arm64
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '16.17'
node-version: '18.17'
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 3
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'
python-version: '3.11'
- name: Clone VSCode repo
env:
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
run: ./get_repo.sh
- name: Check PR or cron
env:
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'
if: env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
@@ -86,7 +93,7 @@ jobs:
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
- name: Release
env:
@@ -102,6 +109,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'
winget:
needs: build
runs-on: windows-latest
@@ -113,7 +128,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Check version
run: ./stores/winget/check_version.sh

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

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
18.15

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 `patch.sh <your patch name>`, to initiate a new patch
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- run `yarn watch`
- run `./script/code.sh`
- make your changes
- press any key to continue the script `patch.sh`

7
FUNDING.json Normal file
View File

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

View File

@@ -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,49 @@
## <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 tap homebrew/cask-versions
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,30 +96,41 @@ 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
@@ -131,13 +160,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 VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
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 +181,20 @@ 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 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] 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
- [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`, `snap`, `tar.gz`)
- [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`)
- [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`)
- [x] Windows 10 / Server 2012 R2 or newer x64
- [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`.
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N` (<a href="https://github.com/stripedpajamas" target="_blank">@stripedpajamas</a>).
Special thanks to:
## <a id="thanks"></a>Special thanks
<table>
<tr>

View File

@@ -1,23 +1,19 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
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
npm config set scripts-prepend-node-path true
npm config set node_gyp
echo "MS_COMMIT=\"${MS_COMMIT}\""
. prepare_vscode.sh
cd vscode || { echo "'vscode' dir not found"; exit 1; }
export NODE_OPTIONS="--max-old-space-size=8192"
yarn monaco-compile-check
yarn valid-layers-check
@@ -29,7 +25,7 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
if [[ "${OS_NAME}" == "osx" ]]; then
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
find "../VSCode-darwin-${VSCODE_ARCH}" -exec touch {} \;
find "../VSCode-darwin-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
@@ -42,17 +38,22 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
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
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -exec touch {} \;
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
fi
VSCODE_PLATFORM="linux"
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
if [[ "${OS_NAME}" == "linux" ]]; then
export VSCODE_NODE_GLIBC='-glibc-2.17'
fi
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi

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,10 +1,12 @@
#!/bin/bash
#!/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 BINARY_NAME="codium"
export CI_BUILD="no"
export SHOULD_BUILD="yes"
export SKIP_ASSETS="yes"
@@ -12,10 +14,12 @@ 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 ":ilop" opt; do
while getopts ":ilops" opt; do
case "$opt" in
i)
export BINARY_NAME="codium-insiders"
export VSCODE_QUALITY="insider"
;;
l)
@@ -30,6 +34,8 @@ while getopts ":ilop" opt; do
s)
export SKIP_SOURCE="yes"
;;
*)
;;
esac
done
@@ -51,10 +57,14 @@ if [[ "${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"
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}\""
@@ -99,8 +109,9 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then
. build.sh
if [[ "${VSCODE_QUALITY}" == "insider" && "${VSCODE_LATEST}" == "yes" ]]; then
echo "$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )" > "insider.json"
if [[ "${VSCODE_LATEST}" == "yes" ]]; then
jsonTmp=$( cat "${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
echo "${jsonTmp}" > "${VSCODE_QUALITY}.json" && unset jsonTmp
fi
fi

View File

@@ -1,6 +1,7 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
exists() { type -t "$1" > /dev/null 2>&1; }
exists() { type -t "$1" &> /dev/null; }
export APP_NAME="VSCodium"
export CI_BUILD="no"
@@ -19,7 +20,9 @@ while getopts ":ilp" opt; do
export VSCODE_LATEST="yes"
;;
p)
export SKIP_ASSETS="no"
export SKIP_ASSETS="no"
;;
*)
;;
esac
done

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -ex
@@ -15,11 +15,11 @@ if [[ "${VSCODE_ARCH}" == "x64" ]]; then
exit 1
fi
wget -c "${APPIMAGE_URL}"
wget -c "${APPIMAGE_URL}" -O pkg2appimage.AppImage
chmod +x ./pkg2appimage-*.AppImage
chmod +x ./pkg2appimage.AppImage
./pkg2appimage-*.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
./pkg2appimage.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
# add update's url
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun

View File

@@ -1,23 +1,25 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
export VSCODE_QUALITY="stable"
while getopts ":ilp" opt; do
while getopts ":i" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
*)
;;
esac
done
URL=`curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/VERSION" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/'`
URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
# echo "url: ${URL}"
FILE=`echo "${URL}" | sed -E 's|.*/([^/]+\.zip)$|\1|'`
FILE="${URL##*/}"
# echo "file: ${FILE}"
DIRECTORY=`echo "${URL}" | sed -E 's|.*/([^/]+)\.zip$|\1|'`
DIRECTORY="${FILE%.zip}"
# echo "directory: ${DIRECTORY}"
if [[ ! -f "${FILE}" ]]; then
@@ -28,8 +30,10 @@ if [[ ! -d "${DIRECTORY}" ]]; then
unzip "${FILE}" -d "${DIRECTORY}"
fi
APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'`
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-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json
jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp

View File

@@ -1,12 +1,14 @@
#!/bin/bash
#!/usr/bin/env bash
export VSCODE_QUALITY="stable"
while getopts ":ilp" opt; do
while getopts ":i" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
*)
;;
esac
done
@@ -16,16 +18,15 @@ git add .
git reset -q --hard HEAD
for FILE in ../patches/*.patch; do
if [ -f "${FILE}" ]; then
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
git apply --ignore-whitespace "${FILE}"
if [ $? -ne 0 ]; then
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 -p "Press any key when the conflict have been resolved..." -n1 -s
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
@@ -38,16 +39,15 @@ done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for FILE in ../patches/insider/*.patch; do
if [ -f "${FILE}" ]; then
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
git apply --ignore-whitespace "${FILE}"
if [ $? -ne 0 ]; then
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 -p "Press any key when the conflict have been resolved..." -n1 -s
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
@@ -58,3 +58,23 @@ if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
fi
done
fi
for FILE in ../patches/linux/*.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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -ex
@@ -10,9 +10,8 @@ SCRIPT_DIR=$( pwd )
cd "../../../VSCode-win32-${VSCODE_ARCH}/resources/app"
cp product.json product.json.bak
cat product.json.bak | jq "del(.updateUrl)" > product.json
rm -f product.json.bak
jsonTmp=$( jq "del(.updateUrl)" product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp
cd "${SCRIPT_DIR}"

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -ex
@@ -11,14 +11,12 @@ WIN_SDK_FULL_VERSION="10.0.17763.0"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
PRODUCT_NAME="VSCodium - Insiders"
PRODUCT_SKU="vscodium-insiders"
PRODUCT_CODE="VSCodiumInsiders"
PRODUCT_UPGRADE_CODE="1C9B7195-5A9A-43B3-B4BD-583E20498467"
ICON_DIR="..\\..\\..\\src\\insider\\resources\\win32"
SETUP_RESOURCES_DIR=".\\resources\\insider"
else
PRODUCT_NAME="VSCodium"
PRODUCT_SKU="vscodium"
PRODUCT_CODE="VSCodium"
PRODUCT_UPGRADE_CODE="965370CD-253C-4720-82FC-2E6B02A53808"
ICON_DIR="..\\..\\..\\src\\stable\\resources\\win32"
@@ -51,7 +49,7 @@ fi
sed -i "s|@@PRODUCT_UPGRADE_CODE@@|${PRODUCT_UPGRADE_CODE}|g" .\\includes\\vscodium-variables.wxi
sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" .\\vscodium.xsl
find i18n -name '*.wxl' -exec sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" {} \;
find i18n -name '*.wxl' -print0 | xargs -0 sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g"
BuildSetupTranslationTransform() {
local CULTURE=${1}

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>

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode || { echo "'vscode' dir not found"; exit 1; }

View File

@@ -1,11 +1,12 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
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"
@@ -13,9 +14,16 @@ elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
echo "It's a Dispatch"
if [[ "${GENERATE_ASSETS}" == "true" ]]; then
echo "It will generate the assets"
export SHOULD_DEPLOY="yes"
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
else
echo "It's a Dispatch"
export SHOULD_DEPLOY="yes"
fi
else
echo "It's a Cron"
@@ -24,7 +32,7 @@ fi
if [[ "${GITHUB_ENV}" ]]; then
echo "GITHUB_BRANCH=${GITHUB_BRANCH}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
echo "VSCODE_QUALITY=${VSCODE_QUALITY}" >> "${GITHUB_ENV}"
fi

View File

@@ -1,43 +1,57 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -e
if [[ -z "${GITHUB_TOKEN}" ]]; then
echo "Will not build because no GITHUB_TOKEN defined"
exit
exit 0
fi
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' )
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
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.github.com/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-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 [[ "${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
@@ -46,17 +60,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"
@@ -210,151 +225,182 @@ if [ "${ASSETS}" != "null" ]; then
fi
elif [[ "${OS_NAME}" == "linux" ]]; then
# 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"
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 "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no REH archive"
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
export SHOULD_BUILD_APPIMAGE="no"
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
# 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 "${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 "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 [[ "${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 [[ -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"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm64 builds"
fi
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"
# 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
export SHOULD_BUILD_APPIMAGE="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm builds"
fi
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux x64 builds"
# linux-ppc64le
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${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-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
fi
# linux-riscv64
if [[ "${VSCODE_ARCH}" == "riscv64" || "${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-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V64 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
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 [[ -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 [[ "${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 [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux x64 builds"
fi
fi
fi
fi
else
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
if [[ "${IS_SPEARHEAD}" == "yes" ]]; then
export SHOULD_BUILD_SRC="yes"
elif [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${VSCODE_ARCH}" == "riscv64" ]]; 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"
fi
elif [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
export SHOULD_BUILD_SRC="yes"
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
@@ -366,6 +412,7 @@ else
export SHOULD_BUILD="yes"
fi
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_APPIMAGE=${SHOULD_BUILD_APPIMAGE}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_DEB=${SHOULD_BUILD_DEB}" >> "${GITHUB_ENV}"

View File

@@ -0,0 +1,17 @@
# 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

@@ -0,0 +1,28 @@
# Extensions compatibility
## Partial Compatibility
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
> [Since May 2021](https://devblogs.microsoft.com/python/python-in-visual-studio-code-may-2021-release/), Python is using a closed source language server ([Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance))
## Incompatibility
- [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)
> It's officially unsupported: https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ#vscodium-is-not-officially-supported
## Incompatibility due to licensing
The following extensions are not compatible with VSCodium due to their licensing:
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
- [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
- [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)
- [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit)
- [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)
## Replacements
The following extensions are functional replacements for incompatible extensions:
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh)
- [Open Remote - WSL](https://open-vsx.org/extension/jeanp413/open-remote-wsl)

View File

@@ -1,4 +1,4 @@
# Build
# How to build VSCodium
## Table of Contents
@@ -17,31 +17,32 @@
## <a id="dependencies"></a>Dependencies
- node 16
- node 18.15
- yarn
- jq
- git
- python3 3.11
### <a id="dependencies-linux"></a>Linux
- GCC
- gcc
- g++
- make
- pkg-config
- libx11-dev
- libxkbfile-dev
- libsecret-1-dev
- libkrb5-dev
- fakeroot
- rpm
- rpmbuild
- dpkg
- python3
- imagemagick (for AppImage)
- snapcraft
### <a id="dependencies-macos"></a>MacOS
- imagemagick
- png2icns (`npm install png2icns -g`)
- librsvg
see [the common dependencies](#dependencies)
### <a id="dependencies-windows"></a>Windows
@@ -49,8 +50,7 @@
- sed
- 7z
- [WiX Toolset](http://wixtoolset.org/releases/)
- python3
- 'Tools for Native Modules' from official Node.js installer
- 'Tools for Native Modules' from the official Node.js installer
## <a id="build-scripts"></a>Build Scripts
@@ -64,7 +64,17 @@ A build helper script can be found at `build/build.sh`.
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.
You can try the latest version with the command `./build/build.sh -il` but the patches might not be up to date.
### Flags
The script `build/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-docker"></a>Build in Docker
@@ -83,31 +93,20 @@ docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodi
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
npm install -g yarn
cd /root/vscodium
. get_repo.sh
export SHOULD_BUILD=yes
export OS_NAME=linux
export VSCODE_ARCH=x64
. build.sh
./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:stretch-armhf bash
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:stretch-armhf bash
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:
@@ -117,15 +116,7 @@ sudo apt-get install -y nodejs desktop-file-utils
cd /root/vscodium
. get_repo.sh
export SHOULD_BUILD=yes
export OS_NAME=linux
export VSCODE_ARCH=armhf
export npm_config_arch=armv7l
export npm_config_force_process_config="true"
. build.sh
./build/build.sh
```
## <a id="build-snap"></a>Build Snap
@@ -150,10 +141,10 @@ review-tools.snap-review --allow-classic codium*.snap
- 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**
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- fix all the `*.rej` files
- run `yarn watch`
- run `./script/code.sh` until everything ok
- 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
@@ -164,5 +155,13 @@ review-tools.snap-review --allow-classic codium*.snap
- run `git apply --reject ../patches/<name>.patch`
- fix all the `*.rej` files
- run `yarn watch`
- run `./script/code.sh` until everything ok
- run `./script/code.sh` until everything is ok
- run `git diff > ../patches/<name>.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

View File

@@ -10,14 +10,18 @@
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
- [Proprietary Extensions](#proprietary-extensions)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
- [Migrating from Visual Studio Code to VSCodium](#migrating)
- [Sign in with GitHub](#signin-github)
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
- [How do I run VSCodium in portable mode?](#portable)
- [How do I fix the default file manager?](#file-manager)
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
- [How do I open VSCodium from the terminal?](#terminal-support)
- [From Linux .tar.gz](#from-linux-targz)
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
- [Troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md)
- [Contributing](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
@@ -56,7 +60,7 @@ By default, the `product.json` file is set up to use [open-vsx.org](https://open
### <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.
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
@@ -92,11 +96,11 @@ with the content:
### <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.
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
* [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).
@@ -107,7 +111,7 @@ There are likely other options, but the following were reported to work:
### <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).
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).
@@ -160,7 +164,7 @@ To copy your settings manually:
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.)
Select the scopes dependending on the extension which needs access to GitHub. (GitLens requires the `repo` scope.)
### Linux
@@ -173,7 +177,7 @@ You can follow the [Portable Mode instructions](https://code.visualstudio.com/do
## <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 />
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:
@@ -198,7 +202,7 @@ $ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
For MacOS and Windows:
For macOS and Windows:
- Go to the command palette (View | Command Palette...)
- Choose `Shell command: Install 'codium' command in PATH`.

72
docs/troubleshooting.md Normal file
View File

@@ -0,0 +1,72 @@
# Troubleshooting
## Table of Contents
- [Linux](#linux)
- [Fonts showing up as rectangles](#linux-fonts-rectangle)
- [Global menu workaround for KDE](#linux-kde-global-menu)
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
- [macOS](#macos)
- [App can't be opened because Apple cannot check it for malicious software](#macos-unidentified-developer)
- ["VSCodium.app" is damaged and cant be opened. You should move it to the Bin](#macos-quarantine)
## <a id="linux"></a>Linux
#### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
The following command should help:
```
rm -rf ~/.cache/fontconfig
rm -rf ~/snap/codium/common/.cache
fc-cache -r
```
#### <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="macos"></a>macOS
Since the App is signed with a self-signed certificate, on the first launch, you might see the following messages:
#### <a id="macos-unidentified-developer"></a>*App can't be opened because Apple cannot check it for malicious software*
You can right-click the App and choose `Open`.
#### <a id="macos-quarantine"></a>*"VSCodium.app" is damaged and cant be opened. You should move it to the Bin.*
The following command will remove the quarantine attribute.
```
xattr -r -d com.apple.quarantine /Applications/VSCodium.app
```

View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -e
@@ -7,33 +8,42 @@ 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
if [[ -z "${RELEASE_VERSION}" ]]; then
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "insider.json" ]]; then
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/insider/lol )
else
export MS_COMMIT=$(jq -r '.commit' insider.json)
export MS_TAG=$(jq -r '.tag' insider.json)
fi
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "${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 https://update.code.visualstudio.com/api/update/darwin/stable/lol )
echo "Get version from ${VSCODE_QUALITY}.json"
MS_COMMIT=$( jq -r '.commit' "${VSCODE_QUALITY}.json" )
MS_TAG=$( jq -r '.tag' "${VSCODE_QUALITY}.json" )
fi
if [[ -z "${MS_COMMIT}" ]]; then
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export MS_TAG="${MS_TAG/\-insider/}"
MS_TAG="${MS_TAG/\-insider/}"
fi
fi
date=$( date +%Y%j )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
else
export RELEASE_VERSION="${MS_TAG}.${date: -5}"
RELEASE_VERSION="${MS_TAG}.${date: -5}"
fi
else
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
@@ -41,14 +51,7 @@ else
then
MS_TAG="${BASH_REMATCH[1]}"
else
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
exit 1
fi
if [[ "${MS_TAG}" == "$(jq -r '.tag' insider.json)" ]]; then
export MS_COMMIT=$(jq -r '.commit' insider.json)
else
echo "No MS_COMMIT for ${RELEASE_VERSION}"
echo "Error: Bad RELEASE_VERSION: ${RELEASE_VERSION}"
exit 1
fi
else
@@ -56,10 +59,17 @@ else
then
MS_TAG="${BASH_REMATCH[1]}"
else
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
echo "Error: Bad RELEASE_VERSION: ${RELEASE_VERSION}"
exit 1
fi
fi
if [[ "${MS_TAG}" == "$( jq -r '.tag' "${VSCODE_QUALITY}".json )" ]]; then
MS_COMMIT=$( jq -r '.commit' "${VSCODE_QUALITY}".json )
else
echo "Error: No MS_COMMIT for ${RELEASE_VERSION}"
exit 1
fi
fi
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
@@ -72,24 +82,20 @@ 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 https://update.code.visualstudio.com/api/update/darwin/insider/lol )
else
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
fi
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
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
REFERENCE=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
if [[ -z "${REFERENCE}" ]]; then
echo "The following tag can't be found: ${MS_TAG}"
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
export MS_COMMIT="${BASH_REMATCH[1]}"
export MS_TAG="${BASH_REMATCH[2]}"
MS_COMMIT="${BASH_REMATCH[1]}"
MS_TAG="${BASH_REMATCH[2]}"
else
echo "The following reference can't be parsed: ${REFERENCE}"
echo "Error: The following reference can't be parsed: ${REFERENCE}"
exit 1
fi
fi
@@ -108,3 +114,7 @@ if [[ "${GITHUB_ENV}" ]]; then
echo "MS_COMMIT=${MS_COMMIT}" >> "${GITHUB_ENV}"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
fi
export MS_TAG
export MS_COMMIT
export RELEASE_VERSION

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
@@ -14,16 +15,16 @@ while getopts ":i" opt; do
export QUALITY="insider"
export COLOR="orange1"
;;
*)
;;
esac
done
check_programs() { # {{{
for arg in "$@"
do
if ! command -v "${arg}" >/dev/null 2>&1
then
for arg in "$@"; do
if ! command -v "${arg}" &> /dev/null; then
echo "${arg} could not be found"
exit
exit 0
fi
done
} # }}}
@@ -36,7 +37,7 @@ SRC_PREFIX=""
VSCODE_PREFIX=""
build_darwin_main() { # {{{
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]; then
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]]; then
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center "icons/template_macos.png" "code_1024.png"
convert "code_1024.png" -resize 512x512 code_512.png
@@ -52,12 +53,11 @@ build_darwin_main() { # {{{
build_darwin_types() { # {{{
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*
do
if [ -f "${file}" ]; then
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*; do
if [[ -f "${file}" ]]; then
name=$(basename "${file}" '.icns')
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]; then
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]]; then
icns2png -x -s 512x512 "${file}" -o .
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
@@ -76,41 +76,62 @@ build_darwin_types() { # {{{
} # }}}
build_linux_main() { # {{{
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]; then
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]]; then
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
fi
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]; then
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]]; then
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm"
fi
} # }}}
build_media() { # {{{
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]; then
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]]; then
cp "icons/${QUALITY}/codium_clt.svg" "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
gsed -i 's|width="100" height="100"|width="1024" height="1024"|' "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
fi
} # }}}
build_windows_main() { # {{{
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]; then
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() {
local FILE_PATH IMG_SIZE IMG_BG_COLOR LOGO_SIZE GRAVITY
FILE_PATH="$1"
IMG_SIZE="$2"
IMG_BG_COLOR="$3"
LOGO_SIZE="$4"
GRAVITY="$5"
if [[ ! -f "${FILE_PATH}" ]]; then
if [[ "${FILE_PATH##*.}" == "png" ]]; then
convert -size "${IMG_SIZE}" "${IMG_BG_COLOR}" PNG32:"${FILE_PATH}"
else
convert -size "${IMG_SIZE}" "${IMG_BG_COLOR}" "${FILE_PATH}"
fi
rsvg-convert -w "${LOGO_SIZE}" -h "${LOGO_SIZE}" "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
fi
}
build_windows_types() { # {{{
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
rsvg-convert -b "#F5F6F7" -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
for file in "${VSCODE_PREFIX}"vscode/resources/win32/*.ico
do
if [ -f "${file}" ]; then
for file in "${VSCODE_PREFIX}"vscode/resources/win32/*.ico; do
if [[ -f "${file}" ]]; then
name=$(basename "${file}" '.ico')
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]; then
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]]; then
icotool -x -w 256 "${file}"
composite -geometry +150+185 "code_logo.png" "${name}_9_256x256x32.png" "${name}.png"
@@ -122,105 +143,29 @@ build_windows_types() { # {{{
fi
done
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png" ]; then
convert -size 70x70 canvas:transparent PNG32:"${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png"
rsvg-convert -w 45 -h 45 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png" ]; then
convert -size 150x150 canvas:transparent PNG32:"${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png"
rsvg-convert -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -geometry +44+25 "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" ]; then
convert -size 164x314 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp"
rsvg-convert -w 126 -h 126 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" ]; then
convert -size 192x386 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp"
rsvg-convert -w 147 -h 147 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" ]; then
convert -size 246x459 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp"
rsvg-convert -w 190 -h 190 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" ]; then
convert -size 273x556 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp"
rsvg-convert -w 211 -h 211 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" ]; then
convert -size 328x604 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp"
rsvg-convert -w 255 -h 255 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" ]; then
convert -size 355x700 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp"
rsvg-convert -w 273 -h 273 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" ]; then
convert -size 410x797 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp"
rsvg-convert -w 317 -h 317 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" ]; then
convert -size 55x55 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp"
rsvg-convert -w 44 -h 44 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" ]; then
convert -size 64x68 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp"
rsvg-convert -w 52 -h 52 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" ]; then
convert -size 83x80 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp"
rsvg-convert -w 63 -h 63 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" ]; then
convert -size 92x97 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp"
rsvg-convert -w 76 -h 76 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" ]; then
convert -size 110x106 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp"
rsvg-convert -w 86 -h 86 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" ]; then
convert -size 119x123 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp"
rsvg-convert -w 103 -h 103 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" ]; then
convert -size 138x140 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp"
rsvg-convert -w 116 -h 116 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp"
fi
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp" ]; then
convert -size 493x58 xc:white "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp"
rsvg-convert -w 50 -h 50 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -geometry +438+6 "code_logo.png" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp"
fi
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" ]; then
convert -size 493x312 xc:white "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp"
rsvg-convert -w 120 -h 120 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite -geometry +22+152 "code_logo.png" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp"
fi
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png" "70x70" "canvas:transparent" "45" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png" "150x150" "canvas:transparent" "64" "+44+25"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" "164x314" "xc:white" "126" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" "192x386" "xc:white" "147" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" "246x459" "xc:white" "190" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" "273x556" "xc:white" "211" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" "328x604" "xc:white" "255" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" "355x700" "xc:white" "273" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" "410x797" "xc:white" "317" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" "55x55" "xc:white" "44" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" "64x68" "xc:white" "52" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" "83x80" "xc:white" "63" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" "92x97" "xc:white" "76" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" "110x106" "xc:white" "86" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" "119x123" "xc:white" "103" "center"
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" "138x140" "xc:white" "116" "center"
build_windows_type "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp" "493x58" "xc:white" "50" "+438+6"
build_windows_type "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" "493x312" "xc:white" "120" "+22+152"
rm code_logo.png
} # }}}
if [ "${0}" == "${BASH_SOURCE}" ];
then
if [[ "${0}" == "${BASH_SOURCE[0]}" ]]; then
build_darwin_main
build_linux_main
build_windows_main

View File

@@ -1,4 +1,4 @@
{
"tag": "1.79.0",
"commit": "b380da4ef1ee00e224a15c1d4d9793e27c2b6302"
"tag": "1.88.0",
"commit": "d994aede3529f4d1af9eeaeb234d32fd936243e7"
}

View File

@@ -1,10 +1,10 @@
#!/bin/bash
#!/usr/bin/env bash
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-`
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- )
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"

View File

@@ -1,11 +0,0 @@
#!/bin/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

74
package_alpine_reh.sh Executable file
View File

@@ -0,0 +1,74 @@
#!/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; }
export VSCODE_PLATFORM='alpine'
VSCODE_HOST_MOUNT="$( pwd )"
export VSCODE_HOST_MOUNT
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [[ $i == 3 ]]; then
echo "Yarn failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
yarn gulp minify-vscode-reh
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
PA_NAME="linux-alpine"
else
PA_NAME="alpine-arm64"
fi
yarn gulp "vscode-reh-${PA_NAME}-min-ci"
cd ..
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
mkdir -p assets
echo "Building and moving REH"
cd "vscode-reh-${PA_NAME}"
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
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 ..

57
package_linux_bin.sh Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -ex
if [[ "${CI_BUILD}" == "no" ]]; then
exit 1
fi
tar -xzf ./vscode.tar.gz
chown -R root:root vscode
cd vscode || { echo "'vscode' dir not found"; exit 1; }
export VSCODE_SKIP_NODE_VERSION_CHECK=1
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
if [[ -d "../patches/${OS_NAME}/client/" ]]; then
for file in "../patches/${OS_NAME}/client/"*.patch; do
if [[ -f "${file}" ]]; then
echo applying patch: "${file}";
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
fi
for i in {1..5}; do # try 5 times
yarn --cwd build --frozen-lockfile --check-files && break
if [[ $i == 3 ]]; then
echo "Yarn failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
done
./build/azure-pipelines/linux/setup-env.sh
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
done
node build/azure-pipelines/distro/mixin-npm
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
cd ..

97
package_linux_reh.sh Executable file
View File

@@ -0,0 +1,97 @@
#!/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; }
export VSCODE_PLATFORM='linux'
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
VSCODE_HOST_MOUNT="$( pwd )"
export VSCODE_HOST_MOUNT
if [[ "${VSCODE_ARCH}" == "x64" || "${VSCODE_ARCH}" == "arm64" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}"
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-arm32v7"
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-ppc64le"
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
# Unofficial RISC-V nodejs builds doesn't provide v16.x
sed -i '/target/s/"16.*"/"18.18.1"/' remote/.yarnrc
fi
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
for i in {1..5}; do # try 5 times
yarn --cwd build --frozen-lockfile --check-files && break
if [[ $i == 3 ]]; then
echo "Yarn failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
done
./build/azure-pipelines/linux/setup-env.sh --only-remote
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
exit 1
fi
echo "Yarn failed $i, trying again..."
done
EXPECTED_GLIBC_VERSION="2.17" EXPECTED_GLIBCXX_VERSION="3.4.22" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
node build/azure-pipelines/distro/mixin-npm
export VSCODE_NODE_GLIBC='-glibc-2.17'
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
cd ..
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
mkdir -p assets
echo "Building and moving REH"
cd "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
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,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
@@ -17,7 +17,7 @@ fi
git apply --reject "../patches/helper/settings.patch"
read -p "Press any key when the conflict have been resolved..." -n1 -s
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json

File diff suppressed because it is too large Load Diff

View File

@@ -1,86 +1,77 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 2a0c236..9fea722 100644
index 595d0ce..99bfe30 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -250,4 +250,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -290,4 +290,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
@@ -296,3 +297,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
index e1507e0..9a12a12 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -225,3 +225,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -233,3 +233,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
@@ -241,3 +241,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
@@ -252,3 +253,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
index 8c2b62f..303fb16 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -25,4 +25,2 @@ const commit = getVersion(root);
@@ -24,4 +24,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -88,3 +86,3 @@ function prepareDebPackage(arch) {
@@ -86,3 +84,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) {
@@ -194,4 +192,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))
@@ -270,3 +267,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
index 5adfdfb..d6ddead 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -94,4 +94,4 @@ function buildWin32Setup(arch, target) {
@@ -90,4 +90,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
index 3a57612..d26a55b 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -58,2 +58,3 @@ export interface IProductConfiguration {
@@ -97,7 +88,7 @@ index 0be311f..d6c4a18 100644
+ 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
index 467e11c..8e7d474 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) {
@@ -111,7 +102,7 @@ index 51a55e1..26dfe7b 100644
+ 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
index c064ebc..72a9fa9 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
@@ -149,18 +140,18 @@ index 0000000..2a8ea57
+ 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
index f2cc82a..700d81a 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 {
import { getActiveWindow } from 'vs/base/browser/dom';
@@ -80,2 +81,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
const osProps = await this.nativeHostService.getOSProperties();
+ const releaseString = getReleaseString();
@@ -89,3 +91,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
@@ -93,3 +95,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
`${osProps.type} ${osProps.arch} ${osProps.release}${isLinuxSnap ? ' snap' : ''}`
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);

View File

@@ -1,13 +0,0 @@
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 81ba509..59041e2 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -137,7 +137,7 @@ defineWin32SetupTasks('arm64', 'user');
*/
function archiveWin32Setup(arch) {
return cb => {
- const args = ['a', '-tzip', zipPath(arch), '-x!CodeSignSummary*.md', '.', '-r'];
+ const args = ['a', '-tzip', zipPath(arch), '-x!CodeSignSummary*.md', '-x!tools', '.', '-r'];
cp.spawn(_7z, args, { stdio: 'inherit', cwd: buildPath(arch) })
.on('error', cb)

View File

@@ -0,0 +1,58 @@
diff --git a/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts b/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
index 00914aa..d5cfc18 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 'vs/base/common/lifecycle';
import { localize } from 'vs/nls';
-import { Action2, MenuId, MenuRegistry, registerAction2 } from 'vs/platform/actions/common/actions';
+import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions';
import { ContextKeyExpr, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
@@ -17,3 +17,3 @@ import { AuthenticationSession, AuthenticationSessionsChangeEvent, IAuthenticati
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
-import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource, EDIT_SESSIONS_PENDING_KEY } from 'vs/workbench/contrib/editSessions/common/editSessions';
+import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource } from 'vs/workbench/contrib/editSessions/common/editSessions';
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
@@ -93,3 +93,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
- this.registerSignInAction();
this.registerResetAuthenticationAction();
@@ -455,39 +454,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
- private registerSignInAction() {
- 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() {

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

@@ -0,0 +1,22 @@
diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js
index 1b0adc4..b595123 100644
--- a/build/lib/builtInExtensions.js
+++ b/build/lib/builtInExtensions.js
@@ -47,5 +47,3 @@ function isUpToDate(extension) {
function getExtensionDownloadStream(extension) {
- const galleryServiceUrl = productjson.extensionsGallery?.serviceUrl;
- return (galleryServiceUrl ? ext.fromMarketplace(galleryServiceUrl, extension) : ext.fromGithub(extension))
- .pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+ return ext.fromGithub(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
}
diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts
index fefed43..4ae553e 100644
--- a/build/lib/builtInExtensions.ts
+++ b/build/lib/builtInExtensions.ts
@@ -72,5 +72,3 @@ function isUpToDate(extension: IExtensionDefinition): boolean {
function getExtensionDownloadStream(extension: IExtensionDefinition) {
- const galleryServiceUrl = productjson.extensionsGallery?.serviceUrl;
- return (galleryServiceUrl ? ext.fromMarketplace(galleryServiceUrl, extension) : ext.fromGithub(extension))
- .pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+ return ext.fromGithub(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
}

View File

@@ -1,8 +1,8 @@
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 66b9062..0a659dc 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({
@@ -315,2 +315,8 @@ configurationRegistry.registerConfiguration({
},
+ 'workbench.welcomePage.extraAnnouncements': {
+ scope: ConfigurationScope.MACHINE,
@@ -12,10 +12,10 @@ index 8c2aa42..18b0975 100644
+ },
'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 a73549a..fc95016 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 = {
@@ -115,4 +115,8 @@ type GettingStartedActionEvent = {
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
+type AnnouncementEntry = { id: string, title: string, url: string };
@@ -24,26 +24,35 @@ index 9dd5330..9e2b6a2 100644
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
+
export class GettingStartedPage extends EditorPane {
@@ -153,2 +157,4 @@ export class GettingStartedPage extends EditorPane {
@@ -151,2 +155,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 {
private videoList?: GettingStartedIndexList<IWelcomePageStartEntry>;
@@ -844,2 +850,3 @@ export class GettingStartedPage extends EditorPane {
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
+ const announcementList = await this.buildAnnouncementList();
@@ -784,3 +791,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());
}
@@ -788,3 +795,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noWalkthroughs');
- reset(rightColumn, featuredExtensionList.getDomElement());
+ reset(rightColumn, featuredExtensionList.getDomElement(), announcementList.getDomElement());
}
@@ -946,2 +953,55 @@ export class GettingStartedPage extends EditorPane {
@@ -856,6 +863,6 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noVideos');
- reset(rightColumn, videoList?.getDomElement(), gettingStartedList.getDomElement());
+ reset(rightColumn, videoList?.getDomElement(), gettingStartedList.getDomElement(), announcementList.getDomElement());
} else {
this.container.classList.add('noVideos');
- reset(rightColumn, gettingStartedList.getDomElement());
+ reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
}
@@ -866,3 +873,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noVideos');
- reset(rightColumn, videoList?.getDomElement());
+ reset(rightColumn, videoList?.getDomElement(), announcementList.getDomElement());
}
@@ -870,3 +877,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noVideos');
- reset(rightColumn);
+ reset(rightColumn, announcementList.getDomElement());
}
@@ -1023,2 +1030,55 @@ export class GettingStartedPage extends EditorPane {
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {

View File

@@ -1,26 +1,56 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 8c2b62f..843e8d4 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -187,2 +187,3 @@ function prepareRpmPackage(arch) {
const spec = code.pipe(es.through(
+ null,
async function () {
@@ -302,4 +303,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);
@@ -308,4 +308,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
index 80c247d..40f1df2 100644
--- a/build/linux/dependencies-generator.js
+++ b/build/linux/dependencies-generator.js
@@ -22,3 +22,3 @@ const types_2 = require("./rpm/types");
@@ -24,3 +24,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/108.0.5359.215:chrome/installer/linux/BUILD.gn;l=64-80
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/120.0.6099.268:chrome/installer/linux/BUILD.gn;l=64-80
@@ -56,3 +56,3 @@ async function getDependencies(packageType, buildDir, applicationName, arch) {
// Add the tunnel binary.
- files.push(path.join(buildDir, 'bin', product.tunnelApplicationName));
+ // files.push(path.join(buildDir, 'bin', product.tunnelApplicationName));
// Add the main executable.
diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
index c0d8112..3bb0366 100644
index 9f1a068..48e3d52 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -23,3 +23,3 @@ import { isRpmArchString, RpmArchString } from './rpm/types';
@@ -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;
@@ -61,3 +61,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.
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index 06b8549..a7e3dfb 100644
index c9e57db..bda2604 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 || :
@@ -87 +87,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_datadir}/zsh/site-functions/_%{name}
+
+%config(noreplace) /usr/share/%{name}/resources/app/product.json

View File

@@ -1,5 +1,5 @@
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 dda7c88..e01f09e 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/
@@ -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,24 +47,8 @@ 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 9c1ab0d..688b1dc 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';
@@ -74,4 +58,4 @@ index 639b1b2..70e8847 100644
@@ -18,2 +19,3 @@ export interface IBannerItem {
readonly onClose?: () => void;
+ readonly neverShowAgain?: INeverShowAgainOptions;
}
readonly closeLabel?: string;

View File

@@ -1,8 +1,8 @@
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 @@
@@ -10,5 +10,5 @@
"cli/target": 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,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

@@ -0,0 +1,10 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index 72dd74f..94d4957 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -86,4 +86,3 @@ for (let dir of dirs) {
- if (/^(.build\/distro\/npm\/)?remote/.test(dir) && process.platform === 'win32' && (process.arch === 'arm64' || process.env['npm_config_arch'] === 'arm64')) {
- // windows arm: do not execute `yarn` on remote folder
+ if (/^(.build\/distro\/npm\/)?remote/.test(dir)) {
continue;

View File

@@ -0,0 +1,70 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c2b81d0..2e94d99 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -375,16 +375,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
- if (platform === 'linux' && process.env['VSCODE_NODE_GLIBC'] === '-glibc-2.17') {
- result = es.merge(result,
- gulp.src(`resources/server/bin/helpers/check-requirements-linux-legacy.sh`, { base: '.' })
- .pipe(rename(`bin/helpers/check-requirements.sh`))
- .pipe(util.setExecutableBit())
- );
- } else if (platform === 'linux' || platform === 'alpine') {
- result = es.merge(result,
- gulp.src(`resources/server/bin/helpers/check-requirements-linux.sh`, { base: '.' })
- .pipe(rename(`bin/helpers/check-requirements.sh`))
- .pipe(util.setExecutableBit())
- );
- }
-
return result.pipe(vfs.dest(destination));
diff --git a/remote/.yarnrc b/remote/.yarnrc
index 4e7208c..f7304bc 100644
--- a/remote/.yarnrc
+++ b/remote/.yarnrc
@@ -1,3 +1,3 @@
disturl "https://nodejs.org/dist"
-target "18.18.2"
+target "16.20.2"
ms_build_id "256117"
diff --git a/remote/package.json b/remote/package.json
index 974450e..513856f 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -31,3 +31,3 @@
"native-watchdog": "^1.4.1",
- "node-pty": "1.1.0-beta11",
+ "node-pty": "1.1.0-beta4",
"tas-client-umd": "0.1.8",
diff --git a/remote/yarn.lock b/remote/yarn.lock
index d62eb4b..f175b85 100644
--- a/remote/yarn.lock
+++ b/remote/yarn.lock
@@ -391,2 +391,7 @@ ms@2.1.2:
+nan@^2.17.0:
+ version "2.18.0"
+ resolved "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
+ integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
+
napi-build-utils@^1.0.1:
@@ -408,3 +413,3 @@ node-abi@^3.3.0:
-node-addon-api@7.1.0, node-addon-api@^7.1.0:
+node-addon-api@7.1.0:
version "7.1.0"
@@ -433,8 +438,8 @@ node-gyp-build@^4.3.0:
-node-pty@1.1.0-beta11:
- version "1.1.0-beta11"
- resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta11.tgz#909d5dd8f9aa2a7857e7b632fd4d2d4768bdf69f"
- integrity sha512-vTjF+VrvSCfPDILUkIT+YrG1Fdn06/eBRS2fc9a3JzYAvknMB1Ip8aoJhxl8hNpjWAbprmCEiV91mlfNpCD+GQ==
+node-pty@1.1.0-beta4:
+ version "1.1.0-beta4"
+ resolved "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta4.tgz#ee74d909c9f422ffc7f675e1092529673f8906ec"
+ integrity sha512-CgffN9AxVtH4g7vDxtanm2qaR7jw3oet9r+ArzziGiFvmds9SdR3gXkZF0fqZWSxhTHZusJWvsuKvRv+5O2K8A==
dependencies:
- node-addon-api "^7.1.0"
+ nan "^2.17.0"

View File

@@ -0,0 +1,42 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 595d0ce..2e94d99 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -375,10 +375,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
- if (platform === 'linux' || platform === 'alpine') {
- result = es.merge(result,
- gulp.src(`resources/server/bin/helpers/check-requirements-linux.sh`, { base: '.' })
- .pipe(rename(`bin/helpers/check-requirements.sh`))
- .pipe(util.setExecutableBit())
- );
- }
-
return result.pipe(vfs.dest(destination));
diff --git a/resources/server/bin/code-server-linux.sh b/resources/server/bin/code-server-linux.sh
index e3d96bd..3df32df 100644
--- a/resources/server/bin/code-server-linux.sh
+++ b/resources/server/bin/code-server-linux.sh
@@ -11,22 +11,2 @@ ROOT="$(dirname "$(dirname "$(readlink -f "$0")")")"
-# Do not remove this check.
-# Provides a way to skip the server requirements check from
-# outside the install flow. A system process can create this
-# file before the server is downloaded and installed.
-skip_check=0
-if [ -f "/tmp/vscode-skip-server-requirements-check" ]; then
- echo "!!! WARNING: Skipping server pre-requisite check !!!"
- echo "!!! Server stability is not guaranteed. Proceed at your own risk. !!!"
- skip_check=1
-fi
-
-# Check platform requirements
-if [ "$(echo "$@" | grep -c -- "--skip-requirements-check")" -eq 0 ] && [ $skip_check -eq 0 ]; then
- $ROOT/bin/helpers/check-requirements.sh
- exit_code=$?
- if [ $exit_code -ne 0 ]; then
- exit $exit_code
- fi
-fi
-
"$ROOT/node" ${INSPECT:-} "$ROOT/out/server-main.js" "$@"

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

@@ -0,0 +1,9 @@
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index c9e57db..ef27166 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: el7
Summary: Code editing. Redefined.

View File

@@ -0,0 +1,102 @@
diff --git a/build/lib/fetch.js b/build/lib/fetch.js
index ba23e78..9b8a5a1 100644
--- a/build/lib/fetch.js
+++ b/build/lib/fetch.js
@@ -13,2 +13,3 @@ const crypto = require("crypto");
const through2 = require("through2");
+const fetch = require("node-fetch");
function fetchUrls(urls, options) {
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index d637fce..02cb192 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -14,2 +14,3 @@ const crypto_1 = require("crypto");
const ansiColors = require("ansi-colors");
+const fetch = require("node-fetch");
// Based on https://source.chromium.org/chromium/chromium/src/+/main:build/linux/sysroot_scripts/install-sysroot.py.
diff --git a/package.json b/package.json
index f734771..0d118ad 100644
--- a/package.json
+++ b/package.json
@@ -172,3 +172,3 @@
"gulp-plumber": "^1.2.0",
- "gulp-postcss": "^9.1.0",
+ "gulp-postcss": "9.0.1",
"gulp-rename": "^1.2.0",
diff --git a/yarn.lock b/yarn.lock
index 7dcbe6f..fc13bba 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4123,9 +4123,2 @@ fancy-log@^1.3.2, fancy-log@^1.3.3:
-fancy-log@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-2.0.0.tgz#cad207b8396d69ae4796d74d17dff5f68b2f7343"
- integrity sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==
- dependencies:
- color-support "^1.1.3"
-
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
@@ -4957,10 +4950,10 @@ gulp-plumber@^1.2.0:
-gulp-postcss@^9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-9.1.0.tgz#0d317134d40d9565f265bd32c7f71605a54cadd8"
- integrity sha512-a843mcKPApfeI987uqQbc8l50xXeWIXBsiVvYxtCI5XtVAMzTi/HnU2qzQpGwkB/PAOfsLV8OsqDv2iJZ9qvdw==
+gulp-postcss@9.0.1:
+ version "9.0.1"
+ resolved "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz#d43caa2f2ce1018f889f7c1296faf82e9928b66f"
+ integrity sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==
dependencies:
- fancy-log "^2.0.0"
- plugin-error "^2.0.1"
- postcss-load-config "^5.0.0"
+ fancy-log "^1.3.3"
+ plugin-error "^1.0.1"
+ postcss-load-config "^3.0.0"
vinyl-sourcemaps-apply "^0.2.1"
@@ -6172,2 +6165,7 @@ liftoff@^3.1.0:
+lilconfig@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
lilconfig@^3.0.0:
@@ -7592,9 +7590,2 @@ plugin-error@^1.0.0, plugin-error@^1.0.1:
-plugin-error@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-2.0.1.tgz#f2ac92bac8c85e3e23492d76d0c3ca12f30eb00b"
- integrity sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg==
- dependencies:
- ansi-colors "^1.0.1"
-
posix-character-classes@^0.1.0:
@@ -7650,9 +7641,9 @@ postcss-discard-overridden@^6.0.1:
-postcss-load-config@^5.0.0:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-5.0.2.tgz#3d4261d616428e3d6e41c8236c3e456c0f49266f"
- integrity sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==
+postcss-load-config@^3.0.0:
+ version "3.1.4"
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
+ integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
dependencies:
- lilconfig "^3.0.0"
- yaml "^2.3.4"
+ lilconfig "^2.0.5"
+ yaml "^1.10.2"
@@ -10299,6 +10290,6 @@ yallist@^4.0.0:
-yaml@^2.3.4:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2"
- integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==
+yaml@^1.10.2:
+ version "1.10.2"
+ resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==

View File

@@ -0,0 +1,14 @@
diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
index f07c0ba..bd9aac1 100755
--- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
+++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
@@ -36,3 +36,3 @@ for file in $files; do
if [[ "$glibc_version" != "$EXPECTED_GLIBC_VERSION" ]]; then
- echo "Error: File $file has dependency on GLIBC > $EXPECTED_GLIBC_VERSION"
+ echo "Error: File $file has dependency on GLIBC($glibc_version) != $EXPECTED_GLIBC_VERSION"
exit 1
@@ -40,3 +40,3 @@ for file in $files; do
if [[ "$glibcxx_version" != "$EXPECTED_GLIBCXX_VERSION" ]]; then
- echo "Error: File $file has dependency on GLIBCXX > $EXPECTED_GLIBCXX_VERSION"
+ echo "Error: File $file has dependency on GLIBCXX($glibcxx_version) != $EXPECTED_GLIBCXX_VERSION"
exit 1

View File

@@ -0,0 +1,17 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index 72dd74f..0f70d8c 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -55,10 +55,6 @@ function yarnInstall(dir, opts) {
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64' || process.env['npm_config_arch'] === 'arm') {
+ if (process.env['npm_config_arch'] === 'arm64' || process.env['npm_config_arch'] === 'arm' || process.env['npm_config_arch'] === 'ppc64' || process.env['npm_config_arch'] === 'riscv64') {
run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
}
- if (process.env['npm_config_arch'] === 'arm') {
- run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-e', 'npm_config_arch', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/home/builduser`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/home/builduser/.netrc`, process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'yarn', '--cwd', dir, ...args], opts);
- } else {
- run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-e', 'npm_config_arch', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/root/vscode`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/root/.netrc`, process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'yarn', '--cwd', dir, ...args], opts);
- }
+ run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-e', 'npm_config_arch', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/root/vscode`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/root/.netrc`, process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'yarn', '--cwd', dir, ...args], opts);
run('sudo', ['chown', '-R', `${userinfo.uid}:${userinfo.gid}`, `${dir}/node_modules`], opts);

View File

@@ -1,91 +1,135 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index e42a6b12b1f..854445538ba 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -7,6 +7,10 @@ if [ "$SYSROOT_ARCH" == "x64" ]; then
SYSROOT_ARCH="amd64"
fi
+if [ "$npm_config_arch" == "riscv64" ] || [ "$npm_config_arch" == "ppc64" ]; then
+ exit 0
+fi
+
export VSCODE_SYSROOT_DIR=$PWD/.build/sysroots
SYSROOT_ARCH="$SYSROOT_ARCH" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 2a0c236eaf0..be2528c5c48 100644
index c2b81d0cf7c..fa5de83a076 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -46,6 +46,7 @@ const BUILD_TARGETS = [
@@ -44,6 +44,8 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
// legacy: we use to ship only one alpine so it was put in the arch, but now we ship
// multiple alpine images and moved to a better model (alpine as the platform)
@@ -210,6 +212,14 @@ function nodejs(platform, arch) {
.pipe(rename('node.exe'));
case 'darwin':
case 'linux':
+ if (arch === 'riscv64') {
+ return fetchUrls(`/download/release/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`,
+ { base: 'https://unofficial-builds.nodejs.org', checksumSha256 }).pipe(flatmap(stream => stream.pipe(gunzip()).pipe
+ (untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
+ .pipe(rename('node'));
+ }
return (product.nodejsRepository !== 'https://nodejs.org' ?
fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: `node-v${nodeVersion}${glibcPrefix}-${platform}-${arch}.tar.gz`, checksumSha256 }) :
fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 62691fcc8cf..dbefb8549f1 100644
index 6f8144b0954..8a8195e9b66 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -24,6 +24,7 @@ const BUILD_TARGETS = [
@@ -24,6 +24,8 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
BUILD_TARGETS.forEach(buildTarget => {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 0ca2cfd60a9..18a60efc405 100644
index e1507e0424f..80ed8d91a41 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -426,6 +426,7 @@ const BUILD_TARGETS = [
@@ -429,6 +429,8 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
BUILD_TARGETS.forEach(buildTarget => {
const dashed = (str) => (str ? `-${str}` : ``);
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 90f75ccfabd..a9fe7715da9 100644
index 8c2b62f7b2a..a58ec3d7725 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -29,7 +29,7 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
@@ -28,7 +28,7 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
* @param {string} arch
*/
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64le' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
function prepareDebPackage(arch) {
@@ -136,7 +136,7 @@ function getRpmBuildPath(rpmArch) {
@@ -134,7 +134,7 @@ function getRpmBuildPath(rpmArch) {
* @param {string} arch
*/
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[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];
}
/**
@@ -292,6 +292,7 @@ const BUILD_TARGETS = [
@@ -295,6 +295,8 @@ const BUILD_TARGETS = [
{ arch: 'x64' },
{ arch: 'armhf' },
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
+ { arch: 'riscv64' },
];
BUILD_TARGETS.forEach(({ arch }) => {
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index b13d3cdfaaf..650e4de3894 100644
index 92f8065f262..529c1ec08bd 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -52,6 +52,9 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, sysroo
case 'arm64':
cmd.push(`-l${sysroot}/usr/lib/aarch64-linux-gnu`,
`-l${sysroot}/lib/aarch64-linux-gnu`);
+ case 'ppc64le':
+ cmd.push(`-l${sysroot}/usr/lib/ppc64le-linux-gnu`,
+ `-l${sysroot}/lib/ppc64le-linux-gnu`);
@@ -59,6 +59,18 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
`-l${vscodeSysroot}/usr/lib/aarch64-linux-gnu`,
`-l${vscodeSysroot}/lib/aarch64-linux-gnu`);
break;
+ case 'ppc64le':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/ppc64le-linux-gnu`,
+ `-l${chromiumSysroot}/lib/ppc64le-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/ppc64le-linux-gnu`,
+ `-l${vscodeSysroot}/lib/ppc64le-linux-gnu`);
+ 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;
}
cmd.push(`-l${sysroot}/usr/lib`);
cmd.push(`-l${chromiumSysroot}/usr/lib`);
cmd.push(`-L${vscodeSysroot}/debian/libxkbfile1/DEBIAN/shlibs`);
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 52aa56d960b..857589ec9ff 100644
index 3d6c2eba6e9..96e7707542e 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -136,5 +136,44 @@ export const referenceGeneratedDepsByArch = {
'libxkbfile1',
@@ -140,5 +140,84 @@ export const referenceGeneratedDepsByArch = {
'libxkbfile1 (>= 1:1.1.0)',
'libxrandr2',
'xdg-utils (>= 1.0.2)'
- ]
+ ],
+ 'ppc64le': [
+ 'ca-certificates',
@@ -125,10 +169,70 @@ index 52aa56d960b..857589ec9ff 100644
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
]
+ ],
+ '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.ts b/build/linux/debian/install-sysroot.ts
index aa417dcc722..2e0eaa34f4f 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -151,6 +151,15 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
expectedName = `arm-rpi-linux-gnueabihf${prefix}.tar.gz`;
triple = 'arm-rpi-linux-gnueabihf';
break;
+ case 'riscv64':
+ expectedName = `DUMMY`;
+ triple = 'riscv64-linux-gnu';
+ break;
+ case 'ppc64le':
+ expectedName = `DUMMY`;
+ triple = 'ppc64le-linux-gnu';
+ break;
+
}
console.log(`Fetching ${expectedName} for ${triple}`);
const checksumSha256 = getVSCodeSysrootChecksum(expectedName);
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485ef128..356027a648b 100644
index e97485ef128..01b121bc928 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -3,8 +3,8 @@
@@ -136,129 +240,144 @@ index e97485ef128..356027a648b 100644
*--------------------------------------------------------------------------------------------*/
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64le';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64le' | 'riscv64';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64le'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index b03d8ea5963..2beceeac640 100644
index 4bec13d6e86..51754e9203f 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -209,6 +209,7 @@ pub enum Platform {
LinuxX64,
LinuxARM64,
@@ -214,6 +214,8 @@ pub enum Platform {
LinuxARM64Legacy,
LinuxARM32,
LinuxARM32Legacy,
+ LinuxPPC64LE,
+ LinuxRISCV64,
DarwinX64,
DarwinARM64,
WindowsX64,
@@ -222,6 +223,7 @@ impl Platform {
@@ -227,6 +229,8 @@ impl Platform {
Platform::LinuxX64 => Some("linux-x64".to_owned()),
Platform::LinuxARM64 => Some("linux-arm64".to_owned()),
Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
+ Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
+ Platform::LinuxRISCV64 => Some("linux-riscv64".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
Platform::DarwinARM64 => Some("darwin-arm64".to_owned()),
Platform::WindowsX64 => Some("win32-x64-archive".to_owned()),
@@ -237,6 +239,7 @@ impl Platform {
Platform::LinuxX64 => "server-linux-x64",
Platform::LinuxARM64 => "server-linux-arm64",
@@ -245,6 +249,8 @@ impl Platform {
Platform::LinuxARM64Legacy => "server-linux-legacy-arm64",
Platform::LinuxARM32 => "server-linux-armhf",
Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
+ Platform::LinuxPPC64LE => "server-linux-ppc64le",
+ Platform::LinuxRISCV64 => "server-linux-riscv64",
Platform::DarwinX64 => "server-darwin",
Platform::DarwinARM64 => "server-darwin-arm64",
Platform::WindowsX64 => "server-win32-x64",
@@ -253,6 +256,7 @@ impl Platform {
Platform::LinuxX64 => "cli-linux-x64",
Platform::LinuxARM64 => "cli-linux-arm64",
@@ -264,6 +270,8 @@ impl Platform {
Platform::LinuxARM64Legacy => "cli-linux-arm64",
Platform::LinuxARM32 => "cli-linux-armhf",
Platform::LinuxARM32Legacy => "cli-linux-armhf",
+ Platform::LinuxPPC64LE => "cli-linux-ppc64le",
+ Platform::LinuxRISCV64 => "cli-linux-riscv64",
Platform::DarwinX64 => "cli-darwin-x64",
Platform::DarwinARM64 => "cli-darwin-arm64",
Platform::WindowsARM64 => "cli-win32-arm64",
@@ -285,6 +289,8 @@ impl Platform {
@@ -296,6 +304,10 @@ impl Platform {
Some(Platform::LinuxARM32)
} else if cfg!(all(target_os = "linux", target_arch = "aarch64")) {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "ppc64le")) {
+ 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")) {
Some(Platform::DarwinX64)
} else if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
@@ -309,6 +315,7 @@ impl fmt::Display for Platform {
Platform::LinuxX64 => "LinuxX64",
Platform::LinuxARM64 => "LinuxARM64",
@@ -323,6 +335,8 @@ impl fmt::Display for Platform {
Platform::LinuxARM64Legacy => "LinuxARM64Legacy",
Platform::LinuxARM32 => "LinuxARM32",
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
Platform::DarwinARM64 => "DarwinARM64",
Platform::WindowsX64 => "WindowsX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index d8cbd1b91dd..191d312e994 100644
index 20a5bc94b37..b2f81257550 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -64,6 +64,8 @@ impl PreReqChecker {
Platform::LinuxX64
} else if cfg!(target_arch = "arm") {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LE
} else {
Platform::LinuxARM64
});
diff --git a/src/main.js b/src/main.js
index d986fee6f6d..02cd26a4d93 100644
--- a/src/main.js
+++ b/src/main.js
@@ -405,6 +405,7 @@ function configureCrashReporter() {
}
}
} else if (isLinux) {
+
submitURL = appCenter['linux-x64'];
}
submitURL = submitURL.concat('&uid=', crashReporterId, '&iid=', crashReporterId, '&sid=', crashReporterId);
@@ -73,6 +73,10 @@ impl PreReqChecker {
Platform::LinuxX64
} else if cfg!(target_arch = "arm") {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LE
+ } else if cfg!(target_arch = "riscv64") {
+ Platform::LinuxRISCV64
} else {
Platform::LinuxARM64
});
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 079557869e3..2230f692dd3 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -50,6 +50,7 @@ case $ARCH in
LDCONFIG_ARCH="AArch64"
fi
;;
+ riscv64) LDCONFIG_ARCH="RISC-V";;
esac
if [ "$OS_ID" != "alpine" ]; then
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index d407374f6ee..636da84fd62 100644
index 9dae82eba07..5302e4354ac 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -28,6 +28,7 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
@@ -33,6 +33,8 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_X64: return 'Linux 64 bit';
case TargetPlatform.LINUX_ARM64: return 'Linux ARM 64';
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PPC64LE';
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
case TargetPlatform.ALPINE_X64: return 'Alpine Linux 64 bit';
case TargetPlatform.ALPINE_ARM64: return 'Alpine ARM 64';
@@ -52,6 +53,7 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
@@ -56,6 +58,8 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_X64: return TargetPlatform.LINUX_X64;
case TargetPlatform.LINUX_ARM64: return TargetPlatform.LINUX_ARM64;
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
case TargetPlatform.ALPINE_X64: return TargetPlatform.ALPINE_X64;
case TargetPlatform.ALPINE_ARM64: return TargetPlatform.ALPINE_ARM64;
@@ -90,6 +92,9 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
@@ -91,6 +95,12 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
if (arch === 'arm') {
return TargetPlatform.LINUX_ARMHF;
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
+ if (arch === 'riscv64') {
+ return TargetPlatform.LINUX_RISCV64;
+ }
return TargetPlatform.UNKNOWN;
case 'alpine':
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index cfa0e3296f0..d38a82114e3 100644
index 331aba1b55f..cade78e6557 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -296,6 +296,7 @@ export const enum TargetPlatform {
@@ -303,6 +303,8 @@ export const enum TargetPlatform {
LINUX_X64 = 'linux-x64',
LINUX_ARM64 = 'linux-arm64',
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',
ALPINE_X64 = 'alpine-x64',
ALPINE_ARM64 = 'alpine-arm64',

View File

@@ -1,30 +1,26 @@
diff --git a/build/lib/compilation.js b/build/lib/compilation.js
index 63ddeb2..31d2f35 100644
index 2270e05..1bd7b90 100644
--- a/build/lib/compilation.js
+++ b/build/lib/compilation.js
@@ -21,3 +21,2 @@ const File = require("vinyl");
const task = require("./task");
-const mangleTypeScript_1 = require("./mangleTypeScript");
const watch = require('./watch');
@@ -104,24 +103,3 @@ function compileTask(src, out, build, options = {}) {
@@ -104,24 +104,3 @@ function compileTask(src, out, build, options = {}) {
}
- // mangle: TypeScript to TypeScript
- let mangleStream = es.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new mangleTypeScript_1.Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data));
- let ts2tsMangler = new index_1.Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = es.through(function write(data) {
- mangleStream = es.through(async function write(data) {
- const tsNormalPath = ts.normalizePath(data.path);
- const newContents = newContentsByFileName.get(tsNormalPath);
- const newContents = (await newContentsByFileName).get(tsNormalPath);
- if (newContents !== undefined) {
- data.contents = Buffer.from(newContents.out);
- data.sourceMap = newContents.sourceMap && JSON.parse(newContents.sourceMap);
- }
- this.push(data);
- }, function end() {
- this.push(null);
- }, async function end() {
- // free resources
- newContentsByFileName.clear();
- (await newContentsByFileName).clear();
- this.push(null);
- ts2tsMangler = undefined;
- });
- }
@@ -32,34 +28,30 @@ index 63ddeb2..31d2f35 100644
- .pipe(mangleStream)
.pipe(generator.stream)
diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts
index d5cd196..afe16d3 100644
index d5da3f1..fa46962 100644
--- a/build/lib/compilation.ts
+++ b/build/lib/compilation.ts
@@ -19,4 +19,2 @@ import * as File from 'vinyl';
import * as task from './task';
-import { Mangler } from './mangleTypeScript';
-import { RawSourceMap } from 'source-map';
const watch = require('./watch');
@@ -123,26 +121,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
@@ -123,27 +123,3 @@ export function compileTask(src: string, out: string, build: boolean, options: {
- // mangle: TypeScript to TypeScript
- let mangleStream = es.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data));
- let ts2tsMangler = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = es.through(function write(data: File & { sourceMap?: RawSourceMap }) {
- mangleStream = es.through(async function write(data: File & { sourceMap?: RawSourceMap }) {
- type TypeScriptExt = typeof ts & { normalizePath(path: string): string };
- const tsNormalPath = (<TypeScriptExt>ts).normalizePath(data.path);
- const newContents = newContentsByFileName.get(tsNormalPath);
- const newContents = (await newContentsByFileName).get(tsNormalPath);
- if (newContents !== undefined) {
- data.contents = Buffer.from(newContents.out);
- data.sourceMap = newContents.sourceMap && JSON.parse(newContents.sourceMap);
- }
- this.push(data);
- }, function end() {
- this.push(null);
- }, async function end() {
- // free resources
- newContentsByFileName.clear();
- (await newContentsByFileName).clear();
-
- this.push(null);
- (<any>ts2tsMangler) = undefined;
- });
- }

View File

@@ -1,8 +1,31 @@
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
index 74f9939..341ef06 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
@@ -79,3 +79,3 @@ ${this._data.issueDescription}
${this.getExtensionVersion()}
-VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
+VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
OS version: ${this._data.versionInfo && this._data.versionInfo.os}
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
index 96ec5f7..5c091d9 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
@@ -18,3 +18,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
comment: [
- '{Locked="<a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
+ '{Locked="<a href=\"https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
'{Locked="</a>"}'
@@ -22,3 +22,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
},
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
+ 'Before you report an issue here please <a href="https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
);
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterService.ts b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
index d0c4789..9e6bfc5 100644
index d7f98f6..ed54042 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterService.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
@@ -455,5 +455,5 @@ export class IssueReporter extends Disposable {
@@ -517,5 +517,5 @@ export class IssueReporter extends Disposable {
- private searchVSCodeIssues(title: string, issueDescription?: string): void {
+ private searchVSCodeIssues(title: string, _issueDescription?: string): void {
@@ -10,7 +33,7 @@ index d0c4789..9e6bfc5 100644
- this.searchDuplicates(title, issueDescription);
+ this.searchGitHub('VSCodium/vscodium', title);
} else {
@@ -549,33 +549,2 @@ export class IssueReporter extends Disposable {
@@ -611,33 +611,2 @@ export class IssueReporter extends Disposable {
- @debounce(300)
- private searchDuplicates(title: string, body?: string): void {
@@ -26,7 +49,7 @@ index d0c4789..9e6bfc5 100644
- })
- };
-
- window.fetch(url, init).then((response) => {
- fetch(url, init).then((response) => {
- response.json().then(result => {
- this.clearSearchResults();
-
@@ -44,34 +67,11 @@ index d0c4789..9e6bfc5 100644
- }
-
private displaySearchResults(results: SearchResult[]) {
@@ -667,3 +636,3 @@ export class IssueReporter extends Disposable {
@@ -729,3 +698,3 @@ export class IssueReporter extends Disposable {
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false));
+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false));
sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false));
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
index 98338df..6d2f581 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
@@ -77,3 +77,3 @@ ${this._data.issueDescription}
${this.getExtensionVersion()}
-VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
+VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
OS version: ${this._data.versionInfo && this._data.versionInfo.os}
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
index 0eedb21..c83e092 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
@@ -17,3 +17,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
comment: [
- '{Locked="<a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
+ '{Locked="<a href=\"https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
'{Locked="</a>"}'
@@ -21,3 +21,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
},
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
+ 'Before you report an issue here please <a href="https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
);
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
index 87839a6..49727fc 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts

View File

@@ -1,64 +1,9 @@
diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts
index 7cd4a84..7cbdf21 100644
--- a/src/vs/platform/update/common/update.ts
+++ b/src/vs/platform/update/common/update.ts
@@ -48,3 +48,4 @@ export const enum UpdateType {
Archive,
- Snap
+ Snap,
+ WindowsInstaller,
}
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index d45291e..4d8c5df 100644
index 4c49a75..7840d2a 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -41,5 +41,9 @@ function getUpdateType(): UpdateType {
if (typeof _updateType === 'undefined') {
- _updateType = fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
- ? UpdateType.Setup
- : UpdateType.Archive;
+ if (fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
+ _updateType = UpdateType.Setup;
+ } else if (path.basename(path.normalize(path.join(process.execPath, '..', '..'))) === 'Program Files') {
+ _updateType = UpdateType.WindowsInstaller;
+ } else {
+ _updateType = UpdateType.Archive;
+ }
}
@@ -89,6 +93,13 @@ export class Win32UpdateService extends AbstractUpdateService {
@@ -270,3 +270,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- if (getUpdateType() === UpdateType.Archive) {
- platform += '-archive';
- } else if (this.productService.target === 'user') {
- platform += '-user';
+ switch (getUpdateType()) {
+ case UpdateType.Archive:
+ platform += '-archive';
+ break;
+ case UpdateType.WindowsInstaller:
+ platform += '-msi';
+ break;
+ default:
+ if (this.productService.target === 'user') {
+ platform += '-user';
+ }
}
@@ -243,6 +254,14 @@ export class Win32UpdateService extends AbstractUpdateService {
} else {
- spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- detached: true,
- stdio: ['ignore', 'ignore', 'ignore']
- });
+ const type = getUpdateType();
+ if (type == UpdateType.WindowsInstaller) {
+ spawn('msiexec.exe', ['/i', this.availableUpdate.packagePath], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ } else {
+ spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ }
}
- const fastUpdatesEnabled = this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
+ const fastUpdatesEnabled = getUpdateType() == UpdateType.Setup && this.configurationService.getValue('update.enableWindowsBackgroundUpdates');
const update: IUpdate = { version: 'unknown', productVersion: 'unknown' };

View File

@@ -0,0 +1,67 @@
diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts
index 0f79e17..97ea778 100644
--- a/src/vs/platform/update/common/update.ts
+++ b/src/vs/platform/update/common/update.ts
@@ -48,3 +48,4 @@ export const enum UpdateType {
Archive,
- Snap
+ Snap,
+ WindowsInstaller,
}
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index 99bf807..27e77f0 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -41,5 +41,9 @@ function getUpdateType(): UpdateType {
if (typeof _updateType === 'undefined') {
- _updateType = fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
- ? UpdateType.Setup
- : UpdateType.Archive;
+ if (fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
+ _updateType = UpdateType.Setup;
+ } else if (path.basename(path.normalize(path.join(process.execPath, '..', '..'))) === 'Program Files') {
+ _updateType = UpdateType.WindowsInstaller;
+ } else {
+ _updateType = UpdateType.Archive;
+ }
}
@@ -103,6 +107,16 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- if (getUpdateType() === UpdateType.Archive) {
- platform += '-archive';
- } else if (this.productService.target === 'user') {
- platform += '-user';
+ switch (getUpdateType()) {
+ case UpdateType.Archive:
+ platform += '-archive';
+ break;
+ case UpdateType.WindowsInstaller:
+ platform += '-msi';
+ break;
+ default:
+ if (this.productService.target === 'user') {
+ platform += '-user';
+ }
+ else {
+ platform += '-system';
+ }
}
@@ -257,6 +271,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
} else {
- spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- detached: true,
- stdio: ['ignore', 'ignore', 'ignore']
- });
+ const type = getUpdateType();
+ if (type == UpdateType.WindowsInstaller) {
+ spawn('msiexec.exe', ['/i', this.availableUpdate.packagePath], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ } else {
+ spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ }
}

View File

@@ -1,444 +1,35 @@
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
index 3662719..5bf55e0 100644
--- a/extensions/github-authentication/src/githubServer.ts
+++ b/extensions/github-authentication/src/githubServer.ts
@@ -6,4 +6,2 @@
import * as vscode from 'vscode';
-import * as path from 'path';
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
import { ExperimentationTelemetry } from './common/experimentationService';
@@ -11,10 +9,5 @@ import { AuthProviderType, UriEventHandler } from './github';
import { Log } from './common/logger';
-import { isSupportedClient, isSupportedTarget } from './common/env';
-import { LoopbackAuthServer } from './node/authServer';
-import { crypto } from './node/crypto';
+import { isSupportedTarget } from './common/env';
import { fetching } from './node/fetch';
diff --git a/extensions/github-authentication/src/common/env.ts b/extensions/github-authentication/src/common/env.ts
index ebc4749..18fd732 100644
--- a/extensions/github-authentication/src/common/env.ts
+++ b/extensions/github-authentication/src/common/env.ts
@@ -7,21 +7,4 @@ import { AuthProviderType } from '../github';
-const CLIENT_ID = '01ab8ac9400c4e429b23';
-const GITHUB_TOKEN_URL = 'https://vscode.dev/codeExchangeProxyEndpoints/github/login/oauth/access_token';
-const VALID_DESKTOP_CALLBACK_SCHEMES = [
- 'vscode',
- 'vscode-insiders',
- // On Windows, some browsers don't seem to redirect back to OSS properly.
- // As a result, you get stuck in the auth flow. We exclude this from the
- // list until we can figure out a way to fix this behavior in browsers.
- // 'code-oss',
- 'vscode-wsl',
- 'vscode-exploration'
-];
-
// This is the error message that we throw if the login was cancelled for any reason. Extensions
@@ -23,3 +16,2 @@ const CANCELLATION_ERROR = 'Cancelled';
// These error messages are internal and should not be shown to the user in any way.
-const TIMED_OUT_ERROR = 'Timed out';
const USER_CANCELLATION_ERROR = 'User Cancelled';
@@ -27,5 +19,2 @@ const NETWORK_ERROR = 'network error';
-export function isSupportedClient(uri: Uri): boolean {
- return (
- VALID_DESKTOP_CALLBACK_SCHEMES.includes(uri.scheme) ||
- // vscode.dev & insiders.vscode.dev
- /(?:^|\.)vscode\.dev$/.test(uri.authority) ||
- // github.dev & codespaces
- /(?:^|\.)github\.dev$/.test(uri.authority)
- );
+export function isSupportedClient(_uri: Uri): boolean {
+ return false;
}
@@ -35,4 +18,4 @@ export function isSupportedTarget(type: AuthProviderType, gheUri?: Uri): boolean
-const REDIRECT_URL_STABLE = 'https://vscode.dev/redirect';
-const REDIRECT_URL_INSIDERS = 'https://insiders.vscode.dev/redirect';
-
export interface IGitHubServer {
@@ -37,9 +26,2 @@ export interface IGitHubServer {
-interface IGitHubDeviceCodeResponse {
- device_code: string;
- user_code: string;
- verification_uri: string;
- interval: number;
-}
-
async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise<string[]> {
@@ -70,8 +52,4 @@ export class GitHubServer implements IGitHubServer {
- private readonly _pendingNonces = new Map<string, string[]>();
- private readonly _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
private readonly _type: AuthProviderType;
- private _redirectEndpoint: string | undefined;
-
constructor(
@@ -79,3 +57,5 @@ export class GitHubServer implements IGitHubServer {
private readonly _telemetryReporter: ExperimentationTelemetry,
+ // @ts-ignore
private readonly _uriHandler: UriEventHandler,
+ // @ts-ignore
private readonly _extensionKind: vscode.ExtensionKind,
@@ -94,26 +74,2 @@ export class GitHubServer implements IGitHubServer {
- private async getRedirectEndpoint(): Promise<string> {
- if (this._redirectEndpoint) {
- return this._redirectEndpoint;
- }
- if (this._type === AuthProviderType.github) {
- const proxyEndpoints = await vscode.commands.executeCommand<{ [providerId: string]: string } | undefined>('workbench.getCodeExchangeProxyEndpoints');
- // If we are running in insiders vscode.dev, then ensure we use the redirect route on that.
- this._redirectEndpoint = REDIRECT_URL_STABLE;
- if (proxyEndpoints?.github && new URL(proxyEndpoints.github).hostname === 'insiders.vscode.dev') {
- this._redirectEndpoint = REDIRECT_URL_INSIDERS;
- }
- } else {
- // GHE only supports a single redirect endpoint, so we can't use
- // insiders.vscode.dev/redirect when we're running in Insiders, unfortunately.
- // Additionally, we make the assumption that this function will only be used
- // in flows that target supported GHE targets, not on-prem GHES. Because of this
- // assumption, we can assume that the GHE version used is at least 3.8 which is
- // the version that changed the redirect endpoint to this URI from the old
- // GitHub maintained server.
- this._redirectEndpoint = 'https://vscode.dev/redirect';
- }
- return this._redirectEndpoint;
- }
-
// TODO@joaomoreno TODO@TylerLeonhardt
@@ -129,68 +85,7 @@ export class GitHubServer implements IGitHubServer {
let userCancelled: boolean | undefined;
- const yes = vscode.l10n.t('Yes');
- const no = vscode.l10n.t('No');
- const promptToContinue = async (mode: string) => {
- if (userCancelled === undefined) {
- // We haven't had a failure yet so wait to prompt
- return;
- }
- const message = userCancelled
- ? vscode.l10n.t('Having trouble logging in? Would you like to try a different way? ({0})', mode)
- : vscode.l10n.t('You have not yet finished authorizing this extension to use GitHub. Would you like to try a different way? ({0})', mode);
- const result = await vscode.window.showWarningMessage(message, yes, no);
- if (result !== yes) {
- throw new Error(CANCELLATION_ERROR);
- }
- };
-
- const nonce: string = crypto.getRandomValues(new Uint32Array(2)).reduce((prev, curr) => prev += curr.toString(16), '');
- const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate?nonce=${encodeURIComponent(nonce)}`));
-
- const supportedClient = isSupportedClient(callbackUri);
- const supportedTarget = isSupportedTarget(this._type, this._ghesUri);
- if (supportedClient && supportedTarget) {
- try {
- return await this.doLoginWithoutLocalServer(scopes, nonce, callbackUri);
- } catch (e) {
- this._logger.error(e);
- userCancelled = e.message ?? e === USER_CANCELLATION_ERROR;
- }
- }
-
- // Starting a local server is only supported if:
- // 1. We are in a UI extension because we need to open a port on the machine that has the browser
- // 2. We are in a node runtime because we need to open a port on the machine
- // 3. code exchange can only be done with a supported target
- if (
- this._extensionKind === vscode.ExtensionKind.UI &&
- typeof navigator === 'undefined' &&
- supportedTarget
- ) {
- try {
- await promptToContinue(vscode.l10n.t('local server'));
- return await this.doLoginWithLocalServer(scopes);
- } catch (e) {
- userCancelled = this.processLoginError(e);
- }
- }
-
- // We only can use the Device Code flow when we have a full node environment because of CORS.
- if (typeof navigator === 'undefined') {
- try {
- await promptToContinue(vscode.l10n.t('device code'));
- return await this.doLoginDeviceCodeFlow(scopes);
- } catch (e) {
- userCancelled = this.processLoginError(e);
- }
- }
- // In a supported environment, we can't use PAT auth because we use this auth for Settings Sync and it doesn't support PATs.
- // With that said, GitHub Enterprise isn't used by Settings Sync so we can use PATs for that.
- if (!supportedClient || this._type === AuthProviderType.githubEnterprise) {
- try {
- await promptToContinue(vscode.l10n.t('personal access token'));
- return await this.doLoginWithPat(scopes);
- } catch (e) {
- userCancelled = this.processLoginError(e);
- }
+ try {
+ return await this.doLoginWithPat(scopes);
+ } catch (e) {
+ userCancelled = this.processLoginError(e);
}
@@ -200,136 +95,2 @@ export class GitHubServer implements IGitHubServer {
- private async doLoginWithoutLocalServer(scopes: string, nonce: string, callbackUri: vscode.Uri): Promise<string> {
- this._logger.info(`Trying without local server... (${scopes})`);
- return await vscode.window.withProgress<string>({
- location: vscode.ProgressLocation.Notification,
- title: vscode.l10n.t({
- message: 'Signing in to {0}...',
- args: [this.baseUri.authority],
- comment: ['The {0} will be a url, e.g. github.com']
- }),
- cancellable: true
- }, async (_, token) => {
- const existingNonces = this._pendingNonces.get(scopes) || [];
- this._pendingNonces.set(scopes, [...existingNonces, nonce]);
- const redirectUri = await this.getRedirectEndpoint();
- const searchParams = new URLSearchParams([
- ['client_id', CLIENT_ID],
- ['redirect_uri', redirectUri],
- ['scope', scopes],
- ['state', encodeURIComponent(callbackUri.toString(true))]
- ]);
-
- const uri = vscode.Uri.parse(this.baseUri.with({
- path: '/login/oauth/authorize',
- query: searchParams.toString()
- }).toString(true));
- await vscode.env.openExternal(uri);
-
- // Register a single listener for the URI callback, in case the user starts the login process multiple times
- // before completing it.
- let codeExchangePromise = this._codeExchangePromises.get(scopes);
- if (!codeExchangePromise) {
- codeExchangePromise = promiseFromEvent(this._uriHandler!.event, this.handleUri(scopes));
- this._codeExchangePromises.set(scopes, codeExchangePromise);
- }
-
- try {
- return await Promise.race([
- codeExchangePromise.promise,
- new Promise<string>((_, reject) => setTimeout(() => reject(TIMED_OUT_ERROR), 300_000)), // 5min timeout
- promiseFromEvent<any, any>(token.onCancellationRequested, (_, __, reject) => { reject(USER_CANCELLATION_ERROR); }).promise
- ]);
- } finally {
- this._pendingNonces.delete(scopes);
- codeExchangePromise?.cancel.fire();
- this._codeExchangePromises.delete(scopes);
- }
- });
- }
-
- private async doLoginWithLocalServer(scopes: string): Promise<string> {
- this._logger.info(`Trying with local server... (${scopes})`);
- return await vscode.window.withProgress<string>({
- location: vscode.ProgressLocation.Notification,
- title: vscode.l10n.t({
- message: 'Signing in to {0}...',
- args: [this.baseUri.authority],
- comment: ['The {0} will be a url, e.g. github.com']
- }),
- cancellable: true
- }, async (_, token) => {
- const redirectUri = await this.getRedirectEndpoint();
- const searchParams = new URLSearchParams([
- ['client_id', CLIENT_ID],
- ['redirect_uri', redirectUri],
- ['scope', scopes],
- ]);
-
- const loginUrl = this.baseUri.with({
- path: '/login/oauth/authorize',
- query: searchParams.toString()
- });
- const server = new LoopbackAuthServer(path.join(__dirname, '../media'), loginUrl.toString(true));
- const port = await server.start();
-
- let codeToExchange;
- try {
- vscode.env.openExternal(vscode.Uri.parse(`http://127.0.0.1:${port}/signin?nonce=${encodeURIComponent(server.nonce)}`));
- const { code } = await Promise.race([
- server.waitForOAuthResponse(),
- new Promise<any>((_, reject) => setTimeout(() => reject(TIMED_OUT_ERROR), 300_000)), // 5min timeout
- promiseFromEvent<any, any>(token.onCancellationRequested, (_, __, reject) => { reject(USER_CANCELLATION_ERROR); }).promise
- ]);
- codeToExchange = code;
- } finally {
- setTimeout(() => {
- void server.stop();
- }, 5000);
- }
-
- const accessToken = await this.exchangeCodeForToken(codeToExchange);
- return accessToken;
- });
- }
-
- private async doLoginDeviceCodeFlow(scopes: string): Promise<string> {
- this._logger.info(`Trying device code flow... (${scopes})`);
-
- // Get initial device code
- const uri = this.baseUri.with({
- path: '/login/device/code',
- query: `client_id=${CLIENT_ID}&scope=${scopes}`
- });
- const result = await fetching(uri.toString(true), {
- method: 'POST',
- headers: {
- Accept: 'application/json'
- }
- });
- if (!result.ok) {
- throw new Error(`Failed to get one-time code: ${await result.text()}`);
- }
-
- const json = await result.json() as IGitHubDeviceCodeResponse;
-
- const button = vscode.l10n.t('Copy & Continue to GitHub');
- const modalResult = await vscode.window.showInformationMessage(
- vscode.l10n.t({ message: 'Your Code: {0}', args: [json.user_code], comment: ['The {0} will be a code, e.g. 123-456'] }),
- {
- modal: true,
- detail: vscode.l10n.t('To finish authenticating, navigate to GitHub and paste in the above one-time code.')
- }, button);
-
- if (modalResult !== button) {
- throw new Error(USER_CANCELLATION_ERROR);
- }
-
- await vscode.env.clipboard.writeText(json.user_code);
-
- const uriToOpen = await vscode.env.asExternalUri(vscode.Uri.parse(json.verification_uri));
- await vscode.env.openExternal(uriToOpen);
-
- return await this.waitForDeviceCodeAccessToken(json);
- }
-
private async doLoginWithPat(scopes: string): Promise<string> {
@@ -373,124 +134,2 @@ export class GitHubServer implements IGitHubServer {
- private async waitForDeviceCodeAccessToken(
- json: IGitHubDeviceCodeResponse,
- ): Promise<string> {
- return await vscode.window.withProgress<string>({
- location: vscode.ProgressLocation.Notification,
- cancellable: true,
- title: vscode.l10n.t({
- message: 'Open [{0}]({0}) in a new tab and paste your one-time code: {1}',
- args: [json.verification_uri, json.user_code],
- comment: [
- 'The [{0}]({0}) will be a url and the {1} will be a code, e.g. 123-456',
- '{Locked="[{0}]({0})"}'
- ]
- })
- }, async (_, token) => {
- const refreshTokenUri = this.baseUri.with({
- path: '/login/oauth/access_token',
- query: `client_id=${CLIENT_ID}&device_code=${json.device_code}&grant_type=urn:ietf:params:oauth:grant-type:device_code`
- });
-
- // Try for 2 minutes
- const attempts = 120 / json.interval;
- for (let i = 0; i < attempts; i++) {
- await new Promise(resolve => setTimeout(resolve, json.interval * 1000));
- if (token.isCancellationRequested) {
- throw new Error(USER_CANCELLATION_ERROR);
- }
- let accessTokenResult;
- try {
- accessTokenResult = await fetching(refreshTokenUri.toString(true), {
- method: 'POST',
- headers: {
- Accept: 'application/json'
- }
- });
- } catch {
- continue;
- }
-
- if (!accessTokenResult.ok) {
- continue;
- }
-
- const accessTokenJson = await accessTokenResult.json();
-
- if (accessTokenJson.error === 'authorization_pending') {
- continue;
- }
-
- if (accessTokenJson.error) {
- throw new Error(accessTokenJson.error_description);
- }
-
- return accessTokenJson.access_token;
- }
-
- throw new Error(TIMED_OUT_ERROR);
- });
- }
-
- private handleUri: (scopes: string) => PromiseAdapter<vscode.Uri, string> =
- (scopes) => (uri, resolve, reject) => {
- const query = new URLSearchParams(uri.query);
- const code = query.get('code');
- const nonce = query.get('nonce');
- if (!code) {
- reject(new Error('No code'));
- return;
- }
- if (!nonce) {
- reject(new Error('No nonce'));
- return;
- }
-
- const acceptedNonces = this._pendingNonces.get(scopes) || [];
- if (!acceptedNonces.includes(nonce)) {
- // A common scenario of this happening is if you:
- // 1. Trigger a sign in with one set of scopes
- // 2. Before finishing 1, you trigger a sign in with a different set of scopes
- // In this scenario we should just return and wait for the next UriHandler event
- // to run as we are probably still waiting on the user to hit 'Continue'
- this._logger.info('Nonce not found in accepted nonces. Skipping this execution...');
- return;
- }
-
- resolve(this.exchangeCodeForToken(code));
- };
-
- private async exchangeCodeForToken(code: string): Promise<string> {
- this._logger.info('Exchanging code for token...');
-
- const proxyEndpoints: { [providerId: string]: string } | undefined = await vscode.commands.executeCommand('workbench.getCodeExchangeProxyEndpoints');
- const endpointUrl = proxyEndpoints?.github ? `${proxyEndpoints.github}login/oauth/access_token` : GITHUB_TOKEN_URL;
-
- const body = new URLSearchParams([['code', code]]);
- if (this._type === AuthProviderType.githubEnterprise) {
- body.append('github_enterprise', this.baseUri.toString(true));
- body.append('redirect_uri', await this.getRedirectEndpoint());
- }
- const result = await fetching(endpointUrl, {
- method: 'POST',
- headers: {
- Accept: 'application/json',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'Content-Length': body.toString()
-
- },
- body: body.toString()
- });
-
- if (result.ok) {
- const json = await result.json();
- this._logger.info('Token exchange success!');
- return json.access_token;
- } else {
- const text = await result.text();
- const error = new Error(text);
- error.name = 'GitHubTokenExchangeError';
- throw error;
- }
- }
-
private getServerUri(path: string = '') {
diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
index ce04327..e66a7f5 100644
--- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
+++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
@@ -355,3 +355,3 @@ export class AccountsActivityActionViewItem extends MenuActivityActionViewItem {
- if (providers.length && !menus.length) {
+ if (!menus.length) {
const noAccountsAvailableAction = disposables.add(new Action('noAccountsAvailable', localize('noAccounts', "You are not signed in to any accounts"), undefined, false));
diff --git a/src/vs/workbench/services/authentication/browser/authenticationService.ts b/src/vs/workbench/services/authentication/browser/authenticationService.ts
index 5285663..08f9e42 100644
--- a/src/vs/workbench/services/authentication/browser/authenticationService.ts
+++ b/src/vs/workbench/services/authentication/browser/authenticationService.ts
@@ -274,12 +274,2 @@ export class AuthenticationService extends Disposable implements IAuthentication
}
-
- if (!this._authenticationProviders.size) {
- placeholderMenuItem = MenuRegistry.appendMenuItem(MenuId.AccountsContext, {
- command: {
- id: 'noAuthenticationProviders',
- title: nls.localize('loading', "Loading..."),
- precondition: ContextKeyExpr.false()
- },
- });
- }
}
-export function isHostedGitHubEnterprise(uri: Uri): boolean {
- return /\.ghe\.com$/.test(uri.authority);
+export function isHostedGitHubEnterprise(_uri: Uri): boolean {
+ return false;
}

View File

@@ -1,9 +1,9 @@
diff --git a/build/win32/code.iss b/build/win32/code.iss
index d365ab1..1a02701 100644
index 44c9f2f..454aa09 100644
--- a/build/win32/code.iss
+++ b/build/win32/code.iss
@@ -28,3 +28,3 @@ ChangesEnvironment=true
ChangesAssociations=true
-MinVersion=6.2
-MinVersion=10.0
+MinVersion=6.1.7600
SourceDir={#SourceDir}

View File

@@ -1,8 +1,9 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
npm install -g checksum
@@ -29,7 +30,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then
security create-keychain -p mysecretpassword "${KEYCHAIN}"
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
security unlock-keychain -p mysecretpassword "${KEYCHAIN}"
security list-keychains -s `security list-keychains | xargs` "${KEYCHAIN}"
security list-keychains -s "$(security list-keychains | xargs)" "${KEYCHAIN}"
# security list-keychains -d user
# security show-keychain-info ${KEYCHAIN}
@@ -75,7 +76,7 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
@@ -98,11 +99,6 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
cd ..
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
echo "Moving ZIP"
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip" "assets\\${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
echo "Moving System EXE"
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
@@ -129,6 +125,10 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
else
cd vscode || { echo "'vscode' dir not found"; exit 1; }
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" && "${VSCODE_ARCH}" != "x64" ]]; then
SHOULD_BUILD_APPIMAGE="no"
fi
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
fi
@@ -143,6 +143,14 @@ else
cd ..
if [[ "${CI_BUILD}" == "no" ]]; then
. ./stores/snapcraft/build.sh
if [[ "${SKIP_ASSETS}" == "no" ]]; then
mv stores/snapcraft/build/*.snap assets/
fi
fi
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
echo "Building and moving TAR"
cd "VSCode-linux-${VSCODE_ARCH}"
@@ -179,8 +187,7 @@ fi
cd assets
for FILE in *
do
for FILE in *; do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi

29
prepare_src.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
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
}
mkdir -p assets
git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
cd assets
for FILE in *; do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi
done
cd ..

View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091,2154
set -e
@@ -21,82 +22,110 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
{ set +x; } 2>/dev/null
for file in ../patches/*.patch; do
if [ -f "${file}" ]; then
if [[ -f "${file}" ]]; then
echo applying patch: "${file}";
git apply --ignore-whitespace "${file}"
if [ $? -ne 0 ]; then
echo failed to apply patch "${file}" 1>&2
# grep '^+++' "${file}" | sed -e 's#+++ [ab]/#./vscode/#' | while read line; do shasum -a 256 "${line}"; done
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for file in ../patches/insider/*.patch; do
if [ -f "${file}" ]; then
if [[ -f "${file}" ]]; then
echo applying patch: "${file}";
git apply --ignore-whitespace "${file}"
if [ $? -ne 0 ]; then
echo failed to apply patch "${file}" 1>&2
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
fi
for file in ../patches/user/*.patch; do
if [ -f "${file}" ]; then
if [[ -f "${file}" ]]; then
echo applying user patch: "${file}";
git apply --ignore-whitespace "${file}"
if [ $? -ne 0 ]; then
echo failed to apply patch "${file}" 1>&2
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
if [[ -d "../patches/${OS_NAME}/" ]]; then
for file in "../patches/${OS_NAME}/"*.patch; do
if [[ -f "${file}" ]]; then
echo applying patch: "${file}";
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
fi
set -x
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${OS_NAME}" == "linux" ]]; then
export VSCODE_SKIP_NODE_VERSION_CHECK=1
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
fi
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --check-files --network-timeout 180000
elif [[ "${OS_NAME}" == "osx" ]]; then
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --network-timeout 180000
yarn postinstall
else
# TODO: Should be replaced with upstream URL once https://github.com/nodejs/node-gyp/pull/2825
# gets merged.
rm -rf .build/node-gyp
mkdir -p .build/node-gyp
cd .build/node-gyp
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 clone https://github.com/nodejs/node-gyp.git .
git checkout v10.0.1
npm install
npm_config_node_gyp="$( pwd )/bin/node-gyp.js"
export npm_config_node_gyp
cd ../..
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
elif [[ "${npm_config_arch}" == "ia32" ]]; then
# TODO: Should be replaced with upstream URL once https://github.com/nodejs/node-gyp/pull/2825
# gets merged.
rm -rf .build/node-gyp
mkdir -p .build/node-gyp
cd .build/node-gyp
git clone https://github.com/rzhao271/node-gyp.git .
git checkout 102b347da0c92c29f9c67df22e864e70249cf086
npm install
export npm_config_node_gyp=`pwd`
cd ../..
fi
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --network-timeout 180000
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --check-files --network-timeout 180000
fi
setpath() {
local jsonTmp
{ set +x; } 2>/dev/null
echo "$( cat "${1}.json" | jq --arg 'path' "${2}" --arg 'value' "${3}" 'setpath([$path]; $value)' )" > "${1}.json"
jsonTmp=$( jq --arg 'path' "${2}" --arg 'value' "${3}" 'setpath([$path]; $value)' "${1}.json" )
echo "${jsonTmp}" > "${1}.json"
set -x
}
setpath_json() {
local jsonTmp
{ set +x; } 2>/dev/null
echo "$( cat "${1}.json" | jq --arg 'path' "${2}" --argjson 'value' "${3}" 'setpath([$path]; $value)' )" > "${1}.json"
jsonTmp=$( jq --arg 'path' "${2}" --argjson 'value' "${3}" 'setpath([$path]; $value)' "${1}.json" )
echo "${jsonTmp}" > "${1}.json"
set -x
}
# product.json
cp product.json product.json.bak
cp product.json{,.bak}
setpath "product" "checksumFailMoreInfoUrl" "https://go.microsoft.com/fwlink/?LinkId=828886"
setpath "product" "documentationUrl" "https://go.microsoft.com/fwlink/?LinkID=533484#vscode"
@@ -165,20 +194,21 @@ else
setpath "product" "win32arm64UserAppId" "{{57FD70A5-1B8D-4875-9F40-C5553F094828}"
fi
echo "$( jq -s '.[0] * .[1]' product.json ../product.json )" > product.json
jsonTmp=$( jq -s '.[0] * .[1]' product.json ../product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp
cat product.json
# package.json
cp package.json package.json.bak
cp package.json{,.bak}
setpath "package" "version" $( echo "${RELEASE_VERSION}" | sed -n -E "s/^(.*)\.([0-9]+)(-insider)?$/\1/p" )
setpath "package" "release" $( echo "${RELEASE_VERSION}" | sed -n -E "s/^(.*)\.([0-9]+)(-insider)?$/\2/p" )
setpath "package" "version" "$( echo "${RELEASE_VERSION}" | sed -n -E "s/^(.*)\.([0-9]+)(-insider)?$/\1/p" )"
setpath "package" "release" "$( echo "${RELEASE_VERSION}" | sed -n -E "s/^(.*)\.([0-9]+)(-insider)?$/\2/p" )"
replace 's|Microsoft Corporation|VSCodium|' package.json
# announcements
replace "s|\\[\\/\\* BUILTIN_ANNOUNCEMENTS \\*\\/\\]|$( cat ../announcements-builtin.json | tr -d '\n' )|" src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
replace "s|\\[\\/\\* BUILTIN_ANNOUNCEMENTS \\*\\/\\]|$( tr -d '\n' < ../announcements-builtin.json )|" src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
../undo_telemetry.sh

View File

@@ -53,6 +53,9 @@
"VisualStudioExptTeam.vscodeintellicode-completions": [
"inlineCompletionsAdditions"
],
"ms-toolsai.datawrangler": [
"debugFocus"
],
"ms-vsliveshare.vsliveshare": [
"contribMenuBarHome",
"contribShareMenu",
@@ -80,13 +83,12 @@
"contribEditorContentMenu",
"quickPickSortByLabel",
"portsAttributes",
"handleIssueUri",
"testObserver",
"envShellEvent",
"quickPickItemTooltip",
"terminalDataWriteEvent",
"envCollectionWorkspace",
"saveEditor",
"envCollectionOptions"
"terminalExecuteCommandEvent",
"contribIssueReporter"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookMessaging"
@@ -121,10 +123,10 @@
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"shareProvider",
"scmActionButton",
"scmSelectedProvider",
"scmValidation",
"shareProvider",
"textSearchProvider",
"timeline"
],
@@ -143,7 +145,9 @@
"telemetry"
],
"ms-vscode.remote-server": [
"resolvers"
"resolvers",
"tunnels",
"contribViewsWelcome"
],
"ms-vscode.remote-explorer": [
"contribRemoteHelp",
@@ -153,6 +157,7 @@
"ms-vscode-remote.remote-containers": [
"contribEditSessions",
"resolvers",
"portsAttributes",
"tunnels",
"workspaceTrust",
"terminalDimensions",
@@ -168,16 +173,26 @@
"ms-vscode.lsif-browser": [
"documentFiltersExclusive"
],
"ms-vscode.vscode-speech": [
"speech"
],
"GitHub.vscode-pull-request-github": [
"activeComment",
"commentingRangeHint",
"commentThreadApplicability",
"contribCommentThreadAdditionalMenu",
"contribCommentsViewThreadMenus",
"tokenInformation",
"codeActionRanges",
"commentReactor",
"contribShareMenu",
"fileComments",
"contribCommentPeekContext",
"treeItemCheckbox",
"codiconDecoration",
"diffCommand",
"contribCommentEditorActionsMenu",
"treeViewMarkdownMessage",
"tabInputTextMerge",
"shareProvider",
"quickDiffProvider"
],
@@ -190,9 +205,26 @@
"GitHub.copilot-chat": [
"handleIssueUri",
"interactive",
"interactiveUserActions",
"semanticSimilarity",
"terminalDataWriteEvent"
"terminalDataWriteEvent",
"terminalExecuteCommandEvent",
"terminalSelection",
"terminalQuickFixProvider",
"chatParticipant",
"chatParticipantAdditions",
"defaultChatParticipant",
"chatVariableResolver",
"chatProvider",
"mappedEditsProvider",
"aiRelatedInformation",
"codeActionAI",
"findTextInFiles",
"textSearchProvider",
"contribSourceControlInputBoxMenu",
"newSymbolNamesProvider",
"findFiles2",
"extensionsAny",
"authLearnMore",
"testObserver"
],
"GitHub.remotehub": [
"contribRemoteHelp",
@@ -215,6 +247,10 @@
"ms-python.vscode-pylance": [
"notebookCellExecutionState"
],
"ms-python.debugpy": [
"portsAttributes",
"contribIssueReporter"
],
"ms-toolsai.jupyter-renderers": [
"contribNotebookStaticPreloads"
],
@@ -230,7 +266,9 @@
"notebookControllerAffinityHidden",
"contribNotebookStaticPreloads",
"quickPickItemTooltip",
"notebookExecution"
"notebookExecution",
"notebookCellExecution",
"notebookVariableProvider"
],
"dbaeumer.vscode-eslint": [
"notebookCellExecutionState"
@@ -241,6 +279,9 @@
"ms-azuretools.vscode-azureappservice": [
"terminalDataWriteEvent"
],
"ms-azuretools.vscode-azureresourcegroups": [
"authGetSessions"
],
"ms-vscode.anycode": [
"extensionsAny"
],
@@ -256,12 +297,29 @@
"ms-dotnettools.vscodeintellicode-csharp": [
"inlineCompletionsAdditions"
],
"microsoft-IsvExpTools.powerplatform-vscode": [
"fileSearchProvider",
"textSearchProvider"
],
"microsoft-IsvExpTools.powerplatform-vscode-preview": [
"fileSearchProvider",
"textSearchProvider"
],
"apidev.azure-api-center": [
"chatParticipant",
"languageModels"
],
"jeanp413.open-remote-ssh": [
"resolvers",
"tunnels",
"terminalDataWriteEvent",
"contribRemoteHelp",
"contribViewsRemote"
],
"jeanp413.open-remote-wsl": [
"resolvers",
"contribRemoteHelp",
"contribViewsRemote"
]
},
"extensionKind": {

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
@@ -19,7 +19,7 @@ if [[ $( gh release view --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" 2>&1
NOTES="update vscode to [${MS_COMMIT}](https://github.com/microsoft/vscode/tree/${MS_COMMIT})"
CREATE_OPTIONS=""
else
NOTES="update vscode to [${MS_TAG}](https://code.visualstudio.com/updates/v$( echo ${MS_TAG//./_} | cut -d'_' -f 1,2 ))"
NOTES="update vscode to [${MS_TAG}](https://code.visualstudio.com/updates/v$( echo "${MS_TAG//./_}" | cut -d'_' -f 1,2 ))"
CREATE_OPTIONS="--generate-notes"
fi
@@ -30,8 +30,7 @@ cd assets
set +e
for FILE in *
do
for FILE in *; do
if [[ -f "${FILE}" ]] && [[ "${FILE}" != *.sha1 ]] && [[ "${FILE}" != *.sha256 ]]; then
echo "::group::Uploading '${FILE}' at $( date "+%T" )"
gh release upload --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
@@ -40,8 +39,7 @@ do
echo "exit: ${EXIT_STATUS}"
if (( "${EXIT_STATUS}" )); then
for (( i=0; i<10; i++ ))
do
for (( i=0; i<10; i++ )); do
github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
sleep $(( 15 * (i + 1)))

View File

@@ -0,0 +1,12 @@
[Desktop Entry]
Name=@@NAME_LONG@@ - URL Handler
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --open-url %U
Icon=@@ICON@@
Type=Application
NoDisplay=true
StartupNotify=true
Categories=Utility;TextEditor;Development;IDE;
MimeType=x-scheme-handler/@@URLPROTOCOL@@;
Keywords=vscodium;codium;vscode;

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>@@NAME@@.desktop</id>
<metadata_license>@@LICENSE@@</metadata_license>
<project_license>@@LICENSE@@</project_license>
<name>@@NAME_LONG@@</name>
<url type="homepage">https://www.vscodium.com</url>
<summary>VSCodium. Code editing. Redefined.</summary>
<description>
<p>VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's editor VS Code.</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://www.vscodium.com/img/vscodium.png</image>
<caption>Editing C</caption>
</screenshot>
</screenshots>
</component>

View File

@@ -0,0 +1,27 @@
[Desktop Entry]
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Icon=@@ICON@@
Type=Application
StartupNotify=false
StartupWMClass=@@NAME_SHORT@@
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-@@NAME@@-workspace;
Actions=new-empty-window;
Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide
Name[it]=Nuova finestra vuota
Name[ja]=新しい空のウィンドウ
Name[ko]=새 빈 창
Name[ru]=Новое пустое окно
Name[zh_CN]=新建空窗口
Name[zh_TW]=開新空視窗
Exec=@@EXEC@@ --new-window %F
Icon=@@ICON@@

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="1024" height="1024" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="-0.003" y1="1.302" x2="96.665" y2="94.573">
<stop offset="0" stop-color="#FFB062"/>
<stop offset="1" stop-color="#E04F00"/>
</linearGradient>
<linearGradient id="Gradient_2" gradientUnits="userSpaceOnUse" x1="55.473" y1="106.34" x2="55.473" y2="82.148" gradientTransform="matrix(3.983, 0, 0, 3.983, -219.133, -327.2)">
<stop offset="0" stop-color="#E6E6E6"/>
<stop offset="1" stop-color="#FFFFFF"/>
</linearGradient>
</defs>
<symbol id="circle">
<path d="M50,3.642 L50,3.642 C76.608,3.642 98.179,25.213 98.179,51.821 L98.179,51.821 C98.179,78.43 76.608,100 50,100 L50,100 C23.392,100 1.821,78.43 1.821,51.821 L1.821,51.821 C1.821,25.213 23.392,3.642 50,3.642 z" fill="#808080" id="rect6638" opacity="0.5"/>
<path d="M50,0 L50,0 C76.608,0 98.179,21.57 98.179,48.179 L98.179,48.179 C98.179,74.787 76.608,96.358 50,96.358 L50,96.358 C23.392,96.358 1.821,74.787 1.821,48.179 L1.821,48.179 C1.821,21.57 23.392,0 50,0 z" fill="url(#Gradient_2)" id="rect5668" />
</symbol>
<symbol id="codium">
<path d="M48.26,2.274 C45.406,4.105 44.583,7.898 46.422,10.742 C56.531,26.397 58.917,38.205 57.882,48.553 C53.698,68.369 44.603,72.389 36.655,72.389 C28.895,72.389 30.973,59.618 36.806,55.88 C40.288,53.706 44.748,52.293 48.171,52.293 C51.563,52.293 54.313,49.552 54.313,46.17 C54.313,42.787 51.563,40.046 48.171,40.046 C44.173,40.046 40.251,40.886 36.59,42.316 C37.338,38.787 37.614,34.973 36.647,30.919 C35.179,24.763 30.953,18.883 23.615,13.183 C22.33,12.183 20.7,11.734 19.083,11.934 C17.466,12.134 15.995,12.966 14.994,14.248 C12.912,16.918 13.394,20.766 16.072,22.843 C22.05,27.486 24.024,30.923 24.699,33.752 C25.374,36.581 24.831,39.616 23.475,43.786 C21.742,49.406 19.73,54.423 18.848,59.234 C18.414,61.602 18.377,64.179 18.265,66.238 C13.96,62.042 12.275,56.502 12.275,48.407 C12.274,45.025 9.524,42.283 6.133,42.284 C2.744,42.287 -0.002,45.027 -0.003,48.407 C-0.003,59.463 3.23,69.983 11.895,77.001 C19.739,84.474 39.686,81.712 39.686,93.709 C39.686,97.095 44.642,98.743 48.033,98.743 C51.511,98.743 55.888,96.418 55.888,93.709 C55.888,80.097 70.233,71.824 93.848,71.86 C97.24,71.865 99.992,69.126 99.997,65.744 C100.003,62.361 97.259,59.614 93.867,59.608 C92.252,59.606 90.678,59.661 89.126,59.753 C91.766,53.544 92.937,46.708 92.695,39.324 C92.583,35.943 89.745,33.293 86.356,33.403 C82.963,33.513 80.305,36.346 80.416,39.729 C80.736,49.397 80.374,58.03 73.171,62.581 C71.123,63.874 68.742,64.996 66.484,64.996 C68.237,60.228 69.561,55.195 70.103,49.77 C70.449,46.308 70.486,42.195 70.091,39 C69.478,34.05 68.738,28.436 70.617,24.207 C72.305,20.565 76.087,19.04 81.64,19.04 C85.029,19.037 87.775,16.296 87.776,12.917 C87.778,9.534 85.031,6.79 81.64,6.787 C73.388,6.787 67.133,11.13 63.587,16.377 C61.733,12.417 59.475,8.336 56.747,4.112 C55.866,2.747 54.478,1.788 52.887,1.443 C52.099,1.272 51.285,1.257 50.491,1.399 C49.697,1.542 48.939,1.839 48.26,2.274 z" fill="url(#Gradient_1)" id="path6008"/>
</symbol>
<g id="Layer_1" transform="translate(1.8 1.8),scale(0.965)">
<use href="#circle"/>
</g>
<g id="Layer_2" transform="translate(16.4 14.9),scale(0.67)">
<use href="#codium"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,12 @@
[Desktop Entry]
Name=@@NAME_LONG@@ - URL Handler
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --open-url %U
Icon=@@ICON@@
Type=Application
NoDisplay=true
StartupNotify=true
Categories=Utility;TextEditor;Development;IDE;
MimeType=x-scheme-handler/@@URLPROTOCOL@@;
Keywords=vscodium;codium;vscode;

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>@@NAME@@.desktop</id>
<metadata_license>@@LICENSE@@</metadata_license>
<project_license>@@LICENSE@@</project_license>
<name>@@NAME_LONG@@</name>
<url type="homepage">https://www.vscodium.com</url>
<summary>VSCodium. Code editing. Redefined.</summary>
<description>
<p>VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's editor VS Code.</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://www.vscodium.com/img/vscodium.png</image>
<caption>Editing C</caption>
</screenshot>
</screenshots>
</component>

View File

@@ -0,0 +1,27 @@
[Desktop Entry]
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Icon=@@ICON@@
Type=Application
StartupNotify=false
StartupWMClass=@@NAME_SHORT@@
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-@@NAME@@-workspace;
Actions=new-empty-window;
Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide
Name[it]=Nuova finestra vuota
Name[ja]=新しい空のウィンドウ
Name[ko]=새 빈 창
Name[ru]=Новое пустое окно
Name[zh_CN]=新建空窗口
Name[zh_TW]=開新空視窗
Exec=@@EXEC@@ --new-window %F
Icon=@@ICON@@

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="1024" height="1024" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="-0.003" y1="1.302" x2="96.665" y2="94.573">
<stop offset="0" stop-color="#62A0EA"/>
<stop offset="1" stop-color="#1A5FB4"/>
</linearGradient>
<linearGradient id="Gradient_2" gradientUnits="userSpaceOnUse" x1="55.473" y1="106.34" x2="55.473" y2="82.148" gradientTransform="matrix(3.983, 0, 0, 3.983, -219.133, -327.2)">
<stop offset="0" stop-color="#E6E6E6"/>
<stop offset="1" stop-color="#FFFFFF"/>
</linearGradient>
</defs>
<symbol id="circle">
<path d="M50,3.642 L50,3.642 C76.608,3.642 98.179,25.213 98.179,51.821 L98.179,51.821 C98.179,78.43 76.608,100 50,100 L50,100 C23.392,100 1.821,78.43 1.821,51.821 L1.821,51.821 C1.821,25.213 23.392,3.642 50,3.642 z" fill="#808080" id="rect6638" opacity="0.5"/>
<path d="M50,0 L50,0 C76.608,0 98.179,21.57 98.179,48.179 L98.179,48.179 C98.179,74.787 76.608,96.358 50,96.358 L50,96.358 C23.392,96.358 1.821,74.787 1.821,48.179 L1.821,48.179 C1.821,21.57 23.392,0 50,0 z" fill="url(#Gradient_2)" id="rect5668" />
</symbol>
<symbol id="codium">
<path d="M48.26,2.274 C45.406,4.105 44.583,7.898 46.422,10.742 C56.531,26.397 58.917,38.205 57.882,48.553 C53.698,68.369 44.603,72.389 36.655,72.389 C28.895,72.389 30.973,59.618 36.806,55.88 C40.288,53.706 44.748,52.293 48.171,52.293 C51.563,52.293 54.313,49.552 54.313,46.17 C54.313,42.787 51.563,40.046 48.171,40.046 C44.173,40.046 40.251,40.886 36.59,42.316 C37.338,38.787 37.614,34.973 36.647,30.919 C35.179,24.763 30.953,18.883 23.615,13.183 C22.33,12.183 20.7,11.734 19.083,11.934 C17.466,12.134 15.995,12.966 14.994,14.248 C12.912,16.918 13.394,20.766 16.072,22.843 C22.05,27.486 24.024,30.923 24.699,33.752 C25.374,36.581 24.831,39.616 23.475,43.786 C21.742,49.406 19.73,54.423 18.848,59.234 C18.414,61.602 18.377,64.179 18.265,66.238 C13.96,62.042 12.275,56.502 12.275,48.407 C12.274,45.025 9.524,42.283 6.133,42.284 C2.744,42.287 -0.002,45.027 -0.003,48.407 C-0.003,59.463 3.23,69.983 11.895,77.001 C19.739,84.474 39.686,81.712 39.686,93.709 C39.686,97.095 44.642,98.743 48.033,98.743 C51.511,98.743 55.888,96.418 55.888,93.709 C55.888,80.097 70.233,71.824 93.848,71.86 C97.24,71.865 99.992,69.126 99.997,65.744 C100.003,62.361 97.259,59.614 93.867,59.608 C92.252,59.606 90.678,59.661 89.126,59.753 C91.766,53.544 92.937,46.708 92.695,39.324 C92.583,35.943 89.745,33.293 86.356,33.403 C82.963,33.513 80.305,36.346 80.416,39.729 C80.736,49.397 80.374,58.03 73.171,62.581 C71.123,63.874 68.742,64.996 66.484,64.996 C68.237,60.228 69.561,55.195 70.103,49.77 C70.449,46.308 70.486,42.195 70.091,39 C69.478,34.05 68.738,28.436 70.617,24.207 C72.305,20.565 76.087,19.04 81.64,19.04 C85.029,19.037 87.775,16.296 87.776,12.917 C87.778,9.534 85.031,6.79 81.64,6.787 C73.388,6.787 67.133,11.13 63.587,16.377 C61.733,12.417 59.475,8.336 56.747,4.112 C55.866,2.747 54.478,1.788 52.887,1.443 C52.099,1.272 51.285,1.257 50.491,1.399 C49.697,1.542 48.939,1.839 48.26,2.274 z" fill="url(#Gradient_1)" id="path6008"/>
</symbol>
<g id="Layer_1" transform="translate(1.8 1.8),scale(0.965)">
<use href="#circle"/>
</g>
<g id="Layer_2" transform="translate(16.4 14.9),scale(0.67)">
<use href="#codium"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

4
stable.json Normal file
View File

@@ -0,0 +1,4 @@
{
"tag": "1.88.1",
"commit": "e170252f762678dec6ca2cc69aba1570769a5d39"
}

View File

@@ -1,35 +1,43 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -e
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
SNAP_NAME="${APP_NAME}-insiders"
export SHOULD_BUILD="no"
export SHOULD_DEPLOY_TO_RELEASE="no"
export SHOULD_DEPLOY_TO_STORE="no"
if [[ "${GENERATE_ASSETS}" == "true" ]]; then
export SHOULD_BUILD="yes"
else
SNAP_NAME="${APP_NAME}"
fi
wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json
SNAP_URL=$( jq -r 'map(select(.tag_name == "'"${RELEASE_VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${ARCHITECTURE}.snap"'"))' gh_latest.json )
sudo snap install --channel stable --classic snapcraft
if [[ -z "${SNAP_URL}" ]]; then
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY_TO_RELEASE="yes"
fi
echo "Architecture: ${ARCHITECTURE}"
if [[ "${VSCODE_QUALITY}" == "stable" ]]; then
sudo snap install --channel stable --classic snapcraft
SNAP_VERSION=$(snapcraft list-revisions ${SNAP_NAME} | grep -F "stable*" | grep "${ARCHITECTURE}" | tr -s ' ' | cut -d ' ' -f 4)
echo "Snap version: ${SNAP_VERSION}"
echo "Architecture: ${ARCHITECTURE}"
wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json
GH_VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' gh_latest.json)
echo "GH version: ${GH_VERSION}"
SNAP_VERSION=$( snapcraft list-revisions "${SNAP_NAME}" | grep -F "stable*" | grep "${ARCHITECTURE}" | tr -s ' ' | cut -d ' ' -f 4 )
echo "Snap version: ${SNAP_VERSION}"
rm -f gh_latest.json
if [[ -n "${SNAP_VERSION}" && "${SNAP_VERSION}" != "${RELEASE_VERSION}" ]]; then
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY_TO_STORE="yes"
if [[ "${SNAP_VERSION}" == "${GH_VERSION}" ]]; then
export SHOULD_DEPLOY="no"
else
export SHOULD_DEPLOY="yes"
snap version
snap info "${SNAP_NAME}" | true
snap version
snap info "${SNAP_NAME}" || true
fi
fi
fi
if [[ "${GITHUB_ENV}" ]]; then
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_DEPLOY_TO_RELEASE=${SHOULD_DEPLOY_TO_RELEASE}" >> "${GITHUB_ENV}"
echo "SHOULD_DEPLOY_TO_STORE=${SHOULD_DEPLOY_TO_STORE}" >> "${GITHUB_ENV}"
fi

View File

@@ -4,6 +4,73 @@
# We need to handle that case and reset $SNAP
SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
#
# Exports are based on https://github.com/snapcore/snapcraft/blob/master/extensions/desktop/common/desktop-exports
#
# ensure_dir_exists calls `mkdir -p` if the given path is not a directory.
# This speeds up execution time by avoiding unnecessary calls to mkdir.
#
# Usage: ensure_dir_exists <path> [<mkdir-options>]...
#
function ensure_dir_exists() {
[ -d "$1" ] || mkdir -p "$@"
}
declare -A PIDS
function async_exec() {
"$@" &
PIDS[$!]=$*
}
function wait_for_async_execs() {
for pid in "${!PIDS[@]}"
do
wait "$pid" && continue || echo "ERROR: ${PIDS[$pid]} exited abnormally with status $?"
done
}
function prepend_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${dir}${var:+:$var}"
fi
}
function append_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${var:+$var:}${dir}"
fi
}
function copy_env_variable() {
local -n var="$1"
if [[ "+$var" ]]; then
export "${!var}_VSCODE_SNAP_ORIG=${var}"
else
export "${!var}_VSCODE_SNAP_ORIG=''"
fi
}
# shellcheck source=/dev/null
source "$SNAP_USER_DATA/.last_revision" 2>/dev/null || true
if [ "$SNAP_DESKTOP_LAST_REVISION" = "$SNAP_VERSION" ]; then
needs_update=false
else
needs_update=true
fi
# Set $REALHOME to the users real home directory
REALHOME=$(getent passwd $UID | cut -d ':' -f 6)
# Set config folder to local path
ensure_dir_exists "$SNAP_USER_DATA/.config"
chmod 700 "$SNAP_USER_DATA/.config"
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
@@ -14,21 +81,184 @@ else
ARCH="$SNAP_ARCH-linux-gnu"
fi
GDK_CACHE_DIR="$SNAP_USER_COMMON/.cache"
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$GDK_CACHE_DIR" ]]; then
export SNAP_LAUNCHER_ARCH_TRIPLET="$ARCH"
function is_subpath() {
dir="$(realpath "$1")"
parent="$(realpath "$2")"
[ "${dir##"${parent}"/}" != "${dir}" ] && return 0 || return 1
}
function can_open_file() {
[ -f "$1" ] && [ -r "$1" ]
}
# Preserve system variables that get modified below
copy_env_variable XDG_CONFIG_DIRS
copy_env_variable XDG_DATA_DIRS
copy_env_variable LOCPATH
copy_env_variable GIO_MODULE_DIR
copy_env_variable GSETTINGS_SCHEMA_DIR
copy_env_variable GDK_PIXBUF_MODULE_FILE
copy_env_variable GDK_PIXBUF_MODULEDIR
copy_env_variable GDK_BACKEND
copy_env_variable GTK_PATH
copy_env_variable GTK_EXE_PREFIX
copy_env_variable GTK_IM_MODULE_FILE
# XDG Config
prepend_dir XDG_CONFIG_DIRS "$SNAP/etc/xdg"
# Define snaps' own data dir
prepend_dir XDG_DATA_DIRS "$SNAP/usr/share"
prepend_dir XDG_DATA_DIRS "$SNAP/share"
prepend_dir XDG_DATA_DIRS "$SNAP/data-dir"
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA"
# Set XDG_DATA_HOME to local path
ensure_dir_exists "$SNAP_USER_DATA/.local/share"
# Workaround for GLib < 2.53.2 not searching for schemas in $XDG_DATA_HOME:
# https://bugzilla.gnome.org/show_bug.cgi?id=741335
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA/.local/share"
# Set cache folder to local path
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$SNAP_USER_COMMON/.cache" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
[ ! -d "$GDK_CACHE_DIR" ] && mkdir -p "$GDK_CACHE_DIR"
ensure_dir_exists "$SNAP_USER_COMMON/.cache"
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$GDK_CACHE_DIR/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
"$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
# Create $XDG_RUNTIME_DIR if not exists (to be removed when LP: #1656340 is fixed)
# shellcheck disable=SC2174
ensure_dir_exists "$XDG_RUNTIME_DIR" -m 700
# Ensure the app finds locale definitions (requires locales-all to be installed)
append_dir LOCPATH "$SNAP/usr/lib/locale"
# If detect wayland server socket, then set environment so applications prefer
# wayland, and setup compat symlink (until we use user mounts. Remember,
# XDG_RUNTIME_DIR is /run/user/<uid>/snap.$SNAP so look in the parent directory
# for the socket. For details:
# https://forum.snapcraft.io/t/wayland-dconf-and-xdg-runtime-dir/186/10
# Applications that don't support wayland natively may define DISABLE_WAYLAND
# (to any non-empty value) to skip that logic entirely.
wayland_available=false
if [[ -n "$XDG_RUNTIME_DIR" && -z "$DISABLE_WAYLAND" ]]; then
wdisplay="wayland-0"
if [ -n "$WAYLAND_DISPLAY" ]; then
wdisplay="$WAYLAND_DISPLAY"
fi
wayland_sockpath="$XDG_RUNTIME_DIR/../$wdisplay"
wayland_snappath="$XDG_RUNTIME_DIR/$wdisplay"
if [ -S "$wayland_sockpath" ]; then
# if running under wayland, use it
#export WAYLAND_DEBUG=1
# shellcheck disable=SC2034
wayland_available=true
# create the compat symlink for now
if [ ! -e "$wayland_snappath" ]; then
ln -s "$wayland_sockpath" "$wayland_snappath"
fi
fi
fi
# Create $XDG_RUNTIME_DIR if not exists (to be removed when https://pad.lv/1656340 is fixed)
[ -n "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" -m 700
# Keep an array of data dirs, for looping through them
IFS=':' read -r -a data_dirs_array <<< "$XDG_DATA_DIRS"
# Build mime.cache
# needed for gtk and qt icon
if [ "$needs_update" = true ]; then
rm -rf "$SNAP_USER_DATA/.local/share/mime"
if [ ! -f "$SNAP/usr/share/mime/mime.cache" ]; then
if command -v update-mime-database >/dev/null; then
cp --preserve=timestamps -dR "$SNAP/usr/share/mime" "$SNAP_USER_DATA/.local/share"
async_exec update-mime-database "$SNAP_USER_DATA/.local/share/mime"
fi
fi
fi
# Gio modules and cache (including gsettings module)
export GIO_MODULE_DIR="$SNAP_USER_COMMON/.cache/gio-modules"
function compile_giomodules {
if [ -f "$1/glib-2.0/gio-querymodules" ]; then
rm -rf "$GIO_MODULE_DIR"
ensure_dir_exists "$GIO_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gio/modules/*.so "$GIO_MODULE_DIR"
"$1/glib-2.0/gio-querymodules" "$GIO_MODULE_DIR"
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_giomodules "/snap/core20/current/usr/lib/$ARCH"
fi
# Setup compiled gsettings schema
export GSETTINGS_SCHEMA_DIR="$SNAP_USER_DATA/.local/share/glib-2.0/schemas"
function compile_schemas {
if [ -f "$1" ]; then
rm -rf "$GSETTINGS_SCHEMA_DIR"
ensure_dir_exists "$GSETTINGS_SCHEMA_DIR"
for ((i = 0; i < ${#data_dirs_array[@]}; i++)); do
schema_dir="${data_dirs_array[$i]}/glib-2.0/schemas"
if [ -f "$schema_dir/gschemas.compiled" ]; then
# This directory already has compiled schemas
continue
fi
if [ -n "$(ls -A "$schema_dir"/*.xml 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.xml "$GSETTINGS_SCHEMA_DIR"
fi
if [ -n "$(ls -A "$schema_dir"/*.override 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.override "$GSETTINGS_SCHEMA_DIR"
fi
done
# Only compile schemas if we copied anything
if [ -n "$(ls -A "$GSETTINGS_SCHEMA_DIR"/*.xml "$GSETTINGS_SCHEMA_DIR"/*.override 2>/dev/null)" ]; then
"$1" "$GSETTINGS_SCHEMA_DIR"
fi
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_schemas "/snap/core20/current/usr/lib/$ARCH/glib-2.0/glib-compile-schemas"
fi
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$SNAP_USER_COMMON/.cache/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ "$needs_update" = true ] || [ ! -f "$GDK_PIXBUF_MODULE_FILE" ]; then
rm -f "$GDK_PIXBUF_MODULE_FILE"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
async_exec "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
fi
# shellcheck disable=SC2154
if [ "$wayland_available" = true ]; then
export GDK_BACKEND="wayland"
fi
append_dir GTK_PATH "$SNAP/usr/lib/$ARCH/gtk-3.0"
append_dir GTK_PATH "$SNAP/usr/lib/gtk-3.0"
# We don't have gtk libraries in this path but
# enforcing this environment variable will disallow
# gtk binaries like `gtk-query-immodules` to not search
# in system default library paths.
# Based on https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkmodules.c#L104-136
export GTK_EXE_PREFIX="$SNAP/usr"
# ibus and fcitx integration
GTK_IM_MODULE_DIR="$SNAP_USER_COMMON/.cache/immodules"
export GTK_IM_MODULE_FILE="$GTK_IM_MODULE_DIR/immodules.cache"
# shellcheck disable=SC2154
if [ "$needs_update" = true ]; then
rm -rf "$GTK_IM_MODULE_DIR"
ensure_dir_exists "$GTK_IM_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gtk-3.0/3.0.0/immodules/*.so "$GTK_IM_MODULE_DIR"
async_exec "$SNAP/usr/lib/$ARCH/libgtk-3-0/gtk-query-immodules-3.0" > "$GTK_IM_MODULE_FILE"
fi
# shellcheck disable=SC2154
[ "$needs_update" = true ] && echo "SNAP_DESKTOP_LAST_REVISION=$SNAP_VERSION" > "$SNAP_USER_DATA/.last_revision"
wait_for_async_execs
exec "$@"

View File

@@ -2,9 +2,9 @@ name: codium-insiders
adopt-info: codium-insiders
summary: Code editing. Redefined.
description: |
Binary releases of Code Insiders without branding/telemetry/licensing
Binary releases of Visual Studio Code - Insiders without branding/telemetry/licensing
base: core18
base: core20
grade: stable
confinement: classic
compression: lzo
@@ -14,50 +14,61 @@ parts:
plugin: nil
override-build: |
set -eu
ARCHITECTURE=$(dpkg --print-architecture)
# Get GitHub releases
# Get .deb url
wget --quiet https://api.github.com/repos/VSCodium/vscodium-insiders/releases -O latest.json
VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' latest.json)
DEB_URL=$(jq -r 'map(select(.tag_name == "'"$VERSION"'"))|first.assets[].browser_download_url|select(endswith("'"_$ARCHITECTURE.deb"'"))' latest.json)
DEB=$(basename "${DEB_URL}")
# Downloading .deb"
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
# Unpacking .deb"
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
VERSION=$( jq -r 'sort_by(.tag_name)|last.tag_name' latest.json )
DEB_URL=$( jq -r 'map(select(.tag_name == "'"${VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${SNAPCRAFT_TARGET_ARCH}.deb"'"))' latest.json )
DEB_NAME=$( basename "${DEB_URL}" )
# Downloading .deb
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
# Unpacking .deb
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}" "${SNAPCRAFT_PART_INSTALL}"
# Clean up
rm -f latest.json
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}"
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
# Set version
snapcraftctl set-version "$(echo "${VERSION}" | sed 's|\-insider||')"
# Correct path to icon.
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/usr/share/pixmaps/vscodium-insiders.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop
sed -i 's|Exec=/usr/share/codium-insiders/codium-insiders|Exec=codium-insiders|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/usr/share/pixmaps/vscodium-insiders.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders-url-handler.desktop
snapcraftctl set-version "${VERSION/-*/}"
# Prepare GUI
mkdir -p "${SNAPCRAFT_PART_INSTALL}/meta/gui"
cp "${SNAPCRAFT_PART_INSTALL}/usr/share/codium-insiders/resources/app/resources/linux/code.png" "${SNAPCRAFT_PART_INSTALL}/meta/gui/codium-insiders.png"
# Update paths
sed -i 's|Exec=/usr/share/codium/codium-insiders|Exec=codium-insiders --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop"
sed -i 's|Exec=/usr/share/codium/codium-insiders|Exec=codium-insiders --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders-url-handler.desktop"
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/meta/gui/codium-insiders.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop"
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/meta/gui/codium-insiders.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders-url-handler.desktop"
build-packages:
- wget
- jq
stage-packages:
- fcitx-frontend-gtk3
- gvfs-libs
- ca-certificates
- libasound2
- libgconf-2-4
- libglib2.0-bin
- libgnome-keyring0
- libgtk-3-0
- libnotify4
- libnspr4
- libnss3
- libpcre3
- libpulse0
- libsecret-1-0
- libxshmfence1
- libxss1
- libxtst6
- zlib1g
- libx11-xcb1
- libxkbfile1
- libatk-bridge2.0-0
- libatk1.0-0
- libatspi2.0-0
- libcairo2
- libcanberra-gtk3-module
- libcurl3-gnutls
- libcurl3-nss
- libcurl4
- libdrm2
- libgbm1
- libxcb-dri3-0
- libgl1
- libglib2.0-0
- libgtk-3-0
- libibus-1.0-5
- libnss3
- libpango-1.0-0
- libsecret-1-0
- libxcomposite1
- libxdamage1
- libxfixes3
- libxkbcommon0
- libxkbfile1
- libxrandr2
- libxss1
- locales-all
- packagekit-gtk3-module
- xdg-utils
prime:
- -usr/share/doc
- -usr/share/fonts
@@ -65,22 +76,50 @@ parts:
- -usr/share/lintian
- -usr/share/man
- -usr/share/codium/chrome-sandbox
build-attributes:
- enable-patchelf
override-prime: |
set -eux
snapcraftctl prime
for snap in "core20"; do
cd "/snap/${snap}/current/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}"
find . -type f,l -name "*.so*" -exec bash -c "rm -f ${SNAPCRAFT_PRIME}/{}*" \;
done
electron-launch:
after:
- codium-insiders
plugin: dump
source: snap/local
source: snap/local/bin
mesa-patchelf:
after:
- electron-launch
plugin: nil
stage-packages:
- libgl1-mesa-dri
stage:
- -usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri
mesa-no-patchelf:
after:
- electron-launch
plugin: nil
stage-packages:
- libgl1-mesa-dri
build-attributes:
- no-patchelf
stage:
- usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri
apps:
codium-insiders:
codium:
command: electron-launch $SNAP/usr/share/codium-insiders/bin/codium-insiders --no-sandbox
desktop: usr/share/applications/codium-insiders.desktop
common-id: codium-insiders.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas
LIBGL_DRIVERS_PATH: $SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri
url-handler:
command: electron-launch $SNAP/usr/share/codium-insiders/bin/codium-insiders --open-url --no-sandbox
desktop: usr/share/applications/codium-insiders-url-handler.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

View File

@@ -4,6 +4,73 @@
# We need to handle that case and reset $SNAP
SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
#
# Exports are based on https://github.com/snapcore/snapcraft/blob/master/extensions/desktop/common/desktop-exports
#
# ensure_dir_exists calls `mkdir -p` if the given path is not a directory.
# This speeds up execution time by avoiding unnecessary calls to mkdir.
#
# Usage: ensure_dir_exists <path> [<mkdir-options>]...
#
function ensure_dir_exists() {
[ -d "$1" ] || mkdir -p "$@"
}
declare -A PIDS
function async_exec() {
"$@" &
PIDS[$!]=$*
}
function wait_for_async_execs() {
for pid in "${!PIDS[@]}"
do
wait "$pid" && continue || echo "ERROR: ${PIDS[$pid]} exited abnormally with status $?"
done
}
function prepend_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${dir}${var:+:$var}"
fi
}
function append_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${var:+$var:}${dir}"
fi
}
function copy_env_variable() {
local -n var="$1"
if [[ "+$var" ]]; then
export "${!var}_VSCODE_SNAP_ORIG=${var}"
else
export "${!var}_VSCODE_SNAP_ORIG=''"
fi
}
# shellcheck source=/dev/null
source "$SNAP_USER_DATA/.last_revision" 2>/dev/null || true
if [ "$SNAP_DESKTOP_LAST_REVISION" = "$SNAP_VERSION" ]; then
needs_update=false
else
needs_update=true
fi
# Set $REALHOME to the users real home directory
REALHOME=$(getent passwd $UID | cut -d ':' -f 6)
# Set config folder to local path
ensure_dir_exists "$SNAP_USER_DATA/.config"
chmod 700 "$SNAP_USER_DATA/.config"
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
@@ -14,21 +81,184 @@ else
ARCH="$SNAP_ARCH-linux-gnu"
fi
GDK_CACHE_DIR="$SNAP_USER_COMMON/.cache"
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$GDK_CACHE_DIR" ]]; then
export SNAP_LAUNCHER_ARCH_TRIPLET="$ARCH"
function is_subpath() {
dir="$(realpath "$1")"
parent="$(realpath "$2")"
[ "${dir##"${parent}"/}" != "${dir}" ] && return 0 || return 1
}
function can_open_file() {
[ -f "$1" ] && [ -r "$1" ]
}
# Preserve system variables that get modified below
copy_env_variable XDG_CONFIG_DIRS
copy_env_variable XDG_DATA_DIRS
copy_env_variable LOCPATH
copy_env_variable GIO_MODULE_DIR
copy_env_variable GSETTINGS_SCHEMA_DIR
copy_env_variable GDK_PIXBUF_MODULE_FILE
copy_env_variable GDK_PIXBUF_MODULEDIR
copy_env_variable GDK_BACKEND
copy_env_variable GTK_PATH
copy_env_variable GTK_EXE_PREFIX
copy_env_variable GTK_IM_MODULE_FILE
# XDG Config
prepend_dir XDG_CONFIG_DIRS "$SNAP/etc/xdg"
# Define snaps' own data dir
prepend_dir XDG_DATA_DIRS "$SNAP/usr/share"
prepend_dir XDG_DATA_DIRS "$SNAP/share"
prepend_dir XDG_DATA_DIRS "$SNAP/data-dir"
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA"
# Set XDG_DATA_HOME to local path
ensure_dir_exists "$SNAP_USER_DATA/.local/share"
# Workaround for GLib < 2.53.2 not searching for schemas in $XDG_DATA_HOME:
# https://bugzilla.gnome.org/show_bug.cgi?id=741335
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA/.local/share"
# Set cache folder to local path
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$SNAP_USER_COMMON/.cache" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
[ ! -d "$GDK_CACHE_DIR" ] && mkdir -p "$GDK_CACHE_DIR"
ensure_dir_exists "$SNAP_USER_COMMON/.cache"
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$GDK_CACHE_DIR/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
"$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
# Create $XDG_RUNTIME_DIR if not exists (to be removed when LP: #1656340 is fixed)
# shellcheck disable=SC2174
ensure_dir_exists "$XDG_RUNTIME_DIR" -m 700
# Ensure the app finds locale definitions (requires locales-all to be installed)
append_dir LOCPATH "$SNAP/usr/lib/locale"
# If detect wayland server socket, then set environment so applications prefer
# wayland, and setup compat symlink (until we use user mounts. Remember,
# XDG_RUNTIME_DIR is /run/user/<uid>/snap.$SNAP so look in the parent directory
# for the socket. For details:
# https://forum.snapcraft.io/t/wayland-dconf-and-xdg-runtime-dir/186/10
# Applications that don't support wayland natively may define DISABLE_WAYLAND
# (to any non-empty value) to skip that logic entirely.
wayland_available=false
if [[ -n "$XDG_RUNTIME_DIR" && -z "$DISABLE_WAYLAND" ]]; then
wdisplay="wayland-0"
if [ -n "$WAYLAND_DISPLAY" ]; then
wdisplay="$WAYLAND_DISPLAY"
fi
wayland_sockpath="$XDG_RUNTIME_DIR/../$wdisplay"
wayland_snappath="$XDG_RUNTIME_DIR/$wdisplay"
if [ -S "$wayland_sockpath" ]; then
# if running under wayland, use it
#export WAYLAND_DEBUG=1
# shellcheck disable=SC2034
wayland_available=true
# create the compat symlink for now
if [ ! -e "$wayland_snappath" ]; then
ln -s "$wayland_sockpath" "$wayland_snappath"
fi
fi
fi
# Create $XDG_RUNTIME_DIR if not exists (to be removed when https://pad.lv/1656340 is fixed)
[ -n "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" -m 700
# Keep an array of data dirs, for looping through them
IFS=':' read -r -a data_dirs_array <<< "$XDG_DATA_DIRS"
# Build mime.cache
# needed for gtk and qt icon
if [ "$needs_update" = true ]; then
rm -rf "$SNAP_USER_DATA/.local/share/mime"
if [ ! -f "$SNAP/usr/share/mime/mime.cache" ]; then
if command -v update-mime-database >/dev/null; then
cp --preserve=timestamps -dR "$SNAP/usr/share/mime" "$SNAP_USER_DATA/.local/share"
async_exec update-mime-database "$SNAP_USER_DATA/.local/share/mime"
fi
fi
fi
# Gio modules and cache (including gsettings module)
export GIO_MODULE_DIR="$SNAP_USER_COMMON/.cache/gio-modules"
function compile_giomodules {
if [ -f "$1/glib-2.0/gio-querymodules" ]; then
rm -rf "$GIO_MODULE_DIR"
ensure_dir_exists "$GIO_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gio/modules/*.so "$GIO_MODULE_DIR"
"$1/glib-2.0/gio-querymodules" "$GIO_MODULE_DIR"
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_giomodules "/snap/core20/current/usr/lib/$ARCH"
fi
# Setup compiled gsettings schema
export GSETTINGS_SCHEMA_DIR="$SNAP_USER_DATA/.local/share/glib-2.0/schemas"
function compile_schemas {
if [ -f "$1" ]; then
rm -rf "$GSETTINGS_SCHEMA_DIR"
ensure_dir_exists "$GSETTINGS_SCHEMA_DIR"
for ((i = 0; i < ${#data_dirs_array[@]}; i++)); do
schema_dir="${data_dirs_array[$i]}/glib-2.0/schemas"
if [ -f "$schema_dir/gschemas.compiled" ]; then
# This directory already has compiled schemas
continue
fi
if [ -n "$(ls -A "$schema_dir"/*.xml 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.xml "$GSETTINGS_SCHEMA_DIR"
fi
if [ -n "$(ls -A "$schema_dir"/*.override 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.override "$GSETTINGS_SCHEMA_DIR"
fi
done
# Only compile schemas if we copied anything
if [ -n "$(ls -A "$GSETTINGS_SCHEMA_DIR"/*.xml "$GSETTINGS_SCHEMA_DIR"/*.override 2>/dev/null)" ]; then
"$1" "$GSETTINGS_SCHEMA_DIR"
fi
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_schemas "/snap/core20/current/usr/lib/$ARCH/glib-2.0/glib-compile-schemas"
fi
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$SNAP_USER_COMMON/.cache/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ "$needs_update" = true ] || [ ! -f "$GDK_PIXBUF_MODULE_FILE" ]; then
rm -f "$GDK_PIXBUF_MODULE_FILE"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
async_exec "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
fi
# shellcheck disable=SC2154
if [ "$wayland_available" = true ]; then
export GDK_BACKEND="wayland"
fi
append_dir GTK_PATH "$SNAP/usr/lib/$ARCH/gtk-3.0"
append_dir GTK_PATH "$SNAP/usr/lib/gtk-3.0"
# We don't have gtk libraries in this path but
# enforcing this environment variable will disallow
# gtk binaries like `gtk-query-immodules` to not search
# in system default library paths.
# Based on https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkmodules.c#L104-136
export GTK_EXE_PREFIX="$SNAP/usr"
# ibus and fcitx integration
GTK_IM_MODULE_DIR="$SNAP_USER_COMMON/.cache/immodules"
export GTK_IM_MODULE_FILE="$GTK_IM_MODULE_DIR/immodules.cache"
# shellcheck disable=SC2154
if [ "$needs_update" = true ]; then
rm -rf "$GTK_IM_MODULE_DIR"
ensure_dir_exists "$GTK_IM_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gtk-3.0/3.0.0/immodules/*.so "$GTK_IM_MODULE_DIR"
async_exec "$SNAP/usr/lib/$ARCH/libgtk-3-0/gtk-query-immodules-3.0" > "$GTK_IM_MODULE_FILE"
fi
# shellcheck disable=SC2154
[ "$needs_update" = true ] && echo "SNAP_DESKTOP_LAST_REVISION=$SNAP_VERSION" > "$SNAP_USER_DATA/.last_revision"
wait_for_async_execs
exec "$@"

View File

@@ -2,9 +2,9 @@ name: codium
adopt-info: codium
summary: Code editing. Redefined.
description: |
Binary releases of Code without branding/telemetry/licensing
Binary releases of Visual Studio Code without branding/telemetry/licensing
base: core18
base: core20
grade: stable
confinement: classic
compression: lzo
@@ -14,50 +14,61 @@ parts:
plugin: nil
override-build: |
set -eu
ARCHITECTURE=$(dpkg --print-architecture)
# Get GitHub releases
# Get .deb url
wget --quiet https://api.github.com/repos/VSCodium/vscodium/releases -O latest.json
VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' latest.json)
DEB_URL=$(jq -r 'map(select(.tag_name == "'"$VERSION"'"))|first.assets[].browser_download_url|select(endswith("'"_$ARCHITECTURE.deb"'"))' latest.json)
DEB=$(basename "${DEB_URL}")
# Downloading .deb"
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
# Unpacking .deb"
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
VERSION=$( jq -r 'sort_by(.tag_name)|last.tag_name' latest.json )
DEB_URL=$( jq -r 'map(select(.tag_name == "'"${VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${SNAPCRAFT_TARGET_ARCH}.deb"'"))' latest.json )
DEB_NAME=$( basename "${DEB_URL}" )
# Downloading .deb
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
# Unpacking .deb
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}" "${SNAPCRAFT_PART_INSTALL}"
# Clean up
rm -f latest.json
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}"
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
# Set version
snapcraftctl set-version "$VERSION"
# Correct path to icon.
sed -i 's|Icon=vscodium|Icon=${SNAP}/usr/share/pixmaps/vscodium.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop
sed -i 's|Exec=/usr/share/codium/codium|Exec=codium|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop
sed -i 's|Icon=vscodium|Icon=/usr/share/pixmaps/vscodium.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop
snapcraftctl set-version "${VERSION}"
# Prepare GUI
mkdir -p "${SNAPCRAFT_PART_INSTALL}/meta/gui"
cp "${SNAPCRAFT_PART_INSTALL}/usr/share/codium/resources/app/resources/linux/code.png" "${SNAPCRAFT_PART_INSTALL}/meta/gui/codium.png"
# Update paths
sed -i 's|Exec=/usr/share/codium/codium|Exec=codium --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop"
sed -i 's|Exec=/usr/share/codium/codium|Exec=codium --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop"
sed -i 's|Icon=vscodium|Icon=${SNAP}/meta/gui/codium.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop"
sed -i 's|Icon=vscodium|Icon=${SNAP}/meta/gui/codium.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop"
build-packages:
- wget
- jq
stage-packages:
- fcitx-frontend-gtk3
- gvfs-libs
- ca-certificates
- libasound2
- libgconf-2-4
- libglib2.0-bin
- libgnome-keyring0
- libgtk-3-0
- libnotify4
- libnspr4
- libnss3
- libpcre3
- libpulse0
- libsecret-1-0
- libxshmfence1
- libxss1
- libxtst6
- zlib1g
- libx11-xcb1
- libxkbfile1
- libatk-bridge2.0-0
- libatk1.0-0
- libatspi2.0-0
- libcairo2
- libcanberra-gtk3-module
- libcurl3-gnutls
- libcurl3-nss
- libcurl4
- libdrm2
- libgbm1
- libxcb-dri3-0
- libgl1
- libglib2.0-0
- libgtk-3-0
- libibus-1.0-5
- libnss3
- libpango-1.0-0
- libsecret-1-0
- libxcomposite1
- libxdamage1
- libxfixes3
- libxkbcommon0
- libxkbfile1
- libxrandr2
- libxss1
- locales-all
- packagekit-gtk3-module
- xdg-utils
prime:
- -usr/share/doc
- -usr/share/fonts
@@ -65,22 +76,28 @@ parts:
- -usr/share/lintian
- -usr/share/man
- -usr/share/codium/chrome-sandbox
build-attributes:
- enable-patchelf
override-prime: |
set -eux
snapcraftctl prime
for snap in "core20"; do
cd "/snap/${snap}/current/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}"
find . -type f,l -name "*.so*" -exec bash -c "rm -f ${SNAPCRAFT_PRIME}/{}*" \;
done
electron-launch:
after:
- codium
plugin: dump
source: snap/local
source: snap/local/bin
apps:
codium:
command: electron-launch $SNAP/usr/share/codium/bin/codium --no-sandbox
desktop: usr/share/applications/codium.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas
common-id: codium.desktop
url-handler:
command: electron-launch $SNAP/usr/share/codium/bin/codium --open-url --no-sandbox
desktop: usr/share/applications/codium-url-handler.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -e

View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091,SC2016
set -ex
@@ -25,7 +26,7 @@ else
fi
export -f replace_with_debug
d1=`date +%s`
d1=$( date +%s )
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ ${VSCODE_ARCH} == "x64" ]]; then
@@ -39,6 +40,6 @@ else
./node_modules/@vscode/ripgrep/bin/rg --no-ignore --path-separator=// -l "${SEARCH}" . | xargs -I {} bash -c 'replace_with_debug "${1}" "{}"' _ "${REPLACEMENT}"
fi
d2=`date +%s`
d2=$( date +%s )
echo "undo_telemetry: $( echo $((${d2} - ${d1})) )s"
echo "undo_telemetry: $((d2 - d1))s"

View File

@@ -1,30 +0,0 @@
#!/bin/bash
set -e
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Will not update version JSON because we did not build"
exit
fi
if [[ -z "${GITHUB_TOKEN}" ]]; then
echo "Will not update insider.json because no GITHUB_TOKEN defined"
exit
fi
echo "$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )" > "insider.json"
git config user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config user.name "${GITHUB_USERNAME} CI"
git add .
CHANGES=$( git status --porcelain )
if [[ ! -z "${CHANGES}" ]]; then
git commit -m "build(insider): update to commit ${MS_COMMIT:0:7}"
if ! git push origin insider --quiet; then
git pull origin insider
git push origin insider --quiet
fi
fi

33
update_qualityjson.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -e
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Will not update version JSON because we did not build"
exit 0
fi
if [[ -z "${GITHUB_TOKEN}" ]]; then
echo "Will not update ${VSCODE_QUALITY}.json because no GITHUB_TOKEN defined"
exit 0
fi
jsonTmp=$( cat "${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
echo "${jsonTmp}" > "${VSCODE_QUALITY}.json" && unset jsonTmp
git config user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config user.name "${GITHUB_USERNAME} CI"
git add .
CHANGES=$( git status --porcelain )
if [[ -n "${CHANGES}" ]]; then
git commit -m "build(${VSCODE_QUALITY}): update to commit ${MS_COMMIT:0:7}"
BRANCH_NAME=$( git rev-parse --abbrev-ref HEAD )
if ! git push origin "${BRANCH_NAME}" --quiet; then
git pull origin "${BRANCH_NAME}"
git push origin "${BRANCH_NAME}" --quiet
fi
fi

View File

@@ -1,3 +1,5 @@
# shellcheck disable=SC1091,2148
DEFAULT_TRUE="'default': true"
DEFAULT_FALSE="'default': false"
DEFAULT_ON="'default': TelemetryConfiguration.ON"
@@ -10,23 +12,25 @@ NLS=workbench.settings.enableNaturalLanguageSearch
. ../utils.sh
update_setting () {
local FILENAME="${2}"
local FILENAME SETTING LINE_NUM IN_SETTING FOUND DEFAULT_TRUE_TO_FALSE
FILENAME="${2}"
# check that the file exists
if [ ! -f "${FILENAME}" ]; then
if [[ ! -f "${FILENAME}" ]]; then
echo "File to update setting in does not exist ${FILENAME}"
return
fi
# go through lines of file, looking for block that contains setting
local SETTING="${1}"
local LINE_NUM=0
SETTING="${1}"
LINE_NUM=0
while read -r line; do
local LINE_NUM=$(( $LINE_NUM + 1 ))
LINE_NUM=$(( LINE_NUM + 1 ))
if [[ "${line}" == *"${SETTING}"* ]]; then
local IN_SETTING=1
IN_SETTING=1
fi
if [[ ("${line}" == *"${DEFAULT_TRUE}"* || "${line}" == *"${DEFAULT_ON}"*) && "${IN_SETTING}" == "1" ]]; then
local FOUND=1
FOUND=1
break
fi
done < "${FILENAME}"
@@ -38,9 +42,9 @@ update_setting () {
# construct line-aware replacement string
if [[ "${line}" == *"${DEFAULT_TRUE}"* ]]; then
local DEFAULT_TRUE_TO_FALSE="${LINE_NUM}s/${DEFAULT_TRUE}/${DEFAULT_FALSE}/"
DEFAULT_TRUE_TO_FALSE="${LINE_NUM}s/${DEFAULT_TRUE}/${DEFAULT_FALSE}/"
else
local DEFAULT_TRUE_TO_FALSE="${LINE_NUM}s/${DEFAULT_ON}/${DEFAULT_OFF}/"
DEFAULT_TRUE_TO_FALSE="${LINE_NUM}s/${DEFAULT_ON}/${DEFAULT_OFF}/"
fi
replace "${DEFAULT_TRUE_TO_FALSE}" "${FILENAME}"

View File

@@ -1,15 +1,16 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
if [[ "${SHOULD_BUILD}" != "yes" && "${FORCE_UPDATE}" != "true" ]]; then
echo "Will not update version JSON because we did not build"
exit
exit 0
fi
if [[ -z "${GITHUB_TOKEN}" ]]; then
echo "Will not update version JSON because no GITHUB_TOKEN defined"
exit
exit 0
fi
if [[ "${FORCE_UPDATE}" == "true" ]]; then
@@ -18,12 +19,12 @@ fi
if [[ -z "${BUILD_SOURCEVERSION}" ]]; then
echo "Will not update version JSON because no BUILD_SOURCEVERSION defined"
exit
exit 0
fi
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" ]] || [[ "${VSCODE_ARCH}" == "riscv64" ]] ; then
echo "Skip ppc64le since only reh is published"
exit
exit 0
fi
# {
@@ -49,22 +50,23 @@ REPOSITORY_NAME="${VERSIONS_REPOSITORY/*\//}"
URL_BASE="https://github.com/${ASSETS_REPOSITORY}/releases/download/${RELEASE_VERSION}"
generateJson() {
local url name version productVersion sha1hash sha256hash timestamp
JSON_DATA="{}"
# generate parts
local url="${URL_BASE}/${ASSET_NAME}"
local name="${RELEASE_VERSION}"
local version="${BUILD_SOURCEVERSION}"
local productVersion="${RELEASE_VERSION}"
local timestamp=$(node -e 'console.log(Date.now())')
url="${URL_BASE}/${ASSET_NAME}"
name="${RELEASE_VERSION}"
version="${BUILD_SOURCEVERSION}"
productVersion="${RELEASE_VERSION}"
timestamp=$( node -e 'console.log(Date.now())' )
if [[ ! -f "assets/${ASSET_NAME}" ]]; then
echo "Downloading asset '${ASSET_NAME}'"
gh release download --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" --dir "assets" --pattern "${ASSET_NAME}*"
fi
local sha1hash=$(cat "assets/${ASSET_NAME}.sha1" | awk '{ print $1 }')
local sha256hash=$(cat "assets/${ASSET_NAME}.sha256" | awk '{ print $1 }')
sha1hash=$( awk '{ print $1 }' "assets/${ASSET_NAME}.sha1" )
sha256hash=$( awk '{ print $1 }' "assets/${ASSET_NAME}.sha256" )
# check that nothing is blank (blank indicates something awry with build)
for key in url name version productVersion sha1hash timestamp sha256hash; do
@@ -75,7 +77,7 @@ generateJson() {
done
# generate json
JSON_DATA=$(jq \
JSON_DATA=$( jq \
--arg url "${url}" \
--arg name "${name}" \
--arg version "${version}" \
@@ -84,7 +86,7 @@ generateJson() {
--arg timestamp "${timestamp}" \
--arg sha256hash "${sha256hash}" \
'. | .url=$url | .name=$name | .version=$version | .productVersion=$productVersion | .hash=$hash | .timestamp=$timestamp | .sha256hash=$sha256hash' \
<<<'{}')
<<<'{}' )
}
updateLatestVersion() {
@@ -96,7 +98,7 @@ updateLatestVersion() {
echo "CURRENT_VERSION: ${CURRENT_VERSION}"
if [[ "${CURRENT_VERSION}" == "${RELEASE_VERSION}" && "${FORCE_UPDATE}" != "true" ]]; then
return
return 0
fi
fi
@@ -118,7 +120,7 @@ cd "${REPOSITORY_NAME}" || { echo "'${REPOSITORY_NAME}' dir not found"; exit 1;
git config user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config user.name "${GITHUB_USERNAME} CI"
git remote rm origin
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPOSITORY}.git" > /dev/null 2>&1
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPOSITORY}.git" &> /dev/null
cd ..
if [[ "${OS_NAME}" == "osx" ]]; then
@@ -168,7 +170,7 @@ git add .
CHANGES=$( git status --porcelain )
if [[ ! -z "${CHANGES}" ]]; then
if [[ -n "${CHANGES}" ]]; then
echo "Some changes have been found, pushing them"
dateAndMonth=$( date "+%D %T" )

View File

@@ -1,11 +1,11 @@
#!/bin/bash
#!/usr/bin/env bash
# All common functions can be added to this file
exists() { type -t "$1" > /dev/null 2>&1; }
exists() { type -t "$1" &> /dev/null; }
is_gnu_sed () {
sed --version >/dev/null 2>&1
sed --version &> /dev/null
}
replace () {

View File

@@ -1,13 +1,13 @@
#!/bin/bash
#!/usr/bin/env bash
if [[ -z "${BUILD_SOURCEVERSION}" ]]; then
if type -t "sha1sum" > /dev/null 2>&1; then
export BUILD_SOURCEVERSION=$( echo "${RELEASE_VERSION/-*/}" | sha1sum | cut -d' ' -f1 )
if type -t "sha1sum" &> /dev/null; then
BUILD_SOURCEVERSION=$( echo "${RELEASE_VERSION/-*/}" | sha1sum | cut -d' ' -f1 )
else
npm install -g checksum
export BUILD_SOURCEVERSION=$( echo "${RELEASE_VERSION/-*/}" | checksum )
BUILD_SOURCEVERSION=$( echo "${RELEASE_VERSION/-*/}" | checksum )
fi
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
@@ -17,3 +17,5 @@ if [[ -z "${BUILD_SOURCEVERSION}" ]]; then
echo "BUILD_SOURCEVERSION=${BUILD_SOURCEVERSION}" >> "${GITHUB_ENV}"
fi
fi
export BUILD_SOURCEVERSION