docs: update workflow and remove yarn vscode

This commit is contained in:
Joe Previte 2020-12-16 11:48:43 -07:00
parent 5830532726
commit e391f68fcd
No known key found for this signature in database
GPG Key ID: 2C91590C6B742C24
2 changed files with 12 additions and 29 deletions

View File

@ -55,15 +55,6 @@ This directory contains scripts used for the development of code-server.
- Runs tests. - Runs tests.
- [./ci/dev/ci.sh](./dev/ci.sh) (`yarn ci`) - [./ci/dev/ci.sh](./dev/ci.sh) (`yarn ci`)
- Runs `yarn fmt`, `yarn lint` and `yarn test`. - Runs `yarn fmt`, `yarn lint` and `yarn test`.
- [./ci/dev/vscode.sh](./dev/vscode.sh) (`yarn vscode`)
- Ensures [./lib/vscode](../lib/vscode) is cloned, patched and dependencies are installed.
- [./ci/dev/patch-vscode.sh](./dev/patch-vscode.sh) (`yarn vscode:patch`)
- Applies [./ci/dev/vscode.patch](./dev/vscode.patch) to [./lib/vscode](../lib/vscode).
- [./ci/dev/diff-vscode.sh](./dev/diff-vscode.sh) (`yarn vscode:diff`)
- Diffs [./lib/vscode](../lib/vscode) into [./ci/dev/vscode.patch](./dev/vscode.patch).
- [./ci/dev/vscode.patch](./dev/vscode.patch)
- Our patch of VS Code, see [./doc/CONTRIBUTING.md](../doc/CONTRIBUTING.md#vs-code-patch).
- Generate it with `yarn vscode:diff` and apply with `yarn vscode:patch`.
- [./ci/dev/watch.ts](./dev/watch.ts) (`yarn watch`) - [./ci/dev/watch.ts](./dev/watch.ts) (`yarn watch`)
- Starts a process to build and launch code-server and restart on any code changes. - Starts a process to build and launch code-server and restart on any code changes.
- Example usage in [./doc/CONTRIBUTING.md](../doc/CONTRIBUTING.md). - Example usage in [./doc/CONTRIBUTING.md](../doc/CONTRIBUTING.md).

View File

@ -2,13 +2,14 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Contributing # Contributing
- [Pull Requests](#pull-requests) - [Contributing](#contributing)
- [Requirements](#requirements) - [Pull Requests](#pull-requests)
- [Development Workflow](#development-workflow) - [Requirements](#requirements)
- [Build](#build) - [Development Workflow](#development-workflow)
- [Structure](#structure) - [Build](#build)
- [VS Code Patch](#vs-code-patch) - [Structure](#structure)
- [Currently Known Issues](#currently-known-issues) - [VS Code Patch](#vs-code-patch)
- [Currently Known Issues](#currently-known-issues)
<!-- END doctoc generated TOC please keep comment here to allow auto update --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->
@ -42,7 +43,6 @@ of the dependencies code-server uses.
```shell ```shell
yarn yarn
yarn vscode
yarn watch yarn watch
# Visit http://localhost:8080 once the build is completed. # Visit http://localhost:8080 once the build is completed.
``` ```
@ -51,15 +51,11 @@ To develop inside an isolated Docker container:
```shell ```shell
./ci/dev/image/run.sh yarn ./ci/dev/image/run.sh yarn
./ci/dev/image/run.sh yarn vscode
./ci/dev/image/run.sh yarn watch ./ci/dev/image/run.sh yarn watch
``` ```
`yarn watch` will live reload changes to the source. `yarn watch` will live reload changes to the source.
If you introduce changes to the patch and you've previously built, you
must (1) manually reset VS Code and (2) run `yarn vscode:patch`.
## Build ## Build
You can build using: You can build using:
@ -89,7 +85,6 @@ The `release.sh` script is equal to running:
```shell ```shell
yarn yarn
yarn vscode
yarn build yarn build
yarn build:vscode yarn build:vscode
yarn release yarn release
@ -117,7 +112,7 @@ The `code-server` script serves an HTTP API for login and starting a remote VS C
The CLI code is in [./src/node](./src/node) and the HTTP routes are implemented in The CLI code is in [./src/node](./src/node) and the HTTP routes are implemented in
[./src/node/app](./src/node/app). [./src/node/app](./src/node/app).
Most of the meaty parts are in the VS Code patch, which we described next. Most of the meaty parts are in the VS Code portion of the codebase under [./lib/vscode](./lib/vscode), which we described next.
### VS Code Patch ### VS Code Patch
@ -127,10 +122,9 @@ and exposed an API to the front-end for file access and all UI needs.
Over time, Microsoft added support to VS Code to run it on the web. They have made Over time, Microsoft added support to VS Code to run it on the web. They have made
the front-end open source, but not the server. As such, code-server v2 (and later) uses the front-end open source, but not the server. As such, code-server v2 (and later) uses
the VS Code front-end and implements the server. You can find this in the VS Code front-end and implements the server. We use a git subtree to be able to pull in VS Code's front-end. This code lives under [./lib/vscode](./lib/vscode).
[./ci/dev/vscode.patch](../ci/dev/vscode.patch) under the path `src/vs/server`.
Other notable changes in our patch include: Some noteworthy changes in our codebase:
- Adding our build file, which includes our code and VS Code's web code - Adding our build file, which includes our code and VS Code's web code
- Allowing multiple extension directories (both user and built-in) - Allowing multiple extension directories (both user and built-in)
@ -146,12 +140,10 @@ Other notable changes in our patch include:
As the web portion of VS Code matures, we'll be able to shrink and possibly As the web portion of VS Code matures, we'll be able to shrink and possibly
eliminate our patch. In the meantime, upgrading the VS Code version requires eliminate our patch. In the meantime, upgrading the VS Code version requires
us to ensure that the patch is applied and works as intended. In the future, us to ensure that our changes are applied and work as intended. In the future,
we'd like to run VS Code unit tests against our builds to ensure that features we'd like to run VS Code unit tests against our builds to ensure that features
work as expected. work as expected.
To generate a new patch, run `yarn vscode:diff`
**Note**: We have [extension docs](../ci/README.md) on the CI and build system. **Note**: We have [extension docs](../ci/README.md) on the CI and build system.
If the functionality you're working on does NOT depend on code from VS Code, please If the functionality you're working on does NOT depend on code from VS Code, please