Compare commits

...

115 Commits

Author SHA1 Message Date
Baptiste Augrain
ce52a2931b feat: disable cloud (#1709) 2023-11-02 10:05:07 +01:00
Baptiste Augrain
6868dc47cd Merge branch 'insider' 2023-11-02 09:59:29 +01:00
Baptiste Augrain
f470320501 docs: reorganize docs pages and CONTRIBUTING.md (#1705) 2023-11-02 09:36:13 +01:00
Baptiste Augrain
7580fb767a fix: always add platform info for windows (#1707) 2023-10-31 14:49:34 +01:00
Baptiste Augrain
49583eb39d feat: prepare for 1.85 (#1706) 2023-10-31 12:39:06 +01:00
Ahhj93
f1fa60db6d Update DOCS.md (#1679) 2023-10-13 21:44:11 +03:00
Baptiste Augrain
fef49abfd5 fix(windows): path of node-gyp with spectre mitigation (#1690) 2023-10-10 14:49:35 +02:00
Baptiste Augrain
f38ad8b6a2 fix(windows): path of node-gyp with spectre mitigation (#1690) 2023-10-10 13:49:41 +02:00
Baptiste Augrain
b1ca680ce7 feat: update to 1.84 2023-10-10 01:28:12 +02:00
Baptiste Augrain
282e23dff0 fix: use node-v18.17 to generate all artifacts (#1689) 2023-10-10 00:06:20 +02:00
Baptiste Augrain
fa6fbaa4e0 wip: use latest npm [skip ci] 2023-10-09 22:21:14 +02:00
Baptiste Augrain
e727f395ba wip: use specific python version [skip ci] 2023-10-07 22:17:29 +02:00
Baptiste Augrain
5f055bf5ae wip: testing windows-build-tools 2023-10-07 22:02:11 +02:00
Baptiste Augrain
e863d764eb wip: add debug [skip ci] 2023-10-07 20:08:07 +02:00
Baptiste Augrain
5e143f4297 wip: update node_gyp path [skip ci] 2023-10-07 20:00:52 +02:00
Baptiste Augrain
df298f9630 wip: install python 2.x [skip ci] 2023-10-07 19:53:03 +02:00
Simon Sobisch
0851b9abd3 docs: choco install for insiders 2023-10-06 13:31:31 +02:00
Baptiste Augrain
5e61d7d3db wip: fix git merge [skip ci] 2023-10-05 17:25:23 +02:00
Baptiste Augrain
fc7ef66af4 wip: fix git merge [skip ci] 2023-10-05 17:20:04 +02:00
Baptiste Augrain
240fb384a2 wip: fix git merge [skip ci] 2023-10-05 17:08:54 +02:00
Baptiste Augrain
8de14b5c6a wip: use patched node-gyp [skip ci] 2023-10-05 16:44:52 +02:00
Baptiste Augrain
dd84d4841a wip: try latest windows [skip ci] 2023-10-05 16:17:09 +02:00
Baptiste Augrain
5290310677 fix: update patch [skip ci] 2023-10-04 19:42:31 +02:00
Baptiste Augrain
fca50b1b9b Merge branch 'master' into insider 2023-10-04 19:16:42 +02:00
Baptiste Augrain
75e7f71ac6 fix: full revert of gh actions [skip ci] 2023-10-04 18:24:54 +02:00
Baptiste Augrain
5d50317e0e revert: newest gh actions aren't compatible with linux images [skip ci] 2023-10-04 18:09:05 +02:00
Simon Sobisch
b667614448 Add Insiders to README 2023-09-29 11:26:20 +02:00
dependabot[bot]
51b0ff47bc build(deps): bump docker/setup-qemu-action from 2 to 3 (#1647) 2023-09-26 14:18:33 +02:00
dependabot[bot]
1789f03920 build(deps): bump actions/checkout from 3 to 4 (#1637) 2023-09-26 14:16:53 +02:00
Baptiste Augrain
1861b90513 fix: stop cheking appiamge [skip ci] 2023-09-21 10:36:52 +02:00
Baptiste Augrain
5631262eb7 fix: disabling appimage [skip ci] 2023-09-13 09:14:23 +02:00
VSCodium CI
2523267fed build(insider): update to commit 5a400e5 2023-09-08 09:17:57 +02:00
Baptiste Augrain
5600db3e57 feat(1.82): update patch and api [skip ci] 2023-09-07 20:18:23 +02:00
Baptiste Augrain
4314fdae01 Merge branch 'insider' 2023-09-07 20:14:03 +02:00
Baptiste Augrain
d7f0ff07dc fix: update insider version [skip ci] 2023-09-07 18:00:22 +02:00
Baptiste Augrain
5621279b19 fix: disable node check on linux 2023-09-07 17:35:38 +02:00
VSCodium CI
ffebe6ddf1 build(insider): update to commit f1302be 2023-09-04 09:36:29 +02:00
Baptiste Augrain
4930c5a71e feat: use node-v18 for insider workflow [skip ci] 2023-09-04 09:22:59 +02:00
Baptiste Augrain
1c6056c2c0 feat: add apis for open-remote-wsl extension (#1627) 2023-09-03 16:32:02 +02:00
Baptiste Augrain
c2d980b0a2 fix: script to update insider.json [skip ci] 2023-09-03 15:53:14 +02:00
Baptiste Augrain
61f4931efb feat(1.82): update patches and use node-v18 (#1626) 2023-09-03 14:59:11 +02:00
osfanbuff63
6333caaf8a docs: clarify winget install command (#1251) 2023-09-03 12:32:28 +02:00
DodoLeDev
e7f41946a4 docs: add vscodium-electron for arch (#1317) 2023-09-03 12:31:15 +02:00
Zac
c2894d5563 revert: fix the patch file for linux builds (#1617) 2023-09-03 12:25:03 +02:00
theskcd
6f36a980aa [vscodium][linux] Fix the patch file for linux builds (#1608)
The URL was updated on the vscode repo, but not updated for the patch. Fixing it on this commit
2023-08-23 22:27:46 +03:00
Baptiste Augrain
9468e97c13 fix(linux): regroup deb and rpm package preparation [skip ci] 2023-08-04 19:52:37 +02:00
Baptiste Augrain
a631bc594c fix: remove npm config [skip ci] 2023-08-04 19:03:41 +02:00
Baptiste Augrain
13a608979c ci: nodejs is installed in build agents [skip ci] 2023-08-04 17:51:58 +02:00
Baptiste Augrain
025a078b3b fix(windows): don't move zip [skip ci] 2023-08-04 15:04:48 +02:00
Baptiste Augrain
f51c90526f feat: add flag to test assets builder in CI (#1590) 2023-08-04 14:36:30 +02:00
Baptiste Augrain
61e44afbc4 feat(1.81): update patches and build agents (#1588) 2023-08-04 14:00:28 +02:00
Baptiste Augrain
63dc9d739b Merge branch 'master' into insider 2023-08-04 11:03:00 +02:00
Baptiste Augrain
1e41cef8a6 fix: exit when patching fails (#1587) 2023-08-04 11:02:12 +02:00
VSCodium CI
b9cfdf370d build(insider): update to commit 83fc3ad 2023-08-04 09:18:29 +02:00
Baptiste Augrain
a8262e5152 fix: build archive (#1586) 2023-08-04 01:38:44 +02:00
Baptiste Augrain
d468b7a1e0 Merge branch 'master' into insider 2023-08-04 00:22:50 +02:00
Baptiste Augrain
0b2fc64a3b fix: correctly update product.json (#1581) 2023-07-27 02:11:09 +02:00
Baptiste Augrain
8dcc87596b fix: correctly download pkg2appimage (#1577) 2023-07-24 22:20:13 +02:00
Baptiste Augrain
0810ba2404 revert: correctly detect assets (#1576) 2023-07-24 22:05:24 +02:00
Zac
79baded01d refactor: shell optimizations 2023-07-23 18:35:27 +02:00
VSCodium CI
17f154098d build(insider): update to commit 822ad2d 2023-07-22 09:13:00 +02:00
Zac
1c0c30e6d6 refactor: passing linter on all bash scripts 2023-07-21 16:45:07 +02:00
VSCodium CI
06e05f233a build(insider): update to commit daf9647 2023-07-21 09:18:42 +02:00
Zac
b4318d78a0 refactor: passing linter for root bash scripts (#1569) 2023-07-20 20:25:13 +02:00
VSCodium CI
3e1420722c build(insider): update to commit c85bf61 2023-07-19 10:59:38 +02:00
Baptiste Augrain
9a210dc964 feat: update to 1.81 2023-07-18 22:25:40 +02:00
Baptiste Augrain
11083b9a1b Merge branch 'master' into insider 2023-07-18 21:59:13 +02:00
Baptiste Augrain
d6b7880a05 fix: use blank commit id 2023-07-18 21:57:50 +02:00
Baptiste Augrain
3fa7f2179b feat: used latest nodejs 16 2023-07-07 00:23:35 +02:00
Baptiste Augrain
d06d8127d5 feat: update to 1.80 2023-07-07 00:10:45 +02:00
Simon Sobisch
02d21f5264 Merge pull request #1548 from daiyam/disable-update-linux
fix: disable update on linux
2023-06-23 09:47:45 +02:00
Baptiste Augrain
7710a09830 fix: disable update on linux 2023-06-16 18:28:28 +02:00
Baptiste Augrain
599eb2adc9 fix(linux): type for ppc64le 2023-06-14 11:50:23 +02:00
Baptiste Augrain
e8161f6e4f fix(linux): type for ppc64le 2023-06-14 11:48:56 +02:00
Baptiste Augrain
31b5e5b919 Merge branch 'master' into insider 2023-06-14 11:47:56 +02:00
Lex
ff05d093c9 fix: incorrect npm_config_arch for ppc64le (#1547) 2023-06-14 08:16:06 +02:00
Baptiste Augrain
08114ab943 fix(linux): only reh for ppc64le [skip ci] 2023-06-13 20:39:59 +02:00
Baptiste Augrain
a17ae154cc Merge branch 'master' into insider 2023-06-13 15:33:13 +02:00
Baptiste Augrain
272566cc25 fix: use correct directory to generate new version [skip ci] 2023-06-13 15:31:03 +02:00
Baptiste Augrain
d3db3c1f52 ci: add log when updating version [skip ci] 2023-06-13 15:24:24 +02:00
Baptiste Augrain
bd8b0d5920 feat(insider): v1.80.0 2023-06-13 15:23:37 +02:00
Baptiste Augrain
aac82d75f4 ci: add log when updating version [skip ci] 2023-06-13 14:33:30 +02:00
Lex
c66d9b7edc fix(workflow): typo in stable-linux (#1544) 2023-06-11 16:48:56 +02:00
Baptiste Augrain
73f7d062da fix(linux): ppc64le [skip ci] 2023-06-09 00:16:20 +02:00
Baptiste Augrain
c9b8e2f5a5 chore: update product.json 2023-06-08 21:23:46 +02:00
Baptiste Augrain
6f03ab0ba1 build: use node 16.17 since it's the shipped one 2023-06-08 21:21:08 +02:00
Baptiste Augrain
fad378871b Merge branch 'insider' 2023-06-08 21:10:31 +02:00
Baptiste Augrain
3050fad108 fix: update patches 2023-06-08 18:14:07 +02:00
Lex
f7fc439526 feat: add linux-ppc64le (#1527) 2023-06-05 08:50:34 +02:00
Baptiste Augrain
7c294be474 ci: enable 32bits 2023-06-02 17:40:24 +02:00
Baptiste Augrain
dfa2100471 Merge branch 'master' into insider 2023-06-02 16:33:37 +02:00
Baptiste Augrain
443107bfa5 fix: 32bits builds (#1535) 2023-06-02 16:32:07 +02:00
VSCodium CI
2af05c9f5b build(insider): update to commit c386785 2023-06-01 09:12:18 +02:00
VSCodium CI
4b237cbd3c build(insider): update to commit fa8eefd 2023-05-31 09:14:14 +02:00
VSCodium CI
b11613470e build(insider): update to commit 784e72b 2023-05-30 09:16:10 +02:00
VSCodium CI
b019f9c25a build(insider): update to commit 667d462 2023-05-29 09:14:14 +02:00
Baptiste Augrain
e2bf570707 fix: space in merge-user-product.patch 2023-05-29 00:02:39 +02:00
ririxi
a2aed6a9e7 fix: enable electron sandbox (#1530) 2023-05-28 23:57:35 +02:00
Baptiste Augrain
dc1e3961c3 fix(1.79): updates patches 2023-05-28 23:07:30 +02:00
Baptiste Augrain
272f67d95b fix: make webview works again (#1514) 2023-05-11 16:01:50 +02:00
Baptiste Augrain
7afbfe03ad feat: update to 1.78 (#1500) 2023-05-10 02:30:07 +02:00
Baptiste Augrain
94ab319d86 Merge branch 'insider' 2023-05-09 23:44:00 +02:00
scientificworld
6137a9fcc5 fix: cannot open welcome page when offline (#1493) 2023-04-26 00:58:13 +02:00
Baptiste Augrain
8661322052 feat: update vote announcements [skip ci] 2023-04-24 23:32:14 +02:00
Baptiste Augrain
84aabe12e3 feat: update vote announcements [skip ci] 2023-04-19 01:21:31 +02:00
Baptiste Augrain
99da974ce5 feat: add vote announcements 2023-04-13 01:39:54 +02:00
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
033a6bdf30 fix: add missing neverShowAgain [skip ci] 2023-04-05 10:00:24 +02:00
Baptiste Augrain
9dbdd411a0 fix: banner uses same flag as the notification (#1463) 2023-04-04 23:29:53 +02:00
Baptiste Augrain
31a42d485b Merge branch 'master' into insider 2023-04-03 10:46:37 +02:00
VSCodium CI
89d3113d66 build(insider): update to commit 2da5a00 2023-04-03 09:16:09 +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
81 changed files with 5149 additions and 3189 deletions

View File

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

View File

@@ -9,6 +9,9 @@ on:
new_release:
type: boolean
description: Force new Release
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 8 * * *'
push:
@@ -23,7 +26,7 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -51,6 +54,8 @@ jobs:
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
run: ./check_cron_or_pr.sh
dependencies:
@@ -68,7 +73,7 @@ jobs:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:bionic-x64
# image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
@@ -81,28 +86,11 @@ jobs:
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v2
if: matrix.vscode_arch == 'arm64'
- uses: docker/setup-qemu-action@v3
if: matrix.vscode_arch == 'arm64' || matrix.vscode_arch == 'ppc64le'
- 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
- name: Install remote dependencies
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
@@ -117,6 +105,7 @@ jobs:
- dependencies
runs-on: ubuntu-latest
env:
DISABLE_UPDATE: 'yes'
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
@@ -131,10 +120,13 @@ jobs:
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:stretch-arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: armv7l
image: vscodium/vscodium-linux-build-agent:stretch-armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:bionic-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
container:
image: ${{ matrix.image }}
env:
@@ -156,14 +148,6 @@ jobs:
- 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 }}
@@ -186,7 +170,7 @@ jobs:
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
- name: Release
env:
@@ -247,7 +231,7 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
ref: insider
ref: ${{ env.GITHUB_BRANCH }}
- name: Check version
env:
@@ -255,7 +239,7 @@ jobs:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
run: ./stores/snapcraft/check_version.sh
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-qemu-action@v3
if: env.SHOULD_DEPLOY == 'yes'
- uses: diddlesnaps/snapcraft-multiarch-action@v1

View File

@@ -9,6 +9,9 @@ on:
new_release:
type: boolean
description: Force new Release
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 8 * * *'
push:
@@ -23,7 +26,7 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
OS_NAME: osx
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -43,14 +46,14 @@ jobs:
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: insider
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 16
node-version: '18.17'
- name: Clone VSCode repo
env:
@@ -58,6 +61,8 @@ jobs:
run: . get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
run: . check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
@@ -79,7 +84,7 @@ jobs:
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
- name: Release
env:

View File

@@ -18,14 +18,14 @@ jobs:
VSCODE_QUALITY: insider
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: insider
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 16
node-version: '18'
- name: Clone VSCode repo
run: . get_repo.sh

View File

@@ -9,6 +9,9 @@ on:
new_release:
type: boolean
description: Force new Release
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 8 * * *'
push:
@@ -23,7 +26,7 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
GITHUB_BRANCH: insider
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
OS_NAME: windows
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: insider
@@ -41,21 +44,21 @@ jobs:
matrix:
vscode_arch:
- x64
- ia32
# - ia32
- arm64
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 16
node-version: '18.17'
- name: Install Yarn
run: npm install -g yarn
@@ -63,7 +66,7 @@ jobs:
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
python-version: '3.11'
- name: Clone VSCode repo
env:
@@ -71,6 +74,8 @@ jobs:
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
run: ./check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
@@ -90,7 +95,7 @@ jobs:
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
- name: Release
env:
@@ -118,7 +123,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.GITHUB_BRANCH }}

View File

@@ -9,6 +9,9 @@ on:
force_version:
type: boolean
description: Force update version
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 18 * * *'
push:
@@ -48,6 +51,8 @@ jobs:
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
run: ./check_cron_or_pr.sh
dependencies:
@@ -65,7 +70,7 @@ jobs:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:bionic-x64
# image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
@@ -78,28 +83,11 @@ jobs:
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v2
if: matrix.vscode_arch == 'arm64'
- uses: docker/setup-qemu-action@v3
if: matrix.vscode_arch == 'arm64' || matrix.vscode_arch == 'ppc64le'
- 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
- name: Install remote dependencies
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
@@ -114,6 +102,7 @@ jobs:
- dependencies
runs-on: ubuntu-latest
env:
DISABLE_UPDATE: 'yes'
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
@@ -128,10 +117,13 @@ jobs:
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:stretch-arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: armv7l
image: vscodium/vscodium-linux-build-agent:stretch-armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:bionic-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
container:
image: ${{ matrix.image }}
env:
@@ -151,14 +143,6 @@ jobs:
- 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 }}
@@ -181,7 +165,7 @@ jobs:
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
- name: Release
env:
@@ -244,7 +228,7 @@ jobs:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
run: ./stores/snapcraft/check_version.sh
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-qemu-action@v3
if: env.SHOULD_DEPLOY == 'yes'
- uses: diddlesnaps/snapcraft-multiarch-action@v1

View File

@@ -9,6 +9,9 @@ on:
force_version:
type: boolean
description: Force update version
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 18 * * *'
push:
@@ -42,17 +45,19 @@ jobs:
vscode_arch: arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 16
node-version: '18.17'
- name: Clone VSCode repo
run: . get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
run: . check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
@@ -74,7 +79,7 @@ jobs:
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
- name: Release
env:

View File

@@ -9,6 +9,9 @@ on:
force_version:
type: boolean
description: Force update version
test_asset_builder:
type: boolean
description: Test the assets builder
schedule:
- cron: '0 18 * * *'
push:
@@ -41,19 +44,19 @@ jobs:
matrix:
vscode_arch:
- x64
- ia32
# - ia32
- arm64
outputs:
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 16
node-version: '18.17'
- name: Install Yarn
run: npm install -g yarn
@@ -61,12 +64,14 @@ jobs:
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
python-version: '3.11'
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
env:
TEST_ASSET_BUILDER: ${{ github.event.inputs.test_asset_builder }}
run: ./check_cron_or_pr.sh
- name: Check existing VSCodium tags/releases
@@ -79,6 +84,7 @@ jobs:
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
npm_config_arch: ${{ matrix.vscode_arch }}
npm_config_target_arch: ${{ matrix.vscode_arch }}
run: ./build.sh
@@ -86,7 +92,7 @@ jobs:
- name: Prepare assets
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.test_asset_builder == 'true')
- name: Release
env:
@@ -113,7 +119,7 @@ jobs:
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Check version
run: ./stores/winget/check_version.sh

2
.nvmrc
View File

@@ -1 +1 @@
v16.14.2
18.15

42
CONTRIBUTING.md Normal file
View File

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

View File

@@ -1,6 +1,6 @@
<div id="vscodium-logo" align="center">
<br />
<img src="./src/stable/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>
@@ -39,31 +39,49 @@
## <a id="download-install"></a>Download/Install
:tada: :tada: [Download latest release here](https://github.com/VSCodium/vscodium/releases) :tada: :tada:
:tada: :tada:
Download latest release here:
[stable](https://github.com/VSCodium/vscodium/releases) or
[insiders](https://github.com/VSCodium/vscodium-insiders/releases)
:tada: :tada:
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/docs/index.md)
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/DOCS.md)
#### <a id="install-with-brew"></a>Install with Brew (Mac)
If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
```bash
# stable
brew install --cask vscodium
# insiders
brew tap homebrew/cask-versions
brew install --cask vscodium-insiders
```
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/wiki/Troubleshooting#macos).*
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#macos).*
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
```bash
winget install vscodium
```cmd
:: stable
winget install -e --id VSCodium.VSCodium
:: insider
winget install -e --id VSCodium.VSCodium.Insiders
```
#### <a id="install-with-choco"></a>Install with Chocolatey (Windows)
If you use Windows and have [Chocolatey](https://chocolatey.org) installed (thanks to [@Thilas](https://github.com/Thilas)):
```bash
```cmd
:: stable
choco install vscodium
:: insider
choco install vscodium-insiders
```
#### <a id="install-with-scoop"></a>Install with Scoop (Windows)
@@ -76,7 +94,8 @@ 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), thanks to the help of 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
@@ -84,24 +103,44 @@ snap install codium --classic
#### <a id="install-with-package-manager"></a>Install with Package Manager (GNU/Linux)
You can always install using the downloads (deb, rpm, tar) on the [releases page](https://github.com/VSCodium/vscodium/releases), but you can also install using your favorite package manager and get automatic updates. [@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo). Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
You can always install using the downloads (deb, rpm, tar) on the releases page for
[stable](https://github.com/VSCodium/vscodium/releases) or
[insiders](https://github.com/VSCodium/vscodium-insiders/releases), but you can also
install using your favorite package manager and get automatic updates.
[@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions
for `apt`, `dnf` and `zypper` [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo).
Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
#### <a id="install-on-arch-linux"></a>Install on Arch Linux
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@binex-dsk](https://github.com/binex-dsk). An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository),
maintained by [@binex-dsk](https://github.com/binex-dsk)
as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/) (stable) and
as [vscodium-insiders-bin](https://aur.archlinux.org/packages/vscodium-insiders-bin).
If you want to save disk space by having VSCodium use the Electron system-wide, you also have
[vscodium-electron](https://aur.archlinux.org/packages/vscodium-electron),
maintained by [@m00nw4tch3r](https://aur.archlinux.org/account/m00nw4tch3r).
An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/),
maintained by [@cedricroijakkers](https://github.com/cedricroijakkers),
is also available should you wish to compile from source yourself.
#### <a id="flatpak"></a>Flatpak Option (GNU/Linux)
VSCodium is (unofficially) available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium). If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
VSCodium is (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
flatpak run com.vscodium.codium
```
## <a id="build"></a>Build
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
## <a id="why"></a>Why Does This Exist
@@ -131,13 +170,17 @@ Microsoft's build process (which we are running to build the binaries) does down
### Documentation
For more information on getting all the telemetry disabled and tips for migrating from Visual Studio Code to VSCodium, have a look at this [Docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) page.
For more information on getting all the telemetry disabled, tips for migrating from Visual Studio Code to VSCodium and more, have a look at [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) page.
### Troubleshooting
If you have any issue, please check [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) or the existing issues.
### Extensions and the Marketplace
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#extensions-marketplace) section on the Docs page for more details.
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
### How are the VSCodium binaries built?

View File

@@ -1,17 +1,15 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -ex
if [ -f "./remote-dependencies.tar" ]; then
if [[ -f "./remote-dependencies.tar" ]]; then
tar -xf ./remote-dependencies.tar ./vscode/remote/node_modules
fi
. version.sh
if [[ "${SHOULD_BUILD}" == "yes" ]]; then
npm config set scripts-prepend-node-path true
npm config set node_gyp
echo "MS_COMMIT=\"${MS_COMMIT}\""
. prepare_vscode.sh
@@ -29,7 +27,7 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
if [[ "${OS_NAME}" == "osx" ]]; then
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
find "../VSCode-darwin-${VSCODE_ARCH}" -exec touch {} \;
find "../VSCode-darwin-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
@@ -42,10 +40,12 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
fi
VSCODE_PLATFORM="win32"
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then # linux-ppc64le
VSCODE_PLATFORM="linux"
else # linux
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -exec touch {} \;
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
VSCODE_PLATFORM="linux"
fi

View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091,SC2129
### Windows
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
@@ -13,7 +14,7 @@ export SKIP_SOURCE="no"
export VSCODE_LATEST="no"
export VSCODE_QUALITY="stable"
while getopts ":ilop" opt; do
while getopts ":ilops" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
@@ -30,6 +31,8 @@ while getopts ":ilop" opt; do
s)
export SKIP_SOURCE="yes"
;;
*)
;;
esac
done
@@ -49,6 +52,8 @@ UNAME_ARCH=$( uname -m )
if [[ "${UNAME_ARCH}" == "arm64" ]]; then
export VSCODE_ARCH="arm64"
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
export VSCODE_ARCH="ppc64le"
else
export VSCODE_ARCH="x64"
fi
@@ -98,7 +103,8 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then
. build.sh
if [[ "${VSCODE_QUALITY}" == "insider" && "${VSCODE_LATEST}" == "yes" ]]; then
echo "$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )" > "insider.json"
jsonTmp=$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
echo "${jsonTmp}" > "insider.json" && unset jsonTmp
fi
fi

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -e
@@ -13,9 +14,16 @@ elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
echo "It's a Dispatch"
if [[ "${TEST_ASSET_BUILDER}" == "true" ]]; then
echo "It's testing the assets builder"
export SHOULD_DEPLOY="yes"
export SHOULD_BUILD="yes"
export SHOULD_DEPLOY="no"
else
echo "It's a Dispatch"
export SHOULD_DEPLOY="yes"
fi
else
echo "It's a Cron"
@@ -24,7 +32,7 @@ fi
if [[ "${GITHUB_ENV}" ]]; then
echo "GITHUB_BRANCH=${GITHUB_BRANCH}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
echo "VSCODE_QUALITY=${VSCODE_QUALITY}" >> "${GITHUB_ENV}"
fi

View File

@@ -1,18 +1,19 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -e
if [[ -z "${GITHUB_TOKEN}" ]]; then
echo "Will not build because no GITHUB_TOKEN defined"
exit
exit 0
fi
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
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
if [[ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]]; then
echo "New VSCode version, new build"
export SHOULD_BUILD="yes"
elif [[ "${NEW_RELEASE}" == "true" ]]; then
@@ -22,7 +23,7 @@ if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
if [ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]; then
if [[ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]]; then
echo "New VSCode Insiders version, new build"
export SHOULD_BUILD="yes"
fi
@@ -46,7 +47,7 @@ contains() {
echo "${ASSETS}" | grep "${1}\""
}
if [ "${ASSETS}" != "null" ]; then
if [[ "${ASSETS}" != "null" ]]; then
# macos
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
@@ -282,6 +283,24 @@ if [ "${ASSETS}" != "null" ]; then
echo "Already have all the Linux arm builds"
fi
# linux-ppc64le
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux PowerPC64LE because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux PowerPC64LE builds"
fi
# linux-x64
else
if [[ -z $( contains "amd64.deb" ) ]]; then
@@ -305,12 +324,13 @@ if [ "${ASSETS}" != "null" ]; then
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
echo "Building on Linux x64 because we have no AppImage"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_APPIMAGE="no"
fi
# if [[ -z $( contains "x86_64.AppImage" ) ]]; then
# echo "Building on Linux x64 because we have no AppImage"
# export SHOULD_BUILD="yes"
# else
# export SHOULD_BUILD_APPIMAGE="no"
# fi
export SHOULD_BUILD_APPIMAGE="no"
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"
@@ -326,7 +346,12 @@ if [ "${ASSETS}" != "null" ]; then
fi
else
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
elif [[ "${VSCODE_ARCH}" != "x64" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
elif [[ "${OS_NAME}" == "osx" ]]; then
@@ -343,6 +368,7 @@ else
export SHOULD_BUILD="yes"
fi
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_APPIMAGE=${SHOULD_BUILD_APPIMAGE}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_DEB=${SHOULD_BUILD_DEB}" >> "${GITHUB_ENV}"

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
# Build
# How to build VSCodium
## Table of Contents
@@ -38,6 +38,10 @@
- imagemagick (for AppImage)
### <a id="dependencies-macos"></a>MacOS
- imagemagick
- png2icns (`npm install png2icns -g`)
- librsvg
### <a id="dependencies-windows"></a>Windows
@@ -79,31 +83,20 @@ docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodi
When inside the container, you can use the following commands to build:
```
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs desktop-file-utils
npm install -g yarn
cd /root/vscodium
. get_repo.sh
export SHOULD_BUILD=yes
export OS_NAME=linux
export VSCODE_ARCH=x64
. build.sh
./build/build.sh
```
### <a id="build-docker-arm32"></a>ARM 32bits
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash
```
When inside the container, you can use the following commands to build:
@@ -113,15 +106,7 @@ sudo apt-get install -y nodejs desktop-file-utils
cd /root/vscodium
. get_repo.sh
export SHOULD_BUILD=yes
export OS_NAME=linux
export VSCODE_ARCH=armhf
export npm_config_arch=armv7l
export npm_config_force_process_config="true"
. build.sh
./build/build.sh
```
## <a id="build-snap"></a>Build Snap

View File

@@ -10,14 +10,18 @@
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
- [Proprietary Extensions](#proprietary-extensions)
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
- [Migrating from Visual Studio Code to VSCodium](#migrating)
- [Sign in with GitHub](#signin-github)
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
- [How do I run VSCodium in portable mode?](#portable)
- [How do I fix the default file manager?](#file-manager)
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
- [How do I open VSCodium from the terminal?](#terminal-support)
- [From Linux .tar.gz](#from-linux-targz)
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
- [Troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md)
- [Contributing](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
@@ -56,7 +60,7 @@ By default, the `product.json` file is set up to use [open-vsx.org](https://open
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
@@ -96,7 +100,7 @@ Individual developers and enterprise companies in regulated or security-consciou
There are likely other options, but the following were reported to work:
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
@@ -107,7 +111,7 @@ There are likely other options, but the following were reported to work:
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
@@ -198,7 +202,7 @@ $ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
For MacOS and Windows:
For macOS and Windows:
- Go to the command palette (View | Command Palette...)
- Choose `Shell command: Install 'codium' command in PATH`.

51
docs/troubleshooting.md Normal file
View File

@@ -0,0 +1,51 @@
# Troubleshooting
## Table of Contents
- [Linux](#linux)
- [Fonts showing up as rectangles](#linux-fonts-rectangle)
- [Global menu workaround for KDE](#linux-kde-global-menu)
- [macOS](#macos)
- [App can't be opened because Apple cannot check it for malicious software](#macos-unidentified-developer)
- ["VSCodium.app" is damaged and cant be opened. You should move it to the Bin](#macos-quarantine)
## <a id="linux"></a>Linux
#### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
The following command should help:
```
rm -rf ~/.cache/fontconfig
rm -rf ~/snap/codium/common/.cache
fc-cache -r
```
#### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
Install these packages on Fedora:
* libdbusmenu-devel
* dbus-glib-devel
* libdbusmenu
On Ubuntu this package called `libdbusmenu-glib4`.
Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/91)
## <a id="macos"></a>macOS
Since the App is signed with self-signed certificate, on the first launch, you might see the following messages:
#### <a id="macos-unidentified-developer"></a>*App can't be opened because Apple cannot check it for malicious software*
You can right-click the App and choose `Open`.
#### <a id="macos-quarantine"></a>*"VSCodium.app" is damaged and cant be opened. You should move it to the Bin.*
The following command will remove the quarantine attribute.
```
xattr -r -d com.apple.quarantine /Applications/VSCodium.app
```

View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2129
set -e
@@ -10,30 +11,30 @@ 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 )
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/insider/0000000000000000000000000000000000000000 )
else
export MS_COMMIT=$(jq -r '.commit' insider.json)
export MS_TAG=$(jq -r '.tag' insider.json)
MS_COMMIT=$( jq -r '.commit' insider.json )
MS_TAG=$( jq -r '.tag' insider.json )
fi
else
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/stable/0000000000000000000000000000000000000000 )
fi
if [[ -z "${MS_COMMIT}" ]]; then
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export MS_TAG="${MS_TAG/\-insider/}"
MS_TAG="${MS_TAG/\-insider/}"
fi
fi
date=$( date +%Y%j )
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
export RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
else
export RELEASE_VERSION="${MS_TAG}.${date: -5}"
RELEASE_VERSION="${MS_TAG}.${date: -5}"
fi
else
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
@@ -41,14 +42,14 @@ else
then
MS_TAG="${BASH_REMATCH[1]}"
else
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
echo "Error: 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)
if [[ "${MS_TAG}" == "$( jq -r '.tag' insider.json )" ]]; then
MS_COMMIT=$( jq -r '.commit' insider.json )
else
echo "No MS_COMMIT for ${RELEASE_VERSION}"
echo "Error: No MS_COMMIT for ${RELEASE_VERSION}"
exit 1
fi
else
@@ -56,7 +57,7 @@ else
then
MS_TAG="${BASH_REMATCH[1]}"
else
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
echo "Error: Bad RELEASE_VERSION: ${RELEASE_VERSION}"
exit 1
fi
fi
@@ -73,23 +74,23 @@ git remote add origin https://github.com/Microsoft/vscode.git
# figure out latest tag by calling MS update API
if [[ -z "${MS_TAG}" ]]; then
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/insider/lol )
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/insider/0000000000000000000000000000000000000000 )
else
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
UPDATE_INFO=$( curl --silent --fail https://update.code.visualstudio.com/api/update/darwin/stable/0000000000000000000000000000000000000000 )
fi
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
elif [[ -z "${MS_COMMIT}" ]]; then
REFERENCE=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
if [[ -z "${REFERENCE}" ]]; then
echo "The following tag can't be found: ${MS_TAG}"
echo "Error: The following tag can't be found: ${MS_TAG}"
exit 1
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
export MS_COMMIT="${BASH_REMATCH[1]}"
export MS_TAG="${BASH_REMATCH[2]}"
MS_COMMIT="${BASH_REMATCH[1]}"
MS_TAG="${BASH_REMATCH[2]}"
else
echo "The following reference can't be parsed: ${REFERENCE}"
echo "Error: The following reference can't be parsed: ${REFERENCE}"
exit 1
fi
fi
@@ -108,3 +109,7 @@ if [[ "${GITHUB_ENV}" ]]; then
echo "MS_COMMIT=${MS_COMMIT}" >> "${GITHUB_ENV}"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
fi
export MS_TAG
export MS_COMMIT
export RELEASE_VERSION

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

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

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

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

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

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -1,4 +1,4 @@
{
"tag": "1.78.0",
"commit": "f31dffc7f9b93a1cdef21243ec30dea7d489a615"
"tag": "1.84.0",
"commit": "60182c7e1a666961ded4d0319c154f52d85daf30"
}

View File

@@ -1,10 +1,10 @@
#!/bin/bash
#!/usr/bin/env bash
set -ex
GH_ARCH="amd64"
VERSION=`curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2-`
VERSION=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2- )
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"

View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
if [[ "${1}" == *patch ]]; then
FILE="../patches/${1}"
@@ -17,7 +17,7 @@ fi
git apply --reject "../patches/helper/settings.patch"
read -p "Press any key when the conflict have been resolved..." -n1 -s
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json

1317
patches/brand.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,41 +1,41 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index f3cdbff..ac7c39b 100644
index 2a0c236..9fea722 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -246,4 +246,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -250,4 +250,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const name = product.nameShort;
+ const release = packageJson.release;
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined }));
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined }));
@@ -252,3 +253,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -256,3 +257,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version }));
+ .pipe(json({ commit, date, version, release }));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index cdc802b..49ab315 100644
index 0ca2cfd..3fb21d5 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -227,3 +227,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -225,3 +225,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
@@ -233,3 +233,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const name = product.nameShort;
- const packageJsonUpdates = { name, version };
+ const release = packageJson.release;
+ const packageJsonUpdates = { name, version, release };
@@ -246,3 +247,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -244,3 +245,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version };
+ const productJsonUpdate = { commit, date, checksums, version, release };
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index cdc8870..f6e4e09 100644
index 90f75cc..275c958 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -25,4 +25,2 @@ const commit = getVersion(root);
@@ -60,7 +60,7 @@ index cdc8870..f6e4e09 100644
+ .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
index 6e9a6f3..9d80b6b 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -94,4 +94,4 @@ function buildWin32Setup(arch, target) {
@@ -71,7 +71,7 @@ index 0d3abda..2606af5 100644
+ 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
index 06b8549..3af1f45 100644
--- a/resources/linux/rpm/code.spec.template
+++ b/resources/linux/rpm/code.spec.template
@@ -2,3 +2,3 @@ Name: @@NAME@@
@@ -80,24 +80,24 @@ index 61659d2..5cafa06 100644
+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
index ac9cd5d..87b6105 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -34,2 +34,3 @@ export interface IProductConfiguration {
@@ -58,2 +58,3 @@ export interface IProductConfiguration {
readonly version: string;
+ readonly release: string;
readonly date?: string;
diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts
index 561966b..30814a0 100644
index 0be311f..d6c4a18 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 {
@@ -224,3 +224,3 @@ export class DiagnosticsService implements IDiagnosticsService {
const output: string[] = [];
- output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
+ output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`);
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index ef798fa..cfa7866 100644
index 51a55e1..26dfe7b 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
@@ -111,19 +111,19 @@ index ef798fa..cfa7866 100644
+ release: pkg.release
});
diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
index 6a3768d..023eeed 100644
index 4b320bb..6619c75 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';
@@ -22,2 +22,3 @@ import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaul
import { ResultKind } from 'vs/platform/keybinding/common/keybindingResolver';
+import { getReleaseString } from 'vs/workbench/common/release';
@@ -147,2 +148,4 @@ export class BrowserDialogHandler implements IDialogHandler {
@@ -79,2 +80,4 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
const detailString = (useAgo: boolean): string => {
+ const releaseString = getReleaseString();
+
return localize('aboutDetail',
@@ -153,3 +156,3 @@ export class BrowserDialogHandler implements IDialogHandler {
@@ -85,3 +88,3 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
navigator.userAgent
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
@@ -148,28 +148,20 @@ index 0000000..2a8ea57
+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
index 575bde3..f427833 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';
@@ -14,2 +14,3 @@ import { IProductService } from 'vs/platform/product/common/productService';
import { process } from 'vs/base/parts/sandbox/electron-sandbox/globals';
+import { getReleaseString } from 'vs/workbench/common/release';
@@ -166,2 +167,3 @@ export class NativeDialogHandler implements IDialogHandler {
@@ -77,2 +78,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
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
@@ -89,3 +91,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
`${osProps.type} ${osProps.arch} ${osProps.release}${isLinuxSnap ? ' snap' : ''}`
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
};

View File

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

View File

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

View File

@@ -1,8 +1,8 @@
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
index 3ef5ca1..a634a9f 100644
index 8c2aa42..18b0975 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({
@@ -300,2 +300,8 @@ configurationRegistry.registerConfiguration({
},
+ 'workbench.welcomePage.extraAnnouncements': {
+ scope: ConfigurationScope.MACHINE,
@@ -12,10 +12,10 @@ index 3ef5ca1..a634a9f 100644
+ },
'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
index 9dd5330..9e2b6a2 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 = {
@@ -117,4 +117,8 @@ type GettingStartedActionEvent = {
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
+type AnnouncementEntry = { id: string, title: string, url: string };
@@ -24,26 +24,26 @@ index 46949b2..174e65f 100644
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
+
export class GettingStartedPage extends EditorPane {
@@ -152,2 +156,4 @@ export class GettingStartedPage extends EditorPane {
@@ -153,2 +157,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 {
@@ -774,2 +780,3 @@ export class GettingStartedPage extends EditorPane {
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
+ const announcementList = await this.buildAnnouncementList();
@@ -815,3 +822,3 @@ export class GettingStartedPage extends EditorPane {
@@ -784,3 +791,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 {
- reset(rightColumn, featuredExtensionList.getDomElement(), gettingStartedList.getDomElement());
+ reset(rightColumn, featuredExtensionList.getDomElement(), gettingStartedList.getDomElement(), announcementList.getDomElement());
}
@@ -788,3 +795,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noWalkthroughs');
- reset(leftColumn, startList.getDomElement(), recentList.getDomElement());
+ reset(leftColumn, startList.getDomElement(), announcementList.getDomElement());
reset(rightColumn, featuredExtensionList.getDomElement());
@@ -982,2 +989,51 @@ export class GettingStartedPage extends EditorPane {
- reset(rightColumn, featuredExtensionList.getDomElement());
+ reset(rightColumn, featuredExtensionList.getDomElement(), announcementList.getDomElement());
}
@@ -946,2 +953,55 @@ export class GettingStartedPage extends EditorPane {
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {
@@ -75,15 +75,19 @@ index 46949b2..174e65f 100644
+
+ if (showExtras) {
+ const branch = this.productService.quality === 'insider' ? 'insider' : 'master';
+ const res = await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`);
+ await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`)
+ .then(async res => {
+ if (res.ok) {
+ var extraAnnouncements = await res.json() as AnnouncementEntry[];
+
+ if (res.ok) {
+ var extraAnnouncements = await res.json() as AnnouncementEntry[];
+
+ this.announcementData = [...extraAnnouncements, ...BUILTIN_ANNOUNCEMENTS];
+ } else {
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
+ }
+ this.announcementData = [...extraAnnouncements, ...BUILTIN_ANNOUNCEMENTS];
+ } else {
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
+ }
+ })
+ .catch(err => {
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
+ });
+ } else {
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
+ }

View File

@@ -1,14 +1,30 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 0d7d3c5..90f75cc 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -299,4 +299,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch)));
- gulp.task(prepareDebTask);
- const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, buildDebPackage(arch));
+ const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, task.series(prepareDebTask, buildDebPackage(arch)));
gulp.task(buildDebTask);
@@ -305,4 +304,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch)));
- gulp.task(prepareRpmTask);
- const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, buildRpmPackage(arch));
+ const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, task.series(prepareRpmTask, buildRpmPackage(arch)));
gulp.task(buildRpmTask);
diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
index af20828..f09ba66 100644
index 381539d..0f26614 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
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/114.0.5735.199: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
index 5c4b9d2..a2c629a 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -23,3 +23,3 @@ import { isRpmArchString, RpmArchString } from './rpm/types';
@@ -17,10 +33,10 @@ index 34573c4..91adb8f 100644
+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
index 06b8549..a7e3dfb 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 || :
@@ -81 +81,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_datadir}/zsh/site-functions/_%{name}
+
+%config(noreplace) /usr/share/%{name}/resources/app/product.json

View File

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

@@ -16,7 +16,8 @@ index 7ae8bce..724b9ad 100644
- "files.insertFinalNewline": true,
+ // "files.insertFinalNewline": true,
"[plaintext]": {
@@ -91,3 +91,3 @@
@@ -91,4 +91,4 @@
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true

View File

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

View File

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

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

View File

@@ -1,21 +1,37 @@
diff --git a/src/main.js b/src/main.js
index d986fee..1ad0ef0 100644
--- a/src/main.js
+++ b/src/main.js
@@ -18,2 +18,3 @@ perf.mark('code/didStartMain');
const path = require('path');
+const { fileURLToPath } = require('url');
const fs = require('fs');
@@ -149,2 +150,14 @@ app.once('ready', function () {
+function resolveUserProduct() {
+ const userDataPath = getUserDataPath({}, product.nameShort ?? 'code-oss-dev');
+ const userProductPath = `file:///${userDataPath}/product.json`;
+
+ try {
+ // Assign the product configuration to the global scope
+ const productPath = require(fileURLToPath(userProductPath));
+ global["_VSCODE_USER_PRODUCT_JSON"] = productPath;
+ } catch (ex) {
+ }
+}
+
/**
@@ -160,2 +173,3 @@ function startup(codeCachePath, nlsConfig) {
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
+ resolveUserProduct();
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index ef798fa..5a0550b 100644
index 51a55e1..e2af375 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -5,3 +5,4 @@
@@ -29,2 +29,36 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
-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';
@@ -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';
@@ -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 || {}
+ const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
@@ -24,7 +40,7 @@ index ef798fa..5a0550b 100644
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ }
+ })
+ });
+
+ // Merge user-customized product.json
+ try {
@@ -43,10 +59,7 @@ index ef798fa..5a0550b 100644
+ return result;
+ }, {}) 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 as AppResourcePath).fsPath);
+ const userProduct = (globalThis as Record<string, any>)._VSCODE_USER_PRODUCT_JSON || {};
+
+ product = merge(product, userProduct);
+ } catch (ex) {

View File

@@ -0,0 +1,264 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 2a0c236eaf0..be2528c5c48 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -46,6 +46,7 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
{ platform: 'alpine', arch: 'arm64' },
// legacy: we use to ship only one alpine so it was put in the arch, but now we ship
// multiple alpine images and moved to a better model (alpine as the platform)
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 62691fcc8cf..dbefb8549f1 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -24,6 +24,7 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
BUILD_TARGETS.forEach(buildTarget => {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 0ca2cfd60a9..18a60efc405 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -426,6 +426,7 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
];
BUILD_TARGETS.forEach(buildTarget => {
const dashed = (str) => (str ? `-${str}` : ``);
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 90f75ccfabd..a9fe7715da9 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -29,7 +29,7 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
* @param {string} arch
*/
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64le' }[arch];
}
function prepareDebPackage(arch) {
@@ -136,7 +136,7 @@ function getRpmBuildPath(rpmArch) {
* @param {string} arch
*/
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
}
/**
@@ -292,6 +292,7 @@ const BUILD_TARGETS = [
{ arch: 'x64' },
{ arch: 'armhf' },
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
];
BUILD_TARGETS.forEach(({ arch }) => {
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index b13d3cdfaaf..650e4de3894 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -52,6 +52,9 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, sysroo
case 'arm64':
cmd.push(`-l${sysroot}/usr/lib/aarch64-linux-gnu`,
`-l${sysroot}/lib/aarch64-linux-gnu`);
+ case 'ppc64le':
+ cmd.push(`-l${sysroot}/usr/lib/ppc64le-linux-gnu`,
+ `-l${sysroot}/lib/ppc64le-linux-gnu`);
break;
}
cmd.push(`-l${sysroot}/usr/lib`);
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 52aa56d960b..857589ec9ff 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -136,5 +136,44 @@ export const referenceGeneratedDepsByArch = {
'libxkbfile1',
'libxrandr2',
'xdg-utils (>= 1.0.2)'
+ ],
+ 'ppc64le': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
]
};
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485ef128..356027a648b 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -3,8 +3,8 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64le';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64le'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index b03d8ea5963..2beceeac640 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -209,6 +209,7 @@ pub enum Platform {
LinuxX64,
LinuxARM64,
LinuxARM32,
+ LinuxPPC64LE,
DarwinX64,
DarwinARM64,
WindowsX64,
@@ -222,6 +223,7 @@ impl Platform {
Platform::LinuxX64 => Some("linux-x64".to_owned()),
Platform::LinuxARM64 => Some("linux-arm64".to_owned()),
Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
+ Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
Platform::DarwinARM64 => Some("darwin-arm64".to_owned()),
Platform::WindowsX64 => Some("win32-x64-archive".to_owned()),
@@ -237,6 +239,7 @@ impl Platform {
Platform::LinuxX64 => "server-linux-x64",
Platform::LinuxARM64 => "server-linux-arm64",
Platform::LinuxARM32 => "server-linux-armhf",
+ Platform::LinuxPPC64LE => "server-linux-ppc64le",
Platform::DarwinX64 => "server-darwin",
Platform::DarwinARM64 => "server-darwin-arm64",
Platform::WindowsX64 => "server-win32-x64",
@@ -253,6 +256,7 @@ impl Platform {
Platform::LinuxX64 => "cli-linux-x64",
Platform::LinuxARM64 => "cli-linux-arm64",
Platform::LinuxARM32 => "cli-linux-armhf",
+ Platform::LinuxPPC64LE => "cli-linux-ppc64le",
Platform::DarwinX64 => "cli-darwin-x64",
Platform::DarwinARM64 => "cli-darwin-arm64",
Platform::WindowsARM64 => "cli-win32-arm64",
@@ -285,6 +289,8 @@ impl Platform {
Some(Platform::LinuxARM32)
} else if cfg!(all(target_os = "linux", target_arch = "aarch64")) {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "ppc64le")) {
+ Some(Platform::LinuxPPC64LE)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
Some(Platform::DarwinX64)
} else if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
@@ -309,6 +315,7 @@ impl fmt::Display for Platform {
Platform::LinuxX64 => "LinuxX64",
Platform::LinuxARM64 => "LinuxARM64",
Platform::LinuxARM32 => "LinuxARM32",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
Platform::DarwinX64 => "DarwinX64",
Platform::DarwinARM64 => "DarwinARM64",
Platform::WindowsX64 => "WindowsX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index d8cbd1b91dd..191d312e994 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -64,6 +64,8 @@ impl PreReqChecker {
Platform::LinuxX64
} else if cfg!(target_arch = "arm") {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LE
} else {
Platform::LinuxARM64
});
diff --git a/src/main.js b/src/main.js
index d986fee6f6d..02cd26a4d93 100644
--- a/src/main.js
+++ b/src/main.js
@@ -405,6 +405,7 @@ function configureCrashReporter() {
}
}
} else if (isLinux) {
+
submitURL = appCenter['linux-x64'];
}
submitURL = submitURL.concat('&uid=', crashReporterId, '&iid=', crashReporterId, '&sid=', crashReporterId);
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index d407374f6ee..636da84fd62 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -28,6 +28,7 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_X64: return 'Linux 64 bit';
case TargetPlatform.LINUX_ARM64: return 'Linux ARM 64';
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PPC64LE';
case TargetPlatform.ALPINE_X64: return 'Alpine Linux 64 bit';
case TargetPlatform.ALPINE_ARM64: return 'Alpine ARM 64';
@@ -52,6 +53,7 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_X64: return TargetPlatform.LINUX_X64;
case TargetPlatform.LINUX_ARM64: return TargetPlatform.LINUX_ARM64;
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
case TargetPlatform.ALPINE_X64: return TargetPlatform.ALPINE_X64;
case TargetPlatform.ALPINE_ARM64: return TargetPlatform.ALPINE_ARM64;
@@ -90,6 +92,9 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
if (arch === 'arm') {
return TargetPlatform.LINUX_ARMHF;
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
return TargetPlatform.UNKNOWN;
case 'alpine':
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index cfa0e3296f0..d38a82114e3 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -296,6 +296,7 @@ export const enum TargetPlatform {
LINUX_X64 = 'linux-x64',
LINUX_ARM64 = 'linux-arm64',
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',
ALPINE_X64 = 'alpine-x64',
ALPINE_ARM64 = 'alpine-arm64',

View File

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

View File

@@ -1,13 +1,16 @@
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
index 33e66be..a7ade0a 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
@@ -468,3 +468,3 @@ export class IssueReporter extends Disposable {
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterService.ts b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
index d0c4789..9e6bfc5 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterService.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
@@ -455,5 +455,5 @@ export class IssueReporter extends Disposable {
- private searchVSCodeIssues(title: string, issueDescription?: string): void {
+ private searchVSCodeIssues(title: string, _issueDescription?: string): void {
if (title) {
- this.searchDuplicates(title, issueDescription);
+ this.searchGitHub('VSCodium/vscodium', title);
} else {
@@ -556,33 +556,2 @@ export class IssueReporter extends Disposable {
@@ -549,33 +549,2 @@ export class IssueReporter extends Disposable {
- @debounce(300)
- private searchDuplicates(title: string, body?: string): void {
@@ -41,13 +44,13 @@ index 33e66be..a7ade0a 100644
- }
-
private displaySearchResults(results: SearchResult[]) {
@@ -674,3 +643,3 @@ export class IssueReporter extends Disposable {
@@ -667,3 +636,3 @@ export class IssueReporter extends Disposable {
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false));
+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false));
sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false));
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
index a58acca..1903a0c 100644
index 98338df..6d2f581 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
@@ -77,3 +77,3 @@ ${this._data.issueDescription}
@@ -56,7 +59,7 @@ index a58acca..1903a0c 100644
+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
index 0eedb21..c83e092 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
@@ -17,3 +17,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
@@ -70,10 +73,10 @@ index 6467d66..d425016 100644
+ '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 20154ad..bca59b8 100644
index 87839a6..49727fc 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
@@ -148,3 +148,3 @@ class ReportExtensionSlowAction extends Action {
@@ -153,3 +153,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}`);

View File

@@ -1,13 +1,9 @@
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index 93424ca..133657e 100644
index d45291e..74d4080 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -53,7 +53,7 @@ export class Win32UpdateService extends AbstractUpdateService {
@memoize
@@ -55,3 +55,3 @@ export class Win32UpdateService extends AbstractUpdateService {
get cachePath(): Promise<string> {
- const result = path.join(tmpdir(), `vscode-update-${this.productService.target}-${process.arch}`);
+ const result = path.join(tmpdir(), `${this.productService.applicationName}-update-${this.productService.target}-${process.arch}`);
- const result = path.join(tmpdir(), `vscode-${this.productService.quality}-${this.productService.target}-${process.arch}`);
+ const result = path.join(tmpdir(), `${this.productService.applicationName}-${this.productService.quality}-${this.productService.target}-${process.arch}`);
return pfs.Promises.mkdir(result, { recursive: true }).then(() => result);
}

View File

@@ -1,5 +1,5 @@
diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts
index 7cd4a84..7cbdf21 100644
index 0f79e17..97ea778 100644
--- a/src/vs/platform/update/common/update.ts
+++ b/src/vs/platform/update/common/update.ts
@@ -48,3 +48,4 @@ export const enum UpdateType {
@@ -9,7 +9,7 @@ index 7cd4a84..7cbdf21 100644
+ 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
index 99bf807..27e77f0 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -41,5 +41,9 @@ function getUpdateType(): UpdateType {
@@ -25,7 +25,7 @@ index caecd71..4c02afa 100644
+ _updateType = UpdateType.Archive;
+ }
}
@@ -89,6 +93,13 @@ export class Win32UpdateService extends AbstractUpdateService {
@@ -103,6 +107,16 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
- if (getUpdateType() === UpdateType.Archive) {
- platform += '-archive';
@@ -41,11 +41,14 @@ index caecd71..4c02afa 100644
+ default:
+ if (this.productService.target === 'user') {
+ platform += '-user';
+ }
+ else {
+ platform += '-system';
+ }
}
@@ -243,6 +254,14 @@ export class Win32UpdateService extends AbstractUpdateService {
@@ -257,6 +271,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
} else {
- spawn(this.availableUpdate.packagePath, ['/silent', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
- detached: true,
- stdio: ['ignore', 'ignore', 'ignore']
- });
@@ -56,7 +59,7 @@ index caecd71..4c02afa 100644
+ stdio: ['ignore', 'ignore', 'ignore']
+ });
+ } else {
+ spawn(this.availableUpdate.packagePath, ['/silent', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
+ spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
+ detached: true,
+ stdio: ['ignore', 'ignore', 'ignore']
+ });

View File

@@ -1,432 +1,43 @@
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
index dc7278f..a1adcf7 100644
--- a/extensions/github-authentication/src/githubServer.ts
+++ b/extensions/github-authentication/src/githubServer.ts
@@ -6,4 +6,2 @@
import * as vscode from 'vscode';
-import * as path from 'path';
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
import { ExperimentationTelemetry } from './common/experimentationService';
@@ -11,14 +9,7 @@ import { AuthProviderType, UriEventHandler } from './github';
import { Log } from './common/logger';
-import { isSupportedClient, isSupportedTarget } from './common/env';
-import { LoopbackAuthServer } from './node/authServer';
-import { crypto } from './node/crypto';
+import { isSupportedTarget } from './common/env';
import { fetching } from './node/fetch';
diff --git a/extensions/github-authentication/src/common/env.ts b/extensions/github-authentication/src/common/env.ts
index ebc4749..18fd732 100644
--- a/extensions/github-authentication/src/common/env.ts
+++ b/extensions/github-authentication/src/common/env.ts
@@ -7,21 +7,4 @@ import { AuthProviderType } from '../github';
-const CLIENT_ID = '01ab8ac9400c4e429b23';
-const GITHUB_TOKEN_URL = 'https://vscode.dev/codeExchangeProxyEndpoints/github/login/oauth/access_token';
const NETWORK_ERROR = 'network error';
-const VALID_DESKTOP_CALLBACK_SCHEMES = [
- 'vscode',
- 'vscode-insiders',
- // On Windows, some browsers don't seem to redirect back to OSS properly.
- // As a result, you get stuck in the auth flow. We exclude this from the
- // list until we can figure out a way to fix this behavior in browsers.
- // 'code-oss',
- 'vscode-wsl',
- 'vscode-exploration'
-];
-
-export function isSupportedClient(uri: Uri): boolean {
- return (
- VALID_DESKTOP_CALLBACK_SCHEMES.includes(uri.scheme) ||
- // vscode.dev & insiders.vscode.dev
- /(?:^|\.)vscode\.dev$/.test(uri.authority) ||
- // github.dev & codespaces
- /(?:^|\.)github\.dev$/.test(uri.authority)
- );
+export function isSupportedClient(_uri: Uri): boolean {
+ return false;
}
@@ -35,4 +18,4 @@ export function isSupportedTarget(type: AuthProviderType, gheUri?: Uri): boolean
-const REDIRECT_URL_STABLE = 'https://vscode.dev/redirect';
-const REDIRECT_URL_INSIDERS = 'https://insiders.vscode.dev/redirect';
-
export interface IGitHubServer {
@@ -30,9 +21,2 @@ export interface IGitHubServer {
-interface IGitHubDeviceCodeResponse {
- device_code: string;
- user_code: string;
- verification_uri: string;
- interval: number;
-}
-
async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise<string[]> {
@@ -63,8 +47,4 @@ export class GitHubServer implements IGitHubServer {
- private readonly _pendingNonces = new Map<string, string[]>();
- private readonly _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
private readonly _type: AuthProviderType;
- private _redirectEndpoint: string | undefined;
-
constructor(
@@ -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
@@ -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');
- }
- };
-
- const nonce: string = crypto.getRandomValues(new Uint32Array(2)).reduce((prev, curr) => prev += curr.toString(16), '');
- const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate?nonce=${encodeURIComponent(nonce)}`));
- const supportedClient = isSupportedClient(callbackUri);
- const supportedTarget = isSupportedTarget(this._type, this._ghesUri);
- if (supportedClient && supportedTarget) {
- try {
- return await this.doLoginWithoutLocalServer(scopes, nonce, callbackUri);
- } catch (e) {
- this._logger.error(e);
- userCancelled = e.message ?? e === 'User Cancelled';
- }
- }
-
- // 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';
- }
- }
-
- // 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';
- }
- }
-
- // 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 {
- private async doLoginWithoutLocalServer(scopes: string, nonce: string, callbackUri: vscode.Uri): Promise<string> {
- this._logger.info(`Trying without local server... (${scopes})`);
- return await vscode.window.withProgress<string>({
- location: vscode.ProgressLocation.Notification,
- title: vscode.l10n.t({
- message: 'Signing in to {0}...',
- args: [this.baseUri.authority],
- comment: ['The {0} will be a url, e.g. github.com']
- }),
- cancellable: true
- }, async (_, token) => {
- const existingNonces = this._pendingNonces.get(scopes) || [];
- this._pendingNonces.set(scopes, [...existingNonces, nonce]);
- const redirectUri = await this.getRedirectEndpoint();
- const searchParams = new URLSearchParams([
- ['client_id', CLIENT_ID],
- ['redirect_uri', redirectUri],
- ['scope', scopes],
- ['state', encodeURIComponent(callbackUri.toString(true))]
- ]);
-
- const uri = vscode.Uri.parse(this.baseUri.with({
- path: '/login/oauth/authorize',
- query: searchParams.toString()
- }).toString(true));
- await vscode.env.openExternal(uri);
-
- // Register a single listener for the URI callback, in case the user starts the login process multiple times
- // before completing it.
- let codeExchangePromise = this._codeExchangePromises.get(scopes);
- if (!codeExchangePromise) {
- codeExchangePromise = promiseFromEvent(this._uriHandler!.event, this.handleUri(scopes));
- this._codeExchangePromises.set(scopes, codeExchangePromise);
- }
-
- try {
- return await Promise.race([
- codeExchangePromise.promise,
- new Promise<string>((_, reject) => setTimeout(() => reject('Timed out'), 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('Nonce not found in accepted nonces. Skipping this execution...');
- return;
- }
-
- resolve(this.exchangeCodeForToken(code));
- };
-
- private async exchangeCodeForToken(code: string): Promise<string> {
- this._logger.info('Exchanging code for token...');
-
- const proxyEndpoints: { [providerId: string]: string } | undefined = await vscode.commands.executeCommand('workbench.getCodeExchangeProxyEndpoints');
- const endpointUrl = proxyEndpoints?.github ? `${proxyEndpoints.github}login/oauth/access_token` : GITHUB_TOKEN_URL;
-
- const body = new URLSearchParams([['code', code]]);
- if (this._type === AuthProviderType.githubEnterprise) {
- body.append('github_enterprise', this.baseUri.toString(true));
- body.append('redirect_uri', await this.getRedirectEndpoint());
- }
- const result = await fetching(endpointUrl, {
- method: 'POST',
- headers: {
- Accept: 'application/json',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'Content-Length': body.toString()
-
- },
- body: body.toString()
- });
-
- if (result.ok) {
- const json = await result.json();
- this._logger.info('Token exchange success!');
- return json.access_token;
- } else {
- const text = await result.text();
- const error = new Error(text);
- error.name = 'GitHubTokenExchangeError';
- throw error;
- }
- }
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));
-export function isHostedGitHubEnterprise(uri: Uri): boolean {
- return /\.ghe\.com$/.test(uri.authority);
+export function isHostedGitHubEnterprise(_uri: Uri): boolean {
+ return 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
index 7ad8444..6020185 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
@@ -279,12 +279,2 @@ export class AuthenticationService extends Disposable implements IAuthentication
}
-
- if (!this._authenticationProviders.size) {

View File

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

View File

@@ -1,8 +1,9 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
npm install -g checksum
@@ -29,7 +30,7 @@ if [[ "${OS_NAME}" == "osx" ]]; then
security create-keychain -p mysecretpassword "${KEYCHAIN}"
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
security unlock-keychain -p mysecretpassword "${KEYCHAIN}"
security list-keychains -s `security list-keychains | xargs` "${KEYCHAIN}"
security list-keychains -s "$(security list-keychains | xargs)" "${KEYCHAIN}"
# security list-keychains -d user
# security show-keychain-info ${KEYCHAIN}
@@ -75,7 +76,7 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
@@ -98,11 +99,6 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
cd ..
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
echo "Moving ZIP"
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip" "assets\\${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
echo "Moving System EXE"
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
@@ -137,9 +133,9 @@ else
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
. ../build/linux/appimage/build.sh
fi
# if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
# . ../build/linux/appimage/build.sh
# fi
cd ..
@@ -160,12 +156,12 @@ else
mv vscode/.build/linux/rpm/*/*.rpm assets/
fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
echo "Moving AppImage"
mv build/linux/appimage/out/*.AppImage* assets/
# 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
# find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
# fi
VSCODE_PLATFORM="linux"
fi
@@ -179,8 +175,7 @@ fi
cd assets
for FILE in *
do
for FILE in *; do
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi

View File

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

View File

@@ -48,8 +48,7 @@
],
"extensionEnabledApiProposals": {
"ms-vscode.vscode-selfhost-test-provider": [
"testObserver",
"testContinuousRun"
"testObserver"
],
"VisualStudioExptTeam.vscodeintellicode-completions": [
"inlineCompletionsAdditions"
@@ -57,6 +56,7 @@
"ms-vsliveshare.vsliveshare": [
"contribMenuBarHome",
"contribShareMenu",
"contribStatusBarItems",
"diffCommand",
"documentFiltersExclusive",
"fileSearchProvider",
@@ -79,12 +79,15 @@
"ms-python.python": [
"contribEditorContentMenu",
"quickPickSortByLabel",
"portsAttributes",
"testObserver",
"envShellEvent",
"quickPickItemTooltip"
"quickPickItemTooltip",
"terminalDataWriteEvent",
"saveEditor"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookMessaging"
"notebookMessaging",
"languageConfigurationAutoClosingPairs"
],
"GitHub.codespaces": [
"contribEditSessions",
@@ -103,8 +106,7 @@
"textSearchProvider"
],
"ms-vscode.remote-repositories": [
"contribEditorLineNumberMenu",
"contribEditorGutterMenu",
"canonicalUriProvider",
"contribEditSessions",
"contribRemoteHelp",
"contribMenuBarHome",
@@ -117,6 +119,7 @@
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"shareProvider",
"scmActionButton",
"scmSelectedProvider",
"scmValidation",
@@ -138,7 +141,9 @@
"telemetry"
],
"ms-vscode.remote-server": [
"resolvers"
"resolvers",
"tunnels",
"contribViewsWelcome"
],
"ms-vscode.remote-explorer": [
"contribRemoteHelp",
@@ -163,24 +168,55 @@
"ms-vscode.lsif-browser": [
"documentFiltersExclusive"
],
"ms-vscode.vscode-speech": [
"speech"
],
"GitHub.vscode-pull-request-github": [
"contribEditorLineNumberMenu",
"contribEditorGutterMenu",
"contribCommentThreadAdditionalMenu",
"tokenInformation",
"contribShareMenu",
"fileComments",
"contribCommentPeekContext",
"treeItemCheckbox",
"codiconDecoration",
"diffCommand",
"contribCommentEditorActionsMenu",
"readonlyMessage",
"treeViewMarkdownMessage",
"shareProvider",
"quickDiffProvider"
],
"GitHub.copilot": [
"inlineCompletionsAdditions"
"inlineCompletionsAdditions",
"interactive",
"interactiveUserActions",
"terminalDataWriteEvent"
],
"GitHub.copilot-nightly": [
"inlineCompletionsAdditions"
"inlineCompletionsAdditions",
"interactive",
"interactiveUserActions",
"terminalDataWriteEvent"
],
"GitHub.copilot-chat": [
"handleIssueUri",
"interactive",
"interactiveUserActions",
"terminalDataWriteEvent",
"terminalExecuteCommandEvent",
"terminalSelection",
"terminalQuickFixProvider",
"chatProvider",
"chatVariables",
"chatAgents",
"chatAgents2",
"chatAgents2Additions",
"defaultChatAgent",
"readonlyMessage",
"mappedEditsProvider",
"aiRelatedInformation",
"codeActionAI",
"findTextInFiles",
"textSearchProvider"
],
"GitHub.remotehub": [
"contribRemoteHelp",
@@ -203,11 +239,13 @@
"ms-python.vscode-pylance": [
"notebookCellExecutionState"
],
"ms-python.debugpy": [
"portsAttributes"
],
"ms-toolsai.jupyter-renderers": [
"contribNotebookStaticPreloads"
],
"ms-toolsai.jupyter": [
"notebookControllerKind",
"notebookDeprecated",
"notebookMessaging",
"notebookMime",
@@ -218,7 +256,8 @@
"interactiveWindow",
"notebookControllerAffinityHidden",
"contribNotebookStaticPreloads",
"quickPickItemTooltip"
"quickPickItemTooltip",
"notebookExecution"
],
"dbaeumer.vscode-eslint": [
"notebookCellExecutionState"
@@ -229,6 +268,9 @@
"ms-azuretools.vscode-azureappservice": [
"terminalDataWriteEvent"
],
"ms-azuretools.vscode-azureresourcegroups": [
"authGetSessions"
],
"ms-vscode.anycode": [
"extensionsAny"
],
@@ -241,12 +283,28 @@
"ms-dotnettools.csdevkit": [
"inlineCompletionsAdditions"
],
"ms-dotnettools.vscodeintellicode-csharp": [
"inlineCompletionsAdditions"
],
"microsoft-IsvExpTools.powerplatform-vscode": [
"fileSearchProvider",
"textSearchProvider"
],
"microsoft-IsvExpTools.powerplatform-vscode-preview": [
"fileSearchProvider",
"textSearchProvider"
],
"jeanp413.open-remote-ssh": [
"resolvers",
"tunnels",
"terminalDataWriteEvent",
"contribRemoteHelp",
"contribViewsRemote"
],
"jeanp413.open-remote-wsl": [
"resolvers",
"contribRemoteHelp",
"contribViewsRemote"
]
},
"extensionKind": {

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 429 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View File

@@ -1,13 +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="1024" height="1024" viewBox="0, 0, 1024, 1024">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="1024" height="1024" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="361.979" y1="384.114" x2="1038.655" y2="1037.011" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#FFA348"/>
<stop offset="1" stop-color="#C64600"/>
<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="codium_blue_light">
<path d="M499.82,177.918 C479.842,190.735 474.081,217.286 486.954,237.194 C557.717,346.779 574.419,429.435 567.174,501.871 C537.886,640.583 474.221,668.723 418.585,668.723 C364.265,668.723 378.811,579.326 419.642,553.16 C444.016,537.942 475.236,528.051 499.197,528.051 C522.941,528.051 542.191,508.864 542.191,485.19 C542.191,461.509 522.941,442.322 499.197,442.322 C471.211,442.322 443.757,448.202 418.13,458.212 C423.366,433.509 425.298,406.811 418.529,378.433 C408.253,335.341 378.671,294.181 327.305,254.281 C318.31,247.281 306.9,244.138 295.581,245.538 C284.262,246.938 273.965,252.762 266.958,261.736 C252.384,280.426 255.758,307.362 274.504,321.901 C316.35,354.402 330.168,378.461 334.893,398.264 C339.618,418.067 335.817,439.312 326.325,468.502 C314.194,507.842 300.11,542.961 293.936,576.638 C290.898,593.214 290.639,611.253 289.855,625.666 C259.72,596.294 247.925,557.514 247.925,500.849 C247.918,477.175 228.668,457.981 204.931,457.988 C181.208,458.009 161.986,477.189 161.979,500.849 C161.979,578.241 184.61,651.881 245.265,701.007 C300.173,753.318 439.802,733.984 439.802,817.963 C439.802,841.665 474.494,853.201 498.231,853.201 C522.577,853.201 553.216,836.926 553.216,817.963 C553.216,722.679 653.631,664.768 818.936,665.02 C842.68,665.055 861.944,645.882 861.979,622.208 C862.021,598.527 842.813,579.298 819.069,579.256 C807.764,579.242 796.746,579.627 785.882,580.271 C804.362,536.808 812.559,488.956 810.865,437.268 C810.081,413.601 790.215,395.051 766.492,395.821 C742.741,396.591 724.135,416.422 724.912,440.103 C727.152,507.779 724.618,568.21 674.197,600.067 C659.861,609.118 643.194,616.972 627.388,616.972 C639.659,583.596 648.927,548.365 652.721,510.39 C655.143,486.156 655.402,457.365 652.637,435 C648.346,400.35 643.166,361.052 656.319,331.449 C668.135,305.955 694.609,295.28 733.48,295.28 C757.203,295.259 776.425,276.072 776.432,252.419 C776.446,228.738 757.217,209.53 733.48,209.509 C675.716,209.509 631.931,239.91 607.109,276.639 C594.131,248.919 578.325,220.352 559.229,190.784 C553.062,181.229 543.346,174.516 532.209,172.101 C526.693,170.904 520.995,170.799 515.437,171.793 C509.879,172.794 504.573,174.873 499.82,177.918 z" fill="url(#Gradient_1)" id="path6008"/>
<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>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 418 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View File

@@ -1,13 +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="1024" height="1024" viewBox="0, 0, 1024, 1024">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="1024" height="1024" viewBox="0, 0, 100, 100">
<defs>
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="361.979" y1="384.114" x2="1038.655" y2="1037.011" gradientTransform="matrix(1, 0, 0, 1, -200, -213)">
<stop offset="0" stop-color="#62A0EA"/>
<stop offset="1" stop-color="#1A5FB4"/>
<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="codium_blue_light">
<path d="M499.82,177.918 C479.842,190.735 474.081,217.286 486.954,237.194 C557.717,346.779 574.419,429.435 567.174,501.871 C537.886,640.583 474.221,668.723 418.585,668.723 C364.265,668.723 378.811,579.326 419.642,553.16 C444.016,537.942 475.236,528.051 499.197,528.051 C522.941,528.051 542.191,508.864 542.191,485.19 C542.191,461.509 522.941,442.322 499.197,442.322 C471.211,442.322 443.757,448.202 418.13,458.212 C423.366,433.509 425.298,406.811 418.529,378.433 C408.253,335.341 378.671,294.181 327.305,254.281 C318.31,247.281 306.9,244.138 295.581,245.538 C284.262,246.938 273.965,252.762 266.958,261.736 C252.384,280.426 255.758,307.362 274.504,321.901 C316.35,354.402 330.168,378.461 334.893,398.264 C339.618,418.067 335.817,439.312 326.325,468.502 C314.194,507.842 300.11,542.961 293.936,576.638 C290.898,593.214 290.639,611.253 289.855,625.666 C259.72,596.294 247.925,557.514 247.925,500.849 C247.918,477.175 228.668,457.981 204.931,457.988 C181.208,458.009 161.986,477.189 161.979,500.849 C161.979,578.241 184.61,651.881 245.265,701.007 C300.173,753.318 439.802,733.984 439.802,817.963 C439.802,841.665 474.494,853.201 498.231,853.201 C522.577,853.201 553.216,836.926 553.216,817.963 C553.216,722.679 653.631,664.768 818.936,665.02 C842.68,665.055 861.944,645.882 861.979,622.208 C862.021,598.527 842.813,579.298 819.069,579.256 C807.764,579.242 796.746,579.627 785.882,580.271 C804.362,536.808 812.559,488.956 810.865,437.268 C810.081,413.601 790.215,395.051 766.492,395.821 C742.741,396.591 724.135,416.422 724.912,440.103 C727.152,507.779 724.618,568.21 674.197,600.067 C659.861,609.118 643.194,616.972 627.388,616.972 C639.659,583.596 648.927,548.365 652.721,510.39 C655.143,486.156 655.402,457.365 652.637,435 C648.346,400.35 643.166,361.052 656.319,331.449 C668.135,305.955 694.609,295.28 733.48,295.28 C757.203,295.259 776.425,276.072 776.432,252.419 C776.446,228.738 757.217,209.53 733.48,209.509 C675.716,209.509 631.931,239.91 607.109,276.639 C594.131,248.919 578.325,220.352 559.229,190.784 C553.062,181.229 543.346,174.516 532.209,172.101 C526.693,170.904 520.995,170.799 515.437,171.793 C509.879,172.794 504.573,174.873 499.82,177.918 z" fill="url(#Gradient_1)" id="path6008"/>
<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>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
@@ -12,11 +12,11 @@ sudo snap install --channel stable --classic snapcraft
echo "Architecture: ${ARCHITECTURE}"
SNAP_VERSION=$(snapcraft list-revisions ${SNAP_NAME} | grep -F "stable*" | grep "${ARCHITECTURE}" | tr -s ' ' | cut -d ' ' -f 4)
SNAP_VERSION=$( snapcraft list-revisions "${SNAP_NAME}" | grep -F "stable*" | grep "${ARCHITECTURE}" | tr -s ' ' | cut -d ' ' -f 4 )
echo "Snap version: ${SNAP_VERSION}"
wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json
GH_VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' gh_latest.json)
GH_VERSION=$( jq -r 'sort_by(.tag_name)|last.tag_name' gh_latest.json )
echo "GH version: ${GH_VERSION}"
rm -f gh_latest.json
@@ -27,7 +27,7 @@ else
export SHOULD_DEPLOY="yes"
snap version
snap info "${SNAP_NAME}" | true
snap info "${SNAP_NAME}" || true
fi
if [[ "${GITHUB_ENV}" ]]; then

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,15 +1,16 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
if [[ "${SHOULD_BUILD}" != "yes" && "${FORCE_UPDATE}" != "true" ]]; then
echo "Will not update version JSON because we did not build"
exit
exit 0
fi
if [[ -z "${GITHUB_TOKEN}" ]]; then
echo "Will not update version JSON because no GITHUB_TOKEN defined"
exit
exit 0
fi
if [[ "${FORCE_UPDATE}" == "true" ]]; then
@@ -18,7 +19,12 @@ fi
if [[ -z "${BUILD_SOURCEVERSION}" ]]; then
echo "Will not update version JSON because no BUILD_SOURCEVERSION defined"
exit
exit 0
fi
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
echo "Skip ppc64le since only reh is published"
exit 0
fi
# {
@@ -40,25 +46,27 @@ fi
# `timestamp` is $(node -e 'console.log(Date.now())')
# `sha256hash` in <filename>.sha256
REPOSITORY_NAME="${VERSIONS_REPOSITORY/*\//}"
URL_BASE="https://github.com/${ASSETS_REPOSITORY}/releases/download/${RELEASE_VERSION}"
generateJson() {
local url name version productVersion sha1hash sha256hash timestamp
JSON_DATA="{}"
# generate parts
local url="${URL_BASE}/${ASSET_NAME}"
local name="${RELEASE_VERSION}"
local version="${BUILD_SOURCEVERSION}"
local productVersion="${RELEASE_VERSION}"
local timestamp=$(node -e 'console.log(Date.now())')
url="${URL_BASE}/${ASSET_NAME}"
name="${RELEASE_VERSION}"
version="${BUILD_SOURCEVERSION}"
productVersion="${RELEASE_VERSION}"
timestamp=$( node -e 'console.log(Date.now())' )
if [[ ! -f "assets/${ASSET_NAME}" ]]; then
echo "Downloading asset '${ASSET_NAME}'"
gh release download --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" --dir "assets" --pattern "${ASSET_NAME}*"
fi
local sha1hash=$(cat "assets/${ASSET_NAME}.sha1" | awk '{ print $1 }')
local sha256hash=$(cat "assets/${ASSET_NAME}.sha256" | awk '{ print $1 }')
sha1hash=$( awk '{ print $1 }' "assets/${ASSET_NAME}.sha1" )
sha256hash=$( awk '{ print $1 }' "assets/${ASSET_NAME}.sha256" )
# check that nothing is blank (blank indicates something awry with build)
for key in url name version productVersion sha1hash timestamp sha256hash; do
@@ -69,7 +77,7 @@ generateJson() {
done
# generate json
JSON_DATA=$(jq \
JSON_DATA=$( jq \
--arg url "${url}" \
--arg name "${name}" \
--arg version "${version}" \
@@ -78,36 +86,41 @@ generateJson() {
--arg timestamp "${timestamp}" \
--arg sha256hash "${sha256hash}" \
'. | .url=$url | .name=$name | .version=$version | .productVersion=$productVersion | .hash=$hash | .timestamp=$timestamp | .sha256hash=$sha256hash' \
<<<'{}')
<<<'{}' )
}
updateLatestVersion() {
echo "Generating ${VERSION_PATH}/latest.json"
echo "Updating ${VERSION_PATH}/latest.json"
# do not update the same version
if [[ -f "versions/${VERSION_PATH}/latest.json" ]]; then
CURRENT_VERSION=$( jq -r '.name' "versions/${VERSION_PATH}/latest.json" )
if [[ -f "${REPOSITORY_NAME}/${VERSION_PATH}/latest.json" ]]; then
CURRENT_VERSION=$( jq -r '.name' "${REPOSITORY_NAME}/${VERSION_PATH}/latest.json" )
echo "CURRENT_VERSION: ${CURRENT_VERSION}"
if [[ "${CURRENT_VERSION}" == "${RELEASE_VERSION}" && "${FORCE_UPDATE}" != "true" ]]; then
return
return 0
fi
fi
mkdir -p "versions/${VERSION_PATH}"
echo "Generating ${VERSION_PATH}/latest.json"
mkdir -p "${REPOSITORY_NAME}/${VERSION_PATH}"
generateJson
echo "${JSON_DATA}" > "versions/${VERSION_PATH}/latest.json"
echo "${JSON_DATA}" > "${REPOSITORY_NAME}/${VERSION_PATH}/latest.json"
echo "${JSON_DATA}"
}
# init versions repo for later commiting + pushing the json file to it
# thank you https://www.vinaygopinath.me/blog/tech/commit-to-master-branch-on-github-using-travis-ci/
git clone "https://github.com/${VERSIONS_REPOSITORY}.git"
cd versions
cd "${REPOSITORY_NAME}" || { echo "'${REPOSITORY_NAME}' dir not found"; exit 1; }
git config user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config user.name "${GITHUB_USERNAME} CI"
git remote rm origin
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPOSITORY}.git" > /dev/null 2>&1
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPOSITORY}.git" &> /dev/null
cd ..
if [[ "${OS_NAME}" == "osx" ]]; then
@@ -150,20 +163,26 @@ else # linux
updateLatestVersion
fi
cd versions
cd "${REPOSITORY_NAME}" || { echo "'${REPOSITORY_NAME}' dir not found"; exit 1; }
git pull origin master # in case another build just pushed
git add .
CHANGES=$( git status --porcelain )
if [[ ! -z "${CHANGES}" ]]; then
if [[ -n "${CHANGES}" ]]; then
echo "Some changes have been found, pushing them"
dateAndMonth=$( date "+%D %T" )
git commit -m "CI update: ${dateAndMonth} (Build ${GITHUB_RUN_NUMBER})"
if ! git push origin master --quiet; then
git pull origin master
git push origin master --quiet
fi
else
echo "No changes"
fi
cd ..

View File

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

View File

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