Compare commits

...

387 Commits

Author SHA1 Message Date
Baptiste Augrain
c3e35a9e82 fix: add missing neverShowAgain [skip ci] 2023-04-05 11:07:08 +02:00
Baptiste Augrain
bfdd19ccf2 fix: banner uses same flag as the notification (#1463) 2023-04-05 11:07:08 +02:00
Baptiste Augrain
5e26c4a9c4 fix: icons (#1459) 2023-04-03 00:15:06 +02:00
NovaliX
38ba585382 fix: macos icon generation (#1457) 2023-04-03 00:09:32 +02:00
Baptiste Augrain
974619f5d8 fix: get dirname from repository [skip ci] 2023-04-02 15:55:31 +02:00
Baptiste Augrain
f985c78aaa chore: update api and annoucements [skip ci] 2023-03-31 14:54:19 +02:00
Baptiste Augrain
d9368b3668 Merge branch 'insider' 2023-03-31 14:17:26 +02:00
Baptiste Augrain
de60efb3ea style: update insiders icons [skip ci] 2023-03-31 14:16:43 +02:00
Baptiste Augrain
b94741d88d style: update insiders icon templates 2023-03-31 14:10:18 +02:00
VSCodium CI
afc33000a6 build(insider): update to commit f31dffc 2023-03-31 09:14:08 +02:00
VSCodium CI
5dc393d199 build(insider): update to commit 7f329fe 2023-03-30 09:14:11 +02:00
VSCodium CI
a4a0d37b5f build(insider): update to commit 10295b5 2023-03-29 09:15:27 +02:00
dependabot[bot]
cd3b6e425a build(deps): bump actions/stale from 7 to 8 (#1453) 2023-03-27 16:03:15 +02:00
Baptiste Augrain
4e373455f2 feat: add downloadUrl (#1449) 2023-03-26 09:41:43 +02:00
VSCodium CI
1c582203e5 build(insider): update to commit b9226e1 2023-03-25 08:11:50 +01:00
Baptiste Augrain
55377464bb Merge branch 'insider' of github.com:VSCodium/vscodium into insider 2023-03-24 20:50:10 +01:00
Baptiste Augrain
a1d08f4273 feat: update internal icons 2023-03-24 20:47:47 +01:00
VSCodium CI
7c2088709b build(insider): update to commit c83f54a 2023-03-24 08:11:56 +01:00
VSCodium CI
44a49cde49 build(insider): update to commit a5bd844 2023-03-23 08:11:42 +01:00
VSCodium CI
56bfd87ca9 build(insider): update to commit b8e4c55 2023-03-22 08:12:14 +01:00
VSCodium CI
adf3181b0d build(insider): update to commit 833ac68 2023-03-21 08:12:41 +01:00
VSCodium CI
f479f2aeff build(insider): update to commit fa13bf1 2023-03-20 08:12:30 +01:00
Baptiste Augrain
f2f78ed89f feat: add reh binary url in product.json 2023-03-19 01:58:29 +01:00
Baptiste Augrain
7a5936976f fix: update patches 2023-03-19 01:26:17 +01:00
Baptiste Augrain
b113c874f2 build: try new icons 2023-03-19 00:49:08 +01:00
Baptiste Augrain
83b39e549b Merge branch 'master' into insider 2023-03-19 00:47:16 +01:00
dependabot[bot]
141716f439 build(deps): bump dessant/lock-threads from 3 to 4 (#1434) 2023-03-03 17:52:48 +01:00
dependabot[bot]
7c0f7c3576 build(deps): bump actions/stale from 6 to 7 (#1437) 2023-03-03 14:26:14 +01:00
dependabot[bot]
b53d9177f7 build(deps): bump actions/setup-python from 3 to 4 (#1436) 2023-03-03 14:25:51 +01:00
dependabot[bot]
8999b26b10 build(deps): bump docker/setup-qemu-action from 1 to 2 (#1435) 2023-03-03 14:25:30 +01:00
Araxeus
a27b5b2466 ci: create dependabot.yml (#1426) 2023-03-03 11:59:21 +01:00
Baptiste Augrain
13df952922 ci: use lastest winget releaser [skip ci] 2023-03-03 09:30:46 +01:00
Baptiste Augrain
3d745a9a37 fix: update patch 2023-03-02 23:40:15 +01:00
Baptiste Augrain
41b949f19e fix: update to 1.76 (#1432) 2023-03-02 23:23:03 +01:00
Baptiste Augrain
69261e134e docs: update announcements icon [skip ci] 2023-03-01 12:46:02 +01:00
Baptiste Augrain
3771db7395 docs: update announcements 2023-03-01 12:29:49 +01:00
Semnodime
b405f160de Fix Typo (#1401) 2023-02-07 07:39:14 +02:00
Pavlo Rudy
d6e7ae1f6f chore: update ms-python api; close #1400 2023-02-06 09:47:07 +02:00
Baptiste Augrain
9ad93a467b chore: update apis 2023-02-02 21:42:21 +01:00
Baptiste Augrain
e0ce361df9 Merge branch 'insider' 2023-02-02 21:30:44 +01:00
VSCodium CI
2b463cd728 build(insider): update to commit e2816fe 2023-02-02 08:12:16 +01:00
Baptiste Augrain
fc77078868 fix: remove retry-all-errors option [skip ci] 2023-01-31 17:13:55 +01:00
Baptiste Augrain
4ccfb857a4 ci: add retry to gh install [skip ci] 2023-01-31 16:03:37 +01:00
Baptiste Augrain
4b4cfe4f74 fix: reduce mangle to minimum 2023-01-31 14:33:29 +01:00
Baptiste Augrain
4afe89a9ce feat: add command to provide reh url (#1392) 2023-01-30 00:03:37 +01:00
Baptiste Augrain
2d254e9368 feat: disable mangle 2023-01-29 17:42:40 +01:00
Baptiste Augrain
553b29623c fix: remove patch [skip ci] 2023-01-29 16:34:54 +01:00
VSCodium CI
73f8d5cc86 build(insider): update to commit 9ccc2b3 2023-01-20 08:13:01 +01:00
VSCodium CI
a409e6a7ec build(insider): update to commit b899232 2023-01-19 08:12:45 +01:00
Simon Sobisch
11f4749bdb Merge pull request #1374 from jaredreich/patch-1
Update README.md (updated special thanks for logo)
2023-01-18 11:27:33 +01:00
VSCodium CI
f701fd714b build(insider): update to commit 1379f03 2023-01-17 08:12:57 +01:00
VSCodium CI
ad388af833 build(insider): update to commit 2438547 2023-01-14 08:12:30 +01:00
VSCodium CI
617cc85c43 build(insider): update to commit 6d40104 2023-01-12 08:15:29 +01:00
Baptiste Augrain
6fdca57be5 build: improve patch script 2023-01-11 12:22:54 +01:00
VSCodium CI
7fffa6bcf1 build(insider): update to commit e7b5449 2023-01-11 08:16:21 +01:00
VSCodium CI
b98ae5fe32 build(insider): update to commit 04b15ff 2023-01-10 08:10:54 +01:00
Jared Reich
519d9d1e30 Update README.md special thanks for logo
Just keeping this up to date since we reverted back to the original logo from #4 
Great continued work on this project!!!
2023-01-09 14:31:44 -07:00
Baptiste Augrain
e82cd45830 fix: retrieve BUILD_SOURCEVERSION when force update versions [skip ci] 2023-01-08 16:08:05 +01:00
Baptiste Augrain
30fea6fcbd fix: force update versions [skip ci] 2023-01-08 15:37:11 +01:00
Baptiste Augrain
32637c09c8 feat: allows to forcely update versions [skip ci] 2023-01-08 15:33:27 +01:00
Baptiste Augrain
9618e11b99 chore: update api 2023-01-08 11:11:51 +01:00
Baptiste Augrain
43f11068ce fix: update mangle patch 2023-01-08 10:44:54 +01:00
Baptiste Augrain
8474e2eec6 Merge branch 'master' into insider 2023-01-08 10:39:27 +01:00
Baptiste Augrain
ceaf9ce37b fix: don't compile build dir and fix patch 2023-01-07 14:07:56 +01:00
Baptiste Augrain
57507e0abf feat: compile build dir before building editor 2023-01-07 13:40:46 +01:00
Baptiste Augrain
15addf4476 fix: patch mangle for windows (#1370) 2023-01-07 12:16:19 +01:00
VSCodium CI
df7ed19561 build(insider): update to commit 727d2d3 2023-01-07 08:12:16 +01:00
VSCodium CI
35b7b32db0 build(insider): update to commit 79c4f9b 2023-01-06 08:12:02 +01:00
VSCodium CI
26f90e6511 build(insider): update to commit 4acf2d9 2023-01-05 08:11:55 +01:00
Baptiste Augrain
3a9c276c70 fix: update github patch 2023-01-03 12:10:17 +01:00
Baptiste Augrain
1753520ee0 fix: update ms commit 2023-01-03 11:57:29 +01:00
Baptiste Augrain
2d51987163 fix: update github patch 2023-01-03 11:53:10 +01:00
Hulusi Kafalıer
f73d7b632b docs: fix invalid product.json example (#1366) 2023-01-02 08:57:17 +01:00
Nicolas Hedger
369ff79b9f Fix broken workflow badges (#1361)
* Fix broken workflow badges

* Add missing parentheses
2022-12-30 19:52:55 +02:00
VSCodium CI
a4b47f50a4 build(insider): update to commit 11238fa 2022-12-13 08:19:45 +01:00
VSCodium CI
557fc06d55 build(insider): update to commit 250a8f3 2022-12-12 08:17:47 +01:00
VSCodium CI
14ca97b75c build(insider): update to commit f076d55 2022-12-10 08:14:22 +01:00
Baptiste Augrain
3cf93c6ded enhance: update apis 2022-12-08 20:22:27 +01:00
Baptiste Augrain
12121c9c9b Merge branch 'insider' 2022-12-08 19:54:34 +01:00
VSCodium CI
5d3b20bf8f build(insider): update to commit b928944 2022-12-08 08:17:37 +01:00
VSCodium CI
b57285ebae build(insider): update to commit 5235c6b 2022-12-06 08:16:53 +01:00
Baptiste Augrain
a31e11a51e feat: add default apis for open-remote-ssh (#1344) 2022-12-02 22:22:58 +01:00
Baptiste Augrain
ee8c7f094a fix: remove recommendationsUrl 2022-12-02 20:31:45 +01:00
eugen-auschew
078ce9427f docs: changed packagename in docs.md for ApplePressAndHoldEnabled setting (#1341)
Co-authored-by: eauw <info@ea-it.de>
2022-11-30 14:02:35 +01:00
VSCodium CI
f781310c69 build(insider): update to commit d0e44be 2022-11-26 08:11:48 +01:00
Simon Sobisch
33b563c334 Merge pull request #1330 from VSCodium/docs-extensions
update concerning extension gallery
2022-11-24 20:56:04 +01:00
VSCodium CI
71277ceb29 build(insider): update to commit 2eca6d3 2022-11-24 08:22:11 +01:00
Baptiste Augrain
8b260dc895 fix(insider): update patches 2022-11-23 21:52:51 +01:00
Baptiste Augrain
25985ec81b fix(insider): test before using getPreferredSystemLanguages
closes #1335
2022-11-21 15:51:03 +01:00
VSCodium CI
50313cace5 build(insider): update to commit fef85ea 2022-11-21 08:11:50 +01:00
Baptiste Augrain
61ab6ebb68 build: add title to github's release 2022-11-20 00:42:22 +01:00
Baptiste Augrain
ef0a3400d5 fix: update patch 2022-11-18 10:36:13 +01:00
Baptiste Augrain
1bfa2d920c fix: update patch 2022-11-17 22:56:46 +01:00
VSCodium CI
7ecd465204 build(insider): update to commit 3fb8e8f 2022-11-15 08:10:09 +01:00
Simon Sobisch
c57d5aa768 update concerning extension gallery 2022-11-12 14:59:47 +01:00
Baptiste Augrain
5c3db580d5 feat(1.74): support windows 7 (#1329) 2022-11-12 10:14:22 +01:00
Baptiste Augrain
de28e119be feat(1.74): update custom gallery patch 2022-11-12 10:09:54 +01:00
Pavlo Rudy
522300a657 feat(issue): add sandbox info [skip ci] 2022-11-11 12:02:38 +02:00
Baptiste Augrain
d0b246a9e1 fix: update patches 2022-11-10 18:36:08 +01:00
Baptiste Augrain
1b48e182cb Merge branch 'master' into insider 2022-11-10 18:20:15 +01:00
Baptiste Augrain
59389da1b0 fix: remote dependencies (#1324) 2022-11-10 18:18:26 +01:00
Baptiste Augrain
ab5bc94dc5 Merge branch 'master' into insider 2022-11-05 13:01:29 +01:00
Baptiste Augrain
51e8c96447 fix(winget): use correct assets path [skip ci] 2022-11-05 13:00:13 +01:00
Baptiste Augrain
0a4c9f8822 fix: disable windows' appx (#1321) 2022-11-04 12:48:12 +01:00
Geoffrey Huntley
8a4d27cbc5 docs(marketplace): insights how to self-host vscode marketplace (#1320) 2022-11-03 21:32:44 +01:00
Baptiste Augrain
82818e303b ci: remove cache & use centos dependencies 2022-11-02 20:03:09 +01:00
Baptiste Augrain
06e0b79e29 fix: update patch with correct version 2022-11-02 09:42:32 +01:00
Baptiste Augrain
0f32071868 fix: patch [skip ci] 2022-11-02 08:23:18 +01:00
Baptiste Augrain
b9cf9669ec Merge branch 'master' into insider 2022-11-02 08:13:40 +01:00
Crystal-RainSlide
9bef306878 fix: add translation for release (#1305) 2022-11-01 18:56:12 +01:00
Gabor Greif
43a12a99d9 fix: typo (#1304) 2022-10-26 12:19:21 +02:00
Baptiste Augrain
b99b8a6254 ci: replace all ::set-output 2022-10-24 21:27:03 +02:00
Baptiste Augrain
1151ccb8a5 ci: add force release checkbox [skip ci] 2022-10-24 16:15:48 +02:00
Baptiste Augrain
36077f90dc ci: re-export modified env variables 2022-10-24 15:51:39 +02:00
Baptiste Augrain
34d56d0b52 ci: share more env variables 2022-10-24 15:00:38 +02:00
Baptiste Augrain
fc7019dc75 ci: share env variables 2022-10-24 14:34:38 +02:00
Baptiste Augrain
3cba28cb77 ci: fix restore path 2022-10-24 13:47:42 +02:00
Baptiste Augrain
6694eb6755 ci: fix retention days 2022-10-24 12:55:05 +02:00
Baptiste Augrain
87ce7bc40b ci: fix needs 2022-10-24 12:27:29 +02:00
Baptiste Augrain
3d28de08df ci: disable centos7 arm64 2022-10-24 12:04:36 +02:00
Baptiste Augrain
728235372d ci: force output missing variables 2022-10-23 19:53:10 +02:00
Baptiste Augrain
fb37594000 ci: rename variable 2022-10-23 19:47:16 +02:00
Baptiste Augrain
ad3016dabf ci: don't store repositories (too long) 2022-10-23 19:39:14 +02:00
Baptiste Augrain
e891b4a3dc ci: fix restore data 2022-10-23 19:24:55 +02:00
Baptiste Augrain
f847dfc262 ci: fix workflow 2022-10-23 18:15:40 +02:00
Baptiste Augrain
5fc33c7681 ci: build reh dependencies 2022-10-23 18:13:18 +02:00
Baptiste Augrain
1f2ecf7714 ci: fix linux workflow 2022-10-23 17:54:17 +02:00
Baptiste Augrain
54952104e8 feat: compute reh dependencies from centos7 2022-10-23 17:49:40 +02:00
Baptiste Augrain
9c8d4b367d doc: update downloaded files (#1300) 2022-10-23 15:59:19 +02:00
VSCodium CI
06222aa96e build(insider): update to commit 504c5a7 2022-10-22 09:13:54 +02:00
VSCodium CI
66c137de6a build(insider): update to commit 266ff5b 2022-10-20 09:21:43 +02:00
Baptiste Augrain
79fe5639f3 fix: update patch [skip ci] 2022-10-19 19:41:51 +02:00
Baptiste Augrain
2bdecb847c Merge branch 'master' into insider 2022-10-19 18:25:03 +02:00
Baptiste Augrain
d9493e47c6 fix(ci): get version hash after check_tags.sh since it can modify target version [skip ci] 2022-10-19 18:19:55 +02:00
Baptiste Augrain
8eea67c50d fix(ci): strip -insider from version [skip ci] 2022-10-19 17:56:16 +02:00
Baptiste Augrain
db5caf4c9b ci: build aur in parallel [skip ci] 2022-10-17 11:13:23 +02:00
Crystal-RainSlide
8b5ad26b10 fix: use setpath_json for trusted domains (#1294) 2022-10-17 11:11:34 +02:00
Baptiste Augrain
e14a115b0e fix: use RELEASE_VERSION for BUILD_SOURCEVERSION (#1293) 2022-10-16 23:55:34 +02:00
VSCodium CI
431fecfad7 build(insider): update to commit 3e4e351 2022-10-12 09:20:10 +02:00
Baptiste Augrain
fc8e62c908 fix: correctly generate src archives [skip ci] 2022-10-11 21:58:57 +02:00
VSCodium CI
6b71e7a5d3 build(insider): update to commit 8e1235e 2022-10-11 09:23:08 +02:00
Baptiste Augrain
c14e5d4a97 fix(ci): use secret variable [skip ci] 2022-10-09 19:56:36 +02:00
Pavlo Rudy
2c17eed9d3 add deb-rpm-repo-hook (#1284) 2022-10-09 20:17:21 +03:00
Baptiste Augrain
1aeca3ebce ci(winget): releaser version has being renamed as v1 [skip ci] 2022-10-08 10:16:24 +02:00
Baptiste Augrain
ce4af41a4a ci: fix winget & stale workflows [skip ci] 2022-10-07 21:24:10 +02:00
VSCodium CI
35dcdf39ca build(insider): update to commit fad3a77 2022-10-07 09:20:09 +02:00
Baptiste Augrain
bba3e74815 ci(aur): the version is automatically determined [skip ci] 2022-10-06 23:52:38 +02:00
Baptiste Augrain
9f2a6fe772 ci(linux): disable aur [skip ci] 2022-10-06 23:32:13 +02:00
Baptiste Augrain
ac01dd9d0e fix: stable version should also generate src asset [skip ci] 2022-10-06 23:04:00 +02:00
Baptiste Augrain
10582b3c86 fix: update api [skip ci] 2022-10-06 22:18:18 +02:00
Baptiste Augrain
fed608b13e feat: make build more generic (#1279) 2022-10-06 22:15:41 +02:00
Baptiste Augrain
6cb5e52ffe ci: fix stale workflow [skip ci] 2022-10-06 21:29:08 +02:00
Baptiste Augrain
59e72eed70 Merge branch 'master' into insider 2022-10-06 20:24:19 +02:00
Baptiste Augrain
6fa185f59e ci: stale only issues [skip ci] 2022-10-05 15:19:08 +02:00
Baptiste Augrain
10143fdee2 ci: stale issues [skip ci] 2022-10-05 13:56:58 +02:00
VSCodium CI
fa73d77b97 build(insider): update to commit 64bbfbf 2022-10-05 08:19:10 +02:00
Baptiste Augrain
8335ca9c14 ci: prepare 3rd parties releases [skip ci] 2022-10-04 21:57:06 +02:00
Baptiste Augrain
983eefdc2e feat: update announcements [skip ci] 2022-10-04 21:39:53 +02:00
Baptiste Augrain
633e46eede feat: show announcements to welcome page (#1274) 2022-10-04 19:01:54 +02:00
VSCodium CI
5d3d8c3fb7 build(insider): update to commit 9fb452c 2022-10-04 08:17:18 +02:00
Baptiste Augrain
ae2b84df50 feat: dev build script can build only packages 2022-10-02 10:39:39 +02:00
VSCodium CI
d7450f5afe build(insider): update to commit bcb6c9b 2022-10-01 09:19:18 +02:00
Baptiste Augrain
b87deb8af1 feat: add annoucements 2022-09-30 19:50:49 +02:00
VSCodium CI
4a41898d02 build(insider): update to commit 2c80125 2022-09-30 10:44:22 +02:00
Baptiste Augrain
97eb57c196 fix(msi): launch installer [skip ci] 2022-09-30 08:44:14 +02:00
VSCodium CI
0b4c409685 build(insider): update to commit 96dda01 2022-09-29 09:27:33 +02:00
Baptiste Augrain
d91dc90a71 fix(msi): update shortcuts and context menus 2022-09-28 12:32:19 +02:00
VSCodium CI
8d74a04beb build(insider): update to commit 835d39c 2022-09-28 08:36:49 +02:00
Baptiste Augrain
3f6a260aa3 fix: use official winget-releaser 2022-09-27 20:17:42 +02:00
Baptiste Augrain
b5b3376645 fix: update msi (#1270) 2022-09-27 20:14:27 +02:00
Baptiste Augrain
ecd187faa2 feat(issue): add app manager info 2022-09-27 12:08:27 +02:00
Baptiste Augrain
9f887867a9 fix(ci): delay spearhead because it didn't catch today updates [skip ci] 2022-09-27 12:07:35 +02:00
VSCodium CI
d9b0bdb1fc build(insider): update to commit 36b1398 2022-09-27 12:00:39 +02:00
Baptiste Augrain
81eb0c7da3 fix(aur): rename variables [skip ci] 2022-09-27 00:16:46 +02:00
Baptiste Augrain
fadc24f733 feat(issue): add app manager info 2022-09-26 18:16:19 +02:00
Baptiste Augrain
6023f014bf fix(aur): pass version for insiders 2022-09-26 15:43:56 +02:00
Baptiste Augrain
0671054494 feat(linux): add AUR releases 2022-09-26 14:42:54 +02:00
Baptiste Augrain
87aaa7131e fix(linux): appimage 2022-09-26 11:42:26 +02:00
Baptiste Augrain
8a80e023ad fix: bad keyword 2022-09-26 11:13:10 +02:00
Baptiste Augrain
2f8edd92f3 feat: add DISABLE_UPDATE env to disable updates 2022-09-26 09:30:43 +02:00
miromarszal
f0d9c5aed4 fix(snap): enable wayland (#1268) 2022-09-26 09:24:00 +02:00
VSCodium CI
6b164c0699 build(insider): update to commit eeaee50 2022-09-26 08:37:13 +02:00
miromarszal
6471151e96 fix(snap): enable wayland (#1268) 2022-09-26 08:19:41 +02:00
Baptiste Augrain
aa50b4f557 fix: bad syntax [skip ci] 2022-09-25 18:40:51 +02:00
Baptiste Augrain
2b61812afb fix: generate source archives [skip ci] 2022-09-25 18:31:53 +02:00
Baptiste Augrain
abbc2cb2f1 feat: generate source archives 2022-09-25 18:07:45 +02:00
Baptiste Augrain
36c0f2a014 fix: update patches 2022-09-25 14:54:41 +02:00
VSCodium CI
5b22b7bbc8 build(insider): update to commit 333754f 2022-09-22 08:28:45 +02:00
VSCodium CI
9927efe1dc build(insider): update to commit a829fbb 2022-09-21 08:29:20 +02:00
Baptiste Augrain
d83bfdea6a refactor: worflows [skip ci] 2022-09-19 17:09:16 +02:00
Baptiste Augrain
72e723735f fix(winget): add suffix to release tag 2022-09-19 16:24:59 +02:00
Baptiste Augrain
fe9701d8ff fix(winget): use fork to set release repository [skip ci] 2022-09-19 16:08:51 +02:00
Baptiste Augrain
cd5afd6e58 fix(snap): add missing outputs [skip ci] 2022-09-19 11:43:28 +02:00
Baptiste Augrain
39fab7d947 fix(winget): run with bash [skip ci] 2022-09-19 11:12:45 +02:00
Baptiste Augrain
e87d2b2587 fix(windows): add outputs 2022-09-19 11:03:49 +02:00
Baptiste Augrain
29a963b6ea Merge branch 'master' into insider 2022-09-19 10:39:42 +02:00
VSCodium CI
6299899ee6 build(insider): update to commit bd782eb 2022-09-19 08:33:37 +02:00
Pavlo Rudy
6562d7d4a4 update the supported platform list 2022-09-19 08:36:55 +03:00
Baptiste Augrain
03be08e721 feat: automate winget release (#1260) 2022-09-19 07:27:12 +02:00
Pavlo Rudy
412ab9f469 disable Natural Language Search by default; closes #1185 (#1261) 2022-09-18 23:24:50 +03:00
Baptiste Augrain
a65ecfc37b fix: pat 2022-09-18 14:52:48 +02:00
Baptiste Augrain
1dcb1f9b1f Merge branch 'master' into insider 2022-09-18 11:41:48 +02:00
Vik
b36705ca7f feat(msi): add russian translation (#1255) 2022-09-16 14:27:17 +02:00
VSCodium CI
8fa040c46f build(insider): update to commit b3546b4 2022-09-15 08:24:48 +02:00
Baptiste Augrain
e70f1391b2 fix(ci): use macos 12 runner 2022-09-14 00:00:52 +02:00
Baptiste Augrain
397b37f54c fix(linux): correctly resolve url to get pkg2appimage (#1249) 2022-09-13 22:23:52 +02:00
VSCodium CI
44c14b62bd build(insider): update to commit 1a55beb 2022-09-13 08:32:20 +02:00
Baptiste Augrain
fa83cbc835 fix(macos): cleanup signing [skip ci] 2022-09-12 15:52:26 +02:00
Baptiste Augrain
6d716bc19c fix(macos): signing [skip ci] 2022-09-12 15:06:13 +02:00
Baptiste Augrain
e2020e7ab3 fix(macos): signing [skip ci] 2022-09-12 14:21:34 +02:00
Baptiste Augrain
fb3a6c1855 fix(macos): specify keychain to codesign [skip ci] 2022-09-12 12:37:43 +02:00
Baptiste Augrain
3863b9f70a Merge branch 'insider' of github.com:VSCodium/vscodium into insider 2022-09-12 12:14:41 +02:00
Baptiste Augrain
6567a25215 fix(macos): signing 2022-09-12 12:14:30 +02:00
VSCodium CI
f05b1dfb66 build(insider): update to commit 5cecbf4 2022-09-12 08:33:10 +02:00
Baptiste Augrain
53cb71df89 fix: replace publisher's name (#1246) 2022-09-11 14:41:20 +02:00
Baptiste Augrain
a64611ceda ci: use not deprecated macOS (#1235) 2022-09-11 14:40:30 +02:00
Baptiste Augrain
3664544e77 fix: replace publisher's name (#1246) 2022-09-11 13:08:41 +02:00
VSCodium CI
00b1c23d0b build(insider): update to commit 2d27f8d 2022-09-09 08:19:04 +02:00
Baptiste Augrain
60896956ef fix(ci): put back old keychain after signing (#1245) 2022-09-08 11:06:16 +02:00
VSCodium CI
ca9a6812fd build(insider): update to commit 0f2de31 2022-09-08 08:24:35 +02:00
VSCodium CI
400997b39a build(insider): update to commit daf5eb2 2022-09-07 08:28:56 +02:00
Baptiste Augrain
1e3c695701 fix(snap): disable until classic confinement unsealed [skip ci] 2022-09-05 15:19:04 +02:00
Baptiste Augrain
778e36d118 fix(snap): replace substitution since not in bash [skip ci] 2022-09-05 14:22:00 +02:00
Baptiste Augrain
62d6c2d4f1 fix(snap): fix substitution [skip ci] 2022-09-05 12:33:40 +02:00
Baptiste Augrain
21757c11e7 fix(snap): fix substitution 2022-09-05 12:25:59 +02:00
Baptiste Augrain
7c9d1d4e54 fix(snap): escape backslash [skip ci] 2022-09-05 12:19:09 +02:00
Baptiste Augrain
70906631fe fix(snap): close expression [skip ci] 2022-09-05 12:11:56 +02:00
Baptiste Augrain
d6c96b4533 fix(snap): escape backslash [skip ci] 2022-09-05 11:54:12 +02:00
Baptiste Augrain
2530990d15 fix(snap): rename parts and use short version (#1241) 2022-09-05 11:44:21 +02:00
Baptiste Augrain
10f95cda32 fix(snap): set correct main part and update apps (#1240) 2022-09-05 11:17:56 +02:00
Baptiste Augrain
991fbbbd32 fix(snap): update icon paths (#1239) 2022-09-05 11:03:06 +02:00
Baptiste Augrain
995081e187 fix(snap): no info if no release [skip ci] (#1238) 2022-09-05 10:33:08 +02:00
Baptiste Augrain
452550caa3 fix(snap): no info if no release [skip ci] (#1237) 2022-09-05 10:22:08 +02:00
Baptiste Augrain
315d25a735 fix(snap): version is empty if no release (#1236) 2022-09-05 10:16:08 +02:00
Baptiste Augrain
b07ec41f16 feat: publish snap to edge channel 2022-09-05 09:33:52 +02:00
VSCodium CI
50b00d3036 build(insider): update to commit d17726f 2022-09-05 09:08:10 +02:00
Baptiste Augrain
37210e8499 feat: update insider.json when manual build is ok (#1234) 2022-09-04 20:50:52 +02:00
Baptiste Augrain
b8acee21ca ci: use not deprecated macOS (#1235) 2022-09-04 20:50:32 +02:00
Baptiste Augrain
a5d89f826e fix: update patches and apis (#1231) 2022-09-04 17:39:57 +02:00
Baptiste Augrain
b90af6eda5 ci: improve schedule (#1228) 2022-09-02 17:12:41 +02:00
Baptiste Augrain
7a289a8b61 fix: update quality to stable workflows and generate notes on release [skip ci] 2022-09-02 08:21:24 +02:00
Simon Sobisch
a626779410 fix automated NOTES 2022-09-02 07:58:40 +02:00
Baptiste Augrain
8c4229d230 Merge branch 'insider' 2022-09-02 07:06:49 +02:00
Baptiste Augrain
cfd36105f5 ci: add automated note on new releases [skip ci] 2022-08-31 11:58:39 +02:00
VSCodium CI
e27c6792ce build(insider): update to commit 078f8e9 2022-08-31 11:58:39 +02:00
Baptiste Augrain
9f21a39e6f fix: remove debug [skip ci] 2022-08-31 11:58:39 +02:00
Baptiste Augrain
c35178f8b7 fix: check insider version from release note [skip ci] 2022-08-31 11:58:39 +02:00
Baptiste Augrain
f8f64410c6 fix: remove "-insider" from MS_TAG [skip ci] 2022-08-31 11:58:39 +02:00
Baptiste Augrain
ec4cc3a277 ci: add automated note on new releases [skip ci] 2022-08-31 10:37:08 +02:00
VSCodium CI
c9614d1d31 build(insider): update to commit 078f8e9 2022-08-31 10:20:23 +02:00
Baptiste Augrain
29f4df6515 fix: remove debug [skip ci] 2022-08-31 10:12:41 +02:00
Baptiste Augrain
a8cda7e118 fix: check insider version from release note [skip ci] 2022-08-31 10:10:51 +02:00
Baptiste Augrain
f8b2cc75ae fix: remove "-insider" from MS_TAG [skip ci] 2022-08-31 09:54:04 +02:00
David C
7bbad32dc8 fix: README logo (#1226) 2022-08-31 09:52:17 +02:00
David C
114f731f19 fix: README logo (#1226) 2022-08-31 07:59:51 +02:00
Baptiste Augrain
2aca4d5344 fix: remove -insider suffix and remove some debug [skip ci] 2022-08-30 15:51:28 +02:00
Baptiste Augrain
885abe36a8 fix: remove -insider suffix and remove some debug [skip ci] 2022-08-30 15:49:59 +02:00
VSCodium CI
39a2fd05aa build(insider): update to commit 16faaf4 2022-08-30 15:34:48 +02:00
Baptiste Augrain
5f3af3920b ci(spearhead): add more details [skip ci] 2022-08-30 15:26:39 +02:00
Baptiste Augrain
762cfede26 ci(spearhead): push to correct branch [skip ci] 2022-08-30 15:26:39 +02:00
Baptiste Augrain
2c429f0778 fix: update spearhead workflow [skip ci] 2022-08-30 15:26:39 +02:00
Baptiste Augrain
fa4b4caf59 ci(spearhead): add more details [skip ci] 2022-08-30 15:17:00 +02:00
Baptiste Augrain
e7e2de16ce ci(spearhead): push to correct branch [skip ci] 2022-08-30 15:01:09 +02:00
Baptiste Augrain
8737578ae5 fix: update spearhead workflow [skip ci] 2022-08-30 14:46:23 +02:00
Baptiste Augrain
6da0a42a92 feat: port back changes made inside the insider branch (#1225) 2022-08-30 13:55:17 +02:00
Baptiste Augrain
7f7f2ecdf8 fix(windows): correct msi filename [skip ci] 2022-08-30 12:01:53 +02:00
Baptiste Augrain
f212b71f2a fix: correctly get MS_COMMIT [skip ci] 2022-08-30 10:53:02 +02:00
Baptiste Augrain
ba9a6a1319 ci: add input to set a specific built version [skip ci] 2022-08-30 10:46:58 +02:00
Baptiste Augrain
b803eaaefe fix(windows): msi is correctly built [skip ci] 2022-08-30 10:39:07 +02:00
Baptiste Augrain
c655e94765 fix(windows): add insider banner [skip ci] 2022-08-30 10:14:46 +02:00
Baptiste Augrain
c808d71512 fix(windows): use variable for .exe filename [skip ci] 2022-08-30 00:45:48 +02:00
Baptiste Augrain
4e20dbd99b fix(windows): correctly replace variables [skip ci] 2022-08-29 23:55:37 +02:00
Baptiste Augrain
083e25d289 fix(linux): use find/mv instead of rename [skip ci] 2022-08-29 23:41:30 +02:00
Baptiste Augrain
a549e0bdad fix: don't recreate release [skip ci] 2022-08-29 23:23:54 +02:00
Baptiste Augrain
04f80fcd48 fix: use stronger token [skip ci] 2022-08-29 22:56:03 +02:00
Baptiste Augrain
feeb053e21 fix: appimage build 2022-08-29 22:41:43 +02:00
Baptiste Augrain
8a3d35a42d fix: add owner to gh commands [skip ci] 2022-08-29 22:36:37 +02:00
Baptiste Augrain
290fa2ff81 Merge branch 'master' into insider 2022-08-29 21:59:17 +02:00
Baptiste Augrain
39af33e65a fix: generate artifacts (#1223) 2022-08-29 21:56:51 +02:00
Baptiste Augrain
697bd5ef83 refactor: move artifacts building and signing into prepare_artifacts.sh [skip ci] (#1221) 2022-08-29 17:53:29 +02:00
Baptiste Augrain
fc9d6ae8b3 fix(linux): don't check dependencies [no ci] 2022-08-29 17:15:36 +02:00
Baptiste Augrain
430d4e3888 ci: force workflows to there respective branch when manually launched
skip-checks: true
2022-08-29 16:18:59 +02:00
Baptiste Augrain
2ce1de5f4c Merge branch 'master' into insider 2022-08-29 16:10:21 +02:00
Baptiste Augrain
3345c43231 ci: remove to much debug
skip-checks: true
2022-08-29 16:06:56 +02:00
Baptiste Augrain
78b66c8909 fix(insider): spreadhead workflow must not be executed by a push or a PR 2022-08-29 15:49:24 +02:00
Baptiste Augrain
386b08ac38 Merge branch 'master' into insider 2022-08-29 15:46:02 +02:00
Baptiste Augrain
61e880da67 feat: insider version (#1217) 2022-08-29 15:13:25 +02:00
Baptiste Augrain
91f4e79db7 feat: add green icon 2022-08-26 01:35:26 +02:00
Baptiste Augrain
58707d73ba ci(snap): re-enable arm64 (#1211) 2022-08-25 01:18:03 +02:00
Baptiste Augrain
aa508b1322 feat: build successfully with new patches 2022-08-25 00:34:28 +02:00
Baptiste Augrain
121385623c ci: update when to run workflows 2022-08-23 00:59:49 +02:00
Baptiste Augrain
4e1058ef10 refactor: rename build script 2022-08-22 15:12:30 +02:00
Baptiste Augrain
70e6f66c60 feat: build insider from saved commit or from the latest 2022-08-22 15:10:00 +02:00
Baptiste Augrain
3a0ac5f70e Merge branch 'master' into insider 2022-08-21 21:37:54 +02:00
Baptiste Augrain
f21c11dde0 fix: install checksum only when needed (#1213) 2022-08-21 19:15:37 +02:00
Baptiste Augrain
7a2a3a7ab0 ci: disable insider and reh on windows arm64 2022-08-17 07:46:48 +02:00
Baptiste Augrain
41d477decd feat: update to support insider version 2022-08-17 07:36:15 +02:00
Baptiste Augrain
637ec23444 ci: disable appimage for non-x64 (#1208) 2022-08-17 07:01:37 +02:00
Baptiste Augrain
bbddc94a72 ci: use directly boolean input (#1207) 2022-08-17 06:23:19 +02:00
Baptiste Augrain
a4e5b2a101 fix: update issue reporter (#1206) 2022-08-16 23:37:20 +02:00
Baptiste Augrain
bfdaf23c6d build(linux): use vscode's ripgrep (#1205) 2022-08-16 23:10:04 +02:00
Baptiste Augrain
98bac0c1eb doc: update build doc and add script for docker (#1204) 2022-08-16 22:39:08 +02:00
Baptiste Augrain
81d304fa37 fix: split version for vscode (#1202) 2022-08-16 19:00:11 +02:00
Baptiste Augrain
fcbf70d7ca fix: use correct url to check tags (#1201) 2022-08-16 17:03:45 +02:00
Baptiste Augrain
bffbd569a5 fix: patch all versions (for macos and reh) (#1198) 2022-08-16 16:11:08 +02:00
Baptiste Augrain
79cdcd61bf ci: add input to force new release (#1197) 2022-08-16 15:33:34 +02:00
Baptiste Augrain
7327f9910d ci: get MS_TAG from update api (#1196) 2022-08-16 14:33:30 +02:00
Baptiste Augrain
118ea7993d feat: add release number (#1192) 2022-08-16 13:51:45 +02:00
Baptiste Augrain
ed5a695d2c ci(windows): disable winget until further testing (#1193) 2022-08-14 11:22:00 +02:00
Vedant
86456d833f ci(windows): prevent winget step from running multiple times (#1186) 2022-08-14 10:04:59 +02:00
Baptiste Augrain
f05272f2d0 fix: update api proposals (#1187) 2022-08-09 15:21:59 +02:00
Vedant
383b7ef4f8 feat: publish to winget (#1174) 2022-08-09 12:06:38 +02:00
Baptiste Augrain
2874277aa4 fix: replace grep with ripgrep due to excruciating timing (#1170) 2022-08-05 13:09:02 +02:00
Baptiste Augrain
8883466ef5 fix(1.70): disable dependencies checking for .deb (#1180) 2022-08-05 12:08:36 +02:00
Pavlo Rudy
fdc6b32d8b close #1160 2022-07-15 21:29:11 +03:00
Todd Williams
81836873af docs: update legality of vscode marketplace's usage (#1092) 2022-07-09 08:13:26 +02:00
Baptiste Augrain
3fa8eee9fe feat: add script to update patches (#1138) 2022-06-20 10:34:50 +02:00
Baptiste Augrain
55d502d659 doc: add patch update process (#1136) 2022-06-19 12:08:28 +02:00
Pavel Sterin
f6a99949c5 feat: use github versions of included extensions (#1133) 2022-06-19 11:49:56 +02:00
Baptiste Augrain
85126f1a7c fix: set the built files at the built time (#1132) 2022-06-17 14:47:08 +02:00
Baptiste Augrain
bca4eea470 fix(snap): remove double env variable (#1131) 2022-06-16 23:09:25 +02:00
Baptiste Augrain
2b190dfe51 fix(snap): use master branch to publish (#1130) 2022-06-16 23:06:07 +02:00
Baptiste Augrain
c4583ad3f0 fix: use env variable instead of login option (#1128) 2022-06-16 12:20:10 +02:00
laksith19
79a9f4a292 Remove repeated dependency (#1125) 2022-06-15 18:36:20 +03:00
Baptiste Augrain
112f730493 fix: generate mssing out directory (#1117) 2022-06-11 13:46:15 +02:00
Baptiste Augrain
7313f3ad25 ci(linux): correctly detect reh binaries (#1116) 2022-06-10 07:31:34 +02:00
Baptiste Augrain
bbaaed2ec1 fix: update patches & install optional dependencies (#1115) 2022-06-09 22:19:30 +02:00
Frazer Smith
3737c9f4e2 build: Use cd ... || exit in case cd fails (#1107) 2022-06-08 22:03:44 +02:00
Baptiste Augrain
90bc38c840 vcs: fix lock workflow config (#1113) 2022-06-08 18:00:26 +02:00
Baptiste Augrain
84b4396476 feat: add support for reh (#1111) 2022-06-08 16:59:06 +02:00
Frazer Smith
add78d6829 build(stores/snapcraft): quote grep pattern so shell won't interpret it (#1108) 2022-06-07 23:20:09 +02:00
Frazer Smith
98d30bdc2c build: double quote args and wrap in brace expansions (#1105) 2022-06-05 21:30:23 +02:00
Baptiste Augrain
31355417a8 vcs: add workflow to lock old closed issues (#1106) 2022-06-05 16:52:38 +02:00
Baptiste Augrain
c3debb387d feat(macos): build script is detecting arch (#1085) 2022-05-16 01:35:17 +02:00
Baptiste Augrain
c53a88ee51 docs: improve macOS troubleshooting and add thanks table (#1083)
* docs: update supported macOS and link to troubleshooting wiki
* docs: add thanks table
2022-05-14 20:16:15 +02:00
Baptiste Augrain
c2469ff520 fix: re-enable 32bits builds with npm_config_force_process_config env variable (#1082) 2022-05-14 18:44:59 +02:00
Baptiste Augrain
70082e0f0f fix(macos): correctly clean up keychain (#1075) 2022-05-07 17:29:18 +02:00
Baptiste Augrain
e9ea41fcfa fix(macos): clean up keychain (#1074) 2022-05-07 17:18:14 +02:00
Baptiste Augrain
014d9a339d fix(macos): delete keychain to avoid conflict on next release (#1071) 2022-05-07 14:02:20 +02:00
Pavlo Rudy
4855694fd6 fix: add git workaround for release upload (#1069) 2022-05-07 13:51:07 +02:00
Maikel
e480df5b1f fix: update 'Report Issue' GitHub url. (#1068) 2022-05-07 09:51:33 +02:00
Baptiste Augrain
0932463dfb fix(1.67): update patches (#1066) 2022-05-07 09:50:30 +02:00
Baptiste Augrain
65e376786f ci: add macos arm64 (#1063) 2022-04-27 17:58:03 +02:00
Baptiste Augrain
afe72aba83 fix: disable updating the builtin extensions (#1062) 2022-04-27 17:20:47 +02:00
Pineapples
bff2e71e55 docs: update CODE_OF_CONDUCT.md from v1.4 to v2.1 (#1056) 2022-04-20 06:09:35 +02:00
Baptiste Augrain
966ae12699 build: use node v16 (#1054) 2022-04-19 22:55:02 +02:00
GeopJr
843ef66728 fix: letterpress icons names (#1042) 2022-04-19 20:35:22 +02:00
PF4Public
8336a4c7ad fix: update telemetry domains (#1047) 2022-04-14 23:28:22 +02:00
Frazer Smith
1eff01d6f0 ci: bump github actions (#1046) 2022-04-11 14:37:54 +02:00
Baptiste Augrain
db8d1e7a8d fix: add missing extensionEnabledApiProposals and more (#1040) 2022-04-07 23:15:32 +02:00
Baptiste Augrain
c741ae3347 refactor: remove deprecated telemetry.enableTelemetry (#1039) 2022-04-07 20:30:38 +02:00
Baptiste Augrain
becd52f518 ci: fully disable snap for arm64 (#1028) 2022-03-31 12:20:26 +02:00
Baptiste Augrain
7ee4f2f735 fix(1.66): update patches & linux workflow (#1027) 2022-03-31 10:46:32 +02:00
Baptiste Augrain
3208188249 build: use windows 2019 since 2016 is deprecated (#1017) 2022-03-16 09:02:30 +01:00
Baptiste Augrain
be445bcba6 docs: update CI shields in README.md (#1016) 2022-03-16 08:06:03 +01:00
Baptiste Augrain
3277bd4fa1 fix: try to fix snap (#1009) 2022-03-07 11:18:37 +01:00
Baptiste Augrain
08b0b1b3e5 fix(snap): add debug infos (#1008) 2022-03-04 15:08:21 +01:00
Baptiste Augrain
c46abc14ee fix(appimage): remove unnecessary glib (#1007) 2022-03-04 15:02:49 +01:00
Baptiste Augrain
5bd755a9cc fix(1.65): update patches (#1001) 2022-03-04 09:47:45 +01:00
Baptiste Augrain
1cbc6e55bf enhance: move variables outside loop (#1002) 2022-03-04 09:16:49 +01:00
Simon Sobisch
351460f992 Merge pull request #997 from dsm/master
changed hardcoded owner
2022-03-04 08:33:58 +01:00
Muhammet Şükrü Demir
f7e1c11ea7 owner and repository pre-calculated
added OWNER and REPOSITORY var using github env vars and if not available fallback option is available.
2022-03-04 10:30:33 +03:00
Muhammet Şükrü Demir
50197bbeef changed hardcoded owner 2022-02-15 15:03:01 +03:00
Baptiste Augrain
b319b178ea fix: update size of letterpress images (#992) 2022-02-06 16:05:53 +01:00
Baptiste Augrain
2dab7cfcdf fix(1.64): update patch (#988) 2022-02-03 21:46:31 +01:00
Baptiste Augrain
6a86200d38 docs: how to fix default file manager on linux (#983) 2022-01-30 14:12:54 +01:00
Rui Ming (Max) Xiong
c803059121 docs: update built-in package names (#982) 2022-01-28 08:16:44 +01:00
Pavlo Rudy
d529fd3c20 Merge pull request #978 from myersg86/master
Fix typos in DOCS.md and README.md
2022-01-22 19:53:53 +02:00
myersg86
f817226abd Fix typos in DOCS.md and README.md
DOCS.md:85,91: offical -> official
README.md:130: limitted -> limited
2022-01-22 10:50:18 -07:00
Baptiste Augrain
353c002605 fix(appimage): remove extraneous libs (#944) 2022-01-20 20:04:34 +01:00
Baptiste Augrain
3f00a255b1 build(win): remove superfluous files from archive (#967) 2021-12-26 10:34:08 +01:00
Baptiste Augrain
23152cf50f fix(snap): review snap only when needed (#959) 2021-12-18 16:08:51 +01:00
Bruno Cabral
1f31a1c27b indicate build documentation (#890) 2021-12-18 15:44:29 +01:00
Baptiste Augrain
49eb715333 fix(snap): publish snap as stable (#958) 2021-12-18 15:42:43 +01:00
Baptiste Augrain
bbcdc2be11 fix(snap): add missing icons and add review before publish (#957) 2021-12-18 10:24:44 +01:00
Baptiste Augrain
dfd7ebbf85 fix: updating snapcraft.yaml to latest version (#956) 2021-12-18 05:17:12 +01:00
Baptiste Augrain
e087f00ff1 fix: specify image for arm64 (#954) 2021-12-18 04:30:42 +01:00
Baptiste Augrain
79bc275386 fix: update acl (#953) 2021-12-18 04:03:23 +01:00
Baptiste Augrain
851b5f2659 fix: pass platform and correctly release (#952) 2021-12-18 03:28:34 +01:00
Baptiste Augrain
e5de9c3096 fix: install snapcraft to check version (#951) 2021-12-18 03:09:27 +01:00
Baptiste Augrain
3b6954231f fix: detect version based on the architecture (#950) 2021-12-18 02:58:54 +01:00
Baptiste Augrain
99840540ac fix: use diddlesnaps/snapcraft-multiarch-action to generate arm64 snap (#949) 2021-12-18 02:25:18 +01:00
Baptiste Augrain
3103c80234 fix: correct jobs' runs-on (#948) 2021-12-18 01:41:21 +01:00
Baptiste Augrain
6a4668040b fix: use ubuntu-18.04 (#947) 2021-12-18 01:35:10 +01:00
Baptiste Augrain
02755e7599 fix: build differently so arm64 can be generated (#946) 2021-12-18 01:24:22 +01:00
Baptiste Augrain
36b06dd66b fix: correct script to get latest snap version (#945) 2021-12-18 00:37:49 +01:00
Baptiste Augrain
33a6670cad feat: publish snap (#942) 2021-12-17 23:21:31 +01:00
340 changed files with 7145 additions and 5713 deletions

View File

@@ -20,3 +20,6 @@ indent_size = 2
[*.patch]
trim_trailing_whitespace = false
insert_final_newline = false
[*.svg]
insert_final_newline = false

View File

@@ -33,6 +33,8 @@ If applicable, add screenshots to help explain your problem.
- OS: [e.g. Mac OS, Ubuntu 20.04, etc]
- Architecture [e.g. x64, ia32, arm64]
- Version [e.g. 1.33.0]
- App Manager [e.g. Winget, Homebrew, Snap, AUR, RPM, Nix, ...]
- Sandboxed [e.g. no, Flatpak, Snap]
**Additional context**
Add any other context about the problem here.

11
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

280
.github/workflows/insider-linux.yml vendored Normal file
View File

@@ -0,0 +1,280 @@
name: insider-linux
on:
workflow_dispatch:
inputs:
release_version:
type: string
description: Forced release version
new_release:
type: boolean
description: Force new Release
schedule:
- cron: '0 8 * * *'
push:
branches: [ insider ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ insider ]
paths-ignore:
- '**/*.md'
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
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 }}
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
run: ./get_repo.sh
- name: Check PR or cron
run: ./check_cron_or_pr.sh
dependencies:
needs:
- check
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:bionic-x64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v2
if: matrix.vscode_arch == 'arm64'
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Yarn
run: npm install -g yarn
- name: Install remote dependencies (x64)
env:
npm_config_arch: x64
run: ./install_remote_dependencies.sh
if: matrix.vscode_arch == 'x64'
# - 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: Save remote dependencies
uses: actions/upload-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
build:
needs:
- check
- dependencies
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:stretch-arm64
- vscode_arch: armhf
npm_arch: armv7l
image: vscodium/vscodium-linux-build-agent:stretch-armhf
container:
image: ${{ matrix.image }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Install GH
run: ./install_gh.sh
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Yarn
run: npm install -g yarn
- 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'
- name: Restore remote dependencies
uses: actions/download-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
aur:
needs:
- build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- package_name: vscodium-insiders-bin
- package_name: vscodium-insiders
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- name: Get version
env:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
run: echo "PACKAGE_VERSION=${RELEASE_VERSION/-*/}" >> "${GITHUB_ENV}"
- name: Publish ${{ matrix.package_name }}
uses: zokugun/github-actions-aur-releaser@v1
with:
package_name: ${{ matrix.package_name }}
package_version: ${{ env.PACKAGE_VERSION }}
aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }}
aur_username: ${{ secrets.AUR_USERNAME }}
aur_email: ${{ secrets.AUR_EMAIL }}
snap:
needs:
- build
runs-on: ubuntu-latest
env:
APP_NAME: codium
strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64
# if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
if: false
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: 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 }}
with:
snap: ${{ steps.build.outputs.snap }}
release: edge
if: env.SHOULD_DEPLOY == 'yes'

106
.github/workflows/insider-macos.yml vendored Normal file
View File

@@ -0,0 +1,106 @@
name: insider-macos
on:
workflow_dispatch:
inputs:
release_version:
type: string
description: Forced release version
new_release:
type: boolean
description: Force new Release
schedule:
- cron: '0 8 * * *'
push:
branches: [ insider ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ insider ]
paths-ignore:
- '**/*.md'
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
jobs:
build:
runs-on: ${{ matrix.runner }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
include:
- runner: macos-12
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
run: . get_repo.sh
- name: Check PR or cron
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'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
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: Clean up keychain
if: always()
run: |
KEYCHAIN=$RUNNER_TEMP/build.keychain
if [ -f "$KEYCHAIN" ];
then
security delete-keychain $KEYCHAIN
fi

68
.github/workflows/insider-spearhead.yml vendored Normal file
View File

@@ -0,0 +1,68 @@
name: insider-spearhead
on:
workflow_dispatch:
schedule:
- cron: '0 7 * * *'
jobs:
build:
runs-on: [self-hosted, macOS, ARM64]
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_QUALITY: insider
steps:
- uses: actions/checkout@v3
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Clone VSCode repo
run: . get_repo.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
if: env.SHOULD_BUILD == 'yes'

139
.github/workflows/insider-windows.yml vendored Normal file
View File

@@ -0,0 +1,139 @@
name: insider-windows
on:
workflow_dispatch:
inputs:
release_version:
type: string
description: Forced release version
new_release:
type: boolean
description: Force new Release
schedule:
- cron: '0 8 * * *'
push:
branches: [ insider ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ insider ]
paths-ignore:
- '**/*.md'
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
jobs:
build:
runs-on: windows-2019
defaults:
run:
shell: bash
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
vscode_arch:
- x64
- ia32
- arm64
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
run: ./get_repo.sh
- name: Check PR or cron
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'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
winget:
needs: build
runs-on: windows-latest
defaults:
run:
shell: bash
env:
APP_IDENTIFIER: VSCodium.VSCodium.Insiders
ASSETS_REPOSITORY: vscodium-insiders
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Check version
run: ./stores/winget/check_version.sh
env:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
- name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@v2
with:
identifier: ${{ env.APP_IDENTIFIER }}
version: ${{ env.RELEASE_VERSION }}
release-repository: ${{ env.ASSETS_REPOSITORY }}
release-tag: ${{ env.RELEASE_VERSION }}-insider
installers-regex: '\.exe$' # only .exe files
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
if: env.SHOULD_DEPLOY == 'yes'

View File

@@ -1,101 +0,0 @@
name: linux_build
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
push:
pull_request:
branches: [ master ]
jobs:
linux:
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
env:
OS_NAME: 'linux'
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:stretch-arm64
- vscode_arch: armhf
npm_arch: armv7l
image: vscodium/vscodium-linux-build-agent:stretch-armhf
steps:
- uses: actions/checkout@v2
- name: Install GH
run: ./install_gh.sh
- name: Setup Node.js environment
uses: actions/setup-node@v1
with:
node-version: 14
- name: Install Yarn
run: npm install -g yarn
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
run: ./check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Compute cache key
id: yarnCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
if: env.SHOULD_BUILD == 'yes'
- name: Get yarn cache directory path
id: yarnCacheDirPath
run: echo "::set-output name=dir::$(yarn cache dir)"
if: env.SHOULD_BUILD == 'yes'
- name: Cache yarn directory
uses: actions/cache@v2
with:
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
key: linux-${{ matrix.npm_arch }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
restore-keys: linux-${{ matrix.npm_arch }}-yarnCacheDir-
if: env.SHOULD_BUILD == 'yes'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare artifacts
run: ./prepare_artifacts.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
run: ./update_version.sh
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}

16
.github/workflows/lock.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: Lock Issues
on:
schedule:
- cron: '0 2 * * *'
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4
with:
github-token: ${{ github.token }}
issue-inactive-days: '90'
pr-inactive-days: '90'
log-output: true

View File

@@ -1,108 +0,0 @@
name: macos_build
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
push:
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
os: macOS-10.15
# - vscode_arch: arm64
# os: macOS-11
env:
OS_NAME: "osx"
VSCODE_ARCH: ${{ matrix.vscode_arch }}
steps:
- uses: actions/checkout@v2
- name: Setup Node.js environment
uses: actions/setup-node@v1
with:
node-version: 14
- name: Clone VSCode repo
run: . get_repo.sh
- name: Check PR or cron
run: . check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: . check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Compute cache key
id: yarnCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
if: env.SHOULD_BUILD == 'yes'
- name: Get yarn cache directory path
id: yarnCacheDirPath
run: echo "::set-output name=dir::$(yarn cache dir)"
if: env.SHOULD_BUILD == 'yes'
- name: Cache yarn directory
uses: actions/cache@v2
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: Sign binary
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
run: |
if [ -d "VSCode-darwin-${VSCODE_ARCH}" ]; then # just in case the build failed
cd "VSCode-darwin-${VSCODE_ARCH}"
export CERTIFICATE_P12=VSCodium.p12
echo $CERTIFICATE_OSX_P12 | base64 --decode > $CERTIFICATE_P12
export KEYCHAIN=build.keychain
security create-keychain -p mysecretpassword $KEYCHAIN
security default-keychain -s $KEYCHAIN
security unlock-keychain -p mysecretpassword $KEYCHAIN
security import $CERTIFICATE_P12 -k $KEYCHAIN -P $CERTIFICATE_OSX_PASSWORD -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
codesign --deep --force --verbose --sign "$CERTIFICATE_OSX_ID" VSCodium.app
fi
- name: Prepare artifacts
run: ./prepare_artifacts.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
run: ./update_version.sh
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}

281
.github/workflows/stable-linux.yml vendored Normal file
View File

@@ -0,0 +1,281 @@
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 * * *'
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
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 }}
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
run: ./check_cron_or_pr.sh
dependencies:
needs:
- check
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:bionic-x64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v2
if: matrix.vscode_arch == 'arm64'
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Yarn
run: npm install -g yarn
- name: Install remote dependencies (x64)
env:
npm_config_arch: x64
run: ./install_remote_dependencies.sh
if: matrix.vscode_arch == 'x64'
# - 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: Save remote dependencies
uses: actions/upload-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
build:
needs:
- check
- dependencies
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:stretch-arm64
- vscode_arch: armhf
npm_arch: armv7l
image: vscodium/vscodium-linux-build-agent:stretch-armhf
container:
image: ${{ matrix.image }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Install GH
run: ./install_gh.sh
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Yarn
run: npm install -g yarn
- 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'
- name: Restore remote dependencies
uses: actions/download-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_DEPLOY == 'yes'
aur:
needs:
- build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- package_name: vscodium
package_type: stable
- package_name: vscodium-git
package_type: rolling
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- name: Publish ${{ matrix.package_name }}
uses: zokugun/github-actions-aur-releaser@v1
with:
package_name: ${{ matrix.package_name }}
package_type: ${{ matrix.package_type }}
aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }}
aur_username: ${{ secrets.AUR_USERNAME }}
aur_email: ${{ secrets.AUR_EMAIL }}
snap:
needs:
- build
runs-on: ubuntu-latest
env:
APP_NAME: codium
strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- 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: diddlesnaps/snapcraft-multiarch-action@v1
with:
path: stores/snapcraft/stable
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 }}
with:
snap: ${{ steps.build.outputs.snap }}
release: stable
if: env.SHOULD_DEPLOY == 'yes'
deb-rpm-repo-hook:
needs:
- build
runs-on: ubuntu-latest
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- name: Trigger repository rebuild
env:
GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }}
run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline

101
.github/workflows/stable-macos.yml vendored Normal file
View File

@@ -0,0 +1,101 @@
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 * * *'
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
jobs:
build:
runs-on: ${{ matrix.runner }}
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
include:
- runner: macos-12
vscode_arch: x64
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Clone VSCode repo
run: . get_repo.sh
- name: Check PR or cron
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'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Clean up keychain
if: always()
run: |
KEYCHAIN=$RUNNER_TEMP/build.keychain
if [ -f "$KEYCHAIN" ];
then
security delete-keychain $KEYCHAIN
fi

131
.github/workflows/stable-windows.yml vendored Normal file
View File

@@ -0,0 +1,131 @@
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 * * *'
push:
branches: [ master ]
paths-ignore:
- '**/*.md'
pull_request:
branches: [ master ]
paths-ignore:
- '**/*.md'
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
jobs:
build:
runs-on: windows-2019
defaults:
run:
shell: bash
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
strategy:
fail-fast: false
matrix:
vscode_arch:
- x64
- ia32
- arm64
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
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'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
env:
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./update_version.sh
if: env.SHOULD_DEPLOY == 'yes'
winget:
needs: build
runs-on: windows-latest
defaults:
run:
shell: bash
env:
APP_IDENTIFIER: VSCodium.VSCodium
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- name: Check version
run: ./stores/winget/check_version.sh
env:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
- name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@v2
with:
identifier: ${{ env.APP_IDENTIFIER }}
version: ${{ env.RELEASE_VERSION }}
release-tag: ${{ env.RELEASE_VERSION }}
installers-regex: '\.exe$' # only .exe files
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
if: env.SHOULD_DEPLOY == 'yes'

25
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: Stale Issues
on:
schedule:
- cron: '0 1 * * *'
permissions:
issues: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
with:
days-before-stale: 180
days-before-close: 30
stale-issue-label: stale
operations-per-run: 1024
stale-issue-message: >
This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment!
close-issue-message: >
This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue.
exempt-issue-labels: discussion
only-pr-labels: not-a-real-label

View File

@@ -1,95 +0,0 @@
name: windows_build
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
push:
pull_request:
branches: [ master ]
jobs:
windows:
runs-on: windows-2016
defaults:
run:
shell: bash
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
OS_NAME: 'windows'
strategy:
fail-fast: false
matrix:
vscode_arch: [x64, ia32, arm64]
steps:
- uses: actions/checkout@v2
- name: Setup Node.js environment
uses: actions/setup-node@v1
with:
node-version: 14
- name: Install Yarn
run: npm install -g yarn
- name: Setup Python 2
uses: actions/setup-python@v2
with:
python-version: '2.x'
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
run: ./check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Compute cache key
id: yarnCacheKey
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
if: env.SHOULD_BUILD == 'yes'
- name: Get yarn cache directory path
id: yarnCacheDirPath
run: echo "::set-output name=dir::$(yarn cache dir)"
if: env.SHOULD_BUILD == 'yes'
- name: Cache yarn directory
uses: actions/cache@v2
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 }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
- name: Prepare artifacts
run: ./prepare_artifacts.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./release.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
- name: Update versions repo
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
run: ./update_version.sh
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}

15
.gitignore vendored
View File

@@ -1,7 +1,16 @@
vscode
vscode*
VS*/*
VSCode*
VSCodium*
.DS_Store
*.env
assets/
build/linux/appimage/out
build/linux/appimage/pkg2appimage.AppDir
build/linux/appimage/pkg2appimage-*.AppImage
build/linux/appimage/squashfs-root
build/linux/appimage/VSCodium
build/windows/msi/releasedir
build/windows/rtf/Readme (Abridged).txt
build/windows/rtf/TXT to RTF Converter.exe
build/windows/msi/Files*.wxs
build/windows/msi/Files*.wixobj
remote-dependencies.tar

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
v16.14.2

View File

@@ -2,45 +2,122 @@
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
Examples of behavior that contributes to a positive environment for our
community include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior by participants include:
Examples of unacceptable behavior include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
## Enforcement Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at vscodium@protonmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
vscodium@protonmail.com.
All complaints will be reviewed and investigated promptly and fairly.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html

82
DOCS.md
View File

@@ -5,12 +5,15 @@
- [Getting all the Telemetry Out](#disable-telemetry)
- [Replacements to Microsoft Online Services](#replacement-online-services)
- [Extensions + Marketplace](#extensions-marketplace)
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
- [How to use the VS Code Marketplace](#howto-vscode-marketplace)
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
- [Proprietary Extensions](#proprietary-extensions)
- [Migrating from Visual Studio Code to VSCodium](#migrating)
- [Sign in with GitHub](#signin-github)
- [How do I run VSCodium in portable mode?](#portable)
- [How do I fix the default file manager?](#file-manager)
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
- [How do I open VSCodium from the terminal?](#terminal-support)
- [From Linux .tar.gz](#from-linux-targz)
@@ -42,55 +45,85 @@ Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Exten
## <a id="extensions-marketplace"></a>Extensions + Marketplace
The `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
Being a vscode based editor, VSCodium gets additional features by installing VS Code extensions.
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use VS Code extensions in non-Microsoft products those need to be installed differently.
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix).
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
You can switch and use the VS Code marketplace by using the following solutions. However, note that [it is not clear whether this is legal](https://github.com/microsoft/vscode/issues/31168).
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
With the following environment variables:
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
- `VSCODE_GALLERY_CONTROL_URL=''`
- `VSCODE_GALLERY_RECOMMENDATIONS_URL=''`
Or by creating a custom `product.json` at the following location:
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
- macOS: `~/Library/Application Support/VSCodium`
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
with the content:
```json
- Note: set `cacheUrl` to empty string for every other extension gallery
```jsonc
{
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"itemUrl": "https://marketplace.visualstudio.com/items",
"controlUrl": "",
"recommendationsUrl": ""
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"controlUrl": ""
}
}
```
### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery. In all of these cases you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
There are likely other options, but the following were reported to work:
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the offical Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
### <a id="proprietary-extensions"></a>Proprietary Extensions
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the offical Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
```json
```jsonc
"extensionAllowedProposedApi": [
// ...
"ms-vscode-remote.vscode-remote-extensionpack",
@@ -134,16 +167,33 @@ Select the scopes dependending of the extension which need access to GitHub. (Gi
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
## <a id="portable"></a>How do I run VSCodium in portable mode?
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
- **Windows** / **Linux** : the instructions can be followed as written.
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
In some case, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
```
[Default Applications]
inode/directory=org.gnome.Nautilus.desktop;
```
You can find your regular file manager with the command:
```
> grep directory /usr/share/applications/mimeinfo.cache
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
```
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
```bash
$ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
```
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?

View File

@@ -1,24 +1,28 @@
<div id="vscodium-logo" align="center">
<br />
<img src="./src/resources/linux/code.png" alt="VSCodium Logo" width="200"/>
<img src="./icons/stable/codium_cnl.svg" alt="VSCodium Logo" width="200"/>
<h1>VSCodium</h1>
<h3>Free/Libre Open Source Software Binaries of VS Code</h3>
</div>
<div id="badges" align="center">
[![current release](https://img.shields.io/github/release/vscodium/vscodium.svg)](https://github.com/vscodium/vscodium/releases)
[![windows_build_status](https://dev.azure.com/vscodium/VSCodium/_apis/build/status/VSCodium.vscodium?branchName=master)](https://dev.azure.com/vscodium/VSCodium/_build?definitionId=1)
[![current release](https://img.shields.io/github/release/vscodium/vscodium.svg)](https://github.com/vscodium/vscodium/releases)
[![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE)
[![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby)
[![codium](https://snapcraft.io//codium/badge.svg)](https://snapcraft.io/codium)
[![codium](https://snapcraft.io//codium/trending.svg?name=0)](https://snapcraft.io/codium)
[![build status (linux)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-linux.yml?branch=master&label=build%28linux%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-linux.yml?query=branch%3Amaster)
[![build status (macos)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-macos.yml?branch=master&label=build%28macOS%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-macos.yml?query=branch%3Amaster)
[![build status (windows)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-windows.yml?branch=master&label=build%28windows%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-windows.yml?query=branch%3Amaster)
</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.**
## Table of Contents
- [Download/Install](#download-install)
- [Install with Brew](#install-with-brew)
- [Install with Windows Package Manager (WinGet)](#install-with-winget)
@@ -28,36 +32,42 @@
- [Install with Package Manager](#install-with-package-manager)
- [Install on Arch Linux](#install-on-arch-linux)
- [Flatpak Option](#flatpak)
- [Build](#build)
- [Why Does This Exist](#why)
- [More Info](#more-info)
- [Supported Platforms](#supported-platforms)
## <a id="download-install"></a>Download/Install
:tada: :tada: [Download latest release here](https://github.com/VSCodium/vscodium/releases) :tada: :tada:
[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
brew install --cask vscodium
```
_Note for Mac macOS Mojave users: if you see "App can't be opened because Apple cannot check it for malicious software" when opening VSCodium the first time, you can right-click the application and choose Open. This should only be required the first time opening on Mojave._
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/wiki/Troubleshooting#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
```
#### <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
choco install vscodium
```
#### <a id="install-with-scoop"></a>Install with Scoop (Windows)
If you use Windows and have [Scoop](https://scoop.sh) installed:
```bash
scoop bucket add extras
@@ -65,19 +75,23 @@ scoop install vscodium
```
#### <a id="install-with-snap"></a>Install with snap (GNU/Linux)
VSCodium is available in the [Snap Store](https://snapcraft.io/) as [Codium](https://snapcraft.io/codium), published by the [Snapcrafters](https://github.com/snapcrafters/codium) community.
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](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.
#### <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.
#### <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/):
```bash
flatpak install flathub com.vscodium.codium
@@ -85,24 +99,30 @@ 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)
## <a id="why"></a>Why Does This Exist
This repository contains build files to generate free release binaries of Microsoft's VS Code. When we speak of "free software", we're talking about freedom, not price.
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
> When we [Microsoft] build Visual Studio Code, we do exactly this. We clone the vscode repository, we lay down a customized product.json that has Microsoft specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under our license.
>
>
> When you clone and build from the vscode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a "clean" build, without the Microsoft customizations, which is by default licensed under the MIT license
This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to [GitHub releases](https://github.com/VSCodium/vscodium/releases). __These binaries are licensed under the MIT license. Telemetry is disabled.__
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VS Code.
Microsoft's build process (which we are running to build the binaries) does download additional files. This was brought up in [Microsoft/vscode#49159](https://github.com/Microsoft/vscode/issues/49159) and [Microsoft/vscode#45978](https://github.com/Microsoft/vscode/issues/45978). These are the packages downloaded during build:
Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:
- Extensions from the Microsoft Marketplace:
- [ms-vscode.node-debug2](https://marketplace.visualstudio.com/items?itemName=ms-vscode.node-debug2)
- [ms-vscode.node-debug](https://marketplace.visualstudio.com/items?itemName=ms-vscode.node-debug)
- Pre-built extensions from the GitHub:
- [ms-vscode.js-debug-companion](https://github.com/microsoft/vscode-js-debug-companion)
- [ms-vscode.js-debug](https://github.com/microsoft/vscode-js-debug)
- [ms-vscode.vscode-js-profile-table](https://github.com/microsoft/vscode-js-profile-visualizer)
- From [Electron releases](https://github.com/electron/electron/releases) (using [gulp-atom-electron](https://github.com/joaomoreno/gulp-atom-electron))
- electron
- ffmpeg
@@ -110,36 +130,56 @@ Microsoft's build process (which we are running to build the binaries) does down
## <a id="more-info"></a>More Info
### 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.
### 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.
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.
### How are the VSCodium binaries built?
If you would like to see the commands we run to build `vscode` into VSCodium binaries, have a look at the workflow files in `.github/workflows` for Windows, GNU/Linux and macOS. These build files call all the other scripts in the repo. If you find something that doesn't make sense, feel free to ask about it [on Gitter](https://gitter.im/VSCodium/Lobby).
The builds are run every day, but exit early if there isn't a new release from Microsoft.
The builds are run every day, but exit early if there isn't a new release from Microsoft.
## <a id="supported-platforms"></a>Supported Platforms
The minimal version is limitted by the core component Electron, you may want to check its [supported platform list](https://www.electronjs.org/docs/tutorial/support#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 via x64 emulation, see [status issue](https://github.com/VSCodium/vscodium/issues/597)
- [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 7 or newer x64
- [x] Windows 7 or newer x86
- [x] Windows 10 arm64
- [x] Windows 10 / Server 2012 R2 or newer x64
- [x] Windows 10 / Server 2012 R2 or newer x86
- [x] Windows 10 / Server 2012 R2 or newer arm64
## <a id="donate"></a>Donate
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N`.
Special thanks to:
- @estatra for the latest logo
- @jaredreich for the previous logo
<table>
<tr>
<td><a href="https://github.com/jaredreich" target="_blank">@jaredreich</a></td>
<td>for the logo</td>
</tr>
<tr>
<td><a href="https://github.com/PalinuroSec" target="_blank">@PalinuroSec</a></td>
<td>for CDN and domain name</td>
</tr>
<tr>
<td><a href="https://www.macstadium.com" target="_blank"><img src="https://images.prismic.io/macstadium/66fbce64-707e-41f3-b547-241908884716_MacStadium_Logo.png?w=128&q=75" width="128" height="49" alt="MacStadium logo" /></a></td>
<td>for providing a Mac mini M1</td>
</tr>
</table>
## <a id="license"></a>License
[MIT](https://github.com/VSCodium/vscodium/blob/master/LICENSE)

View File

@@ -0,0 +1,2 @@
[
]

2
announcements-extra.json Normal file
View File

@@ -0,0 +1,2 @@
[
]

View File

@@ -2,14 +2,21 @@
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}"
echo "MS_COMMIT=\"${MS_COMMIT}\""
. prepare_vscode.sh
cd vscode || exit
cd vscode || { echo "'vscode' dir not found"; exit 1; }
yarn monaco-compile-check
yarn valid-layers-check
@@ -21,49 +28,31 @@ 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 {} \;
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
. ../build/windows/rtf/make.sh
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
if [[ "${VSCODE_ARCH}" != "ia32" && "${VSCODE_ARCH}" != "x64" ]]; then
SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
. ../build/windows/msi/build.sh
fi
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
. ../build/windows/msi/build-updates-disabled.sh
fi
fi
VSCODE_PLATFORM="win32"
else # linux
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
if [[ "${SKIP_LINUX_PACKAGES}" != "True" ]]; then
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
fi
find "../VSCode-linux-${VSCODE_ARCH}" -exec touch {} \;
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
fi
VSCODE_PLATFORM="linux"
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
. ../build/linux/appimage/build.sh
fi
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi
cd ..

View File

@@ -1,6 +1,6 @@
# powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1
# powershell -ExecutionPolicy ByPass -File .\build\build.ps1
# first so `bash` is the one installed with `git`, avoid conflict with WSL
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
bash ./build/build_windows.sh
bash ./build/build.sh

111
build/build.sh Executable file
View File

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

57
build/build_docker.sh Executable file
View File

@@ -0,0 +1,57 @@
#!/bin/bash
exists() { type -t "$1" > /dev/null 2>&1; }
export APP_NAME="VSCodium"
export CI_BUILD="no"
export OS_NAME="linux"
export SHOULD_BUILD="yes"
export SKIP_ASSETS="yes"
export VSCODE_LATEST="no"
export VSCODE_QUALITY="stable"
while getopts ":ilp" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
l)
export VSCODE_LATEST="yes"
;;
p)
export SKIP_ASSETS="no"
;;
esac
done
if ! exists yarn; then
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs desktop-file-utils
npm install -g yarn
fi
UNAME_ARCH=$( uname -m )
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then
export VSCODE_ARCH="x64"
else
export npm_config_arch=armv7l
export npm_config_force_process_config="true"
export VSCODE_ARCH="armhf"
fi
echo "OS_NAME=\"${OS_NAME}\""
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
rm -rf vscode* VSCode*
. get_repo.sh
. build.sh
if [[ "${SKIP_ASSETS}" == "no" ]]; then
. prepare_assets.sh
fi

View File

@@ -1,8 +0,0 @@
#!/bin/bash
rm -rf VSCode*
rm -rf vscode
./get_repo.sh
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=linux VSCODE_ARCH=x64 ./build.sh

View File

@@ -1,8 +0,0 @@
#!/bin/bash
rm -rf VSCode*
rm -rf vscode
. get_repo.sh
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=osx VSCODE_ARCH=x64 . build.sh

View File

@@ -1,11 +0,0 @@
#!/bin/bash
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build_windows.sh
rm -rf VSCode*
rm -rf vscode
rm -rf build/windows/msi/releasedir
. get_repo.sh
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=windows VSCODE_ARCH=x64 . build.sh

View File

@@ -6,8 +6,17 @@ CALLER_DIR=$( pwd )
cd "$( dirname "${BASH_SOURCE[0]}" )"
if [[ "$VSCODE_ARCH" == "x64" ]]; then
wget -c https://github.com/$(wget -q https://github.com/AppImage/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
GITHUB_RESPONSE=$( curl --silent --location "https://api.github.com/repos/AppImage/pkg2appimage/releases/latest" )
APPIMAGE_URL=$( echo "${GITHUB_RESPONSE}" | jq --raw-output '.assets | map(select( .name | test("x86_64.AppImage(?!.zsync)"))) | map(.browser_download_url)[0]' )
if [[ -z "${APPIMAGE_URL}" ]]; then
echo "The url for pkg2appimage.AppImage hasn't been found"
exit 1
fi
wget -c "${APPIMAGE_URL}"
chmod +x ./pkg2appimage-*.AppImage
./pkg2appimage-*.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
@@ -18,11 +27,21 @@ if [[ "$VSCODE_ARCH" == "x64" ]]; then
# remove check so build in docker can succeed
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
sed -i 's|@@NAME@@|VSCodium-Insiders|g' recipe.yml
sed -i 's|@@APPNAME@@|codium-insiders|g' recipe.yml
sed -i 's|@@ICON@@|vscodium-insiders|g' recipe.yml
else
sed -i 's|@@NAME@@|VSCodium|g' recipe.yml
sed -i 's|@@APPNAME@@|codium|g' recipe.yml
sed -i 's|@@ICON@@|vscodium|g' recipe.yml
fi
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
rm -f pkg2appimage-*.AppImage
rm -rf pkg2appimage.AppDir
rm -rf VSCodium
rm -rf VSCodium*
fi
cd "${CALLER_DIR}"
cd "${CALLER_DIR}"

View File

@@ -5,7 +5,7 @@
# wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
# bash -ex pkg2appimage VSCodium
app: VSCodium
app: @@NAME@@
ingredients:
packages:
@@ -17,24 +17,26 @@ ingredients:
script:
- pwd
- cp ../../../../vscode/.build/linux/deb/amd64/deb/*.deb .
- ls codium_*.deb | cut -d _ -f 2 > VERSION
- ls @@APPNAME@@_*.deb | cut -d _ -f 2 > VERSION
script:
- sed -i -e 's|/usr/share/pixmaps/||g' usr/share/applications/codium.desktop
- cp usr/share/applications/codium.desktop .
- cp usr/share/pixmaps/vscodium.png .
- /usr/bin/convert vscodium.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/vscodium.png
- /usr/bin/convert vscodium.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/vscodium.png
- /usr/bin/convert vscodium.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/vscodium.png
- /usr/bin/convert vscodium.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/vscodium.png
- /usr/bin/convert vscodium.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/vscodium.png
- /usr/bin/convert vscodium.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/vscodium.png
- ( cd usr/bin/ ; ln -s ../share/codium/codium . )
- sed -i -e 's|/usr/share/pixmaps/||g' usr/share/applications/@@APPNAME@@.desktop
- cp usr/share/applications/@@APPNAME@@.desktop .
- cp usr/share/pixmaps/@@ICON@@.png .
- /usr/bin/convert @@ICON@@.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/@@ICON@@.png
- /usr/bin/convert @@ICON@@.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/@@ICON@@.png
- /usr/bin/convert @@ICON@@.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/@@ICON@@.png
- /usr/bin/convert @@ICON@@.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/@@ICON@@.png
- /usr/bin/convert @@ICON@@.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/@@ICON@@.png
- /usr/bin/convert @@ICON@@.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/@@ICON@@.png
- ( cd usr/bin/ ; ln -s ../share/@@APPNAME@@/@@APPNAME@@ . )
- rm -rf usr/lib/x86_64-linux-gnu
- rm -f lib/x86_64-linux-gnu/libglib*
- cat > AppRun <<\EOF
- #!/bin/sh
- HERE="$(dirname "$(readlink -f "${0}")")"
- export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/sbin/:"${PATH}"
- export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib/i386-linux-gnu/:"${HERE}"/usr/lib/x86_64-linux-gnu/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}"
- export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}"
- export XDG_DATA_DIRS="${HERE}"/usr/share/:"${XDG_DATA_DIRS}"
- export PERLLIB="${HERE}"/usr/share/perl5/:"${HERE}"/usr/lib/perl5/:"${PERLLIB}"
- export GSETTINGS_SCHEMA_DIR="${HERE}"/usr/share/glib-2.0/schemas/:"${GSETTINGS_SCHEMA_DIR}"

35
build/update_api.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
set -e
export VSCODE_QUALITY="stable"
while getopts ":ilp" 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/'`
# echo "url: ${URL}"
FILE=`echo "${URL}" | sed -E 's|.*/([^/]+\.zip)$|\1|'`
# echo "file: ${FILE}"
DIRECTORY=`echo "${URL}" | sed -E 's|.*/([^/]+)\.zip$|\1|'`
# echo "directory: ${DIRECTORY}"
if [[ ! -f "${FILE}" ]]; then
wget "${URL}"
fi
if [[ ! -d "${DIRECTORY}" ]]; then
unzip "${FILE}" -d "${DIRECTORY}"
fi
APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'`
APIS=`echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}'`
cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json

60
build/update_patches.sh Executable file
View File

@@ -0,0 +1,60 @@
#!/bin/bash
export VSCODE_QUALITY="stable"
while getopts ":ilp" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
esac
done
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
for FILE in ../patches/*.patch; do
if [ -f "${FILE}" ]; then
echo applying patch: "${FILE}"
git apply --ignore-whitespace "${FILE}"
if [ $? -ne 0 ]; 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
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for FILE in ../patches/insider/*.patch; do
if [ -f "${FILE}" ]; then
echo applying patch: "${FILE}"
git apply --ignore-whitespace "${FILE}"
if [ $? -ne 0 ]; 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
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
done
fi

View File

@@ -8,7 +8,7 @@ cd "$( dirname "${BASH_SOURCE[0]}" )"
SCRIPT_DIR=$( pwd )
cd ../../../VSCode-win32-${VSCODE_ARCH}/resources/app
cd "../../../VSCode-win32-${VSCODE_ARCH}/resources/app"
cp product.json product.json.bak
cat product.json.bak | jq "del(.updateUrl)" > product.json
@@ -16,6 +16,6 @@ rm -f product.json.bak
cd "${SCRIPT_DIR}"
. build.sh "updates-disabled"
./build.sh "updates-disabled"
cd "${CALLER_DIR}"

View File

@@ -9,8 +9,22 @@ cd "$( dirname "${BASH_SOURCE[0]}" )"
WIN_SDK_MAJOR_VERSION="10"
WIN_SDK_FULL_VERSION="10.0.17763.0"
PRODUCT_NAME="VSCodium"
PRODUCT_SKU="vscodium"
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"
SETUP_RESOURCES_DIR=".\\resources\\stable"
fi
PRODUCT_ID=$( powershell.exe -command "[guid]::NewGuid().ToString().ToUpper()" )
PRODUCT_ID="${PRODUCT_ID%%[[:cntrl:]]}"
@@ -18,16 +32,14 @@ CULTURE="en-us"
LANGIDS="1033"
SETUP_RELEASE_DIR=".\\releasedir"
SETUP_RESOURCES_DIR=".\\resources"
BINARY_DIR="..\\..\\..\\VSCode-win32-${VSCODE_ARCH}"
ICON_DIR="..\\..\\..\\src\\resources\\win32"
LICENSE_DIR="..\\..\\..\\vscode"
PROGRAM_FILES_86=$( env | sed -n 's/^ProgramFiles(x86)=//p' )
if [[ -z "$1" ]]; then
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-${MS_TAG}"
if [[ -z "${1}" ]]; then
OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${RELEASE_VERSION}"
else
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-$1-${MS_TAG}"
OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${1}-${RELEASE_VERSION}"
fi
if [[ "${VSCODE_ARCH}" == "ia32" ]]; then
@@ -36,32 +48,36 @@ else
export PLATFORM="${VSCODE_ARCH}"
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" {} \;
BuildSetupTranslationTransform() {
local CULTURE=$1
local LANGID=$2
local CULTURE=${1}
local LANGID=${2}
LANGIDS="${LANGIDS},${LANGID}"
echo "Building setup translation for culture \"${CULTURE}\" with LangID \"${LANGID}\"..."
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi Product "${LANGID}"
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" Product "${LANGID}"
"${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\x86\\msitran" -g "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst "${LANGID}"
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst" "${LANGID}"
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi"
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi"
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
}
"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.AppName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dAppName=${PRODUCT_NAME} -dProductVersion="${MS_TAG}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.ManufacturerName -var var.AppName -var var.AppCodeName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dManufacturerName="VSCodium" -dAppCodeName="${PRODUCT_CODE}" -dAppName="${PRODUCT_NAME}" -dProductVersion="${RELEASE_VERSION%-insider}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
BuildSetupTranslationTransform de-de 1031
BuildSetupTranslationTransform es-es 3082

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="de-de" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1031</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Paket mit VSCodium</String>
<String Id="PackageDescription">Paket mit @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Startmenü-Verknüpfung</String>
<String Id="FeatureStartMenuShortcutDescription">Startmenü-Symbol erstellen.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop-Verknüpfung</String>
<String Id="FeatureDesktopShortcutDescription">Desktop-Symbol erstellen.</String>
<String Id="FeatureFileTypeAssociationsTitle">Dateizuordnungen</String>
<String Id="FeatureFileTypeAssociationsDescription">VSCodium als Editor für unterstützte Dateitypen registrieren.</String>
<String Id="FeatureFileTypeAssociationsDescription">@@PRODUCT_NAME@@ als Editor für unterstützte Dateitypen registrieren.</String>
<String Id="FeatureAddContextMenuFilesTitle">Dateikontextmenü</String>
<String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit VSCodium öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
<String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit @@PRODUCT_NAME@@ öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Verzeichniskontextmenü</String>
<String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit VSCodium öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit @@PRODUCT_NAME@@ öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
<String Id="FeatureEnvironmentTitle">Zu PATH hinzufügen</String>
<String Id="FeatureEnvironmentDescription">VSCodium zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
<String Id="LaunchApplication">VSCodium ausführen</String>
<String Id="NewerVersionInstalled">Eine neuere Version von VSCodium ist bereits installiert.</String>
<String Id="FeatureEnvironmentDescription">@@PRODUCT_NAME@@ zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
<String Id="LaunchApplication">@@PRODUCT_NAME@@ ausführen</String>
<String Id="NewerVersionInstalled">Eine neuere Version von @@PRODUCT_NAME@@ ist bereits installiert.</String>
<String Id="MinimumNetFramworkRequired">Diese Anwendung erfordert .NET Framework 4.5.2 oder höher. Bitte installieren Sie .NET Framework und führen Sie dieses Installationsprogramm erneut aus.</String>
<String Id="OSVersionRequired">Windows 7 oder neuer ist erforderlich.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1033</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="es-es" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">3082</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="fr-fr" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1036</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="it-it" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1040</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ja-jp" Codepage="932" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1041</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ko-kr" Codepage="949" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1042</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ru-ru" Codepage="1251" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1049</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
<String Id="PackageDescription">Пакет с @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Ярлык в меню «Пуск»</String>
<String Id="FeatureStartMenuShortcutDescription">Создайте значок в меню «Пуск».</String>
<String Id="FeatureDesktopShortcutTitle">Ярлык рабочего стола</String>
<String Id="FeatureDesktopShortcutDescription">Создать значок на рабочем столе.</String>
<String Id="FeatureFileTypeAssociationsTitle">Ассоциации файлов</String>
<String Id="FeatureFileTypeAssociationsDescription">Зарегистрировать @@PRODUCT_NAME@@ в качестве редактора поддерживаемых типов файлов.</String>
<String Id="FeatureAddContextMenuFilesTitle">Контекстное меню файлов</String>
<String Id="FeatureAddContextMenuFilesDescription">Добавить действие «Открыть с помощью @@PRODUCT_NAME@@» в контекстное меню файлов Проводника Windows.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Контекстное меню каталога</String>
<String Id="FeatureAddContextMenuFoldersDescription">Добавить действие «Открыть с помощью @@PRODUCT_NAME@@» в контекстное меню каталога Проводника Windows.</String>
<String Id="FeatureEnvironmentTitle">Добавить в PATH</String>
<String Id="FeatureEnvironmentDescription">Добавить @@PRODUCT_NAME@@ в переменную среды PATH. Доступно после перезапуска.</String>
<String Id="LaunchApplication">Запустить @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Новая версия @@PRODUCT_NAME@@ уже установлена.</String>
<String Id="MinimumNetFramworkRequired">Приложению требуется .NET Framework 4.5.2 или более новая версии. Пожалуйста, установите .NET Framework, затем снова запустите установщик.</String>
<String Id="OSVersionRequired">Требуется Windows 7 или более новая версия.</String>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="zh-cn" Codepage="936" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">2052</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="zh-tw" Codepage="950" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProductLanguage">1028</String>
<String Id="ProductName">VSCodium</String>
<String Id="ProductName">@@PRODUCT_NAME@@</String>
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
<String Id="PackageDescription">Package with VSCodium</String>
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</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 VSCodium" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch VSCodium</String>
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>
</WixLocalization>

View File

@@ -11,17 +11,14 @@
<?define Arch="(x64)" ?>
<?endif?>
<!-- <?define ProductVersion="$(var.ProductVersion)" ?> -->
<?define ProductName="!(loc.ProductName)" ?>
<?define ProductNameWithVersion="!(loc.ProductName) $(var.ProductVersion) $(var.Arch)" ?>
<?define ProductLanguage="!(loc.ProductLanguage)" ?>
<?define AppCodeName="$(var.AppName)" ?>
<!-- <?define AppName="$(var.AppName)" ?> -->
<?define AppFolderName="$(var.AppName)" ?>
<?define ProductManufacturerShort="$(var.AppName)" ?>
<?define ProductManufacturerLong="$(var.AppName)" ?>
<?define ProductManufacturerShort="$(var.ManufacturerName)" ?>
<?define ProductManufacturerLong="$(var.ManufacturerName)" ?>
<!-- Static settings, DO NOT TOUCH or upgrades will break! -->
<?define ProductUpgradeCode="{965370CD-253C-4720-82FC-2E6B02A53808}" ?>
<?define ProductUpgradeCode="{@@PRODUCT_UPGRADE_CODE@@}" ?>
<?define RTMProductVersion="0.0.1" ?>
</Include>
</Include>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 KiB

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

View File

@@ -1045,32 +1045,32 @@
</Extension>
</ProgId>
</Component>
<Component Id="AddFileTypeAssociationVSCodiumSourceFile" Guid="*">
<RegistryValue Root="HKCR" Key="VSCodiumSourceFile" Value="VSCodium" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="VSCodiumSourceFile\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="VSCodiumSourceFile\shell\open\command" Value="&quot;[APPLICATIONFOLDER]VSCodium.exe&quot; &quot;%1&quot;" Type="string" Action="write" />
<Component Id="AddFileTypeAssociation$(var.AppCodeName)SourceFile" Guid="*">
<RegistryValue Root="HKCR" Key="$(var.AppCodeName)SourceFile" Value="$(var.AppName)" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="$(var.AppCodeName)SourceFile\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="$(var.AppCodeName)SourceFile\shell\open\command" Value="&quot;[APPLICATIONFOLDER]$(var.AppName).exe&quot; &quot;%1&quot;" Type="string" Action="write" />
</Component>
<Component Id="AddFileTypeAssociationApplicationsVSCodium" Guid="*">
<RegistryValue Root="HKCR" Key="Applications\VSCodium.exe\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="Applications\VSCodium.exe\shell\open\command" Value="&quot;[APPLICATIONFOLDER]VSCodium.exe&quot; &quot;%1&quot;" Type="string" Action="write" />
<Component Id="AddFileTypeAssociationApplications$(var.AppCodeName)" Guid="*">
<RegistryValue Root="HKCR" Key="Applications\$(var.AppName).exe\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="Applications\$(var.AppName).exe\shell\open\command" Value="&quot;[APPLICATIONFOLDER]$(var.AppName).exe&quot; &quot;%1&quot;" Type="string" Action="write" />
</Component>
<Component Id="AddContextMenuFiles" Guid="*">
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]VSCodium.exe&quot; &quot;%1&quot;" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]$(var.AppName).exe&quot; &quot;%1&quot;" Type="string" Action="write" />
</Component>
<Component Id="AddContextMenuFolders" Guid="*">
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]VSCodium.exe&quot; &quot;%V&quot;" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]VSCodium.exe&quot; &quot;%V&quot;" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]VSCodium.exe&quot; &quot;%V&quot;" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]$(var.AppName).exe&quot; &quot;%V&quot;" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]$(var.AppName).exe&quot; &quot;%V&quot;" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)\command" Value="&quot;[APPLICATIONFOLDER]$(var.AppName).exe&quot; &quot;%V&quot;" Type="string" Action="write" />
</Component>
<Component Id="AddToEnvironmentPath" Guid="{A75E4C99-6713-45B9-8EC2-B9391592984C}">
@@ -1080,17 +1080,17 @@
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="VSCodiumProgramMenuFolder" Name="$(var.AppName)">
<Directory Id="$(var.AppCodeName)ProgramMenuFolder" Name="$(var.AppName)">
<Component Id="StartMenuShortcut" Guid="*">
<Shortcut Id="VSCodiumStartMenuShortcut" Advertise="no" Name="$(var.AppName)" Directory="VSCodiumProgramMenuFolder" Target="[APPLICATIONFOLDER]VSCodium.exe" WorkingDirectory="APPLICATIONFOLDER" />
<RemoveFolder Id="VSCodiumProgramMenuFolder" On="uninstall" />
<Shortcut Id="$(var.AppCodeName)StartMenuShortcut" Advertise="no" Name="$(var.AppName)" Directory="$(var.AppCodeName)ProgramMenuFolder" Target="[APPLICATIONFOLDER]$(var.AppName).exe" WorkingDirectory="APPLICATIONFOLDER" />
<RemoveFolder Id="$(var.AppCodeName)ProgramMenuFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\$(var.ProductManufacturerShort)\$(var.AppName)\Components" Name="StartMenuShortcutInstalled" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Directory>
</Directory>
<Directory Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="*">
<Shortcut Id="VSCodiumDesktopShortcut" Advertise="no" Name="$(var.AppName)" Directory="DesktopFolder" Target="[APPLICATIONFOLDER]VSCodium.exe" WorkingDirectory="APPLICATIONFOLDER" />
<Shortcut Id="$(var.AppCodeName)DesktopShortcut" Advertise="no" Name="$(var.AppName)" Directory="DesktopFolder" Target="[APPLICATIONFOLDER]$(var.AppName).exe" WorkingDirectory="APPLICATIONFOLDER" />
<RegistryValue Root="HKCU" Key="Software\$(var.ProductManufacturerShort)\$(var.AppName)\Components" Name="DesktopShortcutInstalled" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Directory>
@@ -1108,9 +1108,9 @@
<ComponentRef Id="DesktopShortcut" />
</Feature>
<Feature Id="FeatureFileTypeAssociations" Title="!(loc.FeatureFileTypeAssociationsTitle)" Description="!(loc.FeatureFileTypeAssociationsDescription)" Level="2" Absent="allow" AllowAdvertise="no" InstallDefault="followParent">
<ComponentRef Id="AddFileTypeAssociationVSCodiumSourceFile" />
<ComponentRef Id="AddFileTypeAssociationApplicationsVSCodium" />
<ComponentRef Id="AddFileTypeAssociation$(var.AppCodeName)SourceFile" />
<ComponentRef Id="AddFileTypeAssociationApplications$(var.AppCodeName)" />
<Feature Id="FeatureFileTypeAssocASCX" Title=".ascx" Description="ASCX" Level="2" Absent="allow" AllowAdvertise="no" InstallDefault="followParent">
<ComponentRef Id="AddFileTypeAssociationASCX" />
</Feature>

View File

@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wi="http://schemas.microsoft.com/wix/2006/wi">
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:key name="vId1ToReplace" match="wi:Component[wi:File[contains(@Source,'VSCodium.exe')]]" use="@Id"/>
<xsl:key name="vId1ToReplace" match="wi:Component[wi:File[contains(@Source,'@@PRODUCT_NAME@@.exe')]]" use="@Id"/>
<xsl:template match="node()[key('vId1ToReplace', @Id)]">
<xsl:copy>
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
@@ -19,7 +19,7 @@
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="wi:Component/wi:File[contains(@Source,'VSCodium.exe')]">
<xsl:template match="wi:Component/wi:File[contains(@Source,'@@PRODUCT_NAME@@.exe')]">
<xsl:copy>
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
<xsl:copy-of select="@*[name()!='Id']"/>

View File

@@ -1,6 +1,6 @@
#!/bin/bash
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode || { echo "'vscode' dir not found"; exit 1; }
input=LICENSE.txt
target=LICENSE.rtf

View File

@@ -2,23 +2,29 @@
set -e
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
echo "It's a PR"
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
elif [[ $GITHUB_EVENT_NAME == "push" ]]; then
elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
echo "It's a Push"
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
echo "It's a Dispatch"
export SHOULD_DEPLOY="yes"
else
echo "It's a cron"
echo "It's a Cron"
export SHOULD_DEPLOY="yes"
fi
if [[ $GITHUB_ENV ]]; then
echo "SHOULD_BUILD=$SHOULD_BUILD" >> $GITHUB_ENV
echo "SHOULD_DEPLOY=$SHOULD_DEPLOY" >> $GITHUB_ENV
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 "VSCODE_QUALITY=${VSCODE_QUALITY}" >> "${GITHUB_ENV}"
fi

View File

@@ -7,142 +7,203 @@ if [[ -z "${GITHUB_TOKEN}" ]]; then
exit
fi
REPOSITORY="${GITHUB_REPOSITORY:-"VSCodium/vscodium"}"
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/${REPOSITORY}/releases/tags/${MS_TAG})
VSCODIUM_ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" )
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
if [ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]; then
echo "New VSCode version, new build"
export SHOULD_BUILD="yes"
elif [[ "${NEW_RELEASE}" == "true" ]]; then
echo "New release build"
export SHOULD_BUILD="yes"
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
if [[ "${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
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
export RELEASE_VERSION="${LATEST_VERSION}"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
echo "Switch to release version: ${RELEASE_VERSION}"
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
else
ASSETS="null"
fi
fi
contains() {
# add " to match the end of a string so any hashs won't be matched by mistake
echo "${VSCODIUM_ASSETS}" | grep "$1\""
echo "${ASSETS}" | grep "${1}\""
}
if [ "${VSCODIUM_ASSETS}" != "null" ]; then
if [ "${ASSETS}" != "null" ]; then
# macos
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ -z $( contains "darwin-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; 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
fi
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"
else
export SHOULD_BUILD_ZIP="no"
fi
if [[ -z $( contains ".${VSCODE_ARCH}.${MS_TAG}.dmg" ) ]]; then
if [[ -z $( contains ".${VSCODE_ARCH}.${RELEASE_VERSION}.dmg" ) ]]; then
echo "Building on MacOS because we have no DMG"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_DMG="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on MacOS 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 MacOS builds"
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
# windows-arm64
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows arm64 because we have no system setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_SYS="no"
fi
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows arm64 because we have no user setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_USR="no"
fi
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
echo "Building on Windows arm64 because we have no zip"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_ZIP="no"
fi
export SHOULD_BUILD_REH="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows arm64 builds"
fi
# windows-ia32
elif [[ ${VSCODE_ARCH} == "ia32" ]]; then
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
elif [[ "${VSCODE_ARCH}" == "ia32" ]]; then
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows ia32 because we have no system setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_SYS="no"
fi
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows ia32 because we have no user setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_USR="no"
fi
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
echo "Building on Windows ia32 because we have no zip"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_ZIP="no"
fi
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
echo "Building on Windows ia32 because we have no msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI="no"
fi
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
echo "Building on Windows ia32 because we have no updates-disabled msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI_NOUP="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows ia32 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows ia32 builds"
fi
# windows-x64
else
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows x64 because we have no system setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_SYS="no"
fi
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
echo "Building on Windows x64 because we have no user setup"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_EXE_USR="no"
fi
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
echo "Building on Windows x64 because we have no zip"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_ZIP="no"
fi
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
echo "Building on Windows x64 because we have no msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI="no"
fi
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
echo "Building on Windows x64 because we have no updates-disabled msi"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_MSI_NOUP="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows 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 Windows x64 builds"
fi
@@ -150,7 +211,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
elif [[ "${OS_NAME}" == "linux" ]]; then
# linux-arm64
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
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"
@@ -165,13 +226,20 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "arm64-${MS_TAG}.tar.gz" ) ]]; then
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"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
export SHOULD_BUILD_APPIMAGE="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
@@ -179,7 +247,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
fi
# linux-armhf
elif [[ ${VSCODE_ARCH} == "armhf" ]]; then
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"
@@ -194,13 +262,20 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "armhf-${MS_TAG}.tar.gz" ) ]]; then
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
@@ -223,7 +298,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_RPM="no"
fi
if [[ -z $( contains "x64-${MS_TAG}.tar.gz" ) ]]; then
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
@@ -237,12 +312,33 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux x64 builds"
fi
fi
fi
else
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${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"
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
export SHOULD_BUILD_REH="no"
fi
fi
echo "Release assets do not exist at all, continuing build"
export SHOULD_BUILD="yes"
fi
@@ -255,6 +351,8 @@ echo "SHOULD_BUILD_EXE_SYS=${SHOULD_BUILD_EXE_SYS}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_REH=${SHOULD_BUILD_REH}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_SRC=${SHOULD_BUILD_SRC}" >> "${GITHUB_ENV}"

View File

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

View File

@@ -1,44 +1,110 @@
#!/bin/bash
set -e
# git workaround
if [[ "${CI_BUILD}" != "no" ]]; then
git config --global --add safe.directory "/__w/$( echo "${GITHUB_REPOSITORY}" | awk '{print tolower($0)}' )"
fi
if [[ -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
else
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
fi
if [[ -z "${MS_COMMIT}" ]]; then
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export MS_TAG="${MS_TAG/\-insider/}"
fi
fi
date=$( date +%Y%j )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
else
export RELEASE_VERSION="${MS_TAG}.${date: -5}"
fi
else
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+-insider$ ]];
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}"
exit 1
fi
else
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+$ ]];
then
MS_TAG="${BASH_REMATCH[1]}"
else
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
exit 1
fi
fi
fi
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
mkdir -p vscode
cd vscode
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git init -q
git remote add origin https://github.com/Microsoft/vscode.git
# figure out latest tag by calling MS update API
if [ "$INSIDER" == "1" ]; then
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/insider/lol)
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
elif [[ -z "${MS_TAG}" ]]; then
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/stable/lol)
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
else
reference=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
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' )
elif [[ -z "${MS_COMMIT}" ]]; then
REFERENCE=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
if [[ -z "${reference}" ]]; then
if [[ -z "${REFERENCE}" ]]; then
echo "The following tag can't be found: ${MS_TAG}"
exit 1
elif [[ "${reference}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
export MS_COMMIT="${BASH_REMATCH[1]}"
export MS_TAG="${BASH_REMATCH[2]}"
else
echo "The following reference can't be parsed: ${reference}"
echo "The following reference can't be parsed: ${REFERENCE}"
exit 1
fi
fi
echo "Got the MS tag: ${MS_TAG} version: ${MS_COMMIT}"
echo "MS_TAG=\"${MS_TAG}\""
echo "MS_COMMIT=\"${MS_COMMIT}\""
git fetch --depth 1 origin $MS_COMMIT
git fetch --depth 1 origin "${MS_COMMIT}"
git checkout FETCH_HEAD
cd ..
# for GH actions
if [[ $GITHUB_ENV ]]; then
echo "MS_TAG=$MS_TAG" >> $GITHUB_ENV
echo "MS_COMMIT=$MS_COMMIT" >> $GITHUB_ENV
if [[ "${GITHUB_ENV}" ]]; then
echo "MS_TAG=${MS_TAG}" >> "${GITHUB_ENV}"
echo "MS_COMMIT=${MS_COMMIT}" >> "${GITHUB_ENV}"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
fi

9
icons/README.md Normal file
View File

@@ -0,0 +1,9 @@
## Files
| filename | color | width | border |
| ------------------------- | ------ | ----- | ------ |
| `codium_clt.svg` | light | | |
| `codium_cnl.svg` | normal | | |
| `codium_cnl_w80_b8.svg` | normal | 80% | 8pt |
| `codium_cnl_w100_b05.svg` | normal | 100% | 0.5pt |

View File

@@ -5,147 +5,233 @@ set -e
# DEBUG
# set -o xtrace
check_programs() {
QUALITY="stable"
while getopts ":i" opt; do
case "$opt" in
i)
export QUALITY="insider"
;;
esac
done
check_programs() { # {{{
for arg in "$@"
do
if ! command -v $arg >/dev/null 2>&1
if ! command -v "${arg}" >/dev/null 2>&1
then
echo "$arg could not be found"
echo "${arg} could not be found"
exit
fi
done
}
} # }}}
check_programs "icns2png" "composite" "convert" "png2icns" "icotool"
check_programs "icns2png" "composite" "convert" "png2icns" "icotool" "rsvg-convert" "sed"
. ./utils.sh
SRC_PREFIX=""
VSCODE_PREFIX=""
build_darwin_types() {
for file in ${VSCODE_PREFIX}vscode/resources/darwin/*
build_darwin_main() { # {{{
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]; then
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center "icons/template_macos.png" "code_1024.png"
convert "code_1024.png" -resize 512x512 code_512.png
convert "code_1024.png" -resize 256x256 code_256.png
convert "code_1024.png" -resize 128x128 code_128.png
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
rm code_1024.png code_512.png code_256.png code_128.png code_logo.png
fi
} # }}}
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
name=$(basename $file '.icns')
if [ -f "${file}" ]; then
name=$(basename "${file}" '.icns')
if [[ $name != 'code' ]] && [ ! -f "${SRC_PREFIX}src/resources/darwin/$name.icns" ]; then
icns2png -x -s 512x512 $file -o .
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]; then
icns2png -x -s 512x512 "${file}" -o .
composite -blend 100% -geometry +323+365 icons/corner_512.png "${name}_512x512x32.png" "$name.png"
composite icons/code_darwin.png "$name.png" "$name.png"
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
composite -geometry +359+374 "code_logo.png" "${name}.png" "${name}.png"
convert "$name.png" -resize 256x256 "${name}_256.png"
convert "${name}.png" -resize 256x256 "${name}_256.png"
png2icns "${SRC_PREFIX}src/resources/darwin/$name.icns" "$name.png" "${name}_256.png"
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" "${name}.png" "${name}_256.png"
rm "${name}_512x512x32.png" "$name.png" "${name}_256.png"
rm "${name}_512x512x32.png" "${name}.png" "${name}_256.png"
fi
fi
done
}
build_darwin_main() {
if [ ! -f "${SRC_PREFIX}src/resources/darwin/code.icns" ]; then
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 512x512 code_512.png
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 256x256 code_256.png
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 128x128 code_128.png
rm "code_logo.png"
} # }}}
png2icns "${SRC_PREFIX}src/resources/darwin/code.icns" code_512.png code_256.png code_128.png
build_linux_main() { # {{{
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]; then
convert -size 1024x1024 canvas:transparent PNG32:"code_1024.png"
rsvg-convert -w 846 -h 824 "icons/${QUALITY}/codium_clt.svg" -o "code_logo.png"
composite "code_logo.png" -gravity center -background none "code_1024.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
rm code_512.png code_256.png code_128.png
rm code_1024.png code_logo.png
fi
}
build_win32() {
for file in ${VSCODE_PREFIX}vscode/resources/win32/*.ico
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
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
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
rsvg-convert -w 1024 -h 1024 "icons/${QUALITY}/codium_clt.svg" -o "code_logo.png"
convert "code_logo.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
rm code_logo.png
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
name=$(basename $file '.ico')
if [ -f "${file}" ]; then
name=$(basename "${file}" '.ico')
if [[ $name != 'code' ]] && [ ! -f "${SRC_PREFIX}src/resources/win32/$name.ico" ]; then
icotool -x -w 256 $file
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]; then
icotool -x -w 256 "${file}"
composite -geometry +150+185 icons/code_64.png "${name}_9_256x256x32.png" "${name}.png"
composite -geometry +150+185 "code_logo.png" "${name}_9_256x256x32.png" "${name}.png"
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/resources/win32/$name.ico"
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico"
rm "${name}_9_256x256x32.png" "${name}.png"
fi
fi
done
if [ ! -f "${SRC_PREFIX}src/resources/win32/code.ico" ]; then
convert "${SRC_PREFIX}src/resources/linux/code.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/resources/win32/code.ico"
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/resources/win32/inno-big-100.bmp" ]; then
convert -size 164x314 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp"
composite -size 126x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp" ]; then
convert -size 192x386 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp"
composite -size 147x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp" ]; then
convert -size 246x459 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp"
composite -size 190x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp" ]; then
convert -size 273x556 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp"
composite -size 211x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp" ]; then
convert -size 328x604 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp"
composite -size 255x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp" ]; then
convert -size 355x700 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp"
composite -size 273x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp"
fi
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp" ]; then
convert -size 410x797 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp"
composite -size 317x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp"
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/resources/win32/inno-small-100.bmp" ]; then
convert -size 55x55 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp"
composite -size 44x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp"
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/resources/win32/inno-small-125.bmp" ]; then
convert -size 64x68 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp"
composite -size 52x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp"
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/resources/win32/inno-small-150.bmp" ]; then
convert -size 83x80 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp"
composite -size 63x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp"
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/resources/win32/inno-small-175.bmp" ]; then
convert -size 92x97 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp"
composite -size 76x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp"
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/resources/win32/inno-small-200.bmp" ]; then
convert -size 110x106 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp"
composite -size 86x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp"
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/resources/win32/inno-small-225.bmp" ]; then
convert -size 119x123 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp"
composite -size 103x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp"
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/resources/win32/inno-small-250.bmp" ]; then
convert -size 138x140 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
composite -size 116x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
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}build/windows/msi/resources/wix-banner.bmp" ]; then
convert -size 493x58 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
composite -geometry +438+6 \( icons/codium_only.svg -resize 50x50 \) "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
fi
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" ]; then
convert -size 493x312 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
composite -geometry +22+152 \( icons/codium_only.svg -resize 120x90 \) "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
fi
}
if [ "$0" == "$BASH_SOURCE" ];
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
rm code_logo.png
} # }}}
if [ "${0}" == "${BASH_SOURCE}" ];
then
build_darwin_main
build_linux_main
build_windows_main
build_darwin_types
build_win32
build_windows_types
build_media
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,13 +0,0 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="2.763" y1="-0.313" x2="94.027" y2="95.408">
<stop offset="0" stop-color="#56CCF2"/>
<stop offset="1" stop-color="#2F80ED"/>
</linearGradient>
</defs>
<g id="Layer_1">
<path d="M63.697,1.417 C64.354,0.381 65.529,-0.308 66.763,-0.313 C68.492,-0.317 70.138,0.654 71.139,2.037 C72.082,3.359 72.373,5.03 72.375,6.626 C72.36,8.87 71.843,11.075 71.227,13.222 C69.688,18.289 67.597,23.168 66.035,28.229 C64.315,33.972 63.49,40.372 65.801,46.074 C67.009,42.702 68.204,39.323 69.408,35.947 C69.75,35.055 70.2,34.041 71.156,33.675 C72.487,33.201 73.844,34.59 73.805,35.876 C73.441,37.749 72.735,39.534 72.179,41.356 C67.676,54.892 62.633,68.241 57.777,81.655 C64.235,75.75 70.713,69.867 77.179,63.973 C79.04,62.279 81.058,60.433 81.628,57.873 C82.197,55.36 81.139,52.866 79.94,50.708 C78.555,48.133 76.787,45.684 76.137,42.786 C75.81,41.285 75.909,39.558 76.921,38.328 C77.651,37.402 78.98,36.924 80.101,37.376 C81.208,37.799 81.876,38.862 82.399,39.866 C84.156,43.391 85.252,47.243 85.629,51.165 C86.829,48.744 88.043,46.333 89.245,43.914 C89.971,42.489 90.612,40.96 91.79,39.834 C92.501,39.132 93.537,38.69 94.54,38.918 C95.798,39.196 96.681,40.34 97.019,41.528 C97.402,42.79 96.997,44.104 96.59,45.303 C95.378,48.656 93.474,51.69 91.639,54.727 C89.081,58.747 86.364,62.67 83.398,66.402 C85.093,65.27 86.878,64.079 88.954,63.842 C90.918,63.579 93.089,64.729 93.739,66.646 C94.174,67.951 93.47,69.428 92.288,70.065 C90.554,71.032 88.502,71.019 86.575,71.105 C79.582,71.297 72.767,74.74 68.428,80.221 C65.004,84.592 63.255,90.023 59.78,94.358 C57.588,97 54.491,100.317 51.084,99.584 C46.547,98.609 46.547,91.518 45.416,88.003 C44.833,86.231 43.739,84.612 42.221,83.507 C40.894,82.527 39.305,81.965 37.699,81.657 C34.012,80.949 30.209,81.323 26.531,80.563 C24.69,80.188 22.877,79.45 21.471,78.177 C20.131,77.001 19.205,75.427 18.563,73.78 C17.177,70.192 16.895,66.299 15.663,62.666 C13.88,57.436 10.352,52.812 5.757,49.741 C4.788,49.087 3.735,48.449 3.108,47.429 C2.598,46.632 2.643,45.499 3.311,44.804 C4.437,43.578 6.472,43.477 7.773,44.491 C10.439,46.382 10.824,50.056 13.309,52.112 C13.313,48.718 13.296,45.327 13.29,41.935 C13.298,40.955 13.189,39.9 13.679,39.009 C14.125,38.165 15.359,37.936 16.076,38.569 C17.045,39.381 17.34,40.706 17.478,41.905 C17.96,46.58 18.426,51.257 18.91,55.935 C21.346,53.747 22.465,50.196 21.677,47.011 C21.438,45.994 21.051,44.948 21.27,43.893 C21.449,43.008 22.388,42.385 23.273,42.543 C24.268,42.678 24.978,43.531 25.351,44.407 C25.945,45.859 25.947,47.476 25.827,49.018 C25.474,52.53 23.988,55.773 22.963,59.115 C21.964,62.065 21.277,65.343 22.278,68.39 C23.17,71.239 25.431,73.491 28.084,74.768 C31.359,76.377 35.048,76.877 38.657,77.019 C36.463,73.179 34.077,69.116 34.118,64.548 C34.161,59.949 37.085,56.075 37.875,51.636 C39.221,44.272 35.898,36.267 29.712,32.042 C26.964,30.154 23.665,29.314 20.842,27.563 C18.288,26 15.994,23.218 16.395,20.05 C18.335,19.299 20.501,19.779 22.252,20.787 C25.674,22.613 27.851,26.075 31.29,27.873 C32.498,28.532 33.883,28.858 35.259,28.774 C36.004,26.988 35.259,24.988 34.057,23.597 C31.796,20.873 27.98,20.212 25.616,17.608 C24.431,16.249 23.77,14.307 24.268,12.53 C24.673,11.126 26.126,10.17 27.573,10.276 C29.716,10.409 31.561,11.751 33.026,13.228 C37.873,18.073 40.662,24.663 41.756,31.36 C43.048,39.259 42.044,47.317 40.453,55.095 C40.156,56.68 39.6,58.305 40.011,59.923 C40.188,60.672 40.728,61.445 41.558,61.512 C42.699,61.585 43.642,60.808 44.473,60.127 C47.072,58.004 49.138,55.146 49.99,51.873 C50.656,49.487 50.675,46.989 50.628,44.532 C50.641,43.303 50.55,41.946 51.285,40.882 C51.81,40.06 52.79,39.414 53.798,39.653 C54.588,39.803 55.148,40.488 55.389,41.222 C55.777,42.431 55.718,43.736 55.484,44.969 C54.741,48.372 54.069,51.819 52.723,55.05 C51.773,57.369 50.49,59.574 48.752,61.391 C46.836,63.422 44.469,65.05 42.925,67.417 C41.872,69.034 41.191,71.043 41.648,72.975 C41.982,74.516 43.155,75.774 44.57,76.416 C46.631,77.357 49.133,77.309 51.142,76.25 C52.736,75.388 53.869,73.898 54.771,72.367 C56.36,69.613 57.323,66.555 58.122,63.493 C59.351,58.549 60.075,53.48 60.359,48.393 C60.684,42.96 59.698,37.342 56.959,32.596 C55.503,30.055 53.444,27.891 51.039,26.235 C48.873,24.624 46.491,23.229 44.734,21.142 C43.091,19.208 41.952,16.598 42.55,14.031 C43.674,13.325 45.093,13.202 46.338,13.644 C48.687,14.443 50.527,16.329 51.713,18.463 C53.324,20.978 54.668,23.971 57.506,25.337 C55.197,20.795 52.816,16.292 50.479,11.766 C49.719,10.237 48.97,8.566 49.168,6.817 C49.312,5.484 50.55,4.391 51.887,4.397 C53.074,4.401 54.187,5.069 54.894,5.999 C55.701,7.046 56.087,8.336 56.451,9.589 C58.313,16.071 60.174,22.55 62.043,29.03 C64.392,24.555 65.385,19.37 64.717,14.348 C64.425,11.686 63.643,9.115 63.023,6.518 C62.601,4.819 62.728,2.913 63.697,1.417 z" fill="url(#Gradient_1)" id="Shape"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -0,0 +1,13 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="199.997" y1="214.302" x2="296.665" y2="307.573" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#FFB062"/>
<stop offset="1" stop-color="#E04F00"/>
</linearGradient>
</defs>
<g id="Layer_1">
<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"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,13 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="199.997" y1="214.302" x2="296.665" y2="307.573" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#FFA348"/>
<stop offset="1" stop-color="#C64600"/>
</linearGradient>
</defs>
<g id="Layer_1">
<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"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,16 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="209.998" y1="224.042" x2="287.332" y2="298.658" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#FFA348"/>
<stop offset="1" stop-color="#C64600"/>
</linearGradient>
</defs>
<g id="Layer_1">
<g id="path6008">
<path d="M48.608,11.819 C46.325,13.284 45.666,16.318 47.138,18.594 C55.225,31.118 57.134,40.564 56.306,48.842 C52.958,64.695 45.682,67.911 39.324,67.911 C33.116,67.911 34.778,57.694 39.445,54.704 C42.23,52.965 45.798,51.834 48.537,51.834 C51.25,51.834 53.45,49.642 53.45,46.936 C53.45,44.23 51.25,42.037 48.537,42.037 C45.338,42.037 42.201,42.709 39.272,43.853 C39.87,41.03 40.091,37.978 39.318,34.735 C38.143,29.81 34.762,25.106 28.892,20.546 C27.864,19.746 26.56,19.387 25.266,19.547 C23.973,19.707 22.796,20.373 21.995,21.398 C20.33,23.534 20.715,26.613 22.858,28.274 C27.64,31.989 29.219,34.738 29.759,37.002 C30.299,39.265 29.865,41.693 28.78,45.029 C27.394,49.525 25.784,53.538 25.078,57.387 C24.731,59.282 24.702,61.343 24.612,62.99 C21.168,59.634 19.82,55.202 19.82,48.726 C19.819,46.02 17.619,43.826 14.906,43.827 C12.195,43.83 9.998,46.022 9.998,48.726 C9.998,57.57 12.584,65.986 19.516,71.601 C25.791,77.579 41.749,75.37 41.749,84.967 C41.749,87.676 45.714,88.994 48.426,88.994 C51.209,88.994 54.71,87.134 54.71,84.967 C54.71,74.078 66.186,67.459 85.078,67.488 C87.792,67.492 89.994,65.301 89.998,62.595 C90.002,59.889 87.807,57.691 85.094,57.686 C83.802,57.685 82.542,57.729 81.301,57.802 C83.413,52.835 84.35,47.366 84.156,41.459 C84.066,38.754 81.796,36.634 79.085,36.722 C76.37,36.81 74.244,39.077 74.333,41.783 C74.589,49.518 74.299,56.424 68.537,60.065 C66.898,61.099 64.994,61.997 63.187,61.997 C64.59,58.182 65.649,54.156 66.082,49.816 C66.359,47.046 66.389,43.756 66.073,41.2 C65.582,37.24 64.99,32.749 66.494,29.366 C67.844,26.452 70.87,25.232 75.312,25.232 C78.023,25.23 80.22,23.037 80.221,20.334 C80.222,17.627 78.025,15.432 75.312,15.43 C68.71,15.43 63.706,18.904 60.87,23.102 C59.386,19.934 57.58,16.669 55.398,13.29 C54.693,12.198 53.582,11.43 52.31,11.154 C51.679,11.018 51.028,11.006 50.393,11.119 C49.758,11.234 49.151,11.471 48.608,11.819 z" fill="url(#Gradient_1)"/>
<path d="M50.239,3.082 C53.179,3.136 51.93,2.991 54.005,3.336 C57.346,4.061 60.265,6.078 62.118,8.949 L63.123,10.561 C66.826,8.362 71.068,7.561 75.319,7.43 C82.445,7.436 88.225,13.21 88.221,20.336 C88.238,24.02 86.639,27.172 84.086,29.721 C88.987,31.499 91.733,36.199 92.152,41.197 C92.18,44.58 92.249,44.83 91.827,48.956 C91.745,49.763 91.546,50.554 91.405,51.353 C95.577,53.799 97.765,57.84 97.997,62.607 C97.987,69.735 92.194,75.498 85.066,75.488 C70.02,75.465 62.71,79.675 62.71,84.967 C62.71,92.511 55.258,96.994 48.426,96.994 C45.777,96.994 42.898,96.36 40.479,95.145 C36.759,93.25 34.123,89.987 33.806,85.737 C32.068,84.879 30.15,84.434 28.286,83.932 C27.813,83.807 27.57,83.743 27.327,83.678 C22.661,82.517 18.074,80.985 14.415,77.761 C5.537,70.611 2.229,59.744 1.998,48.723 C2,41.6 7.778,35.834 14.904,35.827 C17.181,35.748 18.943,36.49 20.983,37.35 C20.117,36.294 19.008,35.452 17.955,34.596 C12.316,30.222 11.298,22.107 15.69,16.475 C17.796,13.777 20.888,12.028 24.284,11.608 C27.68,11.188 31.105,12.131 33.799,14.229 C37.211,17.046 35.576,15.553 38.702,18.711 C37.495,13.28 39.864,8.25 44.288,5.086 L44.292,5.083 C45.718,4.17 47.309,3.546 48.984,3.244 L50.239,3.082 z M51.353,11.043 L50.393,11.119 C49.758,11.234 49.151,11.471 48.608,11.819 C46.325,13.284 45.666,16.318 47.138,18.594 C55.225,31.118 57.134,40.564 56.306,48.842 C52.958,64.695 45.682,67.911 39.324,67.911 C33.116,67.911 34.778,57.694 39.445,54.704 C42.23,52.965 45.798,51.834 48.537,51.834 C51.25,51.834 53.45,49.642 53.45,46.936 C53.45,44.23 51.25,42.037 48.537,42.037 C45.338,42.037 42.201,42.709 39.272,43.853 C39.87,41.03 40.091,37.978 39.318,34.735 C38.143,29.81 34.762,25.106 28.892,20.546 C27.864,19.746 26.56,19.387 25.266,19.547 C23.973,19.707 22.796,20.373 21.995,21.398 C20.33,23.534 20.715,26.613 22.858,28.274 C27.64,31.989 29.219,34.738 29.759,37.002 C30.299,39.265 29.865,41.693 28.78,45.029 C27.394,49.525 25.784,53.538 25.078,57.387 C24.731,59.282 24.702,61.343 24.612,62.99 C21.168,59.634 19.82,55.202 19.82,48.726 C19.819,46.02 17.619,43.826 14.906,43.827 C12.195,43.83 9.998,46.022 9.998,48.726 C9.998,57.57 12.584,65.986 19.516,71.601 C25.791,77.579 41.749,75.37 41.749,84.967 C41.749,87.676 45.714,88.994 48.426,88.994 C51.209,88.994 54.71,87.134 54.71,84.967 C54.71,74.078 66.186,67.459 85.078,67.488 C87.792,67.492 89.994,65.301 89.998,62.595 C90.002,59.889 87.807,57.691 85.094,57.686 C83.802,57.685 82.542,57.729 81.301,57.802 C83.413,52.835 84.35,47.366 84.156,41.459 C84.066,38.754 81.796,36.634 79.085,36.722 C76.37,36.81 74.244,39.077 74.333,41.783 C74.589,49.518 74.299,56.424 68.537,60.065 C66.898,61.099 64.994,61.997 63.187,61.997 C64.59,58.182 65.649,54.156 66.082,49.816 C66.359,47.046 66.389,43.756 66.073,41.2 C65.582,37.24 64.99,32.749 66.494,29.366 C67.844,26.452 70.87,25.232 75.312,25.232 C78.023,25.23 80.22,23.037 80.221,20.334 C80.222,17.627 78.025,15.432 75.312,15.43 C68.71,15.43 63.706,18.904 60.87,23.102 C59.386,19.934 57.58,16.669 55.398,13.29 C54.693,12.198 53.582,11.43 52.31,11.154 L51.353,11.043 z" fill="#FFFFFF"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,13 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="199.997" y1="214.302" x2="296.665" y2="307.573" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#78AEED"/>
<stop offset="1" stop-color="#1D6BCA"/>
</linearGradient>
</defs>
<g id="Layer_1">
<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"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,13 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="199.997" y1="214.302" x2="296.665" y2="307.573" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#62A0EA"/>
<stop offset="1" stop-color="#1A5FB4"/>
</linearGradient>
</defs>
<g id="Layer_1">
<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"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,16 @@
<?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="100" height="100" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="209.998" y1="224.042" x2="287.332" y2="298.658" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#62A0EA"/>
<stop offset="1" stop-color="#1A5FB4"/>
</linearGradient>
</defs>
<g id="Layer_1">
<g id="path6008">
<path d="M48.608,11.819 C46.325,13.284 45.666,16.318 47.138,18.594 C55.225,31.118 57.134,40.564 56.306,48.842 C52.958,64.695 45.682,67.911 39.324,67.911 C33.116,67.911 34.778,57.694 39.445,54.704 C42.23,52.965 45.798,51.834 48.537,51.834 C51.25,51.834 53.45,49.642 53.45,46.936 C53.45,44.23 51.25,42.037 48.537,42.037 C45.338,42.037 42.201,42.709 39.272,43.853 C39.87,41.03 40.091,37.978 39.318,34.735 C38.143,29.81 34.762,25.106 28.892,20.546 C27.864,19.746 26.56,19.387 25.266,19.547 C23.973,19.707 22.796,20.373 21.995,21.398 C20.33,23.534 20.715,26.613 22.858,28.274 C27.64,31.989 29.219,34.738 29.759,37.002 C30.299,39.265 29.865,41.693 28.78,45.029 C27.394,49.525 25.784,53.538 25.078,57.387 C24.731,59.282 24.702,61.343 24.612,62.99 C21.168,59.634 19.82,55.202 19.82,48.726 C19.819,46.02 17.619,43.826 14.906,43.827 C12.195,43.83 9.998,46.022 9.998,48.726 C9.998,57.57 12.584,65.986 19.516,71.601 C25.791,77.579 41.749,75.37 41.749,84.967 C41.749,87.676 45.714,88.994 48.426,88.994 C51.209,88.994 54.71,87.134 54.71,84.967 C54.71,74.078 66.186,67.459 85.078,67.488 C87.792,67.492 89.994,65.301 89.998,62.595 C90.002,59.889 87.807,57.691 85.094,57.686 C83.802,57.685 82.542,57.729 81.301,57.802 C83.413,52.835 84.35,47.366 84.156,41.459 C84.066,38.754 81.796,36.634 79.085,36.722 C76.37,36.81 74.244,39.077 74.333,41.783 C74.589,49.518 74.299,56.424 68.537,60.065 C66.898,61.099 64.994,61.997 63.187,61.997 C64.59,58.182 65.649,54.156 66.082,49.816 C66.359,47.046 66.389,43.756 66.073,41.2 C65.582,37.24 64.99,32.749 66.494,29.366 C67.844,26.452 70.87,25.232 75.312,25.232 C78.023,25.23 80.22,23.037 80.221,20.334 C80.222,17.627 78.025,15.432 75.312,15.43 C68.71,15.43 63.706,18.904 60.87,23.102 C59.386,19.934 57.58,16.669 55.398,13.29 C54.693,12.198 53.582,11.43 52.31,11.154 C51.679,11.018 51.028,11.006 50.393,11.119 C49.758,11.234 49.151,11.471 48.608,11.819 z" fill="url(#Gradient_1)"/>
<path d="M50.239,3.082 C53.179,3.136 51.93,2.991 54.005,3.336 C57.346,4.061 60.265,6.078 62.118,8.949 L63.123,10.561 C66.826,8.362 71.068,7.561 75.319,7.43 C82.445,7.436 88.225,13.21 88.221,20.336 C88.238,24.02 86.639,27.172 84.086,29.721 C88.987,31.499 91.733,36.199 92.152,41.197 C92.18,44.58 92.249,44.83 91.827,48.956 C91.745,49.763 91.546,50.554 91.405,51.353 C95.577,53.799 97.765,57.84 97.997,62.607 C97.987,69.735 92.194,75.498 85.066,75.488 C70.02,75.465 62.71,79.675 62.71,84.967 C62.71,92.511 55.258,96.994 48.426,96.994 C45.777,96.994 42.898,96.36 40.479,95.145 C36.759,93.25 34.123,89.987 33.806,85.737 C32.068,84.879 30.15,84.434 28.286,83.932 C27.813,83.807 27.57,83.743 27.327,83.678 C22.661,82.517 18.074,80.985 14.415,77.761 C5.537,70.611 2.229,59.744 1.998,48.723 C2,41.6 7.778,35.834 14.904,35.827 C17.181,35.748 18.943,36.49 20.983,37.35 C20.117,36.294 19.008,35.452 17.955,34.596 C12.316,30.222 11.298,22.107 15.69,16.475 C17.796,13.777 20.888,12.028 24.284,11.608 C27.68,11.188 31.105,12.131 33.799,14.229 C37.211,17.046 35.576,15.553 38.702,18.711 C37.495,13.28 39.864,8.25 44.288,5.086 L44.292,5.083 C45.718,4.17 47.309,3.546 48.984,3.244 L50.239,3.082 z M51.353,11.043 L50.393,11.119 C49.758,11.234 49.151,11.471 48.608,11.819 C46.325,13.284 45.666,16.318 47.138,18.594 C55.225,31.118 57.134,40.564 56.306,48.842 C52.958,64.695 45.682,67.911 39.324,67.911 C33.116,67.911 34.778,57.694 39.445,54.704 C42.23,52.965 45.798,51.834 48.537,51.834 C51.25,51.834 53.45,49.642 53.45,46.936 C53.45,44.23 51.25,42.037 48.537,42.037 C45.338,42.037 42.201,42.709 39.272,43.853 C39.87,41.03 40.091,37.978 39.318,34.735 C38.143,29.81 34.762,25.106 28.892,20.546 C27.864,19.746 26.56,19.387 25.266,19.547 C23.973,19.707 22.796,20.373 21.995,21.398 C20.33,23.534 20.715,26.613 22.858,28.274 C27.64,31.989 29.219,34.738 29.759,37.002 C30.299,39.265 29.865,41.693 28.78,45.029 C27.394,49.525 25.784,53.538 25.078,57.387 C24.731,59.282 24.702,61.343 24.612,62.99 C21.168,59.634 19.82,55.202 19.82,48.726 C19.819,46.02 17.619,43.826 14.906,43.827 C12.195,43.83 9.998,46.022 9.998,48.726 C9.998,57.57 12.584,65.986 19.516,71.601 C25.791,77.579 41.749,75.37 41.749,84.967 C41.749,87.676 45.714,88.994 48.426,88.994 C51.209,88.994 54.71,87.134 54.71,84.967 C54.71,74.078 66.186,67.459 85.078,67.488 C87.792,67.492 89.994,65.301 89.998,62.595 C90.002,59.889 87.807,57.691 85.094,57.686 C83.802,57.685 82.542,57.729 81.301,57.802 C83.413,52.835 84.35,47.366 84.156,41.459 C84.066,38.754 81.796,36.634 79.085,36.722 C76.37,36.81 74.244,39.077 74.333,41.783 C74.589,49.518 74.299,56.424 68.537,60.065 C66.898,61.099 64.994,61.997 63.187,61.997 C64.59,58.182 65.649,54.156 66.082,49.816 C66.359,47.046 66.389,43.756 66.073,41.2 C65.582,37.24 64.99,32.749 66.494,29.366 C67.844,26.452 70.87,25.232 75.312,25.232 C78.023,25.23 80.22,23.037 80.221,20.334 C80.222,17.627 78.025,15.432 75.312,15.43 C68.71,15.43 63.706,18.904 60.87,23.102 C59.386,19.934 57.58,16.669 55.398,13.29 C54.693,12.198 53.582,11.43 52.31,11.154 L51.353,11.043 z" fill="#FFFFFF"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
icons/template_macos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

4
insider.json Normal file
View File

@@ -0,0 +1,4 @@
{
"tag": "1.78.0",
"commit": "f31dffc7f9b93a1cdef21243ec30dea7d489a615"
}

View File

@@ -1,12 +1,12 @@
#!/bin/bash
set -e
set -ex
GH_ARCH="amd64"
VERSION=`curl "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 -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"

11
install_remote_dependencies.sh Executable file
View File

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

29
patch.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/bin/bash
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
else
FILE="../patches/${1}.patch"
fi
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
if [[ -f "${FILE}" ]]; then
git apply --reject "${FILE}"
fi
git apply --reject "../patches/helper/settings.patch"
read -p "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
cd ..
echo "The patch has been generated."

View File

@@ -1,30 +1,30 @@
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index df089a6..7aeb54b 100644
index 2686509..4fedec2 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -286,7 +286,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
@@ -289,7 +289,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
} else if (platform === 'darwin') {
const shortcut = gulp.src('resources/darwin/bin/code.sh')
.pipe(replace('@@APPNAME@@', product.applicationName))
- .pipe(rename('bin/code'));
+ .pipe(rename('bin/' + product.applicationName));
all = es.merge(all, shortcut);
}
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
index bd4dc01..02cbbc2 100644
index f7bd477..a489ae4 100644
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
@@ -355,7 +355,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
@@ -351,7 +351,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
}
private async getShellCommandLink(): Promise<{ readonly source: string, readonly target: string }> {
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
- const target = resolve(this.environmentMainService.appRoot, 'bin', 'code');
+ const target = resolve(this.environmentMainService.appRoot, 'bin', this.productService.applicationName);
const source = `/usr/local/bin/${this.productService.applicationName}`;
// Ensure source exists
@@ -565,7 +565,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
@@ -545,7 +545,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
// macOS
if (this.environmentMainService.isBuilt) {

175
patches/build-version.patch Normal file
View File

@@ -0,0 +1,175 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index f3cdbff..ac7c39b 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -246,4 +246,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 }));
@@ -252,3 +253,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 cdc802b..49ab315 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -227,3 +227,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
- let version = packageJson.version;
+ let version = packageJson.version
const quality = product.quality;
@@ -235,3 +235,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 };
@@ -246,3 +247,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 cdc8870..f6e4e09 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -25,4 +25,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -88,3 +86,3 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -193,4 +191,3 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@ICON@@', product.linuxIconName))
- .pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -267,3 +264,3 @@ function prepareSnapPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
// Possible run-on values https://snapcraft.io/docs/architectures
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 0d3abda..2606af5 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -94,4 +94,4 @@ function buildWin32Setup(arch, target) {
DirName: product.win32DirName,
- Version: pkg.version,
- RawVersion: pkg.version.replace(/-\w+$/, ''),
+ Version: `${pkg.version}.${pkg.release}`,
+ RawVersion: `${pkg.version.replace(/-\w+$/, '')}.${pkg.release}`,
NameVersion: product.win32NameVersion + (target === 'user' ? ' (User)' : ''),
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index 61659d2..5cafa06 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 7ec238b..9295018 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -34,2 +34,3 @@ export interface IProductConfiguration {
readonly version: string;
+ readonly release: string;
readonly date?: string;
diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts
index 561966b..30814a0 100644
--- a/src/vs/platform/diagnostics/node/diagnosticsService.ts
+++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts
@@ -236,3 +236,3 @@ export class DiagnosticsService implements IDiagnosticsService {
const output: string[] = [];
- output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
+ output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`);
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index ef798fa..cfa7866 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
if (!product.version) {
- const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string };
+ const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string, release: string };
Object.assign(product, {
- version: pkg.version
+ version: pkg.version,
+ release: pkg.release
});
diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
index 6a3768d..023eeed 100644
--- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
@@ -21,2 +21,3 @@ import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/mar
import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
+import { getReleaseString } from 'vs/workbench/common/release';
@@ -147,2 +148,4 @@ export class BrowserDialogHandler implements IDialogHandler {
const detailString = (useAgo: boolean): string => {
+ const releaseString = getReleaseString();
+
return localize('aboutDetail',
@@ -153,3 +156,3 @@ export class BrowserDialogHandler implements IDialogHandler {
navigator.userAgent
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
};
diff --git a/src/vs/workbench/common/release.ts b/src/vs/workbench/common/release.ts
new file mode 100644
index 0000000..2a8ea57
--- /dev/null
+++ b/src/vs/workbench/common/release.ts
@@ -0,0 +1,14 @@
+import { language } from 'vs/base/common/platform';
+
+const DEFAULT_LABEL = 'Release:';
+const LABELS: { [key: string]: string } = {
+ 'en': DEFAULT_LABEL,
+ 'fr': 'Révision :',
+ 'ru': 'Релиз:',
+ 'zh-hans': '发布版本:',
+ 'zh-hant': '發布版本:',
+};
+
+export function getReleaseString(): string {
+ return LABELS[language] ?? DEFAULT_LABEL;
+}
diff --git a/src/vs/workbench/contrib/issue/browser/issueService.ts b/src/vs/workbench/contrib/issue/browser/issueService.ts
index dc7430b..23def01 100644
--- a/src/vs/workbench/contrib/issue/browser/issueService.ts
+++ b/src/vs/workbench/contrib/issue/browser/issueService.ts
@@ -67,2 +67,3 @@ export class WebIssueService implements IWorkbenchIssueService {
Version: ${this.productService.version}
+Release: ${this.productService.release ?? 'unknown'}
Commit: ${this.productService.commit ?? 'unknown'}
diff --git a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
index f63b75f..2b77c1b 100644
--- a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
@@ -17,2 +17,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';
@@ -166,2 +167,3 @@ export class NativeDialogHandler implements IDialogHandler {
const osProps = await this.nativeHostService.getOSProperties();
+ const releaseString = getReleaseString();
@@ -179,3 +181,3 @@ export class NativeDialogHandler implements IDialogHandler {
process.sandboxed ? 'Yes' : 'No' // TODO@bpasero remove me once sandbox is final
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
};

View File

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

@@ -1,37 +1,31 @@
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index 657b9c9..9b9b12e 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -70,6 +70,7 @@ export interface IProductConfiguration {
readonly extensionsGallery?: {
readonly serviceUrl: string;
+ readonly cacheUrl?: string;
readonly itemUrl: string;
readonly resourceUrlTemplate: string;
readonly controlUrl: string;
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 5e38d35..12bb161 100644
index ef798fa..5a0550b 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -4,11 +4,12 @@
*--------------------------------------------------------------------------------------------*/
@@ -5,3 +5,4 @@
import { FileAccess } from 'vs/base/common/network';
-import { globals } from 'vs/base/common/platform';
+import { AppResourcePath, FileAccess } from 'vs/base/common/network';
+import { globals, isWindows } from 'vs/base/common/platform';
import { env } from 'vs/base/common/process';
import { IProductConfiguration } from 'vs/base/common/product';
import { dirname, joinPath } from 'vs/base/common/resources';
@@ -9,2 +10,3 @@ import { IProductConfiguration } from 'vs/base/common/product';
import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes';
+import { getUserDataPath } from 'vs/platform/environment/node/userDataPath';
/**
* @deprecated You MUST use `IProductService` if possible.
@@ -34,6 +35,32 @@ else if (typeof require?.__$__nodeRequire === 'function') {
product = require.__$__nodeRequire(joinPath(rootPath, 'product.json').fsPath);
const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string; };
@@ -29,2 +31,40 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ // Set user-defined extension gallery
+ const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {}
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ searchUrl: env['VSCODE_GALLERY_SEARCH_URL'] || searchUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ }
+ })
+
+ // Merge user-customized product.json
+ try {
+ const merge = (...objects: any[]) =>
@@ -49,35 +43,13 @@ index 5e38d35..12bb161 100644
+ return result;
+ }, {}) as any;
+
+ const userDataPath = getUserDataPath({} as any);
+ const userDataPath = getUserDataPath({} as any, product.nameShort);
+ const userProductPath = isWindows ? `file:///${userDataPath}/product.json` : `file://${userDataPath}/product.json`;
+
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath, require).fsPath);
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath as AppResourcePath).fsPath);
+
+ product = merge(product, userProduct);
+ } catch (ex) {
+ }
+
// Running out of sources
if (env['VSCODE_DEV']) {
Object.assign(product, {
@@ -43,6 +70,19 @@ else if (typeof require?.__$__nodeRequire === 'function') {
});
}
+ // Set user-defined extension gallery
+ const { serviceUrl, cacheUrl, itemUrl, controlUrl, recommendationsUrl } = product.extensionsGallery || {}
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ cacheUrl: env['VSCODE_GALLERY_CACHE_URL'] || cacheUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ recommendationsUrl: env['VSCODE_GALLERY_RECOMMENDATIONS_URL'] || recommendationsUrl
+ }
+ })
+
Object.assign(product, {
version: pkg.version
});

View File

@@ -0,0 +1,97 @@
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
index 3ef5ca1..a634a9f 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
@@ -301,2 +301,8 @@ configurationRegistry.registerConfiguration({
},
+ 'workbench.welcomePage.extraAnnouncements': {
+ scope: ConfigurationScope.MACHINE,
+ type: 'boolean',
+ default: true,
+ description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from VSCodium's repository.")
+ },
'workbench.startupEditor': {
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
index 46949b2..174e65f 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
@@ -118,4 +118,8 @@ type GettingStartedActionEvent = {
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
+type AnnouncementEntry = { id: string, title: string, url: string };
const REDUCED_MOTION_KEY = 'workbench.welcomePage.preferReducedMotion';
+
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
+
export class GettingStartedPage extends EditorPane {
@@ -152,2 +156,4 @@ export class GettingStartedPage extends EditorPane {
private gettingStartedList?: GettingStartedIndexList<IResolvedWalkthrough>;
+ private announcementList?: GettingStartedIndexList<AnnouncementEntry>;
+ private announcementData?: AnnouncementEntry[];
private featuredExtensionsList?: GettingStartedIndexList<IFeaturedExtension>;
@@ -804,2 +810,3 @@ export class GettingStartedPage extends EditorPane {
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
+ const announcementList = await this.buildAnnouncementList();
@@ -815,3 +822,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noWalkthroughs');
- reset(leftColumn, startList.getDomElement(), recentList.getDomElement());
+ reset(leftColumn, startList.getDomElement(), recentList.getDomElement(), announcementList.getDomElement());
reset(rightColumn, featuredExtensionList.getDomElement(), gettingStartedList.getDomElement());
@@ -820,3 +827,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noWalkthroughs');
- reset(leftColumn, startList.getDomElement(), recentList.getDomElement());
+ reset(leftColumn, startList.getDomElement(), announcementList.getDomElement());
reset(rightColumn, featuredExtensionList.getDomElement());
@@ -982,2 +989,51 @@ export class GettingStartedPage extends EditorPane {
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {
+ const { title, url } = announcement;
+ const li = $('li');
+
+ const anchor: HTMLLinkElement = $('a');
+ anchor.href = url;
+ anchor.innerText = title;
+ anchor.target = '_blank';
+ li.appendChild(anchor);
+
+ return li;
+ };
+
+ if (this.announcementList) { this.announcementList.dispose(); }
+
+ const announcementList = this.announcementList = new GettingStartedIndexList({
+ title: localize('announcements', "VSCodium Announcements"),
+ klass: 'announcements',
+ limit: 5,
+ empty: $('.empty-recent', {}, localize('noAnnouncements', "There are no current announcements.")),
+ renderElement: renderAnnouncement,
+ contextService: this.contextService
+ });
+
+ if (!this.announcementData) {
+ const showExtras = this.configurationService.getValue<boolean>('workbench.welcomePage.extraAnnouncements');
+
+ if (showExtras) {
+ const branch = this.productService.quality === 'insider' ? 'insider' : 'master';
+ const res = await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`);
+
+ if (res.ok) {
+ var extraAnnouncements = await res.json() as AnnouncementEntry[];
+
+ this.announcementData = [...extraAnnouncements, ...BUILTIN_ANNOUNCEMENTS];
+ } else {
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
+ }
+ } else {
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
+ }
+ }
+
+ announcementList.setEntries(this.announcementData);
+
+ return announcementList;
+ }
+
private buildStartList(): GettingStartedIndexList<IWelcomePageStartEntry> {

View File

@@ -0,0 +1,27 @@
diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
index af20828..f09ba66 100644
--- a/build/linux/dependencies-generator.js
+++ b/build/linux/dependencies-generator.js
@@ -22,3 +22,3 @@ const types_2 = require("./rpm/types");
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false;
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/98.0.4758.109:chrome/installer/linux/BUILD.gn;l=64-80
diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
index 34573c4..91adb8f 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -23,3 +23,3 @@ import { isRpmArchString, RpmArchString } from './rpm/types';
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = false;
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index 61659d2..6331a67 100644
--- a/resources/linux/rpm/code.spec.template
+++ b/resources/linux/rpm/code.spec.template
@@ -78 +78,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_datadir}/zsh/site-functions/_%{name}
+
+%config(noreplace) /usr/share/%{name}/resources/app/product.json
\ No newline at end of file

View File

@@ -0,0 +1,77 @@
diff --git a/src/vs/workbench/browser/parts/banner/bannerPart.ts b/src/vs/workbench/browser/parts/banner/bannerPart.ts
index b120c94..1bb2b88 100644
--- a/src/vs/workbench/browser/parts/banner/bannerPart.ts
+++ b/src/vs/workbench/browser/parts/banner/bannerPart.ts
@@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
-import { IStorageService } from 'vs/platform/storage/common/storage';
+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { IThemeService } from 'vs/platform/theme/common/themeService';
@@ -30,2 +30,3 @@ import { widgetClose } from 'vs/platform/theme/common/iconRegistry';
import { BannerFocused } from 'vs/workbench/common/contextkeys';
+import { INeverShowAgainOptions, NeverShowAgainScope } from 'vs/platform/notification/common/notification';
@@ -67,3 +68,3 @@ export class BannerPart extends Part implements IBannerService {
@IWorkbenchLayoutService layoutService: IWorkbenchLayoutService,
- @IStorageService storageService: IStorageService,
+ @IStorageService private readonly storageService: IStorageService,
@IContextKeyService private readonly contextKeyService: IContextKeyService,
@@ -187,2 +188,14 @@ export class BannerPart extends Part implements IBannerService {
+ if (item.neverShowAgain) {
+ const scope = this.toStorageScope(item.neverShowAgain);
+ const id = item.neverShowAgain.id;
+
+ // If the user already picked to not show the notification
+ // again, we return with a no-op notification here
+ if (this.storageService.getBoolean(id, scope)) {
+ this.close(item);
+ return;
+ }
+ }
+
// Clear previous item
@@ -234,2 +247,15 @@ export class BannerPart extends Part implements IBannerService {
+ private toStorageScope(options: INeverShowAgainOptions): StorageScope {
+ switch (options.scope) {
+ case NeverShowAgainScope.APPLICATION:
+ return StorageScope.APPLICATION;
+ case NeverShowAgainScope.PROFILE:
+ return StorageScope.PROFILE;
+ case NeverShowAgainScope.WORKSPACE:
+ return StorageScope.WORKSPACE;
+ default:
+ return StorageScope.APPLICATION;
+ }
+ }
+
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
--- a/src/vs/workbench/services/banner/browser/bannerService.ts
+++ b/src/vs/workbench/services/banner/browser/bannerService.ts
@@ -10,2 +10,3 @@ import { ILinkDescriptor } from 'vs/platform/opener/browser/link';
import { ThemeIcon } from 'vs/base/common/themables';
+import { INeverShowAgainOptions } from 'vs/platform/notification/common/notification';
@@ -18,2 +19,3 @@ export interface IBannerItem {
readonly onClose?: () => void;
+ readonly neverShowAgain?: INeverShowAgainOptions;
}

View File

@@ -1,8 +0,0 @@
--- vscode/resources/linux/rpm/code.spec.template 2021-03-02 19:26:53.000000000 +0100
+++ vscode/resources/linux/rpm/code.spec.template.new 2021-03-02 19:28:12.000000000 +0100
@@ -69,3 +69,5 @@
/usr/share/pixmaps/@@ICON@@.png
/usr/share/bash-completion/completions/@@NAME@@
/usr/share/zsh/site-functions/_@@NAME@@
+
+%config(noreplace) /usr/share/@@NAME@@/resources/app/product.json

View File

@@ -0,0 +1,23 @@
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 7ae8bce..724b9ad 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -9,5 +9,5 @@
"cli/target": true,
- "build/**/*.js": {
- "when": "$(basename).ts"
- }
+ // "build/**/*.js": {
+ // "when": "$(basename).ts"
+ // }
},
@@ -81,3 +81,3 @@
"gulp.autoDetect": "off",
- "files.insertFinalNewline": true,
+ // "files.insertFinalNewline": true,
"[plaintext]": {
@@ -91,3 +91,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},

View File

@@ -0,0 +1,18 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index ae33cc9..06c2a67 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -251,3 +251,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version, release }));
+ .pipe(json({ commit, date, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 938943d..2d84a15 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -245,3 +245,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version, release };
+ const productJsonUpdate = { commit, date, checksums, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' };

View File

@@ -0,0 +1,9 @@
diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts
index 3b8a644..71ea0ad 100644
--- a/src/vs/platform/windows/electron-main/windowImpl.ts
+++ b/src/vs/platform/windows/electron-main/windowImpl.ts
@@ -213,4 +213,2 @@ export class CodeWindow extends Disposable implements ICodeWindow {
useSandbox = true;
- } else {
- useSandbox = typeof this.productService.quality === 'string' && this.productService.quality !== 'stable';
}

View File

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

View File

@@ -0,0 +1,13 @@
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
index 81bf4b2..5a88688 100644
--- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
@@ -233,7 +233,7 @@ export class Extension implements IExtension {
return false;
}
// Do not allow updating system extensions in stable
- if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
+ if (this.type === ExtensionType.System) {
return false;
}
if (!this.local.preRelease && this.gallery.properties.isPreReleaseVersion) {

View File

@@ -0,0 +1,69 @@
diff --git a/build/lib/compilation.js b/build/lib/compilation.js
index 63ddeb2..31d2f35 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 = {}) {
}
- // 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));
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = es.through(function write(data) {
- const tsNormalPath = ts.normalizePath(data.path);
- const newContents = 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);
- // free resources
- newContentsByFileName.clear();
- ts2tsMangler = undefined;
- });
- }
return srcPipe
- .pipe(mangleStream)
.pipe(generator.stream)
diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts
index d5cd196..afe16d3 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: {
- // mangle: TypeScript to TypeScript
- let mangleStream = es.through();
- if (build && !options.disableMangle) {
- let ts2tsMangler = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data));
- const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
- mangleStream = es.through(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);
- 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);
- // free resources
- newContentsByFileName.clear();
- (<any>ts2tsMangler) = undefined;
- });
- }
-
return srcPipe
- .pipe(mangleStream)
.pipe(generator.stream)

View File

@@ -1,48 +1,80 @@
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
index fcd4485..8d97e5a 100644
index 33e66be..a7ade0a 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
@@ -682,7 +682,7 @@ export class IssueReporter extends Disposable {
@@ -468,3 +468,3 @@ export class IssueReporter extends Disposable {
if (title) {
- this.searchDuplicates(title, issueDescription);
+ this.searchGitHub('VSCodium/vscodium', title);
} else {
@@ -556,33 +556,2 @@ export class IssueReporter extends Disposable {
sourceSelect.innerText = '';
- @debounce(300)
- private searchDuplicates(title: string, body?: string): void {
- const url = 'https://vscode-probot.westus.cloudapp.azure.com:7890/duplicate_candidates';
- const init = {
- method: 'POST',
- body: JSON.stringify({
- title,
- body
- }),
- headers: new Headers({
- 'Content-Type': 'application/json'
- })
- };
-
- window.fetch(url, init).then((response) => {
- response.json().then(result => {
- this.clearSearchResults();
-
- if (result && result.candidates) {
- this.displaySearchResults(result.candidates);
- } else {
- throw new Error('Unexpected response, no candidates property');
- }
- }).catch(_ => {
- // Ignore
- });
- }).catch(_ => {
- // Ignore
- });
- }
-
private displaySearchResults(results: SearchResult[]) {
@@ -674,3 +643,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));
if (this.configuration.product.reportMarketplaceIssueUrl) {
sourceSelect.append(this.makeOption('marketplace', localize('marketplace', "Extensions marketplace"), false));
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
index a58acca..1903a0c 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 6467d66..d425016 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 0c5855b..654f9a4 100644
index 20154ad..bca59b8 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
@@ -144,7 +144,7 @@ class ReportExtensionSlowAction extends Action {
- Extension Name: \`${this.extension.name}\`
- Extension Version: \`${this.extension.version}\`
@@ -148,3 +148,3 @@ class ReportExtensionSlowAction extends Action {
- OS Version: \`${osVersion}\`
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
+- VSCodium version: \`${this._productService.version}\`\n\n${message}`);
const url = `${this.repoInfo.base}/${this.repoInfo.owner}/${this.repoInfo.repo}/issues/new/?body=${body}&title=${title}`;
this._openerService.open(URI.parse(url));
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
index f1755db..e77be21 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
@@ -14,7 +14,7 @@ import { ExtensionType, IExtensionDescription } from 'vs/platform/extensions/com
import { IOpenerService } from 'vs/platform/opener/common/opener';
import { URI } from 'vs/base/common/uri';
-const builtinExtensionIssueUrl = 'https://github.com/microsoft/vscode';
+const builtinExtensionIssueUrl = 'https://github.com/VSCodium/vscodium';
export class ReportExtensionIssueAction extends Action {
@@ -76,7 +76,7 @@ export class ReportExtensionIssueAction extends Action {
- Extension Name: \`${extension.description.name}\`
- Extension Version: \`${extension.description.version}\`
- OS Version: \`${osVersion}\`
-- VS Code version: \`${this.productService.version}\`\n\n${message}`
+- VSCodium version: \`${this.productService.version}\`\n\n${message}`
);
return `${baseUrl}${queryStringPrefix}body=${body}&title=${encodeURIComponent(title)}`;

64
patches/update-msi.patch Normal file
View File

@@ -0,0 +1,64 @@
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 caecd71..4c02afa 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 {
- 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', '/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', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ }
}

View File

@@ -1,247 +1,441 @@
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
index fe0fbfd..656d8bb 100644
index dc7278f..a1adcf7 100644
--- a/extensions/github-authentication/src/githubServer.ts
+++ b/extensions/github-authentication/src/githubServer.ts
@@ -6,8 +6,6 @@
import * as nls from 'vscode-nls';
@@ -6,4 +6,2 @@
import * as vscode from 'vscode';
import fetch, { Response } from 'node-fetch';
-import { v4 as uuid } from 'uuid';
-import * as path from 'path';
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
import { ExperimentationTelemetry } from './experimentationService';
import { AuthProviderType } from './github';
import { ExperimentationTelemetry } from './common/experimentationService';
@@ -11,14 +9,7 @@ import { AuthProviderType, UriEventHandler } from './github';
import { Log } from './common/logger';
@@ -15,8 +13,6 @@ import { Log } from './common/logger';
const localize = nls.loadMessageBundle();
-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';
-const CLIENT_ID = '01ab8ac9400c4e429b23';
-const GITHUB_TOKEN_URL = 'https://vscode.dev/codeExchangeProxyEndpoints/github/login/oauth/access_token';
const NETWORK_ERROR = 'network error';
-const AUTH_RELAY_SERVER = 'vscode-auth.github.com';
-// const AUTH_RELAY_STAGING_SERVER = 'client-auth-staging-14a768b.herokuapp.com';
class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.UriHandler {
constructor(private readonly Logger: Log) {
@@ -29,14 +25,6 @@ class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.
}
}
-const REDIRECT_URL_STABLE = 'https://vscode.dev/redirect';
-const REDIRECT_URL_INSIDERS = 'https://insiders.vscode.dev/redirect';
-
export interface IGitHubServer {
@@ -30,9 +21,2 @@ export interface IGitHubServer {
-function parseQuery(uri: vscode.Uri) {
- return uri.query.split('&').reduce((prev: any, current) => {
- const queryString = current.split('=');
- prev[queryString[0]] = queryString[1];
- return prev;
- }, {});
-interface IGitHubDeviceCodeResponse {
- device_code: string;
- user_code: string;
- verification_uri: string;
- interval: number;
-}
-
export interface IGitHubServer extends vscode.Disposable {
login(scopes: string): Promise<string>;
getUserInfo(token: string): Promise<{ id: string, accountName: string }>;
@@ -96,11 +84,7 @@ async function getUserInfo(token: string, serverUri: vscode.Uri, logger: Log): P
export class GitHubServer implements IGitHubServer {
friendlyName = 'GitHub';
type = AuthProviderType.github;
- private _statusBarItem: vscode.StatusBarItem | undefined;
- private _onDidManuallyProvideToken = new vscode.EventEmitter<string | undefined>();
async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise<string[]> {
@@ -63,8 +47,4 @@ export class GitHubServer implements IGitHubServer {
- private _pendingStates = new Map<string, string[]>();
- private _codeExchangePromises = new Map<string, { promise: Promise<string>, cancel: vscode.EventEmitter<void> }>();
private _statusBarCommandId = `${this.type}.provide-manually`;
private _disposable: vscode.Disposable;
private _uriHandler = new UriEventHandler(this._logger);
@@ -115,137 +99,35 @@ export class GitHubServer implements IGitHubServer {
this._disposable.dispose();
}
- 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 isTestEnvironment(url: vscode.Uri): boolean {
- return /\.azurewebsites\.net$/.test(url.authority) || url.authority.startsWith('localhost:');
- private _redirectEndpoint: string | undefined;
-
constructor(
@@ -72,3 +52,5 @@ export class GitHubServer implements IGitHubServer {
private readonly _telemetryReporter: ExperimentationTelemetry,
+ // @ts-ignore
private readonly _uriHandler: UriEventHandler,
+ // @ts-ignore
private readonly _extensionKind: vscode.ExtensionKind,
@@ -87,26 +69,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
- private async isNoCorsEnvironment(): Promise<boolean> {
- const uri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/dummy`));
- return (uri.scheme === 'https' && /^((insiders\.)?vscode|github)\./.test(uri.authority)) || (uri.scheme === 'http' && /^localhost/.test(uri.authority));
- }
// TODO@joaomoreno TODO@TylerLeonhardt
@@ -122,71 +80,8 @@ export class GitHubServer implements IGitHubServer {
let userCancelled: boolean | undefined;
- const yes = vscode.l10n.t('Yes');
- const no = vscode.l10n.t('No');
- const promptToContinue = async () => {
- 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?')
- : vscode.l10n.t('You have not yet finished authorizing this extension to use GitHub. Would you like to keep trying?');
- const result = await vscode.window.showWarningMessage(message, yes, no);
- if (result !== yes) {
- throw new Error('Cancelled');
- }
- };
-
public async login(scopes: string): Promise<string> {
this._logger.info(`Logging in for the following scopes: ${scopes}`);
- 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 callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate`));
-
- if (this.isTestEnvironment(callbackUri)) {
- const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
- if (!token) { throw new Error('Sign in failed: No token provided'); }
-
- const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
- const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
- if (!scopesList.every(scope => {
- const included = tokenScopes.includes(scope);
- if (included || !scope.includes(':')) {
- return included;
- }
+ const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
+ if (!token) { throw new Error('Sign in failed: No token provided'); }
- return scope.split(':').some(splitScopes => {
- return tokenScopes.includes(splitScopes);
- });
- })) {
- throw new Error(`The provided token does not match the requested scopes: ${scopes}`);
+ const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
+ const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
+ if (!scopesList.every(scope => {
+ const included = tokenScopes.includes(scope);
+ if (included || !scope.includes(':')) {
+ return included;
}
- return token;
- 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 Cancelled';
- }
- }
-
- this.updateStatusBarItem(true);
- // 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();
- return await this.doLoginWithLocalServer(scopes);
- } catch (e) {
- this._logger.error(e);
- userCancelled = e.message ?? e === 'User Cancelled';
- }
- }
-
- const state = uuid();
- const existingStates = this._pendingStates.get(scopes) || [];
- this._pendingStates.set(scopes, [...existingStates, state]);
- // 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();
- return await this.doLoginDeviceCodeFlow(scopes);
- } catch (e) {
- this._logger.error(e);
- userCancelled = e.message ?? e === 'User Cancelled';
- }
- }
-
- const uri = vscode.Uri.parse(`https://${AUTH_RELAY_SERVER}/authorize/?callbackUri=${encodeURIComponent(callbackUri.toString())}&scope=${scopes}&state=${state}&responseType=code&authServer=https://github.com`);
- 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.exchangeCodeForToken(scopes));
- this._codeExchangePromises.set(scopes, codeExchangePromise);
+ return scope.split(':').some(splitScopes => {
+ return tokenScopes.includes(splitScopes);
+ });
+ })) {
+ throw new Error(`The provided token does not match the requested scopes: ${scopes}`);
- // 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();
- return await this.doLoginWithPat(scopes);
- } catch (e) {
- this._logger.error(e);
- userCancelled = e.message ?? e === 'User Cancelled';
- }
+ try {
+ return await this.doLoginWithPat(scopes);
+ } catch (e) {
+ this._logger.error(e);
+ userCancelled = e.message ?? e === 'User Cancelled';
}
@@ -196,136 +91,2 @@ export class GitHubServer implements IGitHubServer {
- return Promise.race([
- codeExchangePromise.promise,
- promiseFromEvent<string | undefined, string>(this._onDidManuallyProvideToken.event, (token: string | undefined, resolve, reject): void => {
- if (!token) {
- reject('Cancelled');
- } else {
- resolve(token);
- }
- }).promise,
- new Promise<string>((_, reject) => setTimeout(() => reject('Cancelled'), 60000))
- ]).finally(() => {
- this._pendingStates.delete(scopes);
- codeExchangePromise?.cancel.fire();
- this._codeExchangePromises.delete(scopes);
- this.updateStatusBarItem(false);
- });
+ return token;
}
- private exchangeCodeForToken: (scopes: string) => PromiseAdapter<vscode.Uri, string> =
- (scopes) => async (uri, resolve, reject) => {
- const query = parseQuery(uri);
- const code = query.code;
- 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 acceptedStates = this._pendingStates.get(scopes) || [];
- if (!acceptedStates.includes(query.state)) {
- 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'), 300_000)), // 5min timeout
- promiseFromEvent<any, any>(token.onCancellationRequested, (_, __, reject) => { reject('User Cancelled'); }).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'), 300_000)), // 5min timeout
- promiseFromEvent<any, any>(token.onCancellationRequested, (_, __, reject) => { reject('User Cancelled'); }).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 Cancelled');
- }
-
- 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> {
@@ -369,123 +130,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 Cancelled');
- }
- 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('Cancelled');
- });
- }
-
- 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('State not found in accepted state. Skipping this execution...');
- this._logger.info('Nonce not found in accepted nonces. Skipping this execution...');
- return;
- }
-
- const url = `https://${AUTH_RELAY_SERVER}/token?code=${code}&state=${query.state}`;
- this._logger.info('Exchanging code for token...');
-
- try {
- const result = await fetch(url, {
- method: 'POST',
- headers: {
- Accept: 'application/json'
- }
- });
-
- if (result.ok) {
- const json = await result.json();
- this._logger.info('Token exchange success!');
- resolve(json.access_token);
- } else {
- reject(result.statusText);
- }
- } catch (ex) {
- reject(ex);
- }
- resolve(this.exchangeCodeForToken(code));
- };
-
private getServerUri(path: string = '') {
const apiUri = vscode.Uri.parse('https://api.github.com');
return vscode.Uri.parse(`${apiUri.scheme}://${apiUri.authority}${path}`);
}
- private updateStatusBarItem(isStart?: boolean) {
- if (isStart && !this._statusBarItem) {
- this._statusBarItem = vscode.window.createStatusBarItem('status.git.signIn', vscode.StatusBarAlignment.Left);
- this._statusBarItem.name = localize('status.git.signIn.name', "GitHub Sign-in");
- this._statusBarItem.text = localize('signingIn', "$(mark-github) Signing in to github.com...");
- this._statusBarItem.command = this._statusBarCommandId;
- this._statusBarItem.show();
- }
- private async exchangeCodeForToken(code: string): Promise<string> {
- this._logger.info('Exchanging code for token...');
-
- if (!isStart && this._statusBarItem) {
- this._statusBarItem.dispose();
- this._statusBarItem = undefined;
- 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 async manuallyProvideUri() {
const uri = await vscode.window.showInputBox({
prompt: 'Uri',
@@ -277,44 +159,7 @@ export class GitHubServer implements IGitHubServer {
return getUserInfo(token, this.getServerUri('/user'), this._logger);
}
- public async sendAdditionalTelemetryInfo(token: string): Promise<void> {
- if (!vscode.env.isTelemetryEnabled) {
- return;
- }
- const nocors = await this.isNoCorsEnvironment();
diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
index 8c7e84a..2dd5cab 100644
--- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
+++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
@@ -309,3 +309,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 68fcc20..93484ee 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 (nocors) {
- return;
- }
-
- try {
- const result = await fetch('https://education.github.com/api/user', {
- headers: {
- Authorization: `token ${token}`,
- 'faculty-check-preview': 'true',
- 'User-Agent': 'Visual-Studio-Code'
- }
- if (!this._authenticationProviders.size) {
- placeholderMenuItem = MenuRegistry.appendMenuItem(MenuId.AccountsContext, {
- command: {
- id: 'noAuthenticationProviders',
- title: nls.localize('loading', "Loading..."),
- precondition: ContextKeyExpr.false()
- },
- });
-
- if (result.ok) {
- const json: { student: boolean, faculty: boolean } = await result.json();
-
- /* __GDPR__
- "session" : {
- "isEdu": { "classification": "NonIdentifiableDemographicInfo", "purpose": "FeatureInsight" }
- }
- */
- this._telemetryReporter.sendTelemetryEvent('session', {
- isEdu: json.student
- ? 'student'
- : json.faculty
- ? 'faculty'
- : 'none'
- });
- }
- } catch (e) {
- // No-op
- }
+ public async sendAdditionalTelemetryInfo(_token: string): Promise<void> {
}
public async checkEnterpriseVersion(token: string): Promise<void> {

9
patches/win7.patch Normal file
View File

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

View File

@@ -1,92 +0,0 @@
#!/bin/bash
set -e
npm install -g checksum
sum_file() {
if [[ -f "$1" ]]; then
echo "Calcuating checksum for $1"
checksum -a sha256 "$1" > "$1".sha256
checksum "$1" > "$1".sha1
fi
}
mkdir artifacts
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
echo "Building and moving ZIP"
cd "VSCode-darwin-${VSCODE_ARCH}"
zip -r -X -y ../artifacts/VSCodium-darwin-${VSCODE_ARCH}-${MS_TAG}.zip ./*.app
cd ..
fi
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
echo "Building and moving DMG"
pushd "VSCode-darwin-${VSCODE_ARCH}"
npx create-dmg VSCodium.app ..
mv "../VSCodium ${MS_TAG}.dmg" "../artifacts/VSCodium.${VSCODE_ARCH}.${MS_TAG}.dmg"
popd
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
echo "Moving ZIP"
mv vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip artifacts\\VSCodium-win32-${VSCODE_ARCH}-${MS_TAG}.zip
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
echo "Moving System EXE"
mv vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe artifacts\\VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
echo "Moving User EXE"
mv vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe artifacts\\VSCodiumUserSetup-${VSCODE_ARCH}-${MS_TAG}.exe
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
echo "Moving MSI"
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi artifacts/
fi
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
echo "Moving MSI with disabled updates"
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi artifacts/
fi
fi
else
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
echo "Building and moving TAR"
cd VSCode-linux-${VSCODE_ARCH}
tar czf ../artifacts/VSCodium-linux-${VSCODE_ARCH}-${MS_TAG}.tar.gz .
cd ..
fi
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
echo "Moving DEB"
mv vscode/.build/linux/deb/*/deb/*.deb artifacts/
fi
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
echo "Moving RPM"
mv vscode/.build/linux/rpm/*/*.rpm artifacts/
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
echo "Moving AppImage"
mv build/linux/appimage/out/*.AppImage* artifacts/
fi
fi
cd artifacts
for FILE in *
do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi
done
cd ..

189
prepare_assets.sh Executable file
View File

@@ -0,0 +1,189 @@
#!/bin/bash
set -e
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
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
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${CI_BUILD}" != "no" ]]; then
cd "VSCode-darwin-${VSCODE_ARCH}"
CERTIFICATE_P12="${APP_NAME}.p12"
KEYCHAIN="${RUNNER_TEMP}/build.keychain"
echo "${CERTIFICATE_OSX_P12}" | base64 --decode > "${CERTIFICATE_P12}"
echo "+ create temporary keychain"
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 -d user
# security show-keychain-info ${KEYCHAIN}
echo "+ import certificate to keychain"
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_PASSWORD}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k mysecretpassword "${KEYCHAIN}" > /dev/null
# security find-identity "${KEYCHAIN}"
echo "+ signing"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME} - Insiders.app"
else
codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME}.app"
fi
cd ..
fi
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
echo "Building and moving ZIP"
cd "VSCode-darwin-${VSCODE_ARCH}"
zip -r -X -y "../assets/${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ./*.app
cd ..
fi
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
echo "Building and moving DMG"
pushd "VSCode-darwin-${VSCODE_ARCH}"
npx create-dmg ./*.app ..
mv ../*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
popd
fi
if [[ "${SHOULD_BUILD_SRC}" == "yes" ]]; then
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
fi
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
. ../build/windows/msi/build.sh
fi
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
. ../build/windows/msi/build-updates-disabled.sh
fi
fi
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"
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
echo "Moving User EXE"
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
echo "Moving MSI"
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" assets/
fi
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
echo "Moving MSI with disabled updates"
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" assets/
fi
fi
VSCODE_PLATFORM="win32"
else
cd vscode || { echo "'vscode' dir not found"; exit 1; }
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
fi
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
. ../build/linux/appimage/build.sh
fi
cd ..
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
echo "Building and moving TAR"
cd "VSCode-linux-${VSCODE_ARCH}"
tar czf "../assets/${APP_NAME}-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
cd ..
fi
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
echo "Moving DEB"
mv vscode/.build/linux/deb/*/deb/*.deb assets/
fi
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
echo "Moving RPM"
mv vscode/.build/linux/rpm/*/*.rpm assets/
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
echo "Moving AppImage"
mv build/linux/appimage/out/*.AppImage* assets/
find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
fi
VSCODE_PLATFORM="linux"
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
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 ..
fi
cd assets
for FILE in *
do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi
done
cd ..

View File

@@ -2,10 +2,18 @@
set -e
cp -rp src/* vscode/
# include common functions
. ./utils.sh
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
cp -rp src/insider/* vscode/
else
cp -rp src/stable/* vscode/
fi
cp -f LICENSE vscode/LICENSE.txt
cd vscode || exit
cd vscode || { echo "'vscode' dir not found"; exit 1; }
../update_settings.sh
@@ -13,81 +21,170 @@ cd vscode || exit
{ set +x; } 2>/dev/null
for file in ../patches/*.patch; do
if [ -f "$file" ]; then
echo applying patch: $file;
git apply --ignore-whitespace "$file"
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
echo failed to apply patch "${file}" 1>&2
fi
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for file in ../patches/insider/*.patch; do
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
fi
fi
done
fi
for file in ../patches/user/*.patch; do
if [ -f "$file" ]; then
echo applying user patch: $file;
git apply --ignore-whitespace "$file"
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
echo failed to apply patch "${file}" 1>&2
fi
fi
done
set -x
if [[ "$OS_NAME" == "osx" ]]; then
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
npm_config_argv='{"original":["--ignore-optional"]}' yarn postinstall
if [[ "${OS_NAME}" == "osx" ]]; then
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
yarn postinstall
elif [[ "${npm_config_arch}" == "armv7l" || "${npm_config_arch}" == "ia32" ]]; then
# node-gyp@9.0.0 shipped with node@16.15.0 starts using config.gypi
# from the custom headers path if dist-url option was set, instead of
# using the config value from the process. Electron builds with pointer compression
# enabled for x64 and arm64, but incorrectly ships a single copy of config.gypi
# with v8_enable_pointer_compression option always set for all target architectures.
# We use the force_process_config option to use the config.gypi from the
# nodejs process executing npm for 32-bit architectures.
export npm_config_force_process_config="true"
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
else
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
fi
mv product.json product.json.bak
setpath() {
{ set +x; } 2>/dev/null
echo "$( cat "${1}.json" | jq --arg 'path' "${2}" --arg 'value' "${3}" 'setpath([$path]; $value)' )" > "${1}.json"
set -x
}
# set fields in product.json
checksumFailMoreInfoUrl='setpath(["checksumFailMoreInfoUrl"]; "https://go.microsoft.com/fwlink/?LinkId=828886")'
tipsAndTricksUrl='setpath(["tipsAndTricksUrl"]; "https://go.microsoft.com/fwlink/?linkid=852118")'
twitterUrl='setpath(["twitterUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533687")'
requestFeatureUrl='setpath(["requestFeatureUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533482")'
documentationUrl='setpath(["documentationUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533484#vscode")'
introductoryVideosUrl='setpath(["introductoryVideosUrl"]; "https://go.microsoft.com/fwlink/?linkid=832146")'
extensionAllowedBadgeProviders='setpath(["extensionAllowedBadgeProviders"]; ["api.bintray.com", "api.travis-ci.com", "api.travis-ci.org", "app.fossa.io", "badge.fury.io", "badge.waffle.io", "badgen.net", "badges.frapsoft.com", "badges.gitter.im", "badges.greenkeeper.io", "cdn.travis-ci.com", "cdn.travis-ci.org", "ci.appveyor.com", "circleci.com", "cla.opensource.microsoft.com", "codacy.com", "codeclimate.com", "codecov.io", "coveralls.io", "david-dm.org", "deepscan.io", "dev.azure.com", "flat.badgen.net", "gemnasium.com", "githost.io", "gitlab.com", "godoc.org", "goreportcard.com", "img.shields.io", "isitmaintained.com", "marketplace.visualstudio.com", "nodesecurity.io", "opencollective.com", "snyk.io", "travis-ci.com", "travis-ci.org", "visualstudio.com", "vsmarketplacebadge.apphb.com", "www.bithound.io", "www.versioneye.com"])'
updateUrl='setpath(["updateUrl"]; "https://vscodium.now.sh")'
releaseNotesUrl='setpath(["releaseNotesUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533483#vscode")'
keyboardShortcutsUrlMac='setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
keyboardShortcutsUrlLinux='setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
keyboardShortcutsUrlWin='setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
quality='setpath(["quality"]; "stable")'
extensionsGallery='setpath(["extensionsGallery"]; {"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"})'
linkProtectionTrustedDomains='setpath(["linkProtectionTrustedDomains"]; ["https://open-vsx.org"])'
nameShort='setpath(["nameShort"]; "VSCodium")'
nameLong='setpath(["nameLong"]; "VSCodium")'
linuxIconName='setpath(["linuxIconName"]; "vscodium")'
applicationName='setpath(["applicationName"]; "codium")'
win32MutexName='setpath(["win32MutexName"]; "vscodium")'
win32DirName='setpath(["win32DirName"]; "VSCodium")'
win32NameVersion='setpath(["win32NameVersion"]; "VSCodium")'
win32RegValueName='setpath(["win32RegValueName"]; "VSCodium")'
win32AppUserModelId='setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
win32ShellNameShort='setpath(["win32ShellNameShort"]; "VSCodium")'
win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
urlProtocol='setpath(["urlProtocol"]; "vscodium")'
extensionAllowedProposedApi='setpath(["extensionAllowedProposedApi"]; getpath(["extensionAllowedProposedApi"]) + ["ms-vscode.cpptools", "ms-azuretools.vscode-docker", "visualstudioexptteam.vscodeintellicode", "GitHub.codespaces", "GitHub.vscode-pull-request-github-insiders", "GitHub.vscode-pull-request-github", "Microsoft.vscode-nmake-tools", "ms-ai-tools.notebook-renderers", "ms-dotnettools.dotnet-interactive-vscode", "ms-python.gather", "ms-python.python", "ms-toolsai.jupyter", "ms-toolsai.vscode-ai", "ms-toolsai.vscode-ai-remote", "ms-vscode-remote.remote-containers-nightly", "ms-vscode-remote.remote-containers", "ms-vscode-remote.remote-ssh-edit-nightly", "ms-vscode-remote.remote-ssh-edit", "ms-vscode-remote.remote-ssh-nightly", "ms-vscode-remote.remote-ssh", "ms-vscode-remote.remote-wsl-nightly", "ms-vscode-remote.remote-wsl", "ms-vscode-remote.remote-wsl-recommender", "ms-vscode-remote.vscode-remote-extensionpack-nightly", "ms-vscode-remote.vscode-remote-extensionpack", "ms-vscode.azure-account", "ms-vscode.azure-sphere-tools-ui", "ms-vscode.azure-sphere-tools", "ms-vscode.github-browser", "ms-vscode.github-richnav", "ms-vscode.js-debug-nightly", "ms-vscode.js-debug", "ms-vscode.lsif-browser", "ms-vscode.vscode-js-profile-flame", "ms-vscode.vscode-js-profile-table", "ms-vscode.vscode-selfhost-test-provider", "ms-vsliveshare.cloudenv-explorer", "ms-vsliveshare.cloudenv", "ms-vsliveshare.vsliveshare", "ms-vsonline.vsonline", "dbaeumer.vscode-eslint"])'
serverDataFolderName='setpath(["serverDataFolderName"]; ".vscode-server-oss")'
reportIssueUrl='setpath(["reportIssueUrl"]; "https://github.com/VSCodium/vscodium/issues/new/choose")'
licenseUrl='setpath(["licenseUrl"]; "https://github.com/VSCodium/vscodium/blob/master/LICENSE")'
setpath_json() {
{ set +x; } 2>/dev/null
echo "$( cat "${1}.json" | jq --arg 'path' "${2}" --argjson 'value' "${3}" 'setpath([$path]; $value)' )" > "${1}.json"
set -x
}
# product.json
cp product.json product.json.bak
setpath "product" "checksumFailMoreInfoUrl" "https://go.microsoft.com/fwlink/?LinkId=828886"
setpath "product" "documentationUrl" "https://go.microsoft.com/fwlink/?LinkID=533484#vscode"
setpath_json "product" "extensionsGallery" '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"}'
setpath "product" "introductoryVideosUrl" "https://go.microsoft.com/fwlink/?linkid=832146"
setpath "product" "keyboardShortcutsUrlLinux" "https://go.microsoft.com/fwlink/?linkid=832144"
setpath "product" "keyboardShortcutsUrlMac" "https://go.microsoft.com/fwlink/?linkid=832143"
setpath "product" "keyboardShortcutsUrlWin" "https://go.microsoft.com/fwlink/?linkid=832145"
setpath "product" "licenseUrl" "https://github.com/VSCodium/vscodium/blob/master/LICENSE"
setpath_json "product" "linkProtectionTrustedDomains" '["https://open-vsx.org"]'
setpath "product" "releaseNotesUrl" "https://go.microsoft.com/fwlink/?LinkID=533483#vscode"
setpath "product" "reportIssueUrl" "https://github.com/VSCodium/vscodium/issues/new"
setpath "product" "requestFeatureUrl" "https://go.microsoft.com/fwlink/?LinkID=533482"
setpath "product" "tipsAndTricksUrl" "https://go.microsoft.com/fwlink/?linkid=852118"
setpath "product" "twitterUrl" "https://go.microsoft.com/fwlink/?LinkID=533687"
if [[ "${DISABLE_UPDATE}" != "yes" ]]; then
setpath "product" "updateUrl" "https://vscodium.now.sh"
setpath "product" "downloadUrl" "https://github.com/VSCodium/vscodium/releases"
fi
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
setpath "product" "nameShort" "VSCodium - Insiders"
setpath "product" "nameLong" "VSCodium - Insiders"
setpath "product" "applicationName" "codium-insiders"
setpath "product" "dataFolderName" ".vscodium-insiders"
setpath "product" "linuxIconName" "vscodium-insiders"
setpath "product" "quality" "insider"
setpath "product" "urlProtocol" "vscodium-insiders"
setpath "product" "serverApplicationName" "codium-server-insiders"
setpath "product" "serverDataFolderName" ".vscodium-server-insiders"
setpath "product" "darwinBundleIdentifier" "com.vscodium.VSCodiumInsiders"
setpath "product" "win32AppUserModelId" "VSCodium.VSCodiumInsiders"
setpath "product" "win32DirName" "VSCodium Insiders"
setpath "product" "win32MutexName" "vscodiuminsiders"
setpath "product" "win32NameVersion" "VSCodium Insiders"
setpath "product" "win32RegValueName" "VSCodiumInsiders"
setpath "product" "win32ShellNameShort" "VSCodium Insiders"
setpath "product" "win32AppId" "{{EF35BB36-FA7E-4BB9-B7DA-D1E09F2DA9C9}"
setpath "product" "win32x64AppId" "{{B2E0DDB2-120E-4D34-9F7E-8C688FF839A2}"
setpath "product" "win32arm64AppId" "{{44721278-64C6-4513-BC45-D48E07830599}"
setpath "product" "win32UserAppId" "{{ED2E5618-3E7E-4888-BF3C-A6CCC84F586F}"
setpath "product" "win32x64UserAppId" "{{20F79D0D-A9AC-4220-9A81-CE675FFB6B41}"
setpath "product" "win32arm64UserAppId" "{{2E362F92-14EA-455A-9ABD-3E656BBBFE71}"
else
setpath "product" "nameShort" "VSCodium"
setpath "product" "nameLong" "VSCodium"
setpath "product" "applicationName" "codium"
setpath "product" "linuxIconName" "vscodium"
setpath "product" "quality" "stable"
setpath "product" "urlProtocol" "vscodium"
setpath "product" "serverApplicationName" "codium-server"
setpath "product" "serverDataFolderName" ".vscodium-server"
setpath "product" "darwinBundleIdentifier" "com.vscodium"
setpath "product" "win32AppUserModelId" "VSCodium.VSCodium"
setpath "product" "win32DirName" "VSCodium"
setpath "product" "win32MutexName" "vscodium"
setpath "product" "win32NameVersion" "VSCodium"
setpath "product" "win32RegValueName" "VSCodium"
setpath "product" "win32ShellNameShort" "VSCodium"
setpath "product" "win32AppId" "{{763CBF88-25C6-4B10-952F-326AE657F16B}"
setpath "product" "win32x64AppId" "{{88DA3577-054F-4CA1-8122-7D820494CFFB}"
setpath "product" "win32arm64AppId" "{{67DEE444-3D04-4258-B92A-BC1F0FF2CAE4}"
setpath "product" "win32UserAppId" "{{0FD05EB4-651E-4E78-A062-515204B47A3A}"
setpath "product" "win32x64UserAppId" "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}"
setpath "product" "win32arm64UserAppId" "{{57FD70A5-1B8D-4875-9F40-C5553F094828}"
fi
echo "$( jq -s '.[0] * .[1]' product.json ../product.json )" > product.json
product_json_changes="${checksumFailMoreInfoUrl} | ${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${extensionAllowedBadgeProviders} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${linkProtectionTrustedDomains} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi} | ${serverDataFolderName} | ${reportIssueUrl} | ${licenseUrl}"
cat product.json.bak | jq "${product_json_changes}" > product.json
cat product.json
# package.json
cp package.json 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" )
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
../undo_telemetry.sh
if [[ "$OS_NAME" == "linux" ]]; then
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.js
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.ts
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.js
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.ts
if [[ "${OS_NAME}" == "linux" ]]; then
# microsoft adds their apt repo to sources
# unless the app name is code-oss
# as we are renaming the application to vscodium
# we need to edit a line in the post install template
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
sed -i "s/code-oss/codium-insiders/" resources/linux/debian/postinst.template
else
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
fi
# fix the packages metadata
# code.appdata.xml
@@ -111,6 +208,10 @@ if [[ "$OS_NAME" == "linux" ]]; then
# snapcraft.yaml
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
elif [[ "${OS_NAME}" == "windows" ]]; then
# code.iss
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' build/win32/code.iss
sed -i 's|Microsoft Corporation|VSCodium|' build/win32/code.iss
fi
cd ..

430
product.json Normal file
View File

@@ -0,0 +1,430 @@
{
"extensionAllowedBadgeProviders": [
"api.bintray.com",
"api.travis-ci.com",
"api.travis-ci.org",
"app.fossa.io",
"badge.buildkite.com",
"badge.fury.io",
"badge.waffle.io",
"badgen.net",
"badges.frapsoft.com",
"badges.gitter.im",
"badges.greenkeeper.io",
"cdn.travis-ci.com",
"cdn.travis-ci.org",
"ci.appveyor.com",
"circleci.com",
"cla.opensource.microsoft.com",
"codacy.com",
"codeclimate.com",
"codecov.io",
"coveralls.io",
"david-dm.org",
"deepscan.io",
"dev.azure.com",
"docs.rs",
"flat.badgen.net",
"gemnasium.com",
"githost.io",
"gitlab.com",
"godoc.org",
"goreportcard.com",
"img.shields.io",
"isitmaintained.com",
"marketplace.visualstudio.com",
"nodesecurity.io",
"opencollective.com",
"snyk.io",
"travis-ci.com",
"travis-ci.org",
"visualstudio.com",
"vsmarketplacebadge.apphb.com",
"www.bithound.io",
"www.versioneye.com"
],
"extensionAllowedBadgeProvidersRegex": [
"^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"
],
"extensionEnabledApiProposals": {
"ms-vscode.vscode-selfhost-test-provider": [
"testObserver",
"testContinuousRun"
],
"VisualStudioExptTeam.vscodeintellicode-completions": [
"inlineCompletionsAdditions"
],
"ms-vsliveshare.vsliveshare": [
"contribMenuBarHome",
"contribShareMenu",
"diffCommand",
"documentFiltersExclusive",
"fileSearchProvider",
"findTextInFiles",
"notebookCellExecutionState",
"notebookLiveShare",
"terminalDimensions",
"terminalDataWriteEvent",
"textSearchProvider"
],
"ms-vscode.js-debug": [
"portsAttributes",
"findTextInFiles",
"workspaceTrust",
"tunnels"
],
"ms-toolsai.vscode-ai-remote": [
"resolvers"
],
"ms-python.python": [
"contribEditorContentMenu",
"quickPickSortByLabel",
"testObserver",
"envShellEvent",
"quickPickItemTooltip"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookMessaging"
],
"GitHub.codespaces": [
"contribEditSessions",
"contribMenuBarHome",
"contribRemoteHelp",
"contribViewsRemote",
"resolvers",
"tunnels",
"terminalDataWriteEvent",
"treeViewReveal",
"notebookKernelSource"
],
"ms-vscode.azure-repos": [
"extensionRuntime",
"fileSearchProvider",
"textSearchProvider"
],
"ms-vscode.remote-repositories": [
"contribEditorLineNumberMenu",
"contribEditorGutterMenu",
"contribEditSessions",
"contribRemoteHelp",
"contribMenuBarHome",
"contribViewsRemote",
"contribViewsWelcome",
"contribShareMenu",
"documentFiltersExclusive",
"editSessionIdentityProvider",
"extensionRuntime",
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"scmActionButton",
"scmSelectedProvider",
"scmValidation",
"textSearchProvider",
"timeline"
],
"ms-vscode-remote.remote-wsl": [
"resolvers",
"contribRemoteHelp",
"contribViewsRemote",
"telemetry"
],
"ms-vscode-remote.remote-ssh": [
"resolvers",
"tunnels",
"terminalDataWriteEvent",
"contribRemoteHelp",
"contribViewsRemote",
"telemetry"
],
"ms-vscode.remote-server": [
"resolvers"
],
"ms-vscode.remote-explorer": [
"contribRemoteHelp",
"contribViewsRemote",
"extensionsAny"
],
"ms-vscode-remote.remote-containers": [
"contribEditSessions",
"resolvers",
"tunnels",
"workspaceTrust",
"terminalDimensions",
"contribRemoteHelp",
"contribViewsRemote"
],
"ms-vscode.js-debug-nightly": [
"portsAttributes",
"findTextInFiles",
"workspaceTrust",
"tunnels"
],
"ms-vscode.lsif-browser": [
"documentFiltersExclusive"
],
"GitHub.vscode-pull-request-github": [
"contribEditorLineNumberMenu",
"contribEditorGutterMenu",
"contribCommentThreadAdditionalMenu",
"tokenInformation",
"contribShareMenu",
"contribCommentPeekContext",
"treeItemCheckbox",
"codiconDecoration",
"diffCommand",
"contribCommentEditorActionsMenu",
"quickDiffProvider"
],
"GitHub.copilot": [
"inlineCompletionsAdditions"
],
"GitHub.copilot-nightly": [
"inlineCompletionsAdditions"
],
"GitHub.remotehub": [
"contribRemoteHelp",
"contribMenuBarHome",
"contribViewsRemote",
"contribViewsWelcome",
"documentFiltersExclusive",
"extensionRuntime",
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"scmSelectedProvider",
"scmValidation",
"textSearchProvider",
"timeline"
],
"ms-python.gather": [
"notebookCellExecutionState"
],
"ms-python.vscode-pylance": [
"notebookCellExecutionState"
],
"ms-toolsai.jupyter-renderers": [
"contribNotebookStaticPreloads"
],
"ms-toolsai.jupyter": [
"notebookControllerKind",
"notebookDeprecated",
"notebookMessaging",
"notebookMime",
"notebookCellExecutionState",
"portsAttributes",
"quickPickSortByLabel",
"notebookKernelSource",
"interactiveWindow",
"notebookControllerAffinityHidden",
"contribNotebookStaticPreloads",
"quickPickItemTooltip"
],
"dbaeumer.vscode-eslint": [
"notebookCellExecutionState"
],
"ms-vscode.azure-sphere-tools-ui": [
"tunnels"
],
"ms-azuretools.vscode-azureappservice": [
"terminalDataWriteEvent"
],
"ms-vscode.anycode": [
"extensionsAny"
],
"ms-vscode.cpptools": [
"terminalDataWriteEvent"
],
"redhat.java": [
"documentPaste"
],
"ms-dotnettools.csdevkit": [
"inlineCompletionsAdditions"
],
"jeanp413.open-remote-ssh": [
"resolvers",
"tunnels",
"terminalDataWriteEvent",
"contribRemoteHelp",
"contribViewsRemote"
]
},
"extensionKind": {
"Shan.code-settings-sync": [
"ui"
],
"shalldie.background": [
"ui"
],
"techer.open-in-browser": [
"ui"
],
"CoenraadS.bracket-pair-colorizer-2": [
"ui"
],
"CoenraadS.bracket-pair-colorizer": [
"ui",
"workspace"
],
"hiro-sun.vscode-emacs": [
"ui",
"workspace"
],
"hnw.vscode-auto-open-markdown-preview": [
"ui",
"workspace"
],
"wayou.vscode-todo-highlight": [
"ui",
"workspace"
],
"aaron-bond.better-comments": [
"ui",
"workspace"
],
"vscodevim.vim": [
"ui"
],
"ollyhayes.colmak-vim": [
"ui"
]
},
"extensionPointExtensionKind": {
"typescriptServerPlugins": [
"workspace"
]
},
"extensionSyncedKeys": {
"ritwickdey.liveserver": [
"liveServer.setup.version"
]
},
"extensionVirtualWorkspacesSupport": {
"esbenp.prettier-vscode": {
"default": false
},
"msjsdiag.debugger-for-chrome": {
"default": false
},
"redhat.java": {
"default": false
},
"HookyQR.beautify": {
"default": false
},
"ritwickdey.LiveServer": {
"default": false
},
"VisualStudioExptTeam.vscodeintellicode": {
"default": false
},
"octref.vetur": {
"default": false
},
"formulahendry.code-runner": {
"default": false
},
"xdebug.php-debug": {
"default": false
},
"ms-mssql.mssql": {
"default": false
},
"christian-kohler.path-intellisense": {
"default": false
},
"eg2.tslint": {
"default": false
},
"eg2.vscode-npm-script": {
"default": false
},
"donjayamanne.githistory": {
"default": false
},
"Zignd.html-css-class-completion": {
"default": false
},
"christian-kohler.npm-intellisense": {
"default": false
},
"EditorConfig.EditorConfig": {
"default": false
},
"austin.code-gnu-global": {
"default": false
},
"johnpapa.Angular2": {
"default": false
},
"ms-vscode.vscode-typescript-tslint-plugin": {
"default": false
},
"DotJoshJohnson.xml": {
"default": false
},
"techer.open-in-browser": {
"default": false
},
"tht13.python": {
"default": false
},
"bmewburn.vscode-intelephense-client": {
"default": false
},
"Angular.ng-template": {
"default": false
},
"xdebug.php-pack": {
"default": false
},
"dbaeumer.jshint": {
"default": false
},
"yzhang.markdown-all-in-one": {
"default": false
},
"Dart-Code.flutter": {
"default": false
},
"streetsidesoftware.code-spell-checker": {
"default": false
},
"rebornix.Ruby": {
"default": false
},
"ms-vscode.sublime-keybindings": {
"default": false
},
"mitaki28.vscode-clang": {
"default": false
},
"steoates.autoimport": {
"default": false
},
"donjayamanne.python-extension-pack": {
"default": false
},
"shd101wyy.markdown-preview-enhanced": {
"default": false
},
"mikestead.dotenv": {
"default": false
},
"pranaygp.vscode-css-peek": {
"default": false
},
"ikappas.phpcs": {
"default": false
},
"platformio.platformio-ide": {
"default": false
},
"jchannon.csharpextensions": {
"default": false
},
"gruntfuggly.todo-tree": {
"default": false
}
}
}

View File

@@ -7,14 +7,26 @@ if [[ -z "${GITHUB_TOKEN}" ]]; then
exit
fi
REPOSITORY_OWNER="${ASSETS_REPOSITORY/\/*/}"
REPOSITORY_NAME="${ASSETS_REPOSITORY/*\//}"
npm install -g github-release-cli
if [[ $( gh release view "${MS_TAG}" 2>&1 ) =~ "release not found" ]]; then
echo "Creating release '${MS_TAG}'"
gh release create "${MS_TAG}"
if [[ $( gh release view --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" 2>&1 ) =~ "release not found" ]]; then
echo "Creating release '${RELEASE_VERSION}'"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
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 ))"
CREATE_OPTIONS="--generate-notes"
fi
gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --notes "${NOTES}" ${CREATE_OPTIONS}
fi
cd artifacts
cd assets
set +e
@@ -22,34 +34,34 @@ for FILE in *
do
if [[ -f "${FILE}" ]] && [[ "${FILE}" != *.sha1 ]] && [[ "${FILE}" != *.sha256 ]]; then
echo "::group::Uploading '${FILE}' at $( date "+%T" )"
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
gh release upload --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
EXIT_STATUS=$?
echo "exit: $EXIT_STATUS"
echo "exit: ${EXIT_STATUS}"
if (( $EXIT_STATUS )); then
if (( "${EXIT_STATUS}" )); then
for (( i=0; i<10; i++ ))
do
github-release delete --owner VSCodium --repo vscodium --tag "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
sleep $(( 15 * (i + 1)))
echo "RE-Uploading '${FILE}' at $( date "+%T" )"
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
gh release upload --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
EXIT_STATUS=$?
echo "exit: $EXIT_STATUS"
echo "exit: ${EXIT_STATUS}"
if ! (( $EXIT_STATUS )); then
if ! (( "${EXIT_STATUS}" )); then
break
fi
done
echo "exit: $EXIT_STATUS"
echo "exit: ${EXIT_STATUS}"
if (( $EXIT_STATUS )); then
if (( "${EXIT_STATUS}" )); then
echo "'${FILE}' hasn't been uploaded!"
github-release delete --owner VSCodium --repo vscodium --tag "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
exit 1
fi

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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