Deploy Code-OSS on a kubernetes cluster and connect with your Browser.
This repository is hosting the changes to have the Code-OSS running inside a Browser and connecting to a remote HTTP(s) server (instead of using Desktop mode).
The terminal is aware of the running Pod. Then, you can open terminals in every container of the running pod (if the containers have shell access).
Upstream Code-OSS is stored using Git subtree. It means that if you're not interested in updating/rebasing upstream code you don't need to setup anything else unlike git submodules. This repository is self-contained.
- NodeJS version used by
Code-OSS(Exact version can be find inside https://github.com/microsoft/vscode/blob/main/remote/.yarnrc with target property) - Yarn v1.x
codecontains the upstream content (subtree) + changes required to have Code running in a remote server.build/dockerfilesare for building a container.package.jsonholds some top-level scripts that you can find also in thecodefolder.
- Fetch dependencies with
yarncommand - Compile and watch folders:
yarn run watch - Run the server (another terminal for example):
yarn run server
docker build -f build/dockerfiles/linux-musl.Dockerfile -t linux-musl-amd64 .docker build -f build/dockerfiles/linux-libc.Dockerfile -t linux-libc-amd64 .export DOCKER_BUILDKIT=1docker build -f build/dockerfiles/assembly.Dockerfile -t che-code .
This project includes Devfile that simplifies developing Che-Code in Eclipse Che. To test your changes in Eclipse Che run the following VS Code Tasks:
prepareto download all the required dependenciesbuildto pre-build and start the watch moderunto run the VS Code server- Follow the suggested URL to test your changes.
This repository has a main branch being rebased on the main remote branch of Code-OSS.
Then, for each stable version of Code-OSSthere is a matching branch.
For example remote release/1.60 is handled locally as a 1.62.x branch.
Add the Code-OSS remote by using for example the following command:
$ git remote add upstream-code https://github.com/microsoft/vscodeFor a release branch:
$ git subtree pull --prefix code upstream-code release/1.62For the main branch:
$ git subtree pull --prefix code upstream-code mainFor a release branch:
$ git diff upstream-code/release/1.62 1.62.x:codeFor a main branch:
$ git diff upstream-code/main main:codeHow to fix the rebase-insiders Workflow?
Upstream VS Code changes may bring a breakage to Che-Code. In this case, the rebase-insiders Workflow run is failed. To fix it, follow the steps below:
- Checkout to a new branch, e.g.
fix-rebase. - Fetch the latest changes from the upstream:
git remote add upstream-code https://github.com/microsoft/vscode
git fetch upstream-code main
./rebase.sh- Fix the conflicts or other errors. Note, that
./rebase.shscript also apllies the patches from the.rebasedirectory. Sometimes, it also requires some updates there. - Open a PR with your changes.
There is a functionality to apply branding to some UI elements. The original data can be overridden by executing the branding.sh script. The script searches for the branding resources in the branding folder.
The branding/product.json file is crucial.
The values defined in the branding/product.json file override the default values.
Also the file serves data mapping for provided branding resources.
Example of the branding/product.json file:
{
"nameShort": "VS Code - Open Source",
"nameLong": "Red Hat OpenShift Dev Spaces with Microsoft Visual Studio Code - Open Source IDE",
"icons": {
"favicon": {
"universal": "icons/favicon.ico"
},
"welcome": {
"universal": "icons/dev-spaces.svg"
},
"statusBarItem": {
"universal": "icons/dev-spaces.svg"
},
"letterpress": {
"light": "icons/letterpress-light.svg",
"dark": "icons/letterpress-light.svg"
}
},
"remoteIndicatorCommands": {
"openDocumentationCommand": "Dev Spaces: Open Documentation",
"openDashboardCommand": "Dev Spaces: Open Dashboard",
"stopWorkspaceCommand": "Dev Spaces: Stop Workspace"
},
"workbenchConfigFilePath": "workbench-config.json",
"codiconCssFilePath": "css/codicon.css"
}
nameShort- The application name.nameLong- This is used for the Welcome page, the About dialog, and browser tab title.favicon- The icon for the browser tab title. It's the same for all themes.welcome- The icon for the Welcome (Get Started) page tab title. It's the same for all themes.statusBarItem- The icon for the status bar item. It's the same for all themes and must be defined ascodiconin theworkbench-config.jsonfile and thecodiconCSS styles.letterpress- The icon for the main area when all editors are closed. It's possible to provide different icons forlightanddarkthemes.remoteIndicatorCommands- The names of commands provided by theEclipse Che Remoteextension.workbenchConfigFilePath- The config file path. See an example of the config file.codiconCssFilePath- The codicon css file path. Must contain CSS styles forcodicons. The content of the file is appended to the coressponding css file. See an example of the content.
NOTE:
- All paths in the
branding/product.jsonfile must be relative to thebrandingfolder. For example, theworkbenchConfigFilePathfield might have theanyFolder/myConfigFiles/workbench-config.jsonvalue. This means that the config file can be found by the path:che-code/branding/anyFolder/myConfigFiles/workbench-config.json - Currently, the branding.sh script is not run automatically when building this project. It needs to be integrated into the build process of the downstream branded project or product.
This repo contains several actions, including:
Downstream builds can be found at the link below, which is internal to Red Hat. Stable builds can be found by replacing the 3.x with a specific version like 3.2.