Compare commits
281 Commits
1.65.0
...
1.74.2.223
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3cf93c6ded | ||
|
|
12121c9c9b | ||
|
|
5d3b20bf8f | ||
|
|
b57285ebae | ||
|
|
a31e11a51e | ||
|
|
ee8c7f094a | ||
|
|
078ce9427f | ||
|
|
f781310c69 | ||
|
|
33b563c334 | ||
|
|
71277ceb29 | ||
|
|
8b260dc895 | ||
|
|
25985ec81b | ||
|
|
50313cace5 | ||
|
|
61ab6ebb68 | ||
|
|
ef0a3400d5 | ||
|
|
1bfa2d920c | ||
|
|
7ecd465204 | ||
|
|
c57d5aa768 | ||
|
|
5c3db580d5 | ||
|
|
de28e119be | ||
|
|
522300a657 | ||
|
|
d0b246a9e1 | ||
|
|
1b48e182cb | ||
|
|
59389da1b0 | ||
|
|
ab5bc94dc5 | ||
|
|
51e8c96447 | ||
|
|
0a4c9f8822 | ||
|
|
8a4d27cbc5 | ||
|
|
82818e303b | ||
|
|
06e0b79e29 | ||
|
|
0f32071868 | ||
|
|
b9cf9669ec | ||
|
|
9bef306878 | ||
|
|
43a12a99d9 | ||
|
|
b99b8a6254 | ||
|
|
1151ccb8a5 | ||
|
|
36077f90dc | ||
|
|
34d56d0b52 | ||
|
|
fc7019dc75 | ||
|
|
3cba28cb77 | ||
|
|
6694eb6755 | ||
|
|
87ce7bc40b | ||
|
|
3d28de08df | ||
|
|
728235372d | ||
|
|
fb37594000 | ||
|
|
ad3016dabf | ||
|
|
e891b4a3dc | ||
|
|
f847dfc262 | ||
|
|
5fc33c7681 | ||
|
|
1f2ecf7714 | ||
|
|
54952104e8 | ||
|
|
9c8d4b367d | ||
|
|
06222aa96e | ||
|
|
66c137de6a | ||
|
|
79fe5639f3 | ||
|
|
2bdecb847c | ||
|
|
d9493e47c6 | ||
|
|
8eea67c50d | ||
|
|
db5caf4c9b | ||
|
|
8b5ad26b10 | ||
|
|
e14a115b0e | ||
|
|
431fecfad7 | ||
|
|
fc8e62c908 | ||
|
|
6b71e7a5d3 | ||
|
|
c14e5d4a97 | ||
|
|
2c17eed9d3 | ||
|
|
1aeca3ebce | ||
|
|
ce4af41a4a | ||
|
|
35dcdf39ca | ||
|
|
bba3e74815 | ||
|
|
9f2a6fe772 | ||
|
|
ac01dd9d0e | ||
|
|
10582b3c86 | ||
|
|
fed608b13e | ||
|
|
6cb5e52ffe | ||
|
|
59e72eed70 | ||
|
|
6fa185f59e | ||
|
|
10143fdee2 | ||
|
|
fa73d77b97 | ||
|
|
8335ca9c14 | ||
|
|
983eefdc2e | ||
|
|
633e46eede | ||
|
|
5d3d8c3fb7 | ||
|
|
ae2b84df50 | ||
|
|
d7450f5afe | ||
|
|
b87deb8af1 | ||
|
|
4a41898d02 | ||
|
|
97eb57c196 | ||
|
|
0b4c409685 | ||
|
|
d91dc90a71 | ||
|
|
8d74a04beb | ||
|
|
3f6a260aa3 | ||
|
|
b5b3376645 | ||
|
|
ecd187faa2 | ||
|
|
9f887867a9 | ||
|
|
d9b0bdb1fc | ||
|
|
81eb0c7da3 | ||
|
|
fadc24f733 | ||
|
|
6023f014bf | ||
|
|
0671054494 | ||
|
|
87aaa7131e | ||
|
|
8a80e023ad | ||
|
|
2f8edd92f3 | ||
|
|
f0d9c5aed4 | ||
|
|
6b164c0699 | ||
|
|
6471151e96 | ||
|
|
aa50b4f557 | ||
|
|
2b61812afb | ||
|
|
abbc2cb2f1 | ||
|
|
36c0f2a014 | ||
|
|
5b22b7bbc8 | ||
|
|
9927efe1dc | ||
|
|
d83bfdea6a | ||
|
|
72e723735f | ||
|
|
fe9701d8ff | ||
|
|
cd5afd6e58 | ||
|
|
39fab7d947 | ||
|
|
e87d2b2587 | ||
|
|
29a963b6ea | ||
|
|
6299899ee6 | ||
|
|
6562d7d4a4 | ||
|
|
03be08e721 | ||
|
|
412ab9f469 | ||
|
|
a65ecfc37b | ||
|
|
1dcb1f9b1f | ||
|
|
b36705ca7f | ||
|
|
8fa040c46f | ||
|
|
e70f1391b2 | ||
|
|
397b37f54c | ||
|
|
44c14b62bd | ||
|
|
fa83cbc835 | ||
|
|
6d716bc19c | ||
|
|
e2020e7ab3 | ||
|
|
fb3a6c1855 | ||
|
|
3863b9f70a | ||
|
|
6567a25215 | ||
|
|
f05b1dfb66 | ||
|
|
53cb71df89 | ||
|
|
a64611ceda | ||
|
|
3664544e77 | ||
|
|
00b1c23d0b | ||
|
|
60896956ef | ||
|
|
ca9a6812fd | ||
|
|
400997b39a | ||
|
|
1e3c695701 | ||
|
|
778e36d118 | ||
|
|
62d6c2d4f1 | ||
|
|
21757c11e7 | ||
|
|
7c9d1d4e54 | ||
|
|
70906631fe | ||
|
|
d6c96b4533 | ||
|
|
2530990d15 | ||
|
|
10f95cda32 | ||
|
|
991fbbbd32 | ||
|
|
995081e187 | ||
|
|
452550caa3 | ||
|
|
315d25a735 | ||
|
|
b07ec41f16 | ||
|
|
50b00d3036 | ||
|
|
37210e8499 | ||
|
|
b8acee21ca | ||
|
|
a5d89f826e | ||
|
|
b90af6eda5 | ||
|
|
7a289a8b61 | ||
|
|
a626779410 | ||
|
|
8c4229d230 | ||
|
|
cfd36105f5 | ||
|
|
e27c6792ce | ||
|
|
9f21a39e6f | ||
|
|
c35178f8b7 | ||
|
|
f8f64410c6 | ||
|
|
ec4cc3a277 | ||
|
|
c9614d1d31 | ||
|
|
29f4df6515 | ||
|
|
a8cda7e118 | ||
|
|
f8b2cc75ae | ||
|
|
7bbad32dc8 | ||
|
|
114f731f19 | ||
|
|
2aca4d5344 | ||
|
|
885abe36a8 | ||
|
|
39a2fd05aa | ||
|
|
5f3af3920b | ||
|
|
762cfede26 | ||
|
|
2c429f0778 | ||
|
|
fa4b4caf59 | ||
|
|
e7e2de16ce | ||
|
|
8737578ae5 | ||
|
|
6da0a42a92 | ||
|
|
7f7f2ecdf8 | ||
|
|
f212b71f2a | ||
|
|
ba9a6a1319 | ||
|
|
b803eaaefe | ||
|
|
c655e94765 | ||
|
|
c808d71512 | ||
|
|
4e20dbd99b | ||
|
|
083e25d289 | ||
|
|
a549e0bdad | ||
|
|
04f80fcd48 | ||
|
|
feeb053e21 | ||
|
|
8a3d35a42d | ||
|
|
290fa2ff81 | ||
|
|
39af33e65a | ||
|
|
697bd5ef83 | ||
|
|
fc9d6ae8b3 | ||
|
|
430d4e3888 | ||
|
|
2ce1de5f4c | ||
|
|
3345c43231 | ||
|
|
78b66c8909 | ||
|
|
386b08ac38 | ||
|
|
61e880da67 | ||
|
|
91f4e79db7 | ||
|
|
58707d73ba | ||
|
|
aa508b1322 | ||
|
|
121385623c | ||
|
|
4e1058ef10 | ||
|
|
70e6f66c60 | ||
|
|
3a0ac5f70e | ||
|
|
f21c11dde0 | ||
|
|
7a2a3a7ab0 | ||
|
|
41d477decd | ||
|
|
637ec23444 | ||
|
|
bbddc94a72 | ||
|
|
a4e5b2a101 | ||
|
|
bfdaf23c6d | ||
|
|
98bac0c1eb | ||
|
|
81d304fa37 | ||
|
|
fcbf70d7ca | ||
|
|
bffbd569a5 | ||
|
|
79cdcd61bf | ||
|
|
7327f9910d | ||
|
|
118ea7993d | ||
|
|
ed5a695d2c | ||
|
|
86456d833f | ||
|
|
f05272f2d0 | ||
|
|
383b7ef4f8 | ||
|
|
2874277aa4 | ||
|
|
8883466ef5 | ||
|
|
fdc6b32d8b | ||
|
|
81836873af | ||
|
|
3fa8eee9fe | ||
|
|
55d502d659 | ||
|
|
f6a99949c5 | ||
|
|
85126f1a7c | ||
|
|
bca4eea470 | ||
|
|
2b190dfe51 | ||
|
|
c4583ad3f0 | ||
|
|
79a9f4a292 | ||
|
|
112f730493 | ||
|
|
7313f3ad25 | ||
|
|
bbaaed2ec1 | ||
|
|
3737c9f4e2 | ||
|
|
90bc38c840 | ||
|
|
84b4396476 | ||
|
|
add78d6829 | ||
|
|
98d30bdc2c | ||
|
|
31355417a8 | ||
|
|
c3debb387d | ||
|
|
c53a88ee51 | ||
|
|
c2469ff520 | ||
|
|
70082e0f0f | ||
|
|
e9ea41fcfa | ||
|
|
014d9a339d | ||
|
|
4855694fd6 | ||
|
|
e480df5b1f | ||
|
|
0932463dfb | ||
|
|
65e376786f | ||
|
|
afe72aba83 | ||
|
|
bff2e71e55 | ||
|
|
966ae12699 | ||
|
|
843ef66728 | ||
|
|
8336a4c7ad | ||
|
|
1eff01d6f0 | ||
|
|
db8d1e7a8d | ||
|
|
c741ae3347 | ||
|
|
becd52f518 | ||
|
|
7ee4f2f735 | ||
|
|
3208188249 | ||
|
|
be445bcba6 | ||
|
|
3277bd4fa1 | ||
|
|
08b0b1b3e5 | ||
|
|
c46abc14ee |
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -33,6 +33,8 @@ If applicable, add screenshots to help explain your problem.
|
||||
- OS: [e.g. Mac OS, Ubuntu 20.04, etc]
|
||||
- Architecture [e.g. x64, ia32, arm64]
|
||||
- Version [e.g. 1.33.0]
|
||||
- App Manager [e.g. Winget, Homebrew, Snap, AUR, RPM, Nix, ...]
|
||||
- Sandboxed [e.g. no, Flatpak, Snap]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
280
.github/workflows/insider-linux.yml
vendored
Normal file
@@ -0,0 +1,280 @@
|
||||
name: insider-linux
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_version:
|
||||
type: string
|
||||
description: Forced release version
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 8 * * *'
|
||||
push:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
GITHUB_BRANCH: insider
|
||||
OS_NAME: linux
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
dependencies:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
|
||||
# - vscode_arch: arm64
|
||||
# image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Install remote dependencies (x64)
|
||||
env:
|
||||
npm_config_arch: x64
|
||||
run: ./install_remote_dependencies.sh
|
||||
if: matrix.vscode_arch == 'x64'
|
||||
|
||||
# - name: Install remote dependencies (arm64)
|
||||
# run: |
|
||||
# set -e
|
||||
# docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscodium vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64 /root/vscodium/install_remote_dependencies.sh
|
||||
# if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Save remote dependencies
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
path: ./remote-dependencies.tar
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- dependencies
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-arm64
|
||||
- vscode_arch: armhf
|
||||
npm_arch: armv7l
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-armhf
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Restore remote dependencies
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
aur:
|
||||
needs:
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- package_name: vscodium-insiders-bin
|
||||
- package_name: vscodium-insiders
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- name: Get version
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
|
||||
run: echo "PACKAGE_VERSION=${RELEASE_VERSION/-*/}" >> "${GITHUB_ENV}"
|
||||
|
||||
- name: Publish ${{ matrix.package_name }}
|
||||
uses: zokugun/github-actions-aur-releaser@v1
|
||||
with:
|
||||
package_name: ${{ matrix.package_name }}
|
||||
package_version: ${{ env.PACKAGE_VERSION }}
|
||||
aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }}
|
||||
aur_username: ${{ secrets.AUR_USERNAME }}
|
||||
aur_email: ${{ secrets.AUR_EMAIL }}
|
||||
|
||||
snap:
|
||||
needs:
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
APP_NAME: codium
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
# if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: insider
|
||||
|
||||
- name: Check version
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v1
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
with:
|
||||
path: stores/snapcraft/insider
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: snapcore/action-publish@master
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: edge
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
106
.github/workflows/insider-macos.yml
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
name: insider-macos
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_version:
|
||||
type: string
|
||||
description: Forced release version
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 8 * * *'
|
||||
push:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
GITHUB_BRANCH: insider
|
||||
OS_NAME: osx
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: macos-12
|
||||
vscode_arch: x64
|
||||
- runner: [self-hosted, macOS, ARM64]
|
||||
vscode_arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: insider
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Clone VSCode repo
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
env:
|
||||
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
|
||||
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Clean up keychain
|
||||
if: always()
|
||||
run: |
|
||||
KEYCHAIN=$RUNNER_TEMP/build.keychain
|
||||
|
||||
if [ -f "$KEYCHAIN" ];
|
||||
then
|
||||
security delete-keychain $KEYCHAIN
|
||||
fi
|
||||
68
.github/workflows/insider-spearhead.yml
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
name: insider-spearhead
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 7 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: [self-hosted, macOS, ARM64]
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
OS_NAME: osx
|
||||
VSCODE_ARCH: arm64
|
||||
VSCODE_LATEST: yes
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: insider
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: . check_tags.sh
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "value=$(node build/azure-pipelines/computeYarnCacheKey.js)" >> $GITHUB_OUTPUT
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Update insider.json
|
||||
run: ./update_insider.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
139
.github/workflows/insider-windows.yml
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
name: insider-windows
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_version:
|
||||
type: string
|
||||
description: Forced release version
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 8 * * *'
|
||||
push:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
GITHUB_BRANCH: insider
|
||||
OS_NAME: windows
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- ia32
|
||||
- arm64
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
winget:
|
||||
needs: build
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
APP_IDENTIFIER: VSCodium.VSCodium.Insiders
|
||||
ASSETS_REPOSITORY: vscodium-insiders
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Check version
|
||||
run: ./stores/winget/check_version.sh
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
|
||||
|
||||
- name: Release to WinGet
|
||||
uses: vedantmgoyal2009/winget-releaser@v1
|
||||
with:
|
||||
identifier: ${{ env.APP_IDENTIFIER }}
|
||||
version: ${{ env.RELEASE_VERSION }}
|
||||
release-repository: ${{ env.ASSETS_REPOSITORY }}
|
||||
release-tag: ${{ env.RELEASE_VERSION }}-insider
|
||||
installers-regex: '\.exe$' # only .exe files
|
||||
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
144
.github/workflows/linux.yml
vendored
@@ -1,144 +0,0 @@
|
||||
name: linux_build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
OS_NAME: 'linux'
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-arm64
|
||||
- vscode_arch: armhf
|
||||
npm_arch: armv7l
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-armhf
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: linux-${{ matrix.npm_arch }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: linux-${{ matrix.npm_arch }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
run: ./update_version.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
snap:
|
||||
needs: release
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Check version
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
SNAP_STORE_LOGIN: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
|
||||
- uses: docker/setup-qemu-action@v1
|
||||
with:
|
||||
image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
with:
|
||||
path: stores/snapcraft
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: snapcore/action-publish@v1
|
||||
with:
|
||||
store_login: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: stable
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
16
.github/workflows/lock.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: Lock Issues
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 2 * * *'
|
||||
|
||||
jobs:
|
||||
lock:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v3
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
issue-inactive-days: '90'
|
||||
pr-inactive-days: '90'
|
||||
log-output: true
|
||||
108
.github/workflows/macos.yml
vendored
@@ -1,108 +0,0 @@
|
||||
name: macos_build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
os: macOS-10.15
|
||||
# - vscode_arch: arm64
|
||||
# os: macOS-11
|
||||
|
||||
env:
|
||||
OS_NAME: "osx"
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Sign binary
|
||||
env:
|
||||
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
|
||||
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: |
|
||||
if [ -d "VSCode-darwin-${VSCODE_ARCH}" ]; then # just in case the build failed
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
export CERTIFICATE_P12=VSCodium.p12
|
||||
echo $CERTIFICATE_OSX_P12 | base64 --decode > $CERTIFICATE_P12
|
||||
export KEYCHAIN=build.keychain
|
||||
security create-keychain -p mysecretpassword $KEYCHAIN
|
||||
security default-keychain -s $KEYCHAIN
|
||||
security unlock-keychain -p mysecretpassword $KEYCHAIN
|
||||
security import $CERTIFICATE_P12 -k $KEYCHAIN -P $CERTIFICATE_OSX_PASSWORD -T /usr/bin/codesign
|
||||
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
|
||||
codesign --deep --force --verbose --sign "$CERTIFICATE_OSX_ID" VSCodium.app
|
||||
fi
|
||||
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./update_version.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
|
||||
277
.github/workflows/stable-linux.yml
vendored
Normal file
@@ -0,0 +1,277 @@
|
||||
name: stable-linux
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
OS_NAME: linux
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
dependencies:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
|
||||
# - vscode_arch: arm64
|
||||
# image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Install remote dependencies (x64)
|
||||
env:
|
||||
npm_config_arch: x64
|
||||
run: ./install_remote_dependencies.sh
|
||||
if: matrix.vscode_arch == 'x64'
|
||||
|
||||
# - name: Install remote dependencies (arm64)
|
||||
# run: |
|
||||
# set -e
|
||||
# docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscodium vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64 /root/vscodium/install_remote_dependencies.sh
|
||||
# if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Save remote dependencies
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
path: ./remote-dependencies.tar
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- dependencies
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-arm64
|
||||
- vscode_arch: armhf
|
||||
npm_arch: armv7l
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-armhf
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Restore remote dependencies
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
aur:
|
||||
needs:
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- package_name: vscodium
|
||||
package_type: stable
|
||||
- package_name: vscodium-git
|
||||
package_type: rolling
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- name: Publish ${{ matrix.package_name }}
|
||||
uses: zokugun/github-actions-aur-releaser@v1
|
||||
with:
|
||||
package_name: ${{ matrix.package_name }}
|
||||
package_type: ${{ matrix.package_type }}
|
||||
aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }}
|
||||
aur_username: ${{ secrets.AUR_USERNAME }}
|
||||
aur_email: ${{ secrets.AUR_EMAIL }}
|
||||
|
||||
snap:
|
||||
needs:
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
APP_NAME: codium
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Check version
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v1
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
with:
|
||||
path: stores/snapcraft/stable
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: snapcore/action-publish@master
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: stable
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
deb-rpm-repo-hook:
|
||||
needs:
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
env:
|
||||
GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }}
|
||||
run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline
|
||||
97
.github/workflows/stable-macos.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
name: stable-macos
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
OS_NAME: osx
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: macos-12
|
||||
vscode_arch: x64
|
||||
- runner: [self-hosted, macOS, ARM64]
|
||||
vscode_arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
env:
|
||||
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
|
||||
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Clean up keychain
|
||||
if: always()
|
||||
run: |
|
||||
KEYCHAIN=$RUNNER_TEMP/build.keychain
|
||||
|
||||
if [ -f "$KEYCHAIN" ];
|
||||
then
|
||||
security delete-keychain $KEYCHAIN
|
||||
fi
|
||||
127
.github/workflows/stable-windows.yml
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
name: stable-windows
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
OS_NAME: windows
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- ia32
|
||||
- arm64
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
winget:
|
||||
needs: build
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
APP_IDENTIFIER: VSCodium.VSCodium
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Check version
|
||||
run: ./stores/winget/check_version.sh
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
|
||||
|
||||
- name: Release to WinGet
|
||||
uses: vedantmgoyal2009/winget-releaser@v1
|
||||
with:
|
||||
identifier: ${{ env.APP_IDENTIFIER }}
|
||||
version: ${{ env.RELEASE_VERSION }}
|
||||
release-tag: ${{ env.RELEASE_VERSION }}
|
||||
installers-regex: '\.exe$' # only .exe files
|
||||
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
25
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Stale Issues
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 1 * * *'
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v6
|
||||
with:
|
||||
days-before-stale: 180
|
||||
days-before-close: 30
|
||||
stale-issue-label: stale
|
||||
operations-per-run: 1024
|
||||
stale-issue-message: >
|
||||
This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment!
|
||||
close-issue-message: >
|
||||
This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue.
|
||||
exempt-issue-labels: discussion
|
||||
only-pr-labels: not-a-real-label
|
||||
95
.github/workflows/windows.yml
vendored
@@ -1,95 +0,0 @@
|
||||
name: windows_build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
runs-on: windows-2016
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
OS_NAME: 'windows'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch: [x64, ia32, arm64]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 2
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '2.x'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./update_version.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
|
||||
12
.gitignore
vendored
@@ -1,10 +1,16 @@
|
||||
vscode
|
||||
vscode*
|
||||
VS*/*
|
||||
VSCode*
|
||||
VSCodium*
|
||||
.DS_Store
|
||||
*.env
|
||||
assets/
|
||||
build/linux/appimage/out
|
||||
build/linux/appimage/pkg2appimage.AppDir
|
||||
build/linux/appimage/pkg2appimage-*.AppImage
|
||||
build/linux/appimage/squashfs-root
|
||||
build/linux/appimage/VSCodium
|
||||
build/windows/msi/releasedir
|
||||
build/windows/rtf/Readme (Abridged).txt
|
||||
build/windows/rtf/TXT to RTF Converter.exe
|
||||
build/windows/msi/Files*.wxs
|
||||
build/windows/msi/Files*.wixobj
|
||||
remote-dependencies.tar
|
||||
|
||||
@@ -2,45 +2,122 @@
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at vscodium@protonmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
vscodium@protonmail.com.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
|
||||
54
DOCS.md
@@ -5,7 +5,9 @@
|
||||
- [Getting all the Telemetry Out](#disable-telemetry)
|
||||
- [Replacements to Microsoft Online Services](#replacement-online-services)
|
||||
- [Extensions + Marketplace](#extensions-marketplace)
|
||||
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
|
||||
- [How to use the VS Code Marketplace](#howto-vscode-marketplace)
|
||||
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||
@@ -43,44 +45,72 @@ Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Exten
|
||||
|
||||
## <a id="extensions-marketplace"></a>Extensions + Marketplace
|
||||
|
||||
The `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
|
||||
Being a vscode based editor, VSCodium gets additional features by installing VS Code extensions.
|
||||
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use VS Code extensions in non-Microsoft products those need to be installed differently.
|
||||
|
||||
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
|
||||
|
||||
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
|
||||
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix).
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
|
||||
|
||||
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
|
||||
|
||||
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
|
||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||
|
||||
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
|
||||
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
|
||||
|
||||
You can switch and use the VS Code marketplace by using the following solutions. However, note that [it is not clear whether this is legal](https://github.com/microsoft/vscode/issues/31168).
|
||||
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
|
||||
These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
|
||||
|
||||
With the following environment variables:
|
||||
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
|
||||
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
|
||||
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
|
||||
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
|
||||
- `VSCODE_GALLERY_CONTROL_URL=''`
|
||||
- `VSCODE_GALLERY_RECOMMENDATIONS_URL=''`
|
||||
|
||||
Or by creating a custom `product.json` at the following location:
|
||||
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
with the content:
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
{
|
||||
"extensionsGallery": {
|
||||
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
|
||||
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
|
||||
"itemUrl": "https://marketplace.visualstudio.com/items",
|
||||
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", // set to empty string for every other extension gallery
|
||||
"controlUrl": "",
|
||||
"recommendationsUrl": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
|
||||
|
||||
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery. In all of these cases you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
|
||||
|
||||
There are likely other options, but the following were reported to work:
|
||||
|
||||
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
|
||||
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
|
||||
|
||||
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
|
||||
|
||||
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
|
||||
|
||||
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
|
||||
|
||||
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
|
||||
|
||||
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
|
||||
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicit forbid to use them in non-Microsoft products, along with using telemetry.
|
||||
|
||||
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
|
||||
|
||||
|
||||
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
@@ -91,7 +121,7 @@ A workaround exists to get debugging working in C# projects, by using Samsung's
|
||||
|
||||
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
"extensionAllowedProposedApi": [
|
||||
// ...
|
||||
"ms-vscode-remote.vscode-remote-extensionpack",
|
||||
@@ -161,7 +191,7 @@ inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
|
||||
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
|
||||
|
||||
```bash
|
||||
$ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
|
||||
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
70
README.md
@@ -1,6 +1,6 @@
|
||||
<div id="vscodium-logo" align="center">
|
||||
<br />
|
||||
<img src="./src/resources/linux/code.png" alt="VSCodium Logo" width="200"/>
|
||||
<img src="./src/stable/resources/linux/code.png" alt="VSCodium Logo" width="200"/>
|
||||
<h1>VSCodium</h1>
|
||||
<h3>Free/Libre Open Source Software Binaries of VS Code</h3>
|
||||
</div>
|
||||
@@ -8,17 +8,21 @@
|
||||
<div id="badges" align="center">
|
||||
|
||||
[](https://github.com/vscodium/vscodium/releases)
|
||||
[](https://dev.azure.com/vscodium/VSCodium/_build?definitionId=1)
|
||||
[](https://github.com/VSCodium/vscodium/blob/master/LICENSE)
|
||||
[](https://gitter.im/VSCodium/Lobby)
|
||||
[](https://snapcraft.io/codium)
|
||||
[](https://snapcraft.io/codium)
|
||||
|
||||
[](https://github.com/VSCodium/vscodium/actions/workflows/linux.yml?query=branch%3Amaster)
|
||||
[](https://github.com/VSCodium/vscodium/actions/workflows/macos.yml?query=branch%3Amaster)
|
||||
[](https://github.com/VSCodium/vscodium/actions/workflows/windows.yml?query=branch%3Amaster)
|
||||
|
||||
</div>
|
||||
|
||||
**This is not a fork. This is a repository of scripts to automatically build Microsoft's `vscode` repository into freely-licensed binaries with a community-driven default configuration.**
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Download/Install](#download-install)
|
||||
- [Install with Brew](#install-with-brew)
|
||||
- [Install with Windows Package Manager (WinGet)](#install-with-winget)
|
||||
@@ -34,31 +38,36 @@
|
||||
- [Supported Platforms](#supported-platforms)
|
||||
|
||||
## <a id="download-install"></a>Download/Install
|
||||
|
||||
:tada: :tada: [Download latest release here](https://github.com/VSCodium/vscodium/releases) :tada: :tada:
|
||||
|
||||
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/DOCS.md)
|
||||
|
||||
#### <a id="install-with-brew"></a>Install with Brew (Mac)
|
||||
|
||||
If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
|
||||
```bash
|
||||
brew install --cask vscodium
|
||||
```
|
||||
|
||||
_Note for Mac macOS Mojave users: if you see "App can't be opened because Apple cannot check it for malicious software" when opening VSCodium the first time, you can right-click the application and choose Open. This should only be required the first time opening on Mojave._
|
||||
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/wiki/Troubleshooting#macos).*
|
||||
|
||||
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
|
||||
|
||||
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
|
||||
```bash
|
||||
winget install vscodium
|
||||
```
|
||||
|
||||
#### <a id="install-with-choco"></a>Install with Chocolatey (Windows)
|
||||
|
||||
If you use Windows and have [Chocolatey](https://chocolatey.org) installed (thanks to [@Thilas](https://github.com/Thilas)):
|
||||
```bash
|
||||
choco install vscodium
|
||||
```
|
||||
|
||||
#### <a id="install-with-scoop"></a>Install with Scoop (Windows)
|
||||
|
||||
If you use Windows and have [Scoop](https://scoop.sh) installed:
|
||||
```bash
|
||||
scoop bucket add extras
|
||||
@@ -66,6 +75,7 @@ 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.
|
||||
If your GNU/Linux distribution has support for [snaps](https://snapcraft.io/docs/installing-snapd):
|
||||
```bash
|
||||
@@ -73,12 +83,15 @@ 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.
|
||||
|
||||
#### <a id="install-on-arch-linux"></a>Install on Arch Linux
|
||||
|
||||
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@binex-dsk](https://github.com/binex-dsk). An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
|
||||
|
||||
#### <a id="flatpak"></a>Flatpak Option (GNU/Linux)
|
||||
|
||||
VSCodium is (unofficially) available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium). If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
|
||||
```bash
|
||||
flatpak install flathub com.vscodium.codium
|
||||
@@ -87,9 +100,11 @@ flatpak run com.vscodium.codium
|
||||
```
|
||||
|
||||
## <a id="build"></a>Build
|
||||
|
||||
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
|
||||
|
||||
## <a id="why"></a>Why Does This Exist
|
||||
|
||||
This repository contains build files to generate free release binaries of Microsoft's VS Code. When we speak of "free software", we're talking about freedom, not price.
|
||||
|
||||
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
|
||||
@@ -102,13 +117,12 @@ This repo exists so that you don't have to download+build from source. The build
|
||||
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VS Code.
|
||||
|
||||
Microsoft's build process (which we are running to build the binaries) does download additional files. This was brought up in [Microsoft/vscode#141340](https://github.com/Microsoft/vscode/issues/141340) and [Microsoft/vscode#45978](https://github.com/Microsoft/vscode/issues/45978). These are the packages downloaded during build:
|
||||
Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:
|
||||
|
||||
- Extensions from the Microsoft Marketplace:
|
||||
- [ms-vscode.references-view](https://marketplace.visualstudio.com/items?itemName=ms-vscode.references-view)
|
||||
- [ms-vscode.js-debug-companion](https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug-companion)
|
||||
- [ms-vscode.js-debug](https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug)
|
||||
- [ms-vscode.vscode-js-profile-table](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-js-profile-table)
|
||||
- Pre-built extensions from the GitHub:
|
||||
- [ms-vscode.js-debug-companion](https://github.com/microsoft/vscode-js-debug-companion)
|
||||
- [ms-vscode.js-debug](https://github.com/microsoft/vscode-js-debug)
|
||||
- [ms-vscode.vscode-js-profile-table](https://github.com/microsoft/vscode-js-profile-visualizer)
|
||||
- From [Electron releases](https://github.com/electron/electron/releases) (using [gulp-atom-electron](https://github.com/joaomoreno/gulp-atom-electron))
|
||||
- electron
|
||||
- ffmpeg
|
||||
@@ -116,36 +130,60 @@ Microsoft's build process (which we are running to build the binaries) does down
|
||||
## <a id="more-info"></a>More Info
|
||||
|
||||
### Documentation
|
||||
|
||||
For more information on getting all the telemetry disabled and tips for migrating from Visual Studio Code to VSCodium, have a look at this [Docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) page.
|
||||
|
||||
### Extensions and the Marketplace
|
||||
|
||||
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#extensions-marketplace) section on the Docs page for more details.
|
||||
|
||||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
|
||||
|
||||
### How are the VSCodium binaries built?
|
||||
|
||||
If you would like to see the commands we run to build `vscode` into VSCodium binaries, have a look at the workflow files in `.github/workflows` for Windows, GNU/Linux and macOS. These build files call all the other scripts in the repo. If you find something that doesn't make sense, feel free to ask about it [on Gitter](https://gitter.im/VSCodium/Lobby).
|
||||
|
||||
The builds are run every day, but exit early if there isn't a new release from Microsoft.
|
||||
|
||||
## <a id="supported-platforms"></a>Supported Platforms
|
||||
The minimal version is limited by the core component Electron, you may want to check its [supported platform list](https://www.electronjs.org/docs/tutorial/support#supported-platforms).
|
||||
|
||||
The minimal version is limited by the core component Electron, you may want to check its [platform prerequisites](https://www.electronjs.org/docs/latest/development/build-instructions-gn#platform-prerequisites).
|
||||
- [x] macOS (`zip`, `dmg`) OS X 10.10 or newer x64
|
||||
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64 via x64 emulation, see [status issue](https://github.com/VSCodium/vscodium/issues/597)
|
||||
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64
|
||||
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `tar.gz`)
|
||||
- [x] GNU/Linux x86 (`deb`, `rpm`, `tar.gz`) ([up to v1.35.1](https://code.visualstudio.com/updates/v1_36#_linux-32bit-support-ends))
|
||||
- [x] GNU/Linux arm64 (`deb`, `tar.gz`)
|
||||
- [x] GNU/Linux armhf (`deb`, `tar.gz`)
|
||||
- [x] Windows 7 or newer x64
|
||||
- [x] Windows 7 or newer x86
|
||||
- [x] Windows 10 arm64
|
||||
- [x] Windows 10 / Server 2012 R2 or newer x64
|
||||
- [x] Windows 10 / Server 2012 R2 or newer x86
|
||||
- [x] Windows 10 / Server 2012 R2 or newer arm64
|
||||
|
||||
|
||||
## <a id="donate"></a>Donate
|
||||
|
||||
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N`.
|
||||
|
||||
Special thanks to:
|
||||
- @estatra for the latest logo
|
||||
- @jaredreich for the previous logo
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>@estatra</td>
|
||||
<td>for the latest logo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/jaredreich" target="_blank">@jaredreich</a></td>
|
||||
<td>for the previous logo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/PalinuroSec" target="_blank">@PalinuroSec</a></td>
|
||||
<td>for CDN and domain name</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://www.macstadium.com" target="_blank"><img src="https://images.prismic.io/macstadium/66fbce64-707e-41f3-b547-241908884716_MacStadium_Logo.png?w=128&q=75" width="128" height="49" alt="MacStadium logo" /></a></td>
|
||||
<td>for providing a Mac mini M1</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## <a id="license"></a>License
|
||||
|
||||
[MIT](https://github.com/VSCodium/vscodium/blob/master/LICENSE)
|
||||
|
||||
7
announcements-builtin.json
Normal file
@@ -0,0 +1,7 @@
|
||||
[
|
||||
{
|
||||
"id": "#1218",
|
||||
"title": "💡 Discussion: New icon",
|
||||
"url": "https://github.com/VSCodium/vscodium/discussions/1218"
|
||||
}
|
||||
]
|
||||
12
announcements-extra.json
Normal file
@@ -0,0 +1,12 @@
|
||||
[
|
||||
{
|
||||
"id": "#1227",
|
||||
"title": "🐛 Issue: Update to `1.71.0`",
|
||||
"url": "https://github.com/VSCodium/vscodium/issues/1227"
|
||||
},
|
||||
{
|
||||
"id": "#1264",
|
||||
"title": "🐛 Issue: Support for Windows 7",
|
||||
"url": "https://github.com/VSCodium/vscodium/issues/1264"
|
||||
}
|
||||
]
|
||||
55
build.sh
@@ -2,14 +2,21 @@
|
||||
|
||||
set -ex
|
||||
|
||||
if [ -f "./remote-dependencies.tar" ]; then
|
||||
tar -xf ./remote-dependencies.tar ./vscode/remote/node_modules
|
||||
fi
|
||||
|
||||
. version.sh
|
||||
|
||||
if [[ "${SHOULD_BUILD}" == "yes" ]]; then
|
||||
npm config set scripts-prepend-node-path true
|
||||
npm config set node_gyp
|
||||
|
||||
echo "MS_COMMIT: ${MS_COMMIT}"
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
|
||||
. prepare_vscode.sh
|
||||
|
||||
cd vscode || exit
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
yarn monaco-compile-check
|
||||
yarn valid-layers-check
|
||||
@@ -21,49 +28,31 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
find "../VSCode-darwin-${VSCODE_ARCH}" -exec touch {} \;
|
||||
|
||||
VSCODE_PLATFORM="darwin"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
|
||||
if [[ "${VSCODE_ARCH}" != "ia32" && "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
. ../build/windows/msi/build.sh
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
. ../build/windows/msi/build-updates-disabled.sh
|
||||
fi
|
||||
fi
|
||||
VSCODE_PLATFORM="win32"
|
||||
else # linux
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ "${SKIP_LINUX_PACKAGES}" != "True" ]]; then
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
|
||||
fi
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -exec touch {} \;
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
|
||||
fi
|
||||
VSCODE_PLATFORM="linux"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
. ../build/linux/appimage/build.sh
|
||||
fi
|
||||
fi
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1
|
||||
# powershell -ExecutionPolicy ByPass -File .\build\build.ps1
|
||||
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
bash ./build/build_windows.sh
|
||||
bash ./build/build.sh
|
||||
91
build/build.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
### Windows
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
|
||||
###
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export CI_BUILD="no"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_BUILD="no"
|
||||
export SKIP_ASSETS="yes"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilop" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
o)
|
||||
export SKIP_BUILD="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "${OSTYPE}" in
|
||||
darwin*)
|
||||
export OS_NAME="osx"
|
||||
;;
|
||||
msys* | cygwin*)
|
||||
export OS_NAME="windows"
|
||||
;;
|
||||
*)
|
||||
export OS_NAME="linux"
|
||||
;;
|
||||
esac
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
export VSCODE_ARCH="arm64"
|
||||
else
|
||||
export VSCODE_ARCH="x64"
|
||||
fi
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
if [[ "${SKIP_BUILD}" == "no" ]]; then
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. version.sh
|
||||
|
||||
# save variables for later
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
|
||||
|
||||
. build.sh
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" && "${VSCODE_LATEST}" == "yes" ]]; then
|
||||
echo "$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )" > "insider.json"
|
||||
fi
|
||||
else
|
||||
. build.env
|
||||
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
if [[ "${OS_NAME}" == "windows" ]]; then
|
||||
rm -rf build/windows/msi/releasedir
|
||||
fi
|
||||
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
57
build/build_docker.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
exists() { type -t "$1" > /dev/null 2>&1; }
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export CI_BUILD="no"
|
||||
export OS_NAME="linux"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! exists yarn; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
fi
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then
|
||||
export VSCODE_ARCH="x64"
|
||||
else
|
||||
export npm_config_arch=armv7l
|
||||
export npm_config_force_process_config="true"
|
||||
export VSCODE_ARCH="armhf"
|
||||
fi
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. build.sh
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
|
||||
./get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=linux VSCODE_ARCH=x64 ./build.sh
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=osx VSCODE_ARCH=x64 . build.sh
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build_windows.sh
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
rm -rf build/windows/msi/releasedir
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=windows VSCODE_ARCH=x64 . build.sh
|
||||
@@ -6,8 +6,17 @@ CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
if [[ "$VSCODE_ARCH" == "x64" ]]; then
|
||||
wget -c https://github.com/$(wget -q https://github.com/AppImage/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
GITHUB_RESPONSE=$( curl --silent --location "https://api.github.com/repos/AppImage/pkg2appimage/releases/latest" )
|
||||
APPIMAGE_URL=$( echo "${GITHUB_RESPONSE}" | jq --raw-output '.assets | map(select( .name | test("x86_64.AppImage(?!.zsync)"))) | map(.browser_download_url)[0]' )
|
||||
|
||||
if [[ -z "${APPIMAGE_URL}" ]]; then
|
||||
echo "The url for pkg2appimage.AppImage hasn't been found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
wget -c "${APPIMAGE_URL}"
|
||||
|
||||
chmod +x ./pkg2appimage-*.AppImage
|
||||
|
||||
./pkg2appimage-*.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
|
||||
@@ -18,11 +27,21 @@ if [[ "$VSCODE_ARCH" == "x64" ]]; then
|
||||
# remove check so build in docker can succeed
|
||||
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
sed -i 's|@@NAME@@|VSCodium-Insiders|g' recipe.yml
|
||||
sed -i 's|@@APPNAME@@|codium-insiders|g' recipe.yml
|
||||
sed -i 's|@@ICON@@|vscodium-insiders|g' recipe.yml
|
||||
else
|
||||
sed -i 's|@@NAME@@|VSCodium|g' recipe.yml
|
||||
sed -i 's|@@APPNAME@@|codium|g' recipe.yml
|
||||
sed -i 's|@@ICON@@|vscodium|g' recipe.yml
|
||||
fi
|
||||
|
||||
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
|
||||
|
||||
rm -f pkg2appimage-*.AppImage
|
||||
rm -rf pkg2appimage.AppDir
|
||||
rm -rf VSCodium
|
||||
rm -rf VSCodium*
|
||||
fi
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
|
||||
# bash -ex pkg2appimage VSCodium
|
||||
|
||||
app: VSCodium
|
||||
app: @@NAME@@
|
||||
|
||||
ingredients:
|
||||
packages:
|
||||
@@ -17,20 +17,21 @@ ingredients:
|
||||
script:
|
||||
- pwd
|
||||
- cp ../../../../vscode/.build/linux/deb/amd64/deb/*.deb .
|
||||
- ls codium_*.deb | cut -d _ -f 2 > VERSION
|
||||
- ls @@APPNAME@@_*.deb | cut -d _ -f 2 > VERSION
|
||||
|
||||
script:
|
||||
- sed -i -e 's|/usr/share/pixmaps/||g' usr/share/applications/codium.desktop
|
||||
- cp usr/share/applications/codium.desktop .
|
||||
- cp usr/share/pixmaps/vscodium.png .
|
||||
- /usr/bin/convert vscodium.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/vscodium.png
|
||||
- ( cd usr/bin/ ; ln -s ../share/codium/codium . )
|
||||
- sed -i -e 's|/usr/share/pixmaps/||g' usr/share/applications/@@APPNAME@@.desktop
|
||||
- cp usr/share/applications/@@APPNAME@@.desktop .
|
||||
- cp usr/share/pixmaps/@@ICON@@.png .
|
||||
- /usr/bin/convert @@ICON@@.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/@@ICON@@.png
|
||||
- /usr/bin/convert @@ICON@@.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/@@ICON@@.png
|
||||
- /usr/bin/convert @@ICON@@.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/@@ICON@@.png
|
||||
- /usr/bin/convert @@ICON@@.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/@@ICON@@.png
|
||||
- /usr/bin/convert @@ICON@@.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/@@ICON@@.png
|
||||
- /usr/bin/convert @@ICON@@.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/@@ICON@@.png
|
||||
- ( cd usr/bin/ ; ln -s ../share/@@APPNAME@@/@@APPNAME@@ . )
|
||||
- rm -rf usr/lib/x86_64-linux-gnu
|
||||
- rm -f lib/x86_64-linux-gnu/libglib*
|
||||
- cat > AppRun <<\EOF
|
||||
- #!/bin/sh
|
||||
- HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
|
||||
35
build/update_api.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
URL=`curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/VERSION" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/'`
|
||||
# echo "url: ${URL}"
|
||||
FILE=`echo "${URL}" | sed -E 's|.*/([^/]+\.zip)$|\1|'`
|
||||
# echo "file: ${FILE}"
|
||||
DIRECTORY=`echo "${URL}" | sed -E 's|.*/([^/]+)\.zip$|\1|'`
|
||||
# echo "directory: ${DIRECTORY}"
|
||||
|
||||
if [[ ! -f "${FILE}" ]]; then
|
||||
wget "${URL}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${DIRECTORY}" ]]; then
|
||||
unzip "${FILE}" -d "${DIRECTORY}"
|
||||
fi
|
||||
|
||||
APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'`
|
||||
|
||||
APIS=`echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribViewsRemote"]}'`
|
||||
|
||||
cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json
|
||||
50
build/update_patches.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
for FILE in ../patches/*.patch; do
|
||||
if [ -f "${FILE}" ]; then
|
||||
echo applying patch: "${FILE}"
|
||||
git apply --ignore-whitespace "${FILE}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch "${FILE}"
|
||||
git apply --reject "${FILE}"
|
||||
read -p "Press any key when the conflict have been resolved..." -n1 -s
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
fi
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for FILE in ../patches/insider/*.patch; do
|
||||
if [ -f "${FILE}" ]; then
|
||||
echo applying patch: "${FILE}"
|
||||
git apply --ignore-whitespace "${FILE}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch "${FILE}"
|
||||
git apply --reject "${FILE}"
|
||||
read -p "Press any key when the conflict have been resolved..." -n1 -s
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
fi
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@@ -8,7 +8,7 @@ cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
SCRIPT_DIR=$( pwd )
|
||||
|
||||
cd ../../../VSCode-win32-${VSCODE_ARCH}/resources/app
|
||||
cd "../../../VSCode-win32-${VSCODE_ARCH}/resources/app"
|
||||
|
||||
cp product.json product.json.bak
|
||||
cat product.json.bak | jq "del(.updateUrl)" > product.json
|
||||
@@ -16,6 +16,6 @@ rm -f product.json.bak
|
||||
|
||||
cd "${SCRIPT_DIR}"
|
||||
|
||||
. build.sh "updates-disabled"
|
||||
./build.sh "updates-disabled"
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
|
||||
@@ -9,8 +9,22 @@ cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
WIN_SDK_MAJOR_VERSION="10"
|
||||
WIN_SDK_FULL_VERSION="10.0.17763.0"
|
||||
|
||||
PRODUCT_NAME="VSCodium"
|
||||
PRODUCT_SKU="vscodium"
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
PRODUCT_NAME="VSCodium - Insiders"
|
||||
PRODUCT_SKU="vscodium-insiders"
|
||||
PRODUCT_CODE="VSCodiumInsiders"
|
||||
PRODUCT_UPGRADE_CODE="1C9B7195-5A9A-43B3-B4BD-583E20498467"
|
||||
ICON_DIR="..\\..\\..\\src\\insider\\resources\\win32"
|
||||
SETUP_RESOURCES_DIR=".\\resources\\insider"
|
||||
else
|
||||
PRODUCT_NAME="VSCodium"
|
||||
PRODUCT_SKU="vscodium"
|
||||
PRODUCT_CODE="VSCodium"
|
||||
PRODUCT_UPGRADE_CODE="965370CD-253C-4720-82FC-2E6B02A53808"
|
||||
ICON_DIR="..\\..\\..\\src\\stable\\resources\\win32"
|
||||
SETUP_RESOURCES_DIR=".\\resources\\stable"
|
||||
fi
|
||||
|
||||
PRODUCT_ID=$( powershell.exe -command "[guid]::NewGuid().ToString().ToUpper()" )
|
||||
PRODUCT_ID="${PRODUCT_ID%%[[:cntrl:]]}"
|
||||
|
||||
@@ -18,16 +32,14 @@ CULTURE="en-us"
|
||||
LANGIDS="1033"
|
||||
|
||||
SETUP_RELEASE_DIR=".\\releasedir"
|
||||
SETUP_RESOURCES_DIR=".\\resources"
|
||||
BINARY_DIR="..\\..\\..\\VSCode-win32-${VSCODE_ARCH}"
|
||||
ICON_DIR="..\\..\\..\\src\\resources\\win32"
|
||||
LICENSE_DIR="..\\..\\..\\vscode"
|
||||
PROGRAM_FILES_86=$( env | sed -n 's/^ProgramFiles(x86)=//p' )
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-${MS_TAG}"
|
||||
if [[ -z "${1}" ]]; then
|
||||
OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${RELEASE_VERSION}"
|
||||
else
|
||||
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-$1-${MS_TAG}"
|
||||
OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${1}-${RELEASE_VERSION}"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" ]]; then
|
||||
@@ -36,32 +48,36 @@ else
|
||||
export PLATFORM="${VSCODE_ARCH}"
|
||||
fi
|
||||
|
||||
sed -i "s|@@PRODUCT_UPGRADE_CODE@@|${PRODUCT_UPGRADE_CODE}|g" .\\includes\\vscodium-variables.wxi
|
||||
sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" .\\vscodium.xsl
|
||||
|
||||
find i18n -name '*.wxl' -exec sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" {} \;
|
||||
|
||||
BuildSetupTranslationTransform() {
|
||||
local CULTURE=$1
|
||||
local LANGID=$2
|
||||
local CULTURE=${1}
|
||||
local LANGID=${2}
|
||||
|
||||
LANGIDS="${LANGIDS},${LANGID}"
|
||||
|
||||
echo "Building setup translation for culture \"${CULTURE}\" with LangID \"${LANGID}\"..."
|
||||
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi Product "${LANGID}"
|
||||
|
||||
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" Product "${LANGID}"
|
||||
|
||||
"${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\x86\\msitran" -g "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst "${LANGID}"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst" "${LANGID}"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi"
|
||||
|
||||
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi"
|
||||
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
|
||||
}
|
||||
|
||||
"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.AppName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
|
||||
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dAppName=${PRODUCT_NAME} -dProductVersion="${MS_TAG}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.ManufacturerName -var var.AppName -var var.AppCodeName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
|
||||
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dManufacturerName="VSCodium" -dAppCodeName="${PRODUCT_CODE}" -dAppName="${PRODUCT_NAME}" -dProductVersion="${RELEASE_VERSION%-insider}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
BuildSetupTranslationTransform de-de 1031
|
||||
BuildSetupTranslationTransform es-es 3082
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="de-de" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1031</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Paket mit VSCodium</String>
|
||||
<String Id="PackageDescription">Paket mit @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Startmenü-Verknüpfung</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Startmenü-Symbol erstellen.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop-Verknüpfung</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Desktop-Symbol erstellen.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">Dateizuordnungen</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">VSCodium als Editor für unterstützte Dateitypen registrieren.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">@@PRODUCT_NAME@@ als Editor für unterstützte Dateitypen registrieren.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Dateikontextmenü</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit VSCodium öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit @@PRODUCT_NAME@@ öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Verzeichniskontextmenü</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit VSCodium öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit @@PRODUCT_NAME@@ öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Zu PATH hinzufügen</String>
|
||||
<String Id="FeatureEnvironmentDescription">VSCodium zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
|
||||
<String Id="LaunchApplication">VSCodium ausführen</String>
|
||||
<String Id="NewerVersionInstalled">Eine neuere Version von VSCodium ist bereits installiert.</String>
|
||||
<String Id="FeatureEnvironmentDescription">@@PRODUCT_NAME@@ zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
|
||||
<String Id="LaunchApplication">@@PRODUCT_NAME@@ ausführen</String>
|
||||
<String Id="NewerVersionInstalled">Eine neuere Version von @@PRODUCT_NAME@@ ist bereits installiert.</String>
|
||||
<String Id="MinimumNetFramworkRequired">Diese Anwendung erfordert .NET Framework 4.5.2 oder höher. Bitte installieren Sie .NET Framework und führen Sie dieses Installationsprogramm erneut aus.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 oder neuer ist erforderlich.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1033</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="es-es" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">3082</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="fr-fr" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1036</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="it-it" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1040</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ja-jp" Codepage="932" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1041</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ko-kr" Codepage="949" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1042</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ru-ru" Codepage="1251" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1049</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
<String Id="PackageDescription">Пакет с @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Ярлык в меню «Пуск»</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Создайте значок в меню «Пуск».</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Ярлык рабочего стола</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Создать значок на рабочем столе.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">Ассоциации файлов</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Зарегистрировать @@PRODUCT_NAME@@ в качестве редактора поддерживаемых типов файлов.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Контекстное меню файлов</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Добавить действие «Открыть с помощью @@PRODUCT_NAME@@» в контекстное меню файлов Проводника Windows.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Контекстное меню каталога</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Добавить действие «Открыть с помощью @@PRODUCT_NAME@@» в контекстное меню каталога Проводника Windows.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Добавить в PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Добавить @@PRODUCT_NAME@@ в переменную среды PATH. Доступно после перезапуска.</String>
|
||||
<String Id="LaunchApplication">Запустить @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Новая версия @@PRODUCT_NAME@@ уже установлена.</String>
|
||||
<String Id="MinimumNetFramworkRequired">Приложению требуется .NET Framework 4.5.2 или более новая версии. Пожалуйста, установите .NET Framework, затем снова запустите установщик.</String>
|
||||
<String Id="OSVersionRequired">Требуется Windows 7 или более новая версия.</String>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="zh-cn" Codepage="936" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">2052</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="zh-tw" Codepage="950" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1028</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductName">@@PRODUCT_NAME@@</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
</WixLocalization>
|
||||
|
||||
@@ -11,17 +11,14 @@
|
||||
<?define Arch="(x64)" ?>
|
||||
<?endif?>
|
||||
|
||||
<!-- <?define ProductVersion="$(var.ProductVersion)" ?> -->
|
||||
<?define ProductName="!(loc.ProductName)" ?>
|
||||
<?define ProductNameWithVersion="!(loc.ProductName) $(var.ProductVersion) $(var.Arch)" ?>
|
||||
<?define ProductLanguage="!(loc.ProductLanguage)" ?>
|
||||
<?define AppCodeName="$(var.AppName)" ?>
|
||||
<!-- <?define AppName="$(var.AppName)" ?> -->
|
||||
<?define AppFolderName="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerShort="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerLong="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerShort="$(var.ManufacturerName)" ?>
|
||||
<?define ProductManufacturerLong="$(var.ManufacturerName)" ?>
|
||||
|
||||
<!-- Static settings, DO NOT TOUCH or upgrades will break! -->
|
||||
<?define ProductUpgradeCode="{965370CD-253C-4720-82FC-2E6B02A53808}" ?>
|
||||
<?define ProductUpgradeCode="{@@PRODUCT_UPGRADE_CODE@@}" ?>
|
||||
<?define RTMProductVersion="0.0.1" ?>
|
||||
</Include>
|
||||
</Include>
|
||||
|
||||
BIN
build/windows/msi/resources/insider/wix-banner.bmp
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
build/windows/msi/resources/insider/wix-dialog.bmp
Normal file
|
After Width: | Height: | Size: 451 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 451 KiB After Width: | Height: | Size: 451 KiB |
@@ -1045,32 +1045,32 @@
|
||||
</Extension>
|
||||
</ProgId>
|
||||
</Component>
|
||||
<Component Id="AddFileTypeAssociationVSCodiumSourceFile" Guid="*">
|
||||
<RegistryValue Root="HKCR" Key="VSCodiumSourceFile" Value="VSCodium" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKCR" Key="VSCodiumSourceFile\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKCR" Key="VSCodiumSourceFile\shell\open\command" Value=""[APPLICATIONFOLDER]VSCodium.exe" "%1"" Type="string" Action="write" />
|
||||
<Component Id="AddFileTypeAssociation$(var.AppCodeName)SourceFile" Guid="*">
|
||||
<RegistryValue Root="HKCR" Key="$(var.AppCodeName)SourceFile" Value="$(var.AppName)" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKCR" Key="$(var.AppCodeName)SourceFile\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKCR" Key="$(var.AppCodeName)SourceFile\shell\open\command" Value=""[APPLICATIONFOLDER]$(var.AppName).exe" "%1"" Type="string" Action="write" />
|
||||
</Component>
|
||||
<Component Id="AddFileTypeAssociationApplicationsVSCodium" Guid="*">
|
||||
<RegistryValue Root="HKCR" Key="Applications\VSCodium.exe\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKCR" Key="Applications\VSCodium.exe\shell\open\command" Value=""[APPLICATIONFOLDER]VSCodium.exe" "%1"" Type="string" Action="write" />
|
||||
<Component Id="AddFileTypeAssociationApplications$(var.AppCodeName)" Guid="*">
|
||||
<RegistryValue Root="HKCR" Key="Applications\$(var.AppName).exe\DefaultIcon" Value="[#DEFAULT.ICO]" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKCR" Key="Applications\$(var.AppName).exe\shell\open\command" Value=""[APPLICATIONFOLDER]$(var.AppName).exe" "%1"" Type="string" Action="write" />
|
||||
</Component>
|
||||
|
||||
<Component Id="AddContextMenuFiles" Guid="*">
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]VSCodium.exe" "%1"" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\*\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]$(var.AppName).exe" "%1"" Type="string" Action="write" />
|
||||
</Component>
|
||||
|
||||
<Component Id="AddContextMenuFolders" Guid="*">
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]VSCodium.exe" "%V"" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]VSCodium.exe" "%V"" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Value="Open with VSCodium" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]VSCodium.exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]VSCodium.exe" "%V"" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]$(var.AppName).exe" "%V"" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\directory\background\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]$(var.AppName).exe" "%V"" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Value="Open with $(var.AppName)" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)" Name="Icon" Value="[APPLICATIONFOLDER]$(var.AppName).exe" Type="string" Action="write" />
|
||||
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Drive\shell\$(var.AppCodeName)\command" Value=""[APPLICATIONFOLDER]$(var.AppName).exe" "%V"" Type="string" Action="write" />
|
||||
</Component>
|
||||
|
||||
<Component Id="AddToEnvironmentPath" Guid="{A75E4C99-6713-45B9-8EC2-B9391592984C}">
|
||||
@@ -1080,17 +1080,17 @@
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="ProgramMenuFolder">
|
||||
<Directory Id="VSCodiumProgramMenuFolder" Name="$(var.AppName)">
|
||||
<Directory Id="$(var.AppCodeName)ProgramMenuFolder" Name="$(var.AppName)">
|
||||
<Component Id="StartMenuShortcut" Guid="*">
|
||||
<Shortcut Id="VSCodiumStartMenuShortcut" Advertise="no" Name="$(var.AppName)" Directory="VSCodiumProgramMenuFolder" Target="[APPLICATIONFOLDER]VSCodium.exe" WorkingDirectory="APPLICATIONFOLDER" />
|
||||
<RemoveFolder Id="VSCodiumProgramMenuFolder" On="uninstall" />
|
||||
<Shortcut Id="$(var.AppCodeName)StartMenuShortcut" Advertise="no" Name="$(var.AppName)" Directory="$(var.AppCodeName)ProgramMenuFolder" Target="[APPLICATIONFOLDER]$(var.AppName).exe" WorkingDirectory="APPLICATIONFOLDER" />
|
||||
<RemoveFolder Id="$(var.AppCodeName)ProgramMenuFolder" On="uninstall" />
|
||||
<RegistryValue Root="HKCU" Key="Software\$(var.ProductManufacturerShort)\$(var.AppName)\Components" Name="StartMenuShortcutInstalled" Type="integer" Value="1" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="DesktopFolder">
|
||||
<Component Id="DesktopShortcut" Guid="*">
|
||||
<Shortcut Id="VSCodiumDesktopShortcut" Advertise="no" Name="$(var.AppName)" Directory="DesktopFolder" Target="[APPLICATIONFOLDER]VSCodium.exe" WorkingDirectory="APPLICATIONFOLDER" />
|
||||
<Shortcut Id="$(var.AppCodeName)DesktopShortcut" Advertise="no" Name="$(var.AppName)" Directory="DesktopFolder" Target="[APPLICATIONFOLDER]$(var.AppName).exe" WorkingDirectory="APPLICATIONFOLDER" />
|
||||
<RegistryValue Root="HKCU" Key="Software\$(var.ProductManufacturerShort)\$(var.AppName)\Components" Name="DesktopShortcutInstalled" Type="integer" Value="1" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
@@ -1108,9 +1108,9 @@
|
||||
<ComponentRef Id="DesktopShortcut" />
|
||||
</Feature>
|
||||
<Feature Id="FeatureFileTypeAssociations" Title="!(loc.FeatureFileTypeAssociationsTitle)" Description="!(loc.FeatureFileTypeAssociationsDescription)" Level="2" Absent="allow" AllowAdvertise="no" InstallDefault="followParent">
|
||||
<ComponentRef Id="AddFileTypeAssociationVSCodiumSourceFile" />
|
||||
<ComponentRef Id="AddFileTypeAssociationApplicationsVSCodium" />
|
||||
|
||||
<ComponentRef Id="AddFileTypeAssociation$(var.AppCodeName)SourceFile" />
|
||||
<ComponentRef Id="AddFileTypeAssociationApplications$(var.AppCodeName)" />
|
||||
|
||||
<Feature Id="FeatureFileTypeAssocASCX" Title=".ascx" Description="ASCX" Level="2" Absent="allow" AllowAdvertise="no" InstallDefault="followParent">
|
||||
<ComponentRef Id="AddFileTypeAssociationASCX" />
|
||||
</Feature>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:wi="http://schemas.microsoft.com/wix/2006/wi">
|
||||
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
|
||||
<xsl:template match="@*|node()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()" />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId1ToReplace" match="wi:Component[wi:File[contains(@Source,'VSCodium.exe')]]" use="@Id"/>
|
||||
<xsl:key name="vId1ToReplace" match="wi:Component[wi:File[contains(@Source,'@@PRODUCT_NAME@@.exe')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId1ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
|
||||
@@ -19,7 +19,7 @@
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'VSCodium.exe')]">
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'@@PRODUCT_NAME@@.exe')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
input=LICENSE.txt
|
||||
target=LICENSE.rtf
|
||||
|
||||
@@ -2,23 +2,29 @@
|
||||
|
||||
set -e
|
||||
|
||||
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
|
||||
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
|
||||
echo "It's a PR"
|
||||
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
elif [[ $GITHUB_EVENT_NAME == "push" ]]; then
|
||||
elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
|
||||
echo "It's a Push"
|
||||
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
|
||||
echo "It's a Dispatch"
|
||||
|
||||
export SHOULD_DEPLOY="yes"
|
||||
else
|
||||
echo "It's a cron"
|
||||
|
||||
echo "It's a Cron"
|
||||
|
||||
export SHOULD_DEPLOY="yes"
|
||||
fi
|
||||
|
||||
if [[ $GITHUB_ENV ]]; then
|
||||
echo "SHOULD_BUILD=$SHOULD_BUILD" >> $GITHUB_ENV
|
||||
echo "SHOULD_DEPLOY=$SHOULD_DEPLOY" >> $GITHUB_ENV
|
||||
fi
|
||||
if [[ "${GITHUB_ENV}" ]]; then
|
||||
echo "GITHUB_BRANCH=${GITHUB_BRANCH}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
|
||||
echo "VSCODE_QUALITY=${VSCODE_QUALITY}" >> "${GITHUB_ENV}"
|
||||
fi
|
||||
|
||||
152
check_tags.sh
@@ -7,142 +7,203 @@ if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
REPOSITORY="${GITHUB_REPOSITORY:-"VSCodium/vscodium"}"
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/${REPOSITORY}/releases/tags/${MS_TAG})
|
||||
VSCODIUM_ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" )
|
||||
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
|
||||
|
||||
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
|
||||
if [ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]; then
|
||||
echo "New VSCode version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${NEW_RELEASE}" == "true" ]]; then
|
||||
echo "New release build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
|
||||
|
||||
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
|
||||
if [ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]; then
|
||||
echo "New VSCode Insiders version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
export RELEASE_VERSION="${LATEST_VERSION}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
|
||||
echo "Switch to release version: ${RELEASE_VERSION}"
|
||||
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
else
|
||||
ASSETS="null"
|
||||
fi
|
||||
fi
|
||||
|
||||
contains() {
|
||||
# add " to match the end of a string so any hashs won't be matched by mistake
|
||||
echo "${VSCODIUM_ASSETS}" | grep "$1\""
|
||||
echo "${ASSETS}" | grep "${1}\""
|
||||
}
|
||||
|
||||
if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
if [ "${ASSETS}" != "null" ]; then
|
||||
# macos
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ -z $( contains "darwin-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" ) || -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no SRC"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_BUILD_SRC="yes"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains ".${VSCODE_ARCH}.${MS_TAG}.dmg" ) ]]; then
|
||||
if [[ -z $( contains ".${VSCODE_ARCH}.${RELEASE_VERSION}.dmg" ) ]]; then
|
||||
echo "Building on MacOS because we have no DMG"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DMG="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on MacOS because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the MacOS builds"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
|
||||
# windows-arm64
|
||||
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_REH="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
|
||||
# windows-ia32
|
||||
elif [[ ${VSCODE_ARCH} == "ia32" ]]; then
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
elif [[ "${VSCODE_ARCH}" == "ia32" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows ia32 builds"
|
||||
fi
|
||||
|
||||
# windows-x64
|
||||
else
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
@@ -150,7 +211,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
elif [[ "${OS_NAME}" == "linux" ]]; then
|
||||
|
||||
# linux-arm64
|
||||
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
@@ -165,13 +226,20 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "arm64-${MS_TAG}.tar.gz" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
@@ -179,7 +247,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
fi
|
||||
|
||||
# linux-armhf
|
||||
elif [[ ${VSCODE_ARCH} == "armhf" ]]; then
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
@@ -194,13 +262,20 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armhf-${MS_TAG}.tar.gz" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
@@ -223,7 +298,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x64-${MS_TAG}.tar.gz" ) ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
@@ -237,12 +312,33 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "${OS_NAME}" == "linux" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
export SHOULD_BUILD_SRC="yes"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
@@ -255,6 +351,8 @@ echo "SHOULD_BUILD_EXE_SYS=${SHOULD_BUILD_EXE_SYS}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_REH=${SHOULD_BUILD_REH}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_SRC=${SHOULD_BUILD_SRC}" >> "${GITHUB_ENV}"
|
||||
|
||||
109
docs/build.md
@@ -8,10 +8,16 @@
|
||||
- [Windows](#dependencies-windows)
|
||||
- [Build Scripts](#build-scripts)
|
||||
- [Build in Docker](#build-docker)
|
||||
- [X64](#build-docker-x64)
|
||||
- [ARM 32bits](#build-docker-arm32)
|
||||
- [Build Snap](#build-snap)
|
||||
- [Patch Update Process](#patch-update-process)
|
||||
- [Semi-Automated](#patch-update-process-semiauto)
|
||||
- [Manual](#patch-update-process-manual)
|
||||
|
||||
## <a id="dependencies"></a>Dependencies
|
||||
|
||||
- node 14
|
||||
- node 16
|
||||
- yarn
|
||||
- jq
|
||||
- git
|
||||
@@ -29,7 +35,6 @@
|
||||
- rpmbuild
|
||||
- dpkg
|
||||
- python3
|
||||
- libsecret-1-dev
|
||||
- imagemagick (for AppImage)
|
||||
|
||||
### <a id="dependencies-macos"></a>MacOS
|
||||
@@ -40,42 +45,120 @@
|
||||
- sed
|
||||
- 7z
|
||||
- [WiX Toolset](http://wixtoolset.org/releases/)
|
||||
- python2
|
||||
- python3
|
||||
- 'Tools for Native Modules' from official Node.js installer
|
||||
|
||||
## <a id="build-scripts"></a>Build Scripts
|
||||
|
||||
Each platform has its build helper script in the directory `build`.
|
||||
A build helper script can be found at `build/build.sh`.
|
||||
|
||||
- Linux: `./build/build_linux.sh`
|
||||
- MacOS: `./build/build_macos.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1`
|
||||
- Linux: `./build/build.sh`
|
||||
- MacOS: `./build/build.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./build/build.sh`
|
||||
|
||||
### Insider
|
||||
|
||||
The `insider` version can be built with `./build/build.sh -i` on the `insider` branch.
|
||||
|
||||
You can try the lastest version with the command `./build/build.sh -il` but the patches might not be up to date.
|
||||
|
||||
## <a id="build-docker"></a>Build in Docker
|
||||
|
||||
To build for Linux, you can alternatively build VSCodium in docker
|
||||
|
||||
### <a id="build-docker-x64"></a>X64
|
||||
|
||||
Firstly, create the container with:
|
||||
```
|
||||
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
|
||||
```
|
||||
like
|
||||
```
|
||||
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
|
||||
```
|
||||
|
||||
When inside the container, you can use the following commands to build:
|
||||
```
|
||||
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
|
||||
git clone https://github.com/VSCodium/vscodium.git
|
||||
cd /root/vscodium
|
||||
|
||||
cd vscodium
|
||||
|
||||
./get_repo.sh
|
||||
. get_repo.sh
|
||||
|
||||
export SHOULD_BUILD=yes
|
||||
export OS_NAME=linux
|
||||
export VSCODE_ARCH=x64
|
||||
|
||||
./build.sh
|
||||
. build.sh
|
||||
```
|
||||
|
||||
### <a id="build-docker-arm32"></a>ARM 32bits
|
||||
|
||||
Firstly, create the container with:
|
||||
```
|
||||
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
|
||||
```
|
||||
like
|
||||
```
|
||||
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
|
||||
```
|
||||
|
||||
When inside the container, you can use the following commands to build:
|
||||
```
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
cd /root/vscodium
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
export SHOULD_BUILD=yes
|
||||
export OS_NAME=linux
|
||||
export VSCODE_ARCH=armhf
|
||||
export npm_config_arch=armv7l
|
||||
export npm_config_force_process_config="true"
|
||||
|
||||
. build.sh
|
||||
```
|
||||
|
||||
## <a id="build-snap"></a>Build Snap
|
||||
|
||||
```
|
||||
# for the stable version
|
||||
cd ./stores/snapcraft/stable
|
||||
|
||||
# for the insider version
|
||||
cd ./stores/snapcraft/insider
|
||||
|
||||
# create the snap
|
||||
snapcraft --use-lxd
|
||||
|
||||
# verify the snap
|
||||
review-tools.snap-review --allow-classic codium*.snap
|
||||
```
|
||||
|
||||
## <a id="patch-update-process"></a>Patch Update Process
|
||||
|
||||
## <a id="patch-update-process-semiauto"></a>Semi-Automated
|
||||
|
||||
- run `./build/build_<os>.sh`, if a patch is failing then,
|
||||
- run `./build/update_patches.sh`
|
||||
- when the script pause at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
|
||||
- fix all the `*.rej` files
|
||||
- run `yarn watch`
|
||||
- run `./script/code.sh` until everything ok
|
||||
- press any key to continue the script `update_patches.sh`
|
||||
|
||||
## <a id="patch-update-process-manual"></a>Manual
|
||||
|
||||
- run `./build/build_<os>.sh`, if a patch is failing then,
|
||||
- open `vscode` directory in **VSCodium**
|
||||
- revert all changes
|
||||
- run `git apply --reject ../patches/<name>.patch`
|
||||
- fix all the `*.rej` files
|
||||
- run `yarn watch`
|
||||
- run `./script/code.sh` until everything ok
|
||||
- run `git diff > ../patches/<name>.patch`
|
||||
|
||||
104
get_repo.sh
@@ -1,44 +1,110 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# git workaround
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
git config --global --add safe.directory "/__w/$( echo "${GITHUB_REPOSITORY}" | awk '{print tolower($0)}' )"
|
||||
fi
|
||||
|
||||
if [[ -z "${RELEASE_VERSION}" ]]; then
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "insider.json" ]]; then
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/insider/lol )
|
||||
else
|
||||
export MS_COMMIT=$(jq -r '.commit' insider.json)
|
||||
export MS_TAG=$(jq -r '.tag' insider.json)
|
||||
fi
|
||||
else
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
|
||||
fi
|
||||
|
||||
if [[ -z "${MS_COMMIT}" ]]; then
|
||||
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
|
||||
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
export MS_TAG="${MS_TAG/\-insider/}"
|
||||
fi
|
||||
fi
|
||||
|
||||
date=$( date +%Y%j )
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
export RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
|
||||
else
|
||||
export RELEASE_VERSION="${MS_TAG}.${date: -5}"
|
||||
fi
|
||||
else
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+-insider$ ]];
|
||||
then
|
||||
MS_TAG="${BASH_REMATCH[1]}"
|
||||
else
|
||||
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "${MS_TAG}" == "$(jq -r '.tag' insider.json)" ]]; then
|
||||
export MS_COMMIT=$(jq -r '.commit' insider.json)
|
||||
else
|
||||
echo "No MS_COMMIT for ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+$ ]];
|
||||
then
|
||||
MS_TAG="${BASH_REMATCH[1]}"
|
||||
else
|
||||
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
|
||||
mkdir -p vscode
|
||||
cd vscode
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git init -q
|
||||
git remote add origin https://github.com/Microsoft/vscode.git
|
||||
|
||||
# figure out latest tag by calling MS update API
|
||||
if [ "$INSIDER" == "1" ]; then
|
||||
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/insider/lol)
|
||||
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
elif [[ -z "${MS_TAG}" ]]; then
|
||||
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/stable/lol)
|
||||
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
else
|
||||
reference=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
|
||||
if [[ -z "${MS_TAG}" ]]; then
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/insider/lol )
|
||||
else
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
|
||||
fi
|
||||
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
|
||||
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
|
||||
elif [[ -z "${MS_COMMIT}" ]]; then
|
||||
REFERENCE=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
|
||||
|
||||
if [[ -z "${reference}" ]]; then
|
||||
if [[ -z "${REFERENCE}" ]]; then
|
||||
echo "The following tag can't be found: ${MS_TAG}"
|
||||
exit 1
|
||||
elif [[ "${reference}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
||||
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
||||
export MS_COMMIT="${BASH_REMATCH[1]}"
|
||||
export MS_TAG="${BASH_REMATCH[2]}"
|
||||
else
|
||||
echo "The following reference can't be parsed: ${reference}"
|
||||
echo "The following reference can't be parsed: ${REFERENCE}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Got the MS tag: ${MS_TAG} version: ${MS_COMMIT}"
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
|
||||
git fetch --depth 1 origin $MS_COMMIT
|
||||
git fetch --depth 1 origin "${MS_COMMIT}"
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
cd ..
|
||||
|
||||
# for GH actions
|
||||
if [[ $GITHUB_ENV ]]; then
|
||||
echo "MS_TAG=$MS_TAG" >> $GITHUB_ENV
|
||||
echo "MS_COMMIT=$MS_COMMIT" >> $GITHUB_ENV
|
||||
if [[ "${GITHUB_ENV}" ]]; then
|
||||
echo "MS_TAG=${MS_TAG}" >> "${GITHUB_ENV}"
|
||||
echo "MS_COMMIT=${MS_COMMIT}" >> "${GITHUB_ENV}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
fi
|
||||
|
||||
@@ -5,12 +5,22 @@ set -e
|
||||
# DEBUG
|
||||
# set -o xtrace
|
||||
|
||||
QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export QUALITY="insider"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
check_programs() {
|
||||
for arg in "$@"
|
||||
do
|
||||
if ! command -v $arg >/dev/null 2>&1
|
||||
if ! command -v "${arg}" >/dev/null 2>&1
|
||||
then
|
||||
echo "$arg could not be found"
|
||||
echo "${arg} could not be found"
|
||||
exit
|
||||
fi
|
||||
done
|
||||
@@ -22,129 +32,131 @@ SRC_PREFIX=""
|
||||
VSCODE_PREFIX=""
|
||||
|
||||
build_darwin_types() {
|
||||
for file in ${VSCODE_PREFIX}vscode/resources/darwin/*
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*
|
||||
do
|
||||
if [ -f "$file" ]; then
|
||||
name=$(basename $file '.icns')
|
||||
if [ -f "${file}" ]; then
|
||||
name=$(basename "${file}" '.icns')
|
||||
|
||||
if [[ $name != 'code' ]] && [ ! -f "${SRC_PREFIX}src/resources/darwin/$name.icns" ]; then
|
||||
icns2png -x -s 512x512 $file -o .
|
||||
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]; then
|
||||
icns2png -x -s 512x512 "${file}" -o .
|
||||
|
||||
composite -blend 100% -geometry +323+365 icons/corner_512.png "${name}_512x512x32.png" "$name.png"
|
||||
composite icons/code_darwin.png "$name.png" "$name.png"
|
||||
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
|
||||
composite "icons/${QUALITY}/code_darwin.png" "${name}.png" "${name}.png"
|
||||
|
||||
convert "$name.png" -resize 256x256 "${name}_256.png"
|
||||
convert "${name}.png" -resize 256x256 "${name}_256.png"
|
||||
|
||||
png2icns "${SRC_PREFIX}src/resources/darwin/$name.icns" "$name.png" "${name}_256.png"
|
||||
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" "${name}.png" "${name}_256.png"
|
||||
|
||||
rm "${name}_512x512x32.png" "$name.png" "${name}_256.png"
|
||||
rm "${name}_512x512x32.png" "${name}.png" "${name}_256.png"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
build_darwin_main() {
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/darwin/code.icns" ]; then
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 512x512 code_512.png
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 256x256 code_256.png
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 128x128 code_128.png
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]; then
|
||||
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" -resize 512x512 code_512.png
|
||||
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" -resize 256x256 code_256.png
|
||||
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" -resize 128x128 code_128.png
|
||||
|
||||
png2icns "${SRC_PREFIX}src/resources/darwin/code.icns" code_512.png code_256.png code_128.png
|
||||
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
|
||||
|
||||
rm code_512.png code_256.png code_128.png
|
||||
fi
|
||||
}
|
||||
|
||||
build_win32() {
|
||||
for file in ${VSCODE_PREFIX}vscode/resources/win32/*.ico
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
|
||||
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/win32/*.ico
|
||||
do
|
||||
if [ -f "$file" ]; then
|
||||
name=$(basename $file '.ico')
|
||||
if [ -f "${file}" ]; then
|
||||
name=$(basename "${file}" '.ico')
|
||||
|
||||
if [[ $name != 'code' ]] && [ ! -f "${SRC_PREFIX}src/resources/win32/$name.ico" ]; then
|
||||
icotool -x -w 256 $file
|
||||
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]; then
|
||||
icotool -x -w 256 "${file}"
|
||||
|
||||
composite -geometry +150+185 icons/code_64.png "${name}_9_256x256x32.png" "${name}.png"
|
||||
composite -geometry +150+185 "icons/${QUALITY}/code_64.png" "${name}_1_256x256x32.png" "${name}.png"
|
||||
|
||||
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/resources/win32/$name.ico"
|
||||
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico"
|
||||
|
||||
rm "${name}_9_256x256x32.png" "${name}.png"
|
||||
rm "${name}_1_256x256x32.png" "${name}.png"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/code.ico" ]; then
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/resources/win32/code.ico"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.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"
|
||||
fi
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp" ]; then
|
||||
convert -size 164x314 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp"
|
||||
composite -size 126x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp"
|
||||
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"
|
||||
composite -size 126x -gravity center "icons/${QUALITY}/codium_only.svg" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp" ]; then
|
||||
convert -size 192x386 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp"
|
||||
composite -size 147x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp"
|
||||
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"
|
||||
composite -size 147x -gravity center "icons/${QUALITY}/codium_only.svg" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp" ]; then
|
||||
convert -size 246x459 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp"
|
||||
composite -size 190x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp"
|
||||
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"
|
||||
composite -size 190x -gravity center "icons/${QUALITY}/codium_only.svg" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp" ]; then
|
||||
convert -size 273x556 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp"
|
||||
composite -size 211x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp"
|
||||
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"
|
||||
composite -size 211x -gravity center "icons/${QUALITY}/codium_only.svg" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp" ]; then
|
||||
convert -size 328x604 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp"
|
||||
composite -size 255x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp"
|
||||
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"
|
||||
composite -size 255x -gravity center "icons/${QUALITY}/codium_only.svg" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp" ]; then
|
||||
convert -size 355x700 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp"
|
||||
composite -size 273x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp"
|
||||
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"
|
||||
composite -size 273x -gravity center "icons/${QUALITY}/codium_only.svg" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp" ]; then
|
||||
convert -size 410x797 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp"
|
||||
composite -size 317x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" ]; then
|
||||
convert -size 410x797 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp"
|
||||
composite -size 317x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-100.bmp" ]; then
|
||||
convert -size 55x55 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp"
|
||||
composite -size 44x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" ]; then
|
||||
convert -size 55x55 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp"
|
||||
composite -size 44x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-125.bmp" ]; then
|
||||
convert -size 64x68 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp"
|
||||
composite -size 52x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" ]; then
|
||||
convert -size 64x68 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp"
|
||||
composite -size 52x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-150.bmp" ]; then
|
||||
convert -size 83x80 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp"
|
||||
composite -size 63x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" ]; then
|
||||
convert -size 83x80 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp"
|
||||
composite -size 63x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-175.bmp" ]; then
|
||||
convert -size 92x97 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp"
|
||||
composite -size 76x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" ]; then
|
||||
convert -size 92x97 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp"
|
||||
composite -size 76x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-200.bmp" ]; then
|
||||
convert -size 110x106 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp"
|
||||
composite -size 86x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" ]; then
|
||||
convert -size 110x106 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp"
|
||||
composite -size 86x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-225.bmp" ]; then
|
||||
convert -size 119x123 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp"
|
||||
composite -size 103x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" ]; then
|
||||
convert -size 119x123 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp"
|
||||
composite -size 103x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/resources/win32/inno-small-250.bmp" ]; then
|
||||
convert -size 138x140 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
|
||||
composite -size 116x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" ]; then
|
||||
convert -size 138x140 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp"
|
||||
composite -size 116x -gravity center "icons/${QUALITY}/codium_only.svg" "${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/wix-banner.bmp" ]; then
|
||||
convert -size 493x58 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
|
||||
composite -geometry +438+6 \( icons/codium_only.svg -resize 50x50 \) "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
|
||||
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"
|
||||
composite -geometry +438+6 \( "icons/${QUALITY}/codium_only.svg" -resize 50x50 \) "${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/wix-dialog.bmp" ]; then
|
||||
convert -size 493x312 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
|
||||
composite -geometry +22+152 \( icons/codium_only.svg -resize 120x90 \) "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
|
||||
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"
|
||||
composite -geometry +22+152 \( "icons/${QUALITY}/codium_only.svg" -resize 120x90 \) "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$0" == "$BASH_SOURCE" ];
|
||||
if [ "${0}" == "${BASH_SOURCE}" ];
|
||||
then
|
||||
build_darwin_types
|
||||
build_win32
|
||||
|
||||
BIN
icons/insider/code_64.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
icons/insider/code_darwin.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
13
icons/insider/codium_only.svg
Normal 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="2.763" y1="-0.313" x2="94.027" y2="95.408">
|
||||
<stop offset="0" stop-color="#9C9234"/>
|
||||
<stop offset="1" stop-color="#6C7F00"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="Layer_1">
|
||||
<path d="M63.697,1.417 C64.354,0.381 65.529,-0.308 66.763,-0.313 C68.492,-0.317 70.138,0.654 71.139,2.037 C72.082,3.359 72.373,5.03 72.375,6.626 C72.36,8.87 71.843,11.075 71.227,13.222 C69.688,18.289 67.597,23.168 66.035,28.229 C64.315,33.972 63.49,40.372 65.801,46.074 C67.009,42.702 68.204,39.323 69.408,35.947 C69.75,35.055 70.2,34.041 71.156,33.675 C72.487,33.201 73.844,34.59 73.805,35.876 C73.441,37.749 72.735,39.534 72.179,41.356 C67.676,54.892 62.633,68.241 57.777,81.655 C64.235,75.75 70.713,69.867 77.179,63.973 C79.04,62.279 81.058,60.433 81.628,57.873 C82.197,55.36 81.139,52.866 79.94,50.708 C78.555,48.133 76.787,45.684 76.137,42.786 C75.81,41.285 75.909,39.558 76.921,38.328 C77.651,37.402 78.98,36.924 80.101,37.376 C81.208,37.799 81.876,38.862 82.399,39.866 C84.156,43.391 85.252,47.243 85.629,51.165 C86.829,48.744 88.043,46.333 89.245,43.914 C89.971,42.489 90.612,40.96 91.79,39.834 C92.501,39.132 93.537,38.69 94.54,38.918 C95.798,39.196 96.681,40.34 97.019,41.528 C97.402,42.79 96.997,44.104 96.59,45.303 C95.378,48.656 93.474,51.69 91.639,54.727 C89.081,58.747 86.364,62.67 83.398,66.402 C85.093,65.27 86.878,64.079 88.954,63.842 C90.918,63.579 93.089,64.729 93.739,66.646 C94.174,67.951 93.47,69.428 92.288,70.065 C90.554,71.032 88.502,71.019 86.575,71.105 C79.582,71.297 72.767,74.74 68.428,80.221 C65.004,84.592 63.255,90.023 59.78,94.358 C57.588,97 54.491,100.317 51.084,99.584 C46.547,98.609 46.547,91.518 45.416,88.003 C44.833,86.231 43.739,84.612 42.221,83.507 C40.894,82.527 39.305,81.965 37.699,81.657 C34.012,80.949 30.209,81.323 26.531,80.563 C24.69,80.188 22.877,79.45 21.471,78.177 C20.131,77.001 19.205,75.427 18.563,73.78 C17.177,70.192 16.895,66.299 15.663,62.666 C13.88,57.436 10.352,52.812 5.757,49.741 C4.788,49.087 3.735,48.449 3.108,47.429 C2.598,46.632 2.643,45.499 3.311,44.804 C4.437,43.578 6.472,43.477 7.773,44.491 C10.439,46.382 10.824,50.056 13.309,52.112 C13.313,48.718 13.296,45.327 13.29,41.935 C13.298,40.955 13.189,39.9 13.679,39.009 C14.125,38.165 15.359,37.936 16.076,38.569 C17.045,39.381 17.34,40.706 17.478,41.905 C17.96,46.58 18.426,51.257 18.91,55.935 C21.346,53.747 22.465,50.196 21.677,47.011 C21.438,45.994 21.051,44.948 21.27,43.893 C21.449,43.008 22.388,42.385 23.273,42.543 C24.268,42.678 24.978,43.531 25.351,44.407 C25.945,45.859 25.947,47.476 25.827,49.018 C25.474,52.53 23.988,55.773 22.963,59.115 C21.964,62.065 21.277,65.343 22.278,68.39 C23.17,71.239 25.431,73.491 28.084,74.768 C31.359,76.377 35.048,76.877 38.657,77.019 C36.463,73.179 34.077,69.116 34.118,64.548 C34.161,59.949 37.085,56.075 37.875,51.636 C39.221,44.272 35.898,36.267 29.712,32.042 C26.964,30.154 23.665,29.314 20.842,27.563 C18.288,26 15.994,23.218 16.395,20.05 C18.335,19.299 20.501,19.779 22.252,20.787 C25.674,22.613 27.851,26.075 31.29,27.873 C32.498,28.532 33.883,28.858 35.259,28.774 C36.004,26.988 35.259,24.988 34.057,23.597 C31.796,20.873 27.98,20.212 25.616,17.608 C24.431,16.249 23.77,14.307 24.268,12.53 C24.673,11.126 26.126,10.17 27.573,10.276 C29.716,10.409 31.561,11.751 33.026,13.228 C37.873,18.073 40.662,24.663 41.756,31.36 C43.048,39.259 42.044,47.317 40.453,55.095 C40.156,56.68 39.6,58.305 40.011,59.923 C40.188,60.672 40.728,61.445 41.558,61.512 C42.699,61.585 43.642,60.808 44.473,60.127 C47.072,58.004 49.138,55.146 49.99,51.873 C50.656,49.487 50.675,46.989 50.628,44.532 C50.641,43.303 50.55,41.946 51.285,40.882 C51.81,40.06 52.79,39.414 53.798,39.653 C54.588,39.803 55.148,40.488 55.389,41.222 C55.777,42.431 55.718,43.736 55.484,44.969 C54.741,48.372 54.069,51.819 52.723,55.05 C51.773,57.369 50.49,59.574 48.752,61.391 C46.836,63.422 44.469,65.05 42.925,67.417 C41.872,69.034 41.191,71.043 41.648,72.975 C41.982,74.516 43.155,75.774 44.57,76.416 C46.631,77.357 49.133,77.309 51.142,76.25 C52.736,75.388 53.869,73.898 54.771,72.367 C56.36,69.613 57.323,66.555 58.122,63.493 C59.351,58.549 60.075,53.48 60.359,48.393 C60.684,42.96 59.698,37.342 56.959,32.596 C55.503,30.055 53.444,27.891 51.039,26.235 C48.873,24.624 46.491,23.229 44.734,21.142 C43.091,19.208 41.952,16.598 42.55,14.031 C43.674,13.325 45.093,13.202 46.338,13.644 C48.687,14.443 50.527,16.329 51.713,18.463 C53.324,20.978 54.668,23.971 57.506,25.337 C55.197,20.795 52.816,16.292 50.479,11.766 C49.719,10.237 48.97,8.566 49.168,6.817 C49.312,5.484 50.55,4.391 51.887,4.397 C53.074,4.401 54.187,5.069 54.894,5.999 C55.701,7.046 56.087,8.336 56.451,9.589 C58.313,16.071 60.174,22.55 62.043,29.03 C64.392,24.555 65.385,19.37 64.717,14.348 C64.425,11.686 63.643,9.115 63.023,6.518 C62.601,4.819 62.728,2.913 63.697,1.417 z" fill="url(#Gradient_1)" id="Shape"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
4
insider.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"tag": "1.75.0",
|
||||
"commit": "b92894493e6f971a3c71912d823e699d3a05d643"
|
||||
}
|
||||
11
install_remote_dependencies.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
yarn --cwd remote --frozen-lockfile --check-files
|
||||
|
||||
cd ..
|
||||
|
||||
tar -cf remote-dependencies.tar ./vscode/remote/node_modules
|
||||
21
patch.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
FILE="../patches/${1}.patch"
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
git apply --reject "${FILE}"
|
||||
fi
|
||||
|
||||
read -p "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
|
||||
cd ..
|
||||
|
||||
echo "The patch has been generated."
|
||||
@@ -1,21 +1,21 @@
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 2f5a931..ac3d7e6 100644
|
||||
index 2686509..4fedec2 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -290,7 +290,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
|
||||
@@ -289,7 +289,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
} else if (platform === 'darwin') {
|
||||
const shortcut = gulp.src('resources/darwin/bin/code.sh')
|
||||
.pipe(replace('@@APPNAME@@', product.applicationName))
|
||||
- .pipe(rename('bin/code'));
|
||||
+ .pipe(rename('bin/' + product.applicationName));
|
||||
|
||||
all = es.merge(all, shortcut);
|
||||
}
|
||||
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
index 3bd0c57..d921c60 100644
|
||||
index f7bd477..a489ae4 100644
|
||||
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
@@ -353,7 +353,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
@@ -351,7 +351,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
}
|
||||
|
||||
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
|
||||
@@ -24,7 +24,7 @@ index 3bd0c57..d921c60 100644
|
||||
const source = `/usr/local/bin/${this.productService.applicationName}`;
|
||||
|
||||
// Ensure source exists
|
||||
@@ -563,7 +563,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
@@ -545,7 +545,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
|
||||
// macOS
|
||||
if (this.environmentMainService.isBuilt) {
|
||||
|
||||
175
patches/build-version.patch
Normal file
@@ -0,0 +1,175 @@
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index f3cdbff..ac7c39b 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -246,4 +246,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
|
||||
const name = product.nameShort;
|
||||
+ const release = packageJson.release;
|
||||
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
|
||||
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined }));
|
||||
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined }));
|
||||
|
||||
@@ -252,3 +253,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
|
||||
const productJsonStream = gulp.src(['product.json'], { base: '.' })
|
||||
- .pipe(json({ commit, date, version }));
|
||||
+ .pipe(json({ commit, date, version, release }));
|
||||
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index cdc802b..49ab315 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -227,3 +227,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
|
||||
- let version = packageJson.version;
|
||||
+ let version = packageJson.version
|
||||
const quality = product.quality;
|
||||
@@ -235,3 +235,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
const name = product.nameShort;
|
||||
- const packageJsonUpdates = { name, version };
|
||||
+ const release = packageJson.release;
|
||||
+ const packageJsonUpdates = { name, version, release };
|
||||
|
||||
@@ -246,3 +247,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
const date = new Date().toISOString();
|
||||
- const productJsonUpdate = { commit, date, checksums, version };
|
||||
+ const productJsonUpdate = { commit, date, checksums, version, release };
|
||||
|
||||
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
|
||||
index cdc8870..f6e4e09 100644
|
||||
--- a/build/gulpfile.vscode.linux.js
|
||||
+++ b/build/gulpfile.vscode.linux.js
|
||||
@@ -25,4 +25,2 @@ const commit = getVersion(root);
|
||||
|
||||
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
|
||||
-
|
||||
/**
|
||||
@@ -88,3 +86,3 @@ function prepareDebPackage(arch) {
|
||||
.pipe(replace('@@NAME@@', product.applicationName))
|
||||
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
|
||||
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
|
||||
.pipe(replace('@@ARCHITECTURE@@', debArch))
|
||||
@@ -193,4 +191,3 @@ function prepareRpmPackage(arch) {
|
||||
.pipe(replace('@@ICON@@', product.linuxIconName))
|
||||
- .pipe(replace('@@VERSION@@', packageJson.version))
|
||||
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
|
||||
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
|
||||
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
|
||||
@@ -267,3 +264,3 @@ function prepareSnapPackage(arch) {
|
||||
.pipe(replace('@@NAME@@', product.applicationName))
|
||||
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
|
||||
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
|
||||
// Possible run-on values https://snapcraft.io/docs/architectures
|
||||
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
|
||||
index 0d3abda..2606af5 100644
|
||||
--- a/build/gulpfile.vscode.win32.js
|
||||
+++ b/build/gulpfile.vscode.win32.js
|
||||
@@ -94,4 +94,4 @@ function buildWin32Setup(arch, target) {
|
||||
DirName: product.win32DirName,
|
||||
- Version: pkg.version,
|
||||
- RawVersion: pkg.version.replace(/-\w+$/, ''),
|
||||
+ Version: `${pkg.version}.${pkg.release}`,
|
||||
+ RawVersion: `${pkg.version.replace(/-\w+$/, '')}.${pkg.release}`,
|
||||
NameVersion: product.win32NameVersion + (target === 'user' ? ' (User)' : ''),
|
||||
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
|
||||
index 61659d2..5cafa06 100644
|
||||
--- a/resources/linux/rpm/code.spec.template
|
||||
+++ b/resources/linux/rpm/code.spec.template
|
||||
@@ -2,3 +2,3 @@ Name: @@NAME@@
|
||||
Version: @@VERSION@@
|
||||
-Release: @@RELEASE@@.el7
|
||||
+Release: el7
|
||||
Summary: Code editing. Redefined.
|
||||
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
|
||||
index 7ec238b..9295018 100644
|
||||
--- a/src/vs/base/common/product.ts
|
||||
+++ b/src/vs/base/common/product.ts
|
||||
@@ -34,2 +34,3 @@ export interface IProductConfiguration {
|
||||
readonly version: string;
|
||||
+ readonly release: string;
|
||||
readonly date?: string;
|
||||
diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts
|
||||
index 561966b..30814a0 100644
|
||||
--- a/src/vs/platform/diagnostics/node/diagnosticsService.ts
|
||||
+++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts
|
||||
@@ -236,3 +236,3 @@ export class DiagnosticsService implements IDiagnosticsService {
|
||||
const output: string[] = [];
|
||||
- output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
|
||||
+ output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
|
||||
output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`);
|
||||
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
|
||||
index ef798fa..cfa7866 100644
|
||||
--- a/src/vs/platform/product/common/product.ts
|
||||
+++ b/src/vs/platform/product/common/product.ts
|
||||
@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
|
||||
if (!product.version) {
|
||||
- const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string };
|
||||
+ const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string, release: string };
|
||||
|
||||
Object.assign(product, {
|
||||
- version: pkg.version
|
||||
+ version: pkg.version,
|
||||
+ release: pkg.release
|
||||
});
|
||||
diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||
index 6a3768d..023eeed 100644
|
||||
--- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||
+++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||
@@ -21,2 +21,3 @@ import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/mar
|
||||
import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
|
||||
+import { getReleaseString } from 'vs/workbench/common/release';
|
||||
|
||||
@@ -147,2 +148,4 @@ export class BrowserDialogHandler implements IDialogHandler {
|
||||
const detailString = (useAgo: boolean): string => {
|
||||
+ const releaseString = getReleaseString();
|
||||
+
|
||||
return localize('aboutDetail',
|
||||
@@ -153,3 +156,3 @@ export class BrowserDialogHandler implements IDialogHandler {
|
||||
navigator.userAgent
|
||||
- );
|
||||
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
|
||||
};
|
||||
diff --git a/src/vs/workbench/common/release.ts b/src/vs/workbench/common/release.ts
|
||||
new file mode 100644
|
||||
index 0000000..2a8ea57
|
||||
--- /dev/null
|
||||
+++ b/src/vs/workbench/common/release.ts
|
||||
@@ -0,0 +1,14 @@
|
||||
+import { language } from 'vs/base/common/platform';
|
||||
+
|
||||
+const DEFAULT_LABEL = 'Release:';
|
||||
+const LABELS: { [key: string]: string } = {
|
||||
+ 'en': DEFAULT_LABEL,
|
||||
+ 'fr': 'Révision :',
|
||||
+ 'ru': 'Релиз:',
|
||||
+ 'zh-hans': '发布版本:',
|
||||
+ 'zh-hant': '發布版本:',
|
||||
+};
|
||||
+
|
||||
+export function getReleaseString(): string {
|
||||
+ return LABELS[language] ?? DEFAULT_LABEL;
|
||||
+}
|
||||
diff --git a/src/vs/workbench/contrib/issue/browser/issueService.ts b/src/vs/workbench/contrib/issue/browser/issueService.ts
|
||||
index dc7430b..23def01 100644
|
||||
--- a/src/vs/workbench/contrib/issue/browser/issueService.ts
|
||||
+++ b/src/vs/workbench/contrib/issue/browser/issueService.ts
|
||||
@@ -67,2 +67,3 @@ export class WebIssueService implements IWorkbenchIssueService {
|
||||
Version: ${this.productService.version}
|
||||
+Release: ${this.productService.release ?? 'unknown'}
|
||||
Commit: ${this.productService.commit ?? 'unknown'}
|
||||
diff --git a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
|
||||
index f63b75f..2b77c1b 100644
|
||||
--- a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
|
||||
+++ b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
|
||||
@@ -17,2 +17,3 @@ import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { process } from 'vs/base/parts/sandbox/electron-sandbox/globals';
|
||||
+import { getReleaseString } from 'vs/workbench/common/release';
|
||||
|
||||
@@ -166,2 +167,3 @@ export class NativeDialogHandler implements IDialogHandler {
|
||||
const osProps = await this.nativeHostService.getOSProperties();
|
||||
+ const releaseString = getReleaseString();
|
||||
|
||||
@@ -179,3 +181,3 @@ export class NativeDialogHandler implements IDialogHandler {
|
||||
process.sandboxed ? 'Yes' : 'No' // TODO@bpasero remove me once sandbox is final
|
||||
- );
|
||||
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
|
||||
};
|
||||
@@ -1,9 +1,9 @@
|
||||
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
|
||||
index 1a73ae9..1b87189 100644
|
||||
index 81ba509..59041e2 100644
|
||||
--- a/build/gulpfile.vscode.win32.js
|
||||
+++ b/build/gulpfile.vscode.win32.js
|
||||
@@ -126,7 +126,7 @@ defineWin32SetupTasks('arm64', 'user');
|
||||
|
||||
@@ -137,7 +137,7 @@ defineWin32SetupTasks('arm64', 'user');
|
||||
*/
|
||||
function archiveWin32Setup(arch) {
|
||||
return cb => {
|
||||
- const args = ['a', '-tzip', zipPath(arch), '-x!CodeSignSummary*.md', '.', '-r'];
|
||||
|
||||
@@ -1,37 +1,31 @@
|
||||
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
|
||||
index 1edc76f..4c0bf98 100644
|
||||
--- a/src/vs/base/common/product.ts
|
||||
+++ b/src/vs/base/common/product.ts
|
||||
@@ -69,6 +69,7 @@ export interface IProductConfiguration {
|
||||
|
||||
readonly extensionsGallery?: {
|
||||
readonly serviceUrl: string;
|
||||
+ readonly cacheUrl?: string;
|
||||
readonly itemUrl: string;
|
||||
readonly resourceUrlTemplate: string;
|
||||
readonly controlUrl: string;
|
||||
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
|
||||
index e22b33e..98cec93 100644
|
||||
index ef798fa..5a0550b 100644
|
||||
--- a/src/vs/platform/product/common/product.ts
|
||||
+++ b/src/vs/platform/product/common/product.ts
|
||||
@@ -4,11 +4,12 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
@@ -5,3 +5,4 @@
|
||||
|
||||
import { FileAccess } from 'vs/base/common/network';
|
||||
-import { globals } from 'vs/base/common/platform';
|
||||
+import { AppResourcePath, FileAccess } from 'vs/base/common/network';
|
||||
+import { globals, isWindows } from 'vs/base/common/platform';
|
||||
import { env } from 'vs/base/common/process';
|
||||
import { IProductConfiguration } from 'vs/base/common/product';
|
||||
import { dirname, joinPath } from 'vs/base/common/resources';
|
||||
@@ -9,2 +10,3 @@ import { IProductConfiguration } from 'vs/base/common/product';
|
||||
import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes';
|
||||
+import { getUserDataPath } from 'vs/platform/environment/node/userDataPath';
|
||||
|
||||
/**
|
||||
* @deprecated You MUST use `IProductService` if possible.
|
||||
@@ -34,6 +35,32 @@ else if (typeof require?.__$__nodeRequire === 'function') {
|
||||
product = require.__$__nodeRequire(joinPath(rootPath, 'product.json').fsPath);
|
||||
const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string };
|
||||
@@ -29,2 +31,40 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
|
||||
|
||||
+ // Set user-defined extension gallery
|
||||
+ const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {}
|
||||
+
|
||||
+ Object.assign(product, {
|
||||
+ extensionsGallery: {
|
||||
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
|
||||
+ searchUrl: env['VSCODE_GALLERY_SEARCH_URL'] || searchUrl,
|
||||
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
|
||||
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
|
||||
+ }
|
||||
+ })
|
||||
+
|
||||
+ // Merge user-customized product.json
|
||||
+ try {
|
||||
+ const merge = (...objects: any[]) =>
|
||||
@@ -49,35 +43,13 @@ index e22b33e..98cec93 100644
|
||||
+ return result;
|
||||
+ }, {}) as any;
|
||||
+
|
||||
+ const userDataPath = getUserDataPath({} as any);
|
||||
+ const userDataPath = getUserDataPath({} as any, product.nameShort);
|
||||
+ const userProductPath = isWindows ? `file:///${userDataPath}/product.json` : `file://${userDataPath}/product.json`;
|
||||
+
|
||||
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath, require).fsPath);
|
||||
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath as AppResourcePath).fsPath);
|
||||
+
|
||||
+ product = merge(product, userProduct);
|
||||
+ } catch (ex) {
|
||||
+ }
|
||||
+
|
||||
// Running out of sources
|
||||
if (env['VSCODE_DEV']) {
|
||||
Object.assign(product, {
|
||||
@@ -44,6 +71,19 @@ else if (typeof require?.__$__nodeRequire === 'function') {
|
||||
});
|
||||
}
|
||||
|
||||
+ // Set user-defined extension gallery
|
||||
+ const { serviceUrl, cacheUrl, itemUrl, controlUrl, recommendationsUrl } = product.extensionsGallery || {}
|
||||
+
|
||||
+ Object.assign(product, {
|
||||
+ extensionsGallery: {
|
||||
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
|
||||
+ cacheUrl: env['VSCODE_GALLERY_CACHE_URL'] || cacheUrl,
|
||||
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
|
||||
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
|
||||
+ recommendationsUrl: env['VSCODE_GALLERY_RECOMMENDATIONS_URL'] || recommendationsUrl
|
||||
+ }
|
||||
+ })
|
||||
+
|
||||
Object.assign(product, {
|
||||
version: pkg.version
|
||||
});
|
||||
|
||||
101
patches/feat-announcements.patch
Normal file
@@ -0,0 +1,101 @@
|
||||
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
|
||||
index 2c18fde..e1031dd 100644
|
||||
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
|
||||
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
|
||||
@@ -312,2 +312,8 @@ configurationRegistry.registerConfiguration({
|
||||
},
|
||||
+ 'workbench.welcomePage.extraAnnouncements': {
|
||||
+ scope: ConfigurationScope.MACHINE,
|
||||
+ type: 'boolean',
|
||||
+ default: true,
|
||||
+ description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from VSCodium's repository.")
|
||||
+ },
|
||||
'workbench.startupEditor': {
|
||||
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
|
||||
index 9564618..eb8adfe 100644
|
||||
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
|
||||
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
|
||||
@@ -116,4 +116,8 @@ type GettingStartedActionEvent = {
|
||||
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
|
||||
+type AnnouncementEntry = { id: string, title: string, url: string };
|
||||
|
||||
const REDUCED_MOTION_KEY = 'workbench.welcomePage.preferReducedMotion';
|
||||
+
|
||||
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
|
||||
+
|
||||
export class GettingStartedPage extends EditorPane {
|
||||
@@ -148,2 +152,4 @@ export class GettingStartedPage extends EditorPane {
|
||||
private gettingStartedList?: GettingStartedIndexList<IResolvedWalkthrough>;
|
||||
+ private announcementList?: GettingStartedIndexList<AnnouncementEntry>;
|
||||
+ private announcementData?: AnnouncementEntry[];
|
||||
|
||||
@@ -760,3 +766,2 @@ export class GettingStartedPage extends EditorPane {
|
||||
|
||||
-
|
||||
const leftColumn = $('.categories-column.categories-column-left', {},);
|
||||
@@ -767,2 +772,3 @@ export class GettingStartedPage extends EditorPane {
|
||||
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
|
||||
+ const announcementList = await this.buildAnnouncementList();
|
||||
|
||||
@@ -777,3 +783,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, gettingStartedList.getDomElement());
|
||||
@@ -783,3 +789,3 @@ export class GettingStartedPage extends EditorPane {
|
||||
this.container.classList.add('noWalkthroughs');
|
||||
- reset(leftColumn, startList.getDomElement());
|
||||
+ reset(leftColumn, startList.getDomElement(), announcementList.getDomElement());
|
||||
reset(rightColumn, recentList.getDomElement());
|
||||
@@ -930,2 +936,51 @@ export class GettingStartedPage extends EditorPane {
|
||||
|
||||
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
|
||||
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {
|
||||
+ const { title, url } = announcement;
|
||||
+ const li = $('li');
|
||||
+
|
||||
+ const anchor: HTMLLinkElement = $('a');
|
||||
+ anchor.href = url;
|
||||
+ anchor.innerText = title;
|
||||
+ anchor.target = '_blank';
|
||||
+ li.appendChild(anchor);
|
||||
+
|
||||
+ return li;
|
||||
+ };
|
||||
+
|
||||
+ if (this.announcementList) { this.announcementList.dispose(); }
|
||||
+
|
||||
+ const announcementList = this.announcementList = new GettingStartedIndexList({
|
||||
+ title: localize('announcements', "VSCodium Announcements"),
|
||||
+ klass: 'announcements',
|
||||
+ limit: 5,
|
||||
+ empty: $('.empty-recent', {}, localize('noAnnouncements', "There are no current announcements.")),
|
||||
+ renderElement: renderAnnouncement,
|
||||
+ contextService: this.contextService
|
||||
+ });
|
||||
+
|
||||
+ if (!this.announcementData) {
|
||||
+ const showExtras = this.configurationService.getValue<boolean>('workbench.welcomePage.extraAnnouncements');
|
||||
+
|
||||
+ if (showExtras) {
|
||||
+ const branch = this.productService.quality === 'insider' ? 'insider' : 'master';
|
||||
+ const res = await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`);
|
||||
+
|
||||
+ if (res.ok) {
|
||||
+ var extraAnnouncements = await res.json() as AnnouncementEntry[];
|
||||
+
|
||||
+ this.announcementData = [...extraAnnouncements, ...BUILTIN_ANNOUNCEMENTS];
|
||||
+ } else {
|
||||
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
|
||||
+ }
|
||||
+ } else {
|
||||
+ this.announcementData = BUILTIN_ANNOUNCEMENTS;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ announcementList.setEntries(this.announcementData);
|
||||
+
|
||||
+ return announcementList;
|
||||
+ }
|
||||
+
|
||||
private buildStartList(): GettingStartedIndexList<IWelcomePageStartEntry> {
|
||||
27
patches/fix-build-linux.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
|
||||
index af20828..f09ba66 100644
|
||||
--- a/build/linux/dependencies-generator.js
|
||||
+++ b/build/linux/dependencies-generator.js
|
||||
@@ -22,3 +22,3 @@ const types_2 = require("./rpm/types");
|
||||
// are valid, are in dep-lists.ts
|
||||
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true;
|
||||
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false;
|
||||
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/98.0.4758.109:chrome/installer/linux/BUILD.gn;l=64-80
|
||||
diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
|
||||
index 34573c4..91adb8f 100644
|
||||
--- a/build/linux/dependencies-generator.ts
|
||||
+++ b/build/linux/dependencies-generator.ts
|
||||
@@ -23,3 +23,3 @@ import { isRpmArchString, RpmArchString } from './rpm/types';
|
||||
// are valid, are in dep-lists.ts
|
||||
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = true;
|
||||
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = false;
|
||||
|
||||
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
|
||||
index 61659d2..6331a67 100644
|
||||
--- a/resources/linux/rpm/code.spec.template
|
||||
+++ b/resources/linux/rpm/code.spec.template
|
||||
@@ -78 +78,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
|
||||
%{_datadir}/zsh/site-functions/_%{name}
|
||||
+
|
||||
+%config(noreplace) /usr/share/%{name}/resources/app/product.json
|
||||
\ No newline at end of file
|
||||
@@ -1,8 +0,0 @@
|
||||
--- vscode/resources/linux/rpm/code.spec.template 2021-03-02 19:26:53.000000000 +0100
|
||||
+++ vscode/resources/linux/rpm/code.spec.template.new 2021-03-02 19:28:12.000000000 +0100
|
||||
@@ -69,3 +69,5 @@
|
||||
/usr/share/pixmaps/@@ICON@@.png
|
||||
/usr/share/bash-completion/completions/@@NAME@@
|
||||
/usr/share/zsh/site-functions/_@@NAME@@
|
||||
+
|
||||
+%config(noreplace) /usr/share/@@NAME@@/resources/app/product.json
|
||||
9
patches/insider/disable-sandbox.patch
Normal file
@@ -0,0 +1,9 @@
|
||||
diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts
|
||||
index 3b8a644..71ea0ad 100644
|
||||
--- a/src/vs/platform/windows/electron-main/windowImpl.ts
|
||||
+++ b/src/vs/platform/windows/electron-main/windowImpl.ts
|
||||
@@ -213,4 +213,2 @@ export class CodeWindow extends Disposable implements ICodeWindow {
|
||||
useSandbox = true;
|
||||
- } else {
|
||||
- useSandbox = typeof this.productService.quality === 'string' && this.productService.quality !== 'stable';
|
||||
}
|
||||
15
patches/insider/disable-windows-appx.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
|
||||
index 0d3abda..9e5143a 100644
|
||||
--- a/build/gulpfile.vscode.win32.js
|
||||
+++ b/build/gulpfile.vscode.win32.js
|
||||
@@ -116,6 +116,6 @@ function buildWin32Setup(arch, target) {
|
||||
|
||||
- if (quality === 'insider') {
|
||||
- definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`;
|
||||
- definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
|
||||
- }
|
||||
+ // if (quality === 'insider') {
|
||||
+ // definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`;
|
||||
+ // definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
|
||||
+ // }
|
||||
|
||||
13
patches/insider/system-extensions.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||
index 81bf4b2..5a88688 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||
@@ -233,7 +233,7 @@ export class Extension implements IExtension {
|
||||
return false;
|
||||
}
|
||||
// Do not allow updating system extensions in stable
|
||||
- if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
|
||||
+ if (this.type === ExtensionType.System) {
|
||||
return false;
|
||||
}
|
||||
if (!this.local.preRelease && this.gallery.properties.isPreReleaseVersion) {
|
||||
@@ -1,48 +1,80 @@
|
||||
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
index fcd4485..8d97e5a 100644
|
||||
index 33e66be..a7ade0a 100644
|
||||
--- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
+++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
@@ -682,7 +682,7 @@ export class IssueReporter extends Disposable {
|
||||
@@ -468,3 +468,3 @@ export class IssueReporter extends Disposable {
|
||||
if (title) {
|
||||
- this.searchDuplicates(title, issueDescription);
|
||||
+ this.searchGitHub('VSCodium/vscodium', title);
|
||||
} else {
|
||||
@@ -556,33 +556,2 @@ export class IssueReporter extends Disposable {
|
||||
|
||||
sourceSelect.innerText = '';
|
||||
- @debounce(300)
|
||||
- private searchDuplicates(title: string, body?: string): void {
|
||||
- const url = 'https://vscode-probot.westus.cloudapp.azure.com:7890/duplicate_candidates';
|
||||
- const init = {
|
||||
- method: 'POST',
|
||||
- body: JSON.stringify({
|
||||
- title,
|
||||
- body
|
||||
- }),
|
||||
- headers: new Headers({
|
||||
- 'Content-Type': 'application/json'
|
||||
- })
|
||||
- };
|
||||
-
|
||||
- window.fetch(url, init).then((response) => {
|
||||
- response.json().then(result => {
|
||||
- this.clearSearchResults();
|
||||
-
|
||||
- if (result && result.candidates) {
|
||||
- this.displaySearchResults(result.candidates);
|
||||
- } else {
|
||||
- throw new Error('Unexpected response, no candidates property');
|
||||
- }
|
||||
- }).catch(_ => {
|
||||
- // Ignore
|
||||
- });
|
||||
- }).catch(_ => {
|
||||
- // Ignore
|
||||
- });
|
||||
- }
|
||||
-
|
||||
private displaySearchResults(results: SearchResult[]) {
|
||||
@@ -674,3 +643,3 @@ export class IssueReporter extends Disposable {
|
||||
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
|
||||
- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false));
|
||||
+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false));
|
||||
sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false));
|
||||
if (this.configuration.product.reportMarketplaceIssueUrl) {
|
||||
sourceSelect.append(this.makeOption('marketplace', localize('marketplace', "Extensions marketplace"), false));
|
||||
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
|
||||
index a58acca..1903a0c 100644
|
||||
--- a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
|
||||
+++ b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
|
||||
@@ -77,3 +77,3 @@ ${this._data.issueDescription}
|
||||
${this.getExtensionVersion()}
|
||||
-VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
|
||||
+VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
|
||||
OS version: ${this._data.versionInfo && this._data.versionInfo.os}
|
||||
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
|
||||
index 6467d66..d425016 100644
|
||||
--- a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
|
||||
+++ b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
|
||||
@@ -17,3 +17,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
|
||||
comment: [
|
||||
- '{Locked="<a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
|
||||
+ '{Locked="<a href=\"https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
|
||||
'{Locked="</a>"}'
|
||||
@@ -21,3 +21,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
|
||||
},
|
||||
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
|
||||
+ 'Before you report an issue here please <a href="https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
|
||||
);
|
||||
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
index 0c5855b..654f9a4 100644
|
||||
index 20154ad..bca59b8 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
@@ -144,7 +144,7 @@ class ReportExtensionSlowAction extends Action {
|
||||
- Extension Name: \`${this.extension.name}\`
|
||||
- Extension Version: \`${this.extension.version}\`
|
||||
@@ -148,3 +148,3 @@ class ReportExtensionSlowAction extends Action {
|
||||
- OS Version: \`${osVersion}\`
|
||||
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
|
||||
+- VSCodium version: \`${this._productService.version}\`\n\n${message}`);
|
||||
|
||||
const url = `${this.repoInfo.base}/${this.repoInfo.owner}/${this.repoInfo.repo}/issues/new/?body=${body}&title=${title}`;
|
||||
this._openerService.open(URI.parse(url));
|
||||
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
index f1755db..e77be21 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
@@ -14,7 +14,7 @@ import { ExtensionType, IExtensionDescription } from 'vs/platform/extensions/com
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
|
||||
-const builtinExtensionIssueUrl = 'https://github.com/microsoft/vscode';
|
||||
+const builtinExtensionIssueUrl = 'https://github.com/VSCodium/vscodium';
|
||||
|
||||
export class ReportExtensionIssueAction extends Action {
|
||||
|
||||
@@ -76,7 +76,7 @@ export class ReportExtensionIssueAction extends Action {
|
||||
- Extension Name: \`${extension.description.name}\`
|
||||
- Extension Version: \`${extension.description.version}\`
|
||||
- OS Version: \`${osVersion}\`
|
||||
-- VS Code version: \`${this.productService.version}\`\n\n${message}`
|
||||
+- VSCodium version: \`${this.productService.version}\`\n\n${message}`
|
||||
);
|
||||
|
||||
return `${baseUrl}${queryStringPrefix}body=${body}&title=${encodeURIComponent(title)}`;
|
||||
|
||||
64
patches/update-msi.patch
Normal file
@@ -0,0 +1,64 @@
|
||||
diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts
|
||||
index 7cd4a84..7cbdf21 100644
|
||||
--- a/src/vs/platform/update/common/update.ts
|
||||
+++ b/src/vs/platform/update/common/update.ts
|
||||
@@ -48,3 +48,4 @@ export const enum UpdateType {
|
||||
Archive,
|
||||
- Snap
|
||||
+ Snap,
|
||||
+ WindowsInstaller,
|
||||
}
|
||||
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
|
||||
index caecd71..4c02afa 100644
|
||||
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
|
||||
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
|
||||
@@ -41,5 +41,9 @@ function getUpdateType(): UpdateType {
|
||||
if (typeof _updateType === 'undefined') {
|
||||
- _updateType = fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))
|
||||
- ? UpdateType.Setup
|
||||
- : UpdateType.Archive;
|
||||
+ if (fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) {
|
||||
+ _updateType = UpdateType.Setup;
|
||||
+ } else if (path.basename(path.normalize(path.join(process.execPath, '..', '..'))) === 'Program Files') {
|
||||
+ _updateType = UpdateType.WindowsInstaller;
|
||||
+ } else {
|
||||
+ _updateType = UpdateType.Archive;
|
||||
+ }
|
||||
}
|
||||
@@ -89,6 +93,13 @@ export class Win32UpdateService extends AbstractUpdateService {
|
||||
|
||||
- if (getUpdateType() === UpdateType.Archive) {
|
||||
- platform += '-archive';
|
||||
- } else if (this.productService.target === 'user') {
|
||||
- platform += '-user';
|
||||
+ switch (getUpdateType()) {
|
||||
+ case UpdateType.Archive:
|
||||
+ platform += '-archive';
|
||||
+ break;
|
||||
+ case UpdateType.WindowsInstaller:
|
||||
+ platform += '-msi';
|
||||
+ break;
|
||||
+ default:
|
||||
+ if (this.productService.target === 'user') {
|
||||
+ platform += '-user';
|
||||
+ }
|
||||
}
|
||||
@@ -243,6 +254,14 @@ export class Win32UpdateService extends AbstractUpdateService {
|
||||
} else {
|
||||
- spawn(this.availableUpdate.packagePath, ['/silent', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
|
||||
- detached: true,
|
||||
- stdio: ['ignore', 'ignore', 'ignore']
|
||||
- });
|
||||
+ const type = getUpdateType();
|
||||
+ if (type == UpdateType.WindowsInstaller) {
|
||||
+ spawn('msiexec.exe', ['/i', this.availableUpdate.packagePath], {
|
||||
+ detached: true,
|
||||
+ stdio: ['ignore', 'ignore', 'ignore']
|
||||
+ });
|
||||
+ } else {
|
||||
+ spawn(this.availableUpdate.packagePath, ['/silent', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], {
|
||||
+ detached: true,
|
||||
+ stdio: ['ignore', 'ignore', 'ignore']
|
||||
+ });
|
||||
+ }
|
||||
}
|
||||
@@ -1,52 +1,28 @@
|
||||
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
|
||||
index 92313d0..a69da37 100644
|
||||
index e1f766d..4f11dbe 100644
|
||||
--- a/extensions/github-authentication/src/githubServer.ts
|
||||
+++ b/extensions/github-authentication/src/githubServer.ts
|
||||
@@ -3,41 +3,13 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
-import * as nls from 'vscode-nls';
|
||||
@@ -6,4 +6,2 @@
|
||||
import * as vscode from 'vscode';
|
||||
import fetch, { Response } from 'node-fetch';
|
||||
-import { v4 as uuid } from 'uuid';
|
||||
-import * as path from 'path';
|
||||
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
|
||||
import { ExperimentationTelemetry } from './experimentationService';
|
||||
import { AuthProviderType } from './github';
|
||||
import { ExperimentationTelemetry } from './common/experimentationService';
|
||||
@@ -11,14 +9,6 @@ import { AuthProviderType, UriEventHandler } from './github';
|
||||
import { Log } from './common/logger';
|
||||
-import { isSupportedEnvironment } from './common/env';
|
||||
-
|
||||
-const localize = nls.loadMessageBundle();
|
||||
-import { LoopbackAuthServer } from './node/authServer';
|
||||
-import { crypto } from './node/crypto';
|
||||
import { fetching } from './node/fetch';
|
||||
|
||||
-const CLIENT_ID = '01ab8ac9400c4e429b23';
|
||||
|
||||
-const GITHUB_TOKEN_URL = 'https://vscode.dev/codeExchangeProxyEndpoints/github/login/oauth/access_token';
|
||||
const NETWORK_ERROR = 'network error';
|
||||
-const AUTH_RELAY_SERVER = 'vscode-auth.github.com';
|
||||
-// const AUTH_RELAY_STAGING_SERVER = 'client-auth-staging-14a768b.herokuapp.com';
|
||||
-
|
||||
-class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.UriHandler {
|
||||
- constructor(private readonly Logger: Log) {
|
||||
- super();
|
||||
- }
|
||||
-
|
||||
- public handleUri(uri: vscode.Uri) {
|
||||
- this.Logger.trace('Handling Uri...');
|
||||
- this.fire(uri);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-function parseQuery(uri: vscode.Uri) {
|
||||
- return uri.query.split('&').reduce((prev: any, current) => {
|
||||
- const queryString = current.split('=');
|
||||
- prev[queryString[0]] = queryString[1];
|
||||
- return prev;
|
||||
- }, {});
|
||||
-}
|
||||
|
||||
export interface IGitHubServer extends vscode.Disposable {
|
||||
login(scopes: string): Promise<string>;
|
||||
@@ -47,13 +19,6 @@ export interface IGitHubServer extends vscode.Disposable {
|
||||
type: AuthProviderType;
|
||||
}
|
||||
-const REDIRECT_URL_STABLE = 'https://vscode.dev/redirect';
|
||||
-const REDIRECT_URL_INSIDERS = 'https://insiders.vscode.dev/redirect';
|
||||
-
|
||||
export interface IGitHubServer {
|
||||
@@ -30,9 +20,2 @@ export interface IGitHubServer {
|
||||
|
||||
-interface IGitHubDeviceCodeResponse {
|
||||
- device_code: string;
|
||||
@@ -56,107 +32,232 @@ index 92313d0..a69da37 100644
|
||||
-}
|
||||
-
|
||||
async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise<string[]> {
|
||||
try {
|
||||
logger.info('Getting token scopes...');
|
||||
@@ -115,315 +80,49 @@ async function getUserInfo(token: string, serverUri: vscode.Uri, logger: Log): P
|
||||
export class GitHubServer implements IGitHubServer {
|
||||
friendlyName = 'GitHub';
|
||||
type = AuthProviderType.github;
|
||||
- private _statusBarItem: vscode.StatusBarItem | undefined;
|
||||
- private _onDidManuallyProvideToken = new vscode.EventEmitter<string | undefined>();
|
||||
-
|
||||
- private _pendingStates = new Map<string, string[]>();
|
||||
- private _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
|
||||
- private _statusBarCommandId = `${this.type}.provide-manually`;
|
||||
- private _disposable: vscode.Disposable;
|
||||
- private _uriHandler = new UriEventHandler(this._logger);
|
||||
@@ -63,8 +46,4 @@ export class GitHubServer implements IGitHubServer {
|
||||
|
||||
constructor(private readonly _supportDeviceCodeFlow: boolean, private readonly _logger: Log, private readonly _telemetryReporter: ExperimentationTelemetry) {
|
||||
- this._disposable = vscode.Disposable.from(
|
||||
- vscode.commands.registerCommand(this._statusBarCommandId, () => this.manuallyProvideUri()),
|
||||
- vscode.window.registerUriHandler(this._uriHandler));
|
||||
+ this._supportDeviceCodeFlow;
|
||||
}
|
||||
- private readonly _pendingNonces = new Map<string, string[]>();
|
||||
- private readonly _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
|
||||
private readonly _type: AuthProviderType;
|
||||
|
||||
dispose() {
|
||||
- this._disposable.dispose();
|
||||
- }
|
||||
- private _redirectEndpoint: string | undefined;
|
||||
-
|
||||
- // TODO@joaomoreno TODO@TylerLeonhardt
|
||||
- private async isNoCorsEnvironment(): Promise<boolean> {
|
||||
- const uri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/dummy`));
|
||||
- return (uri.scheme === 'https' && /^((insiders\.)?vscode|github)\./.test(uri.authority)) || (uri.scheme === 'http' && /^localhost/.test(uri.authority));
|
||||
}
|
||||
constructor(
|
||||
@@ -72,3 +51,5 @@ export class GitHubServer implements IGitHubServer {
|
||||
private readonly _telemetryReporter: ExperimentationTelemetry,
|
||||
+ // @ts-ignore
|
||||
private readonly _uriHandler: UriEventHandler,
|
||||
+ // @ts-ignore
|
||||
private readonly _supportDeviceCodeFlow: boolean,
|
||||
@@ -87,41 +68,2 @@ export class GitHubServer implements IGitHubServer {
|
||||
|
||||
public async login(scopes: string): Promise<string> {
|
||||
this._logger.info(`Logging in for the following scopes: ${scopes}`);
|
||||
|
||||
- const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate`));
|
||||
-
|
||||
- if (!isSupportedEnvironment(callbackUri)) {
|
||||
- const token = this._supportDeviceCodeFlow
|
||||
- ? await this.doDeviceCodeFlow(scopes)
|
||||
- : await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
|
||||
-
|
||||
- if (!token) { throw new Error('No token provided'); }
|
||||
-
|
||||
- const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
|
||||
- const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
|
||||
- if (!scopesList.every(scope => {
|
||||
- const included = tokenScopes.includes(scope);
|
||||
- if (included || !scope.includes(':')) {
|
||||
- return included;
|
||||
- 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;
|
||||
- }
|
||||
- return this._redirectEndpoint;
|
||||
- } else {
|
||||
- // GHES
|
||||
- const result = await fetching(this.getServerUri('/meta').toString(true));
|
||||
- if (result.ok) {
|
||||
- try {
|
||||
- const json: { installed_version: string } = await result.json();
|
||||
- const [majorStr, minorStr, _patch] = json.installed_version.split('.');
|
||||
- const major = Number(majorStr);
|
||||
- const minor = Number(minorStr);
|
||||
- if (major >= 4 || major === 3 && minor >= 8
|
||||
- ) {
|
||||
- // GHES 3.8 and above used vscode.dev/redirect as the route.
|
||||
- // It only supports a single redirect endpoint, so we can't use
|
||||
- // insiders.vscode.dev/redirect when we're running in Insiders, unfortunately.
|
||||
- this._redirectEndpoint = 'https://vscode.dev/redirect';
|
||||
- }
|
||||
- } catch (e) {
|
||||
- this._logger.error(e);
|
||||
- }
|
||||
-
|
||||
- return scope.split(':').some(splitScopes => {
|
||||
- return tokenScopes.includes(splitScopes);
|
||||
- });
|
||||
- })) {
|
||||
- throw new Error(`The provided token does not match the requested scopes: ${scopes}`);
|
||||
- }
|
||||
-
|
||||
- return token;
|
||||
- // TODO in like 1 year change the default vscode.dev/redirect maybe
|
||||
- this._redirectEndpoint = 'https://vscode-auth.github.com/';
|
||||
- }
|
||||
- return this._redirectEndpoint;
|
||||
- }
|
||||
-
|
||||
// TODO@joaomoreno TODO@TylerLeonhardt
|
||||
@@ -137,58 +79,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 supported = isSupportedEnvironment(callbackUri);
|
||||
- if (supported) {
|
||||
- try {
|
||||
- return await this.doLoginWithoutLocalServer(scopes, nonce, callbackUri);
|
||||
- } catch (e) {
|
||||
- this._logger.error(e);
|
||||
- userCancelled = e.message ?? e === 'User Cancelled';
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- this.updateStatusBarItem(true);
|
||||
-
|
||||
- const state = uuid();
|
||||
- const existingStates = this._pendingStates.get(scopes) || [];
|
||||
- this._pendingStates.set(scopes, [...existingStates, state]);
|
||||
-
|
||||
- const uri = vscode.Uri.parse(`https://${AUTH_RELAY_SERVER}/authorize/?callbackUri=${encodeURIComponent(callbackUri.toString())}&scope=${scopes}&state=${state}&responseType=code&authServer=https://github.com`);
|
||||
- await vscode.env.openExternal(uri);
|
||||
-
|
||||
- // Register a single listener for the URI callback, in case the user starts the login process multiple times
|
||||
- // before completing it.
|
||||
- let codeExchangePromise = this._codeExchangePromises.get(scopes);
|
||||
- if (!codeExchangePromise) {
|
||||
- codeExchangePromise = promiseFromEvent(this._uriHandler.event, this.exchangeCodeForToken(scopes));
|
||||
- this._codeExchangePromises.set(scopes, codeExchangePromise);
|
||||
- // Starting a local server isn't supported in web
|
||||
- if (vscode.env.uiKind === vscode.UIKind.Desktop) {
|
||||
- try {
|
||||
- await promptToContinue();
|
||||
- return await this.doLoginWithLocalServer(scopes);
|
||||
- } catch (e) {
|
||||
- this._logger.error(e);
|
||||
- userCancelled = e.message ?? e === 'User Cancelled';
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return Promise.race([
|
||||
- codeExchangePromise.promise,
|
||||
- promiseFromEvent<string | undefined, string>(this._onDidManuallyProvideToken.event, (token: string | undefined, resolve, reject): void => {
|
||||
- if (!token) {
|
||||
- reject('Cancelled');
|
||||
- } else {
|
||||
- resolve(token);
|
||||
- }
|
||||
- }).promise,
|
||||
- new Promise<string>((_, reject) => setTimeout(() => reject('Cancelled'), 60000))
|
||||
- ]).finally(() => {
|
||||
- this._pendingStates.delete(scopes);
|
||||
- codeExchangePromise?.cancel.fire();
|
||||
- this._codeExchangePromises.delete(scopes);
|
||||
- this.updateStatusBarItem(false);
|
||||
- if (this._supportDeviceCodeFlow) {
|
||||
- try {
|
||||
- await promptToContinue();
|
||||
- return await this.doLoginDeviceCodeFlow(scopes);
|
||||
- } catch (e) {
|
||||
- this._logger.error(e);
|
||||
- userCancelled = e.message ?? e === 'User Cancelled';
|
||||
- }
|
||||
- } else if (!supported) {
|
||||
- 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';
|
||||
}
|
||||
@@ -198,136 +90,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 doDeviceCodeFlow(scopes: string): Promise<string> {
|
||||
- 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 = `https://github.com/login/device/code?client_id=${CLIENT_ID}&scope=${scopes}`;
|
||||
- const result = await fetch(uri, {
|
||||
- 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'
|
||||
@@ -168,16 +269,16 @@ index 92313d0..a69da37 100644
|
||||
-
|
||||
- const json = await result.json() as IGitHubDeviceCodeResponse;
|
||||
-
|
||||
-
|
||||
- const button = vscode.l10n.t('Copy & Continue to GitHub');
|
||||
- const modalResult = await vscode.window.showInformationMessage(
|
||||
- localize('code.title', "Your Code: {0}", json.user_code),
|
||||
- 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: localize('code.detail', "To finish authenticating, navigate to GitHub and paste in the above one-time code.")
|
||||
- }, 'Copy & Continue to GitHub');
|
||||
- detail: vscode.l10n.t('To finish authenticating, navigate to GitHub and paste in the above one-time code.')
|
||||
- }, button);
|
||||
-
|
||||
- if (modalResult !== 'Copy & Continue to GitHub') {
|
||||
- throw new Error('Cancelled');
|
||||
- if (modalResult !== button) {
|
||||
- throw new Error('User Cancelled');
|
||||
- }
|
||||
-
|
||||
- await vscode.env.clipboard.writeText(json.user_code);
|
||||
@@ -185,208 +286,158 @@ index 92313d0..a69da37 100644
|
||||
- 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> {
|
||||
@@ -355,124 +113,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: localize(
|
||||
- 'progress',
|
||||
- "Open [{0}]({0}) in a new tab and paste your one-time code: {1}",
|
||||
- json.verification_uri,
|
||||
- json.user_code)
|
||||
- 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) => {
|
||||
- return await this.waitForDeviceCodeAccessToken(json, 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 async waitForDeviceCodeAccessToken(
|
||||
- json: IGitHubDeviceCodeResponse,
|
||||
- token: vscode.CancellationToken
|
||||
- ): Promise<string> {
|
||||
-
|
||||
- const refreshTokenUri = `https://github.com/login/oauth/access_token?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('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;
|
||||
- }
|
||||
- let accessTokenResult;
|
||||
- try {
|
||||
- accessTokenResult = await fetch(refreshTokenUri, {
|
||||
- method: 'POST',
|
||||
- headers: {
|
||||
- Accept: 'application/json'
|
||||
- }
|
||||
- });
|
||||
- } catch {
|
||||
- continue;
|
||||
- if (!nonce) {
|
||||
- reject(new Error('No nonce'));
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (!accessTokenResult.ok) {
|
||||
- continue;
|
||||
- }
|
||||
+ const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
|
||||
|
||||
- const accessTokenJson = await accessTokenResult.json();
|
||||
+ if (!token) { throw new Error('No token provided'); }
|
||||
|
||||
- if (accessTokenJson.error === 'authorization_pending') {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- if (accessTokenJson.error) {
|
||||
- throw new Error(accessTokenJson.error_description);
|
||||
+ const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
|
||||
+ const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
|
||||
+ if (!scopesList.every(scope => {
|
||||
+ const included = tokenScopes.includes(scope);
|
||||
+ if (included || !scope.includes(':')) {
|
||||
+ return included;
|
||||
}
|
||||
|
||||
- return accessTokenJson.access_token;
|
||||
+ return scope.split(':').some(splitScopes => {
|
||||
+ return tokenScopes.includes(splitScopes);
|
||||
+ });
|
||||
+ })) {
|
||||
+ throw new Error(`The provided token does not match the requested scopes: ${scopes}`);
|
||||
}
|
||||
|
||||
- throw new Error('Cancelled');
|
||||
+ return token;
|
||||
}
|
||||
|
||||
- private exchangeCodeForToken: (scopes: string) => PromiseAdapter<vscode.Uri, string> =
|
||||
- (scopes) => async (uri, resolve, reject) => {
|
||||
- const query = parseQuery(uri);
|
||||
- const code = query.code;
|
||||
-
|
||||
- const acceptedStates = this._pendingStates.get(scopes) || [];
|
||||
- if (!acceptedStates.includes(query.state)) {
|
||||
- const acceptedNonces = this._pendingNonces.get(scopes) || [];
|
||||
- if (!acceptedNonces.includes(nonce)) {
|
||||
- // A common scenario of this happening is if you:
|
||||
- // 1. Trigger a sign in with one set of scopes
|
||||
- // 2. Before finishing 1, you trigger a sign in with a different set of scopes
|
||||
- // In this scenario we should just return and wait for the next UriHandler event
|
||||
- // to run as we are probably still waiting on the user to hit 'Continue'
|
||||
- this._logger.info('State not found in accepted state. Skipping this execution...');
|
||||
- this._logger.info('Nonce not found in accepted nonces. Skipping this execution...');
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- const url = `https://${AUTH_RELAY_SERVER}/token?code=${code}&state=${query.state}`;
|
||||
- this._logger.info('Exchanging code for token...');
|
||||
-
|
||||
- try {
|
||||
- const result = await fetch(url, {
|
||||
- method: 'POST',
|
||||
- headers: {
|
||||
- Accept: 'application/json'
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (result.ok) {
|
||||
- const json = await result.json();
|
||||
- this._logger.info('Token exchange success!');
|
||||
- resolve(json.access_token);
|
||||
- } else {
|
||||
- reject(result.statusText);
|
||||
- }
|
||||
- } catch (ex) {
|
||||
- reject(ex);
|
||||
- }
|
||||
- resolve(this.exchangeCodeForToken(code));
|
||||
- };
|
||||
-
|
||||
private getServerUri(path: string = '') {
|
||||
const apiUri = vscode.Uri.parse('https://api.github.com');
|
||||
return vscode.Uri.parse(`${apiUri.scheme}://${apiUri.authority}${path}`);
|
||||
}
|
||||
|
||||
- private updateStatusBarItem(isStart?: boolean) {
|
||||
- if (isStart && !this._statusBarItem) {
|
||||
- this._statusBarItem = vscode.window.createStatusBarItem('status.git.signIn', vscode.StatusBarAlignment.Left);
|
||||
- this._statusBarItem.name = localize('status.git.signIn.name', "GitHub Sign-in");
|
||||
- this._statusBarItem.text = localize('signingIn', "$(mark-github) Signing in to github.com...");
|
||||
- this._statusBarItem.command = this._statusBarCommandId;
|
||||
- this._statusBarItem.show();
|
||||
- }
|
||||
- private async exchangeCodeForToken(code: string): Promise<string> {
|
||||
- this._logger.info('Exchanging code for token...');
|
||||
-
|
||||
- if (!isStart && this._statusBarItem) {
|
||||
- this._statusBarItem.dispose();
|
||||
- this._statusBarItem = undefined;
|
||||
- }
|
||||
- }
|
||||
- const proxyEndpoints: { [providerId: string]: string } | undefined = await vscode.commands.executeCommand('workbench.getCodeExchangeProxyEndpoints');
|
||||
- const endpointUrl = proxyEndpoints?.github ? `${proxyEndpoints.github}login/oauth/access_token` : GITHUB_TOKEN_URL;
|
||||
-
|
||||
- private async manuallyProvideUri() {
|
||||
- const uri = await vscode.window.showInputBox({
|
||||
- prompt: 'Uri',
|
||||
- ignoreFocusOut: true,
|
||||
- validateInput(value) {
|
||||
- if (!value) {
|
||||
- return undefined;
|
||||
- }
|
||||
- const error = localize('validUri', "Please enter a valid Uri from the GitHub login page.");
|
||||
- try {
|
||||
- const uri = vscode.Uri.parse(value.trim());
|
||||
- if (!uri.scheme || uri.scheme === 'file') {
|
||||
- return error;
|
||||
- }
|
||||
- } catch (e) {
|
||||
- return error;
|
||||
- }
|
||||
- return undefined;
|
||||
- }
|
||||
- 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 (!uri) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- this._uriHandler.handleUri(vscode.Uri.parse(uri.trim()));
|
||||
- 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;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
public getUserInfo(token: string): Promise<{ id: string; accountName: string }> {
|
||||
return getUserInfo(token, this.getServerUri('/user'), this._logger);
|
||||
}
|
||||
private getServerUri(path: string = '') {
|
||||
diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
|
||||
index 2fff6cf..46967ce 100644
|
||||
--- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
|
||||
+++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
|
||||
@@ -307,3 +307,3 @@ export class AccountsActivityActionViewItem extends MenuActivityActionViewItem {
|
||||
|
||||
- public async sendAdditionalTelemetryInfo(token: string): Promise<void> {
|
||||
- if (!vscode.env.isTelemetryEnabled) {
|
||||
- return;
|
||||
- }
|
||||
- const nocors = await this.isNoCorsEnvironment();
|
||||
- if (providers.length && !menus.length) {
|
||||
+ if (!menus.length) {
|
||||
const noAccountsAvailableAction = disposables.add(new Action('noAccountsAvailable', localize('noAccounts', "You are not signed in to any accounts"), undefined, false));
|
||||
diff --git a/src/vs/workbench/services/authentication/browser/authenticationService.ts b/src/vs/workbench/services/authentication/browser/authenticationService.ts
|
||||
index 1d9ac76..57b915c 100644
|
||||
--- a/src/vs/workbench/services/authentication/browser/authenticationService.ts
|
||||
+++ b/src/vs/workbench/services/authentication/browser/authenticationService.ts
|
||||
@@ -267,12 +267,2 @@ export class AuthenticationService extends Disposable implements IAuthentication
|
||||
}
|
||||
-
|
||||
- if (nocors) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- const result = await fetch('https://education.github.com/api/user', {
|
||||
- headers: {
|
||||
- Authorization: `token ${token}`,
|
||||
- 'faculty-check-preview': 'true',
|
||||
- 'User-Agent': 'Visual-Studio-Code'
|
||||
- }
|
||||
- if (!this._authenticationProviders.size) {
|
||||
- placeholderMenuItem = MenuRegistry.appendMenuItem(MenuId.AccountsContext, {
|
||||
- command: {
|
||||
- id: 'noAuthenticationProviders',
|
||||
- title: nls.localize('loading', "Loading..."),
|
||||
- precondition: ContextKeyExpr.false()
|
||||
- },
|
||||
- });
|
||||
-
|
||||
- if (result.ok) {
|
||||
- const json: { student: boolean; faculty: boolean } = await result.json();
|
||||
-
|
||||
- /* __GDPR__
|
||||
- "session" : {
|
||||
- "isEdu": { "classification": "NonIdentifiableDemographicInfo", "purpose": "FeatureInsight" }
|
||||
- }
|
||||
- */
|
||||
- this._telemetryReporter.sendTelemetryEvent('session', {
|
||||
- isEdu: json.student
|
||||
- ? 'student'
|
||||
- : json.faculty
|
||||
- ? 'faculty'
|
||||
- : 'none'
|
||||
- });
|
||||
- }
|
||||
- } catch (e) {
|
||||
- // No-op
|
||||
- }
|
||||
+ public async sendAdditionalTelemetryInfo(_: string): Promise<void> {
|
||||
}
|
||||
|
||||
public async checkEnterpriseVersion(token: string): Promise<void> {
|
||||
|
||||
9
patches/win7.patch
Normal file
@@ -0,0 +1,9 @@
|
||||
diff --git a/build/win32/code.iss b/build/win32/code.iss
|
||||
index d365ab1..1a02701 100644
|
||||
--- a/build/win32/code.iss
|
||||
+++ b/build/win32/code.iss
|
||||
@@ -28,3 +28,3 @@ ChangesEnvironment=true
|
||||
ChangesAssociations=true
|
||||
-MinVersion=6.2
|
||||
+MinVersion=6.1.7600
|
||||
SourceDir={#SourceDir}
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "$1" ]]; then
|
||||
echo "Calcuating checksum for $1"
|
||||
checksum -a sha256 "$1" > "$1".sha256
|
||||
checksum "$1" > "$1".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir artifacts
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Building and moving ZIP"
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y ../artifacts/VSCodium-darwin-${VSCODE_ARCH}-${MS_TAG}.zip ./*.app
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
|
||||
echo "Building and moving DMG"
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg VSCodium.app ..
|
||||
mv "../VSCodium ${MS_TAG}.dmg" "../artifacts/VSCodium.${VSCODE_ARCH}.${MS_TAG}.dmg"
|
||||
popd
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Moving ZIP"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip artifacts\\VSCodium-win32-${VSCODE_ARCH}-${MS_TAG}.zip
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
echo "Moving System EXE"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe artifacts\\VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
echo "Moving User EXE"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe artifacts\\VSCodiumUserSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
echo "Moving MSI"
|
||||
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
echo "Moving MSI with disabled updates"
|
||||
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi artifacts/
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
|
||||
echo "Building and moving TAR"
|
||||
cd VSCode-linux-${VSCODE_ARCH}
|
||||
tar czf ../artifacts/VSCodium-linux-${VSCODE_ARCH}-${MS_TAG}.tar.gz .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
|
||||
echo "Moving DEB"
|
||||
mv vscode/.build/linux/deb/*/deb/*.deb artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
echo "Moving RPM"
|
||||
mv vscode/.build/linux/rpm/*/*.rpm artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
echo "Moving AppImage"
|
||||
mv build/linux/appimage/out/*.AppImage* artifacts/
|
||||
fi
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
189
prepare_assets.sh
Executable file
@@ -0,0 +1,189 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
|
||||
CERTIFICATE_P12="${APP_NAME}.p12"
|
||||
KEYCHAIN="${RUNNER_TEMP}/build.keychain"
|
||||
|
||||
echo "${CERTIFICATE_OSX_P12}" | base64 --decode > "${CERTIFICATE_P12}"
|
||||
|
||||
echo "+ create temporary keychain"
|
||||
security create-keychain -p mysecretpassword "${KEYCHAIN}"
|
||||
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
|
||||
security unlock-keychain -p mysecretpassword "${KEYCHAIN}"
|
||||
security list-keychains -s `security list-keychains | xargs` "${KEYCHAIN}"
|
||||
# security list-keychains -d user
|
||||
# security show-keychain-info ${KEYCHAIN}
|
||||
|
||||
echo "+ import certificate to keychain"
|
||||
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_PASSWORD}" -T /usr/bin/codesign
|
||||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k mysecretpassword "${KEYCHAIN}" > /dev/null
|
||||
# security find-identity "${KEYCHAIN}"
|
||||
|
||||
echo "+ signing"
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME} - Insiders.app"
|
||||
else
|
||||
codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME}.app"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Building and moving ZIP"
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y "../assets/${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ./*.app
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
|
||||
echo "Building and moving DMG"
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg ./*.app ..
|
||||
mv ../*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_SRC}" == "yes" ]]; then
|
||||
git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
|
||||
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="darwin"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
. ../build/windows/msi/build.sh
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
. ../build/windows/msi/build-updates-disabled.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Moving ZIP"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip" "assets\\${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
echo "Moving System EXE"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
echo "Moving User EXE"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
echo "Moving MSI"
|
||||
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
echo "Moving MSI with disabled updates"
|
||||
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" assets/
|
||||
fi
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="win32"
|
||||
else
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
. ../build/linux/appimage/build.sh
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
|
||||
echo "Building and moving TAR"
|
||||
cd "VSCode-linux-${VSCODE_ARCH}"
|
||||
tar czf "../assets/${APP_NAME}-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
|
||||
echo "Moving DEB"
|
||||
mv vscode/.build/linux/deb/*/deb/*.deb assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
echo "Moving RPM"
|
||||
mv vscode/.build/linux/rpm/*/*.rpm assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
echo "Moving AppImage"
|
||||
mv build/linux/appimage/out/*.AppImage* assets/
|
||||
|
||||
find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="linux"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building and moving REH"
|
||||
cd "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -2,10 +2,18 @@
|
||||
|
||||
set -e
|
||||
|
||||
cp -rp src/* vscode/
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
cp -rp src/insider/* vscode/
|
||||
else
|
||||
cp -rp src/stable/* vscode/
|
||||
fi
|
||||
|
||||
cp -f LICENSE vscode/LICENSE.txt
|
||||
|
||||
cd vscode || exit
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
../update_settings.sh
|
||||
|
||||
@@ -13,81 +21,169 @@ cd vscode || exit
|
||||
{ set +x; } 2>/dev/null
|
||||
|
||||
for file in ../patches/*.patch; do
|
||||
if [ -f "$file" ]; then
|
||||
echo applying patch: $file;
|
||||
git apply --ignore-whitespace "$file"
|
||||
if [ -f "${file}" ]; then
|
||||
echo applying patch: "${file}";
|
||||
git apply --ignore-whitespace "${file}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch $file 1>&2
|
||||
echo failed to apply patch "${file}" 1>&2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for file in ../patches/insider/*.patch; do
|
||||
if [ -f "${file}" ]; then
|
||||
echo applying patch: "${file}";
|
||||
git apply --ignore-whitespace "${file}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch "${file}" 1>&2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for file in ../patches/user/*.patch; do
|
||||
if [ -f "$file" ]; then
|
||||
echo applying user patch: $file;
|
||||
git apply --ignore-whitespace "$file"
|
||||
if [ -f "${file}" ]; then
|
||||
echo applying user patch: "${file}";
|
||||
git apply --ignore-whitespace "${file}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch $file 1>&2
|
||||
echo failed to apply patch "${file}" 1>&2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
set -x
|
||||
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
|
||||
npm_config_argv='{"original":["--ignore-optional"]}' yarn postinstall
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
yarn postinstall
|
||||
elif [[ "${npm_config_arch}" == "armv7l" || "${npm_config_arch}" == "ia32" ]]; then
|
||||
# node-gyp@9.0.0 shipped with node@16.15.0 starts using config.gypi
|
||||
# from the custom headers path if dist-url option was set, instead of
|
||||
# using the config value from the process. Electron builds with pointer compression
|
||||
# enabled for x64 and arm64, but incorrectly ships a single copy of config.gypi
|
||||
# with v8_enable_pointer_compression option always set for all target architectures.
|
||||
# We use the force_process_config option to use the config.gypi from the
|
||||
# nodejs process executing npm for 32-bit architectures.
|
||||
export npm_config_force_process_config="true"
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
else
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
fi
|
||||
|
||||
mv product.json product.json.bak
|
||||
setpath() {
|
||||
{ set +x; } 2>/dev/null
|
||||
echo "$( cat "${1}.json" | jq --arg 'path' "${2}" --arg 'value' "${3}" 'setpath([$path]; $value)' )" > "${1}.json"
|
||||
set -x
|
||||
}
|
||||
|
||||
# set fields in product.json
|
||||
checksumFailMoreInfoUrl='setpath(["checksumFailMoreInfoUrl"]; "https://go.microsoft.com/fwlink/?LinkId=828886")'
|
||||
tipsAndTricksUrl='setpath(["tipsAndTricksUrl"]; "https://go.microsoft.com/fwlink/?linkid=852118")'
|
||||
twitterUrl='setpath(["twitterUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533687")'
|
||||
requestFeatureUrl='setpath(["requestFeatureUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533482")'
|
||||
documentationUrl='setpath(["documentationUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533484#vscode")'
|
||||
introductoryVideosUrl='setpath(["introductoryVideosUrl"]; "https://go.microsoft.com/fwlink/?linkid=832146")'
|
||||
extensionAllowedBadgeProviders='setpath(["extensionAllowedBadgeProviders"]; ["api.bintray.com", "api.travis-ci.com", "api.travis-ci.org", "app.fossa.io", "badge.fury.io", "badge.waffle.io", "badgen.net", "badges.frapsoft.com", "badges.gitter.im", "badges.greenkeeper.io", "cdn.travis-ci.com", "cdn.travis-ci.org", "ci.appveyor.com", "circleci.com", "cla.opensource.microsoft.com", "codacy.com", "codeclimate.com", "codecov.io", "coveralls.io", "david-dm.org", "deepscan.io", "dev.azure.com", "flat.badgen.net", "gemnasium.com", "githost.io", "gitlab.com", "godoc.org", "goreportcard.com", "img.shields.io", "isitmaintained.com", "marketplace.visualstudio.com", "nodesecurity.io", "opencollective.com", "snyk.io", "travis-ci.com", "travis-ci.org", "visualstudio.com", "vsmarketplacebadge.apphb.com", "www.bithound.io", "www.versioneye.com"])'
|
||||
updateUrl='setpath(["updateUrl"]; "https://vscodium.now.sh")'
|
||||
releaseNotesUrl='setpath(["releaseNotesUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533483#vscode")'
|
||||
keyboardShortcutsUrlMac='setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
|
||||
keyboardShortcutsUrlLinux='setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
|
||||
keyboardShortcutsUrlWin='setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
|
||||
quality='setpath(["quality"]; "stable")'
|
||||
extensionsGallery='setpath(["extensionsGallery"]; {"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"})'
|
||||
linkProtectionTrustedDomains='setpath(["linkProtectionTrustedDomains"]; ["https://open-vsx.org"])'
|
||||
nameShort='setpath(["nameShort"]; "VSCodium")'
|
||||
nameLong='setpath(["nameLong"]; "VSCodium")'
|
||||
linuxIconName='setpath(["linuxIconName"]; "vscodium")'
|
||||
applicationName='setpath(["applicationName"]; "codium")'
|
||||
win32MutexName='setpath(["win32MutexName"]; "vscodium")'
|
||||
win32DirName='setpath(["win32DirName"]; "VSCodium")'
|
||||
win32NameVersion='setpath(["win32NameVersion"]; "VSCodium")'
|
||||
win32RegValueName='setpath(["win32RegValueName"]; "VSCodium")'
|
||||
win32AppUserModelId='setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
|
||||
win32ShellNameShort='setpath(["win32ShellNameShort"]; "VSCodium")'
|
||||
win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
|
||||
urlProtocol='setpath(["urlProtocol"]; "vscodium")'
|
||||
extensionAllowedProposedApi='setpath(["extensionAllowedProposedApi"]; getpath(["extensionAllowedProposedApi"]) + ["ms-vscode.cpptools", "ms-azuretools.vscode-docker", "visualstudioexptteam.vscodeintellicode", "GitHub.codespaces", "GitHub.vscode-pull-request-github-insiders", "GitHub.vscode-pull-request-github", "Microsoft.vscode-nmake-tools", "ms-ai-tools.notebook-renderers", "ms-dotnettools.dotnet-interactive-vscode", "ms-python.gather", "ms-python.python", "ms-toolsai.jupyter", "ms-toolsai.vscode-ai", "ms-toolsai.vscode-ai-remote", "ms-vscode-remote.remote-containers-nightly", "ms-vscode-remote.remote-containers", "ms-vscode-remote.remote-ssh-edit-nightly", "ms-vscode-remote.remote-ssh-edit", "ms-vscode-remote.remote-ssh-nightly", "ms-vscode-remote.remote-ssh", "ms-vscode-remote.remote-wsl-nightly", "ms-vscode-remote.remote-wsl", "ms-vscode-remote.remote-wsl-recommender", "ms-vscode-remote.vscode-remote-extensionpack-nightly", "ms-vscode-remote.vscode-remote-extensionpack", "ms-vscode.azure-account", "ms-vscode.azure-sphere-tools-ui", "ms-vscode.azure-sphere-tools", "ms-vscode.github-browser", "ms-vscode.github-richnav", "ms-vscode.js-debug-nightly", "ms-vscode.js-debug", "ms-vscode.lsif-browser", "ms-vscode.vscode-js-profile-flame", "ms-vscode.vscode-js-profile-table", "ms-vscode.vscode-selfhost-test-provider", "ms-vsliveshare.cloudenv-explorer", "ms-vsliveshare.cloudenv", "ms-vsliveshare.vsliveshare", "ms-vsonline.vsonline", "dbaeumer.vscode-eslint"])'
|
||||
serverDataFolderName='setpath(["serverDataFolderName"]; ".vscode-server-oss")'
|
||||
reportIssueUrl='setpath(["reportIssueUrl"]; "https://github.com/VSCodium/vscodium/issues/new/choose")'
|
||||
licenseUrl='setpath(["licenseUrl"]; "https://github.com/VSCodium/vscodium/blob/master/LICENSE")'
|
||||
setpath_json() {
|
||||
{ set +x; } 2>/dev/null
|
||||
echo "$( cat "${1}.json" | jq --arg 'path' "${2}" --argjson 'value' "${3}" 'setpath([$path]; $value)' )" > "${1}.json"
|
||||
set -x
|
||||
}
|
||||
|
||||
# product.json
|
||||
cp product.json product.json.bak
|
||||
|
||||
setpath "product" "checksumFailMoreInfoUrl" "https://go.microsoft.com/fwlink/?LinkId=828886"
|
||||
setpath "product" "documentationUrl" "https://go.microsoft.com/fwlink/?LinkID=533484#vscode"
|
||||
setpath_json "product" "extensionsGallery" '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"}'
|
||||
setpath "product" "introductoryVideosUrl" "https://go.microsoft.com/fwlink/?linkid=832146"
|
||||
setpath "product" "keyboardShortcutsUrlLinux" "https://go.microsoft.com/fwlink/?linkid=832144"
|
||||
setpath "product" "keyboardShortcutsUrlMac" "https://go.microsoft.com/fwlink/?linkid=832143"
|
||||
setpath "product" "keyboardShortcutsUrlWin" "https://go.microsoft.com/fwlink/?linkid=832145"
|
||||
setpath "product" "licenseUrl" "https://github.com/VSCodium/vscodium/blob/master/LICENSE"
|
||||
setpath_json "product" "linkProtectionTrustedDomains" '["https://open-vsx.org"]'
|
||||
setpath "product" "releaseNotesUrl" "https://go.microsoft.com/fwlink/?LinkID=533483#vscode"
|
||||
setpath "product" "reportIssueUrl" "https://github.com/VSCodium/vscodium/issues/new"
|
||||
setpath "product" "requestFeatureUrl" "https://go.microsoft.com/fwlink/?LinkID=533482"
|
||||
setpath "product" "tipsAndTricksUrl" "https://go.microsoft.com/fwlink/?linkid=852118"
|
||||
setpath "product" "twitterUrl" "https://go.microsoft.com/fwlink/?LinkID=533687"
|
||||
|
||||
if [[ "${DISABLE_UPDATE}" != "yes" ]]; then
|
||||
setpath "product" "updateUrl" "https://vscodium.now.sh"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
setpath "product" "nameShort" "VSCodium - Insiders"
|
||||
setpath "product" "nameLong" "VSCodium - Insiders"
|
||||
setpath "product" "applicationName" "codium-insiders"
|
||||
setpath "product" "dataFolderName" ".vscodium-insiders"
|
||||
setpath "product" "linuxIconName" "vscodium-insiders"
|
||||
setpath "product" "quality" "insider"
|
||||
setpath "product" "urlProtocol" "vscodium-insiders"
|
||||
setpath "product" "serverApplicationName" "codium-server-insiders"
|
||||
setpath "product" "serverDataFolderName" ".vscodium-server-insiders"
|
||||
setpath "product" "darwinBundleIdentifier" "com.vscodium.VSCodiumInsiders"
|
||||
setpath "product" "win32AppUserModelId" "VSCodium.VSCodiumInsiders"
|
||||
setpath "product" "win32DirName" "VSCodium Insiders"
|
||||
setpath "product" "win32MutexName" "vscodiuminsiders"
|
||||
setpath "product" "win32NameVersion" "VSCodium Insiders"
|
||||
setpath "product" "win32RegValueName" "VSCodiumInsiders"
|
||||
setpath "product" "win32ShellNameShort" "VSCodium Insiders"
|
||||
setpath "product" "win32AppId" "{{EF35BB36-FA7E-4BB9-B7DA-D1E09F2DA9C9}"
|
||||
setpath "product" "win32x64AppId" "{{B2E0DDB2-120E-4D34-9F7E-8C688FF839A2}"
|
||||
setpath "product" "win32arm64AppId" "{{44721278-64C6-4513-BC45-D48E07830599}"
|
||||
setpath "product" "win32UserAppId" "{{ED2E5618-3E7E-4888-BF3C-A6CCC84F586F}"
|
||||
setpath "product" "win32x64UserAppId" "{{20F79D0D-A9AC-4220-9A81-CE675FFB6B41}"
|
||||
setpath "product" "win32arm64UserAppId" "{{2E362F92-14EA-455A-9ABD-3E656BBBFE71}"
|
||||
else
|
||||
setpath "product" "nameShort" "VSCodium"
|
||||
setpath "product" "nameLong" "VSCodium"
|
||||
setpath "product" "applicationName" "codium"
|
||||
setpath "product" "linuxIconName" "vscodium"
|
||||
setpath "product" "quality" "stable"
|
||||
setpath "product" "urlProtocol" "vscodium"
|
||||
setpath "product" "serverApplicationName" "codium-server"
|
||||
setpath "product" "serverDataFolderName" ".vscodium-server"
|
||||
setpath "product" "darwinBundleIdentifier" "com.vscodium"
|
||||
setpath "product" "win32AppUserModelId" "VSCodium.VSCodium"
|
||||
setpath "product" "win32DirName" "VSCodium"
|
||||
setpath "product" "win32MutexName" "vscodium"
|
||||
setpath "product" "win32NameVersion" "VSCodium"
|
||||
setpath "product" "win32RegValueName" "VSCodium"
|
||||
setpath "product" "win32ShellNameShort" "VSCodium"
|
||||
setpath "product" "win32AppId" "{{763CBF88-25C6-4B10-952F-326AE657F16B}"
|
||||
setpath "product" "win32x64AppId" "{{88DA3577-054F-4CA1-8122-7D820494CFFB}"
|
||||
setpath "product" "win32arm64AppId" "{{67DEE444-3D04-4258-B92A-BC1F0FF2CAE4}"
|
||||
setpath "product" "win32UserAppId" "{{0FD05EB4-651E-4E78-A062-515204B47A3A}"
|
||||
setpath "product" "win32x64UserAppId" "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}"
|
||||
setpath "product" "win32arm64UserAppId" "{{57FD70A5-1B8D-4875-9F40-C5553F094828}"
|
||||
fi
|
||||
|
||||
echo "$( jq -s '.[0] * .[1]' product.json ../product.json )" > product.json
|
||||
|
||||
product_json_changes="${checksumFailMoreInfoUrl} | ${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${extensionAllowedBadgeProviders} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${linkProtectionTrustedDomains} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi} | ${serverDataFolderName} | ${reportIssueUrl} | ${licenseUrl}"
|
||||
cat product.json.bak | jq "${product_json_changes}" > product.json
|
||||
cat product.json
|
||||
|
||||
# package.json
|
||||
cp package.json package.json.bak
|
||||
|
||||
setpath "package" "version" $( echo "${RELEASE_VERSION}" | sed -n -E "s/^(.*)\.([0-9]+)(-insider)?$/\1/p" )
|
||||
setpath "package" "release" $( echo "${RELEASE_VERSION}" | sed -n -E "s/^(.*)\.([0-9]+)(-insider)?$/\2/p" )
|
||||
|
||||
replace 's|Microsoft Corporation|VSCodium|' package.json
|
||||
|
||||
# announcements
|
||||
replace "s|\\[\\/\\* BUILTIN_ANNOUNCEMENTS \\*\\/\\]|$( cat ../announcements-builtin.json | tr -d '\n' )|" src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
|
||||
|
||||
../undo_telemetry.sh
|
||||
|
||||
if [[ "$OS_NAME" == "linux" ]]; then
|
||||
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.js
|
||||
replace 's|Microsoft Corporation|VSCodium|' build/lib/electron.ts
|
||||
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.js
|
||||
replace 's|([0-9]) Microsoft|\1 VSCodium|' build/lib/electron.ts
|
||||
|
||||
if [[ "${OS_NAME}" == "linux" ]]; then
|
||||
# microsoft adds their apt repo to sources
|
||||
# unless the app name is code-oss
|
||||
# as we are renaming the application to vscodium
|
||||
# we need to edit a line in the post install template
|
||||
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
sed -i "s/code-oss/codium-insiders/" resources/linux/debian/postinst.template
|
||||
else
|
||||
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
|
||||
fi
|
||||
|
||||
# fix the packages metadata
|
||||
# code.appdata.xml
|
||||
@@ -111,6 +207,10 @@ if [[ "$OS_NAME" == "linux" ]]; then
|
||||
|
||||
# snapcraft.yaml
|
||||
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
# code.iss
|
||||
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' build/win32/code.iss
|
||||
sed -i 's|Microsoft Corporation|VSCodium|' build/win32/code.iss
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
415
product.json
Normal file
@@ -0,0 +1,415 @@
|
||||
{
|
||||
"extensionAllowedBadgeProviders": [
|
||||
"api.bintray.com",
|
||||
"api.travis-ci.com",
|
||||
"api.travis-ci.org",
|
||||
"app.fossa.io",
|
||||
"badge.buildkite.com",
|
||||
"badge.fury.io",
|
||||
"badge.waffle.io",
|
||||
"badgen.net",
|
||||
"badges.frapsoft.com",
|
||||
"badges.gitter.im",
|
||||
"badges.greenkeeper.io",
|
||||
"cdn.travis-ci.com",
|
||||
"cdn.travis-ci.org",
|
||||
"ci.appveyor.com",
|
||||
"circleci.com",
|
||||
"cla.opensource.microsoft.com",
|
||||
"codacy.com",
|
||||
"codeclimate.com",
|
||||
"codecov.io",
|
||||
"coveralls.io",
|
||||
"david-dm.org",
|
||||
"deepscan.io",
|
||||
"dev.azure.com",
|
||||
"docs.rs",
|
||||
"flat.badgen.net",
|
||||
"gemnasium.com",
|
||||
"githost.io",
|
||||
"gitlab.com",
|
||||
"godoc.org",
|
||||
"goreportcard.com",
|
||||
"img.shields.io",
|
||||
"isitmaintained.com",
|
||||
"marketplace.visualstudio.com",
|
||||
"nodesecurity.io",
|
||||
"opencollective.com",
|
||||
"snyk.io",
|
||||
"travis-ci.com",
|
||||
"travis-ci.org",
|
||||
"visualstudio.com",
|
||||
"vsmarketplacebadge.apphb.com",
|
||||
"www.bithound.io",
|
||||
"www.versioneye.com"
|
||||
],
|
||||
"extensionAllowedBadgeProvidersRegex": [
|
||||
"^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"
|
||||
],
|
||||
"extensionEnabledApiProposals": {
|
||||
"ms-vscode.vscode-selfhost-test-provider": [
|
||||
"testObserver"
|
||||
],
|
||||
"VisualStudioExptTeam.vscodeintellicode-completions": [
|
||||
"inlineCompletionsAdditions"
|
||||
],
|
||||
"ms-vsliveshare.vsliveshare": [
|
||||
"contribMenuBarHome",
|
||||
"diffCommand",
|
||||
"documentFiltersExclusive",
|
||||
"fileSearchProvider",
|
||||
"findTextInFiles",
|
||||
"notebookCellExecutionState",
|
||||
"notebookLiveShare",
|
||||
"terminalDimensions",
|
||||
"terminalDataWriteEvent",
|
||||
"textSearchProvider"
|
||||
],
|
||||
"ms-vscode.js-debug": [
|
||||
"portsAttributes",
|
||||
"findTextInFiles",
|
||||
"workspaceTrust",
|
||||
"tunnels"
|
||||
],
|
||||
"ms-toolsai.vscode-ai-remote": [
|
||||
"resolvers"
|
||||
],
|
||||
"ms-python.python": [
|
||||
"quickPickSortByLabel",
|
||||
"testObserver",
|
||||
"telemetryLogger"
|
||||
],
|
||||
"ms-dotnettools.dotnet-interactive-vscode": [
|
||||
"notebookMessaging"
|
||||
],
|
||||
"GitHub.codespaces": [
|
||||
"contribEditSessions",
|
||||
"contribMenuBarHome",
|
||||
"contribRemoteHelp",
|
||||
"contribViewsRemote",
|
||||
"resolvers",
|
||||
"tunnels",
|
||||
"terminalDataWriteEvent",
|
||||
"treeViewReveal",
|
||||
"notebookKernelSource"
|
||||
],
|
||||
"ms-vscode.azure-repos": [
|
||||
"extensionRuntime",
|
||||
"fileSearchProvider",
|
||||
"telemetryLogger",
|
||||
"textSearchProvider"
|
||||
],
|
||||
"ms-vscode.remote-repositories": [
|
||||
"contribEditSessions",
|
||||
"contribRemoteHelp",
|
||||
"contribMenuBarHome",
|
||||
"contribViewsRemote",
|
||||
"contribViewsWelcome",
|
||||
"contribShareMenu",
|
||||
"documentFiltersExclusive",
|
||||
"editSessionIdentityProvider",
|
||||
"extensionRuntime",
|
||||
"fileSearchProvider",
|
||||
"quickPickSortByLabel",
|
||||
"workspaceTrust",
|
||||
"scmActionButton",
|
||||
"scmSelectedProvider",
|
||||
"scmValidation",
|
||||
"telemetryLogger",
|
||||
"textSearchProvider",
|
||||
"timeline"
|
||||
],
|
||||
"ms-vscode-remote.remote-wsl": [
|
||||
"resolvers",
|
||||
"contribViewsRemote",
|
||||
"telemetry"
|
||||
],
|
||||
"ms-vscode-remote.remote-ssh": [
|
||||
"resolvers",
|
||||
"tunnels",
|
||||
"terminalDataWriteEvent",
|
||||
"contribViewsRemote",
|
||||
"telemetry"
|
||||
],
|
||||
"ms-vscode.remote-server": [
|
||||
"resolvers"
|
||||
],
|
||||
"ms-vscode.remote-explorer": [
|
||||
"contribViewsRemote",
|
||||
"extensionsAny"
|
||||
],
|
||||
"ms-vscode-remote.remote-containers": [
|
||||
"contribEditSessions",
|
||||
"resolvers",
|
||||
"tunnels",
|
||||
"workspaceTrust",
|
||||
"terminalDimensions",
|
||||
"contribViewsRemote"
|
||||
],
|
||||
"ms-vscode.js-debug-nightly": [
|
||||
"portsAttributes",
|
||||
"findTextInFiles",
|
||||
"workspaceTrust",
|
||||
"tunnels"
|
||||
],
|
||||
"ms-vscode.lsif-browser": [
|
||||
"documentFiltersExclusive"
|
||||
],
|
||||
"GitHub.vscode-pull-request-github": [
|
||||
"contribCommentThreadAdditionalMenu",
|
||||
"tokenInformation",
|
||||
"commentsResolvedState",
|
||||
"contribShareMenu",
|
||||
"contribCommentPeekContext",
|
||||
"treeItemCheckbox",
|
||||
"codiconDecoration",
|
||||
"diffCommand"
|
||||
],
|
||||
"GitHub.copilot": [
|
||||
"inlineCompletionsAdditions"
|
||||
],
|
||||
"GitHub.copilot-nightly": [
|
||||
"inlineCompletionsAdditions"
|
||||
],
|
||||
"GitHub.remotehub": [
|
||||
"contribRemoteHelp",
|
||||
"contribMenuBarHome",
|
||||
"contribViewsRemote",
|
||||
"contribViewsWelcome",
|
||||
"documentFiltersExclusive",
|
||||
"extensionRuntime",
|
||||
"fileSearchProvider",
|
||||
"quickPickSortByLabel",
|
||||
"workspaceTrust",
|
||||
"scmSelectedProvider",
|
||||
"scmValidation",
|
||||
"textSearchProvider",
|
||||
"timeline",
|
||||
"telemetryLogger"
|
||||
],
|
||||
"ms-python.gather": [
|
||||
"notebookCellExecutionState"
|
||||
],
|
||||
"ms-python.vscode-pylance": [
|
||||
"notebookCellExecutionState"
|
||||
],
|
||||
"ms-toolsai.jupyter-renderers": [
|
||||
"contribNotebookStaticPreloads"
|
||||
],
|
||||
"ms-toolsai.jupyter": [
|
||||
"notebookControllerKind",
|
||||
"notebookDeprecated",
|
||||
"notebookMessaging",
|
||||
"notebookMime",
|
||||
"notebookCellExecutionState",
|
||||
"portsAttributes",
|
||||
"quickPickSortByLabel",
|
||||
"notebookKernelSource",
|
||||
"interactiveWindow",
|
||||
"notebookControllerAffinityHidden",
|
||||
"contribNotebookStaticPreloads"
|
||||
],
|
||||
"dbaeumer.vscode-eslint": [
|
||||
"notebookCellExecutionState"
|
||||
],
|
||||
"ms-vscode.azure-sphere-tools-ui": [
|
||||
"tunnels"
|
||||
],
|
||||
"ms-azuretools.vscode-azureappservice": [
|
||||
"terminalDataWriteEvent"
|
||||
],
|
||||
"ms-vscode.anycode": [
|
||||
"extensionsAny"
|
||||
],
|
||||
"ms-vscode.cpptools": [
|
||||
"terminalDataWriteEvent"
|
||||
],
|
||||
"redhat.java": [
|
||||
"documentPaste"
|
||||
],
|
||||
"jeanp413.open-remote-ssh": [
|
||||
"resolvers",
|
||||
"tunnels",
|
||||
"terminalDataWriteEvent",
|
||||
"contribViewsRemote"
|
||||
]
|
||||
},
|
||||
"extensionKind": {
|
||||
"Shan.code-settings-sync": [
|
||||
"ui"
|
||||
],
|
||||
"shalldie.background": [
|
||||
"ui"
|
||||
],
|
||||
"techer.open-in-browser": [
|
||||
"ui"
|
||||
],
|
||||
"CoenraadS.bracket-pair-colorizer-2": [
|
||||
"ui"
|
||||
],
|
||||
"CoenraadS.bracket-pair-colorizer": [
|
||||
"ui",
|
||||
"workspace"
|
||||
],
|
||||
"hiro-sun.vscode-emacs": [
|
||||
"ui",
|
||||
"workspace"
|
||||
],
|
||||
"hnw.vscode-auto-open-markdown-preview": [
|
||||
"ui",
|
||||
"workspace"
|
||||
],
|
||||
"wayou.vscode-todo-highlight": [
|
||||
"ui",
|
||||
"workspace"
|
||||
],
|
||||
"aaron-bond.better-comments": [
|
||||
"ui",
|
||||
"workspace"
|
||||
],
|
||||
"vscodevim.vim": [
|
||||
"ui"
|
||||
],
|
||||
"ollyhayes.colmak-vim": [
|
||||
"ui"
|
||||
]
|
||||
},
|
||||
"extensionPointExtensionKind": {
|
||||
"typescriptServerPlugins": [
|
||||
"workspace"
|
||||
]
|
||||
},
|
||||
"extensionSyncedKeys": {
|
||||
"ritwickdey.liveserver": [
|
||||
"liveServer.setup.version"
|
||||
]
|
||||
},
|
||||
"extensionVirtualWorkspacesSupport": {
|
||||
"esbenp.prettier-vscode": {
|
||||
"default": false
|
||||
},
|
||||
"msjsdiag.debugger-for-chrome": {
|
||||
"default": false
|
||||
},
|
||||
"redhat.java": {
|
||||
"default": false
|
||||
},
|
||||
"HookyQR.beautify": {
|
||||
"default": false
|
||||
},
|
||||
"ritwickdey.LiveServer": {
|
||||
"default": false
|
||||
},
|
||||
"VisualStudioExptTeam.vscodeintellicode": {
|
||||
"default": false
|
||||
},
|
||||
"octref.vetur": {
|
||||
"default": false
|
||||
},
|
||||
"formulahendry.code-runner": {
|
||||
"default": false
|
||||
},
|
||||
"xdebug.php-debug": {
|
||||
"default": false
|
||||
},
|
||||
"ms-mssql.mssql": {
|
||||
"default": false
|
||||
},
|
||||
"christian-kohler.path-intellisense": {
|
||||
"default": false
|
||||
},
|
||||
"eg2.tslint": {
|
||||
"default": false
|
||||
},
|
||||
"eg2.vscode-npm-script": {
|
||||
"default": false
|
||||
},
|
||||
"donjayamanne.githistory": {
|
||||
"default": false
|
||||
},
|
||||
"Zignd.html-css-class-completion": {
|
||||
"default": false
|
||||
},
|
||||
"christian-kohler.npm-intellisense": {
|
||||
"default": false
|
||||
},
|
||||
"EditorConfig.EditorConfig": {
|
||||
"default": false
|
||||
},
|
||||
"austin.code-gnu-global": {
|
||||
"default": false
|
||||
},
|
||||
"johnpapa.Angular2": {
|
||||
"default": false
|
||||
},
|
||||
"ms-vscode.vscode-typescript-tslint-plugin": {
|
||||
"default": false
|
||||
},
|
||||
"DotJoshJohnson.xml": {
|
||||
"default": false
|
||||
},
|
||||
"techer.open-in-browser": {
|
||||
"default": false
|
||||
},
|
||||
"tht13.python": {
|
||||
"default": false
|
||||
},
|
||||
"bmewburn.vscode-intelephense-client": {
|
||||
"default": false
|
||||
},
|
||||
"Angular.ng-template": {
|
||||
"default": false
|
||||
},
|
||||
"xdebug.php-pack": {
|
||||
"default": false
|
||||
},
|
||||
"dbaeumer.jshint": {
|
||||
"default": false
|
||||
},
|
||||
"yzhang.markdown-all-in-one": {
|
||||
"default": false
|
||||
},
|
||||
"Dart-Code.flutter": {
|
||||
"default": false
|
||||
},
|
||||
"streetsidesoftware.code-spell-checker": {
|
||||
"default": false
|
||||
},
|
||||
"rebornix.Ruby": {
|
||||
"default": false
|
||||
},
|
||||
"ms-vscode.sublime-keybindings": {
|
||||
"default": false
|
||||
},
|
||||
"mitaki28.vscode-clang": {
|
||||
"default": false
|
||||
},
|
||||
"steoates.autoimport": {
|
||||
"default": false
|
||||
},
|
||||
"donjayamanne.python-extension-pack": {
|
||||
"default": false
|
||||
},
|
||||
"shd101wyy.markdown-preview-enhanced": {
|
||||
"default": false
|
||||
},
|
||||
"mikestead.dotenv": {
|
||||
"default": false
|
||||
},
|
||||
"pranaygp.vscode-css-peek": {
|
||||
"default": false
|
||||
},
|
||||
"ikappas.phpcs": {
|
||||
"default": false
|
||||
},
|
||||
"platformio.platformio-ide": {
|
||||
"default": false
|
||||
},
|
||||
"jchannon.csharpextensions": {
|
||||
"default": false
|
||||
},
|
||||
"gruntfuggly.todo-tree": {
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
}
|
||||
44
release.sh
@@ -7,53 +7,61 @@ if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
REPOSITORY_OWNER="${ASSETS_REPOSITORY/\/*/}"
|
||||
REPOSITORY_NAME="${ASSETS_REPOSITORY/*\//}"
|
||||
|
||||
npm install -g github-release-cli
|
||||
|
||||
if [[ $( gh release view "${MS_TAG}" 2>&1 ) =~ "release not found" ]]; then
|
||||
echo "Creating release '${MS_TAG}'"
|
||||
gh release create "${MS_TAG}"
|
||||
if [[ $( gh release view --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" 2>&1 ) =~ "release not found" ]]; then
|
||||
echo "Creating release '${RELEASE_VERSION}'"
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
NOTES="update vscode to [${MS_COMMIT}](https://github.com/microsoft/vscode/tree/${MS_COMMIT})"
|
||||
CREATE_OPTIONS=""
|
||||
else
|
||||
NOTES="update vscode to [${MS_TAG}](https://code.visualstudio.com/updates/v$( echo ${MS_TAG//./_} | cut -d'_' -f 1,2 ))"
|
||||
CREATE_OPTIONS="--generate-notes"
|
||||
fi
|
||||
|
||||
gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --notes "${NOTES}" ${CREATE_OPTIONS}
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
cd assets
|
||||
|
||||
set +e
|
||||
|
||||
OWNER="${GITHUB_REPOSITORY_OWNER:-"VSCodium"}"
|
||||
REPO_NAME="${GITHUB_REPOSITORY:(${#OWNER}+1)}"
|
||||
REPOSITORY="${REPO_NAME:-"vscodium"}"
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]] && [[ "${FILE}" != *.sha1 ]] && [[ "${FILE}" != *.sha256 ]]; then
|
||||
echo "::group::Uploading '${FILE}' at $( date "+%T" )"
|
||||
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
gh release upload --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
EXIT_STATUS=$?
|
||||
echo "exit: $EXIT_STATUS"
|
||||
echo "exit: ${EXIT_STATUS}"
|
||||
|
||||
if (( $EXIT_STATUS )); then
|
||||
if (( "${EXIT_STATUS}" )); then
|
||||
for (( i=0; i<10; i++ ))
|
||||
do
|
||||
github-release delete --owner "${OWNER}" --repo "${REPOSITORY}" --tag "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
sleep $(( 15 * (i + 1)))
|
||||
|
||||
echo "RE-Uploading '${FILE}' at $( date "+%T" )"
|
||||
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
gh release upload --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
EXIT_STATUS=$?
|
||||
echo "exit: $EXIT_STATUS"
|
||||
echo "exit: ${EXIT_STATUS}"
|
||||
|
||||
if ! (( $EXIT_STATUS )); then
|
||||
if ! (( "${EXIT_STATUS}" )); then
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "exit: $EXIT_STATUS"
|
||||
echo "exit: ${EXIT_STATUS}"
|
||||
|
||||
if (( $EXIT_STATUS )); then
|
||||
if (( "${EXIT_STATUS}" )); then
|
||||
echo "'${FILE}' hasn't been uploaded!"
|
||||
|
||||
github-release delete --owner "${OWNER}" --repo "${REPOSITORY}" --tag "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_VERSION}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||