diff --git a/.gitignore b/.gitignore index 7fc41cc9..5c10b876 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ dist* out* release/ release-npm-package/ -release-binary/ +release-standalone/ release-packages/ release-gcp/ release-images/ diff --git a/ci/README.md b/ci/README.md index 471612cd..e5e63572 100644 --- a/ci/README.md +++ b/ci/README.md @@ -75,19 +75,19 @@ You can disable minification by setting `MINIFY=`. - Builds vscode into `./lib/vscode/out-vscode`. - [./ci/build/build-release.sh](./build/build-release.sh) (`yarn release`) - Bundles the output of the above two scripts into a single node module at `./release`. -- [./ci/build/build-binary-release.sh](./build/build-binary-release.sh) (`yarn release:binary`) +- [./ci/build/build-standalone-release.sh](./build/build-standalone-release.sh) (`yarn release:standalone`) - Requires a node module already built into `./release` with the above script. - - Will build a binary release with node and node_modules bundled into `./release-binary`. + - Will build a standalone release with node and node_modules bundled into `./release-standalone`. - [./ci/build/clean.sh](./build/clean.sh) (`yarn clean`) - Removes all build artifacts. - Will also `git reset --hard lib/vscode`. - Useful to do a clean build. - [./ci/build/code-server.sh](./build/code-server.sh) - - Copied into binary releases to run code-server with the bundled node binary. -- [./ci/build/test-binary-release.sh](./build/test-binary-release.sh) (`yarn test:binary-release`) - - Ensures code-server in the `./release-binary` directory works by installing an extension. + - Copied into standalone releases to run code-server with the bundled node binary. +- [./ci/build/test-standalone-release.sh](./build/test-standalone-release.sh) (`yarn test:standalone-release`) + - Ensures code-server in the `./release-standalone` directory works by installing an extension. - [./ci/build/build-packages.sh](./build/build-packages.sh) (`yarn package`) - - Packages `./release-binary` into a `.tar.gz` archive in `./release-packages`. + - Packages `./release-standalone` into a `.tar.gz` archive in `./release-packages`. - If on linux, [nfpm](https://github.com/goreleaser/nfpm) is used to generate `.deb` and `.rpm`. - [./ci/build/nfpm.yaml](./build/nfpm.yaml) - Used to configure [nfpm](https://github.com/goreleaser/nfpm) to generate `.deb` and `.rpm`. @@ -131,9 +131,9 @@ Helps avoid clobbering the CI configuration. - [./steps/release.sh](./steps/release.sh) - Runs the release process. - Generates the npm package at `./release`. -- [./steps/release-binary.sh](./steps/release-binary.sh) - - Takes the output of the previous script and generates a binary release and - release packages into `release-packages`. +- [./steps/release-packages.sh](./steps/release-packages.sh) + - Takes the output of the previous script and generates a standalone release and + release packages into `./release-packages`. - [./steps/publish-npm.sh](./steps/publish-npm.sh) - Grabs the `npm-package` release artifact for the current commit and publishes it on npm. - [./steps/build-docker-image.sh](./steps/build-docker-image.sh) diff --git a/ci/build/build-packages.sh b/ci/build/build-packages.sh index fc214b92..f2ee912a 100755 --- a/ci/build/build-packages.sh +++ b/ci/build/build-packages.sh @@ -2,7 +2,7 @@ set -euo pipefail # Packages code-server for the current OS and architecture into ./release-packages. -# This script assumes that a binary release is built already into ./release-binary +# This script assumes that a standalone release is built already into ./release-standalone main() { cd "$(dirname "${0}")/../.." @@ -29,9 +29,9 @@ main() { release_archive() { local release_name="code-server-$VERSION-$OS-$ARCH" if [[ $OS == "linux" ]]; then - tar -czf "release-packages/$release_name.tar.gz" --transform "s/^\.\/release-binary/$release_name/" ./release-binary + tar -czf "release-packages/$release_name.tar.gz" --transform "s/^\.\/release-standalone/$release_name/" ./release-standalone else - tar -czf "release-packages/$release_name.tar.gz" -s "/^release-binary/$release_name/" release-binary + tar -czf "release-packages/$release_name.tar.gz" -s "/^release-standalone/$release_name/" ./release-standalone fi echo "done (release-packages/$release_name)" diff --git a/ci/build/build-binary-release.sh b/ci/build/build-standalone-release.sh similarity index 94% rename from ci/build/build-binary-release.sh rename to ci/build/build-standalone-release.sh index a3166cbd..2556e44b 100755 --- a/ci/build/build-binary-release.sh +++ b/ci/build/build-standalone-release.sh @@ -5,8 +5,8 @@ main() { cd "$(dirname "${0}")/../.." source ./ci/lib.sh - rsync "$RELEASE_PATH/" "$RELEASE_PATH-binary" - RELEASE_PATH+=-binary + rsync "$RELEASE_PATH/" "$RELEASE_PATH-standalone" + RELEASE_PATH+=-standalone # We cannot find the path to node from $PATH because yarn shims a script to ensure # we use the same version it's using so we instead run a script with yarn that diff --git a/ci/build/clean.sh b/ci/build/clean.sh index 65c37440..aa7ddadc 100755 --- a/ci/build/clean.sh +++ b/ci/build/clean.sh @@ -8,7 +8,7 @@ main() { rm -Rf \ out \ release \ - release-binary \ + release-standalone \ release-packages \ release-gcp \ release-images/ \ diff --git a/ci/build/code-server.sh b/ci/build/code-server.sh index 34b92a6e..aca05745 100755 --- a/ci/build/code-server.sh +++ b/ci/build/code-server.sh @@ -1,7 +1,7 @@ #!/bin/sh -# This script is intended to be bundled into the binary releases. -# Runs code-server with the bundled Node binary. +# This script is intended to be bundled into the standalone releases. +# Runs code-server with the bundled node binary. # More complicated than readlink -f or realpath to support macOS. # See https://github.com/cdr/code-server/issues/1537 diff --git a/ci/build/nfpm.yaml b/ci/build/nfpm.yaml index 710cb1f4..ed8e1ea6 100644 --- a/ci/build/nfpm.yaml +++ b/ci/build/nfpm.yaml @@ -13,4 +13,4 @@ license: "MIT" files: ./ci/build/code-server-nfpm.sh: /usr/bin/code-server ./ci/build/code-server.service: /usr/lib/systemd/user/code-server.service - ./release-binary/**/*: "/usr/lib/code-server/" + ./release-standalone/**/*: "/usr/lib/code-server/" diff --git a/ci/build/test-binary-release.sh b/ci/build/test-standalone-release.sh similarity index 60% rename from ci/build/test-binary-release.sh rename to ci/build/test-standalone-release.sh index 677a40b3..0344ea39 100755 --- a/ci/build/test-binary-release.sh +++ b/ci/build/test-standalone-release.sh @@ -10,18 +10,18 @@ main() { local EXTENSIONS_DIR EXTENSIONS_DIR="$(mktemp -d)" - echo "Testing binary release" + echo "Testing standalone release." - ./release-binary/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --install-extension ms-python.python + ./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --install-extension ms-python.python local installed_extensions - installed_extensions="$(./release-binary/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)" + installed_extensions="$(./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)" if [[ $installed_extensions != "ms-python.python" ]]; then echo "Unexpected output from listing extensions:" echo "$installed_extensions" exit 1 fi - echo "Binary release works correctly" + echo "Standalone release works correctly." } main "$@" diff --git a/ci/steps/release-binary.sh b/ci/steps/release-packages.sh similarity index 78% rename from ci/steps/release-binary.sh rename to ci/steps/release-packages.sh index 7ec915b1..bb1dcf5f 100755 --- a/ci/steps/release-binary.sh +++ b/ci/steps/release-packages.sh @@ -7,8 +7,8 @@ main() { # https://github.com/actions/upload-artifact/issues/38 tar -xzf release-npm-package/package.tar.gz - yarn release:binary - yarn test:binary-release + yarn release:standalone + yarn test:standalone-release yarn package } diff --git a/doc/CONTRIBUTING.md b/doc/CONTRIBUTING.md index 6e450a5a..4e308974 100644 --- a/doc/CONTRIBUTING.md +++ b/doc/CONTRIBUTING.md @@ -51,14 +51,14 @@ yarn --production node . ``` -Now you can build binary packages with: +Now you can build the packages with: ``` -yarn release:binary -yarn test:binary-release +yarn release:standalone +yarn test:standalone-release yarn package -# The binary release is in ./release-binary -# .deb, .rpm and the binary archive are in ./release-packages +# The standalone release is in ./release-standalone +# .deb, .rpm and the standalone archive are in ./release-packages ``` ## Structure diff --git a/doc/install.md b/doc/install.md index f1c0744c..307f20a8 100644 --- a/doc/install.md +++ b/doc/install.md @@ -10,7 +10,7 @@ - [Arch Linux](#arch-linux) - [yarn, npm](#yarn-npm) - [macOS](#macos) -- [Binary Releases](#binary-releases) +- [Standalone Releases](#standalone-releases) - [Docker](#docker) @@ -50,9 +50,9 @@ commands presented in the rest of this document. - `--dry-run` to echo the commands for the install process without running them. - `--method` to choose the installation method. - - `--method=detect` to detect the package manager but fallback to `--method=archive`. - - `--method=archive` to install a binary release archive into `~/.local`. -- `--prefix=/usr/local` to install a binary release archive system wide. + - `--method=detect` to detect the package manager but fallback to `--method=standalone`. + - `--method=standalone` to install a standalone release archive into `~/.local`. +- `--prefix=/usr/local` to install a standalone release archive system wide. - `--version=X.X.X` to install version `X.X.X` instead of latest. - `--help` to see full usage docs. @@ -61,17 +61,17 @@ commands presented in the rest of this document. - For Debian, Ubuntu and Raspbian it will install the latest deb package. - For Fedora, CentOS, RHEL and openSUSE it will install the latest rpm package. - For Arch Linux it will install the AUR package. -- For any unrecognized Linux operating system it will install the latest binary release into `~/.local`. +- For any unrecognized Linux operating system it will install the latest standalone release into `~/.local`. - Add `~/.local/bin` to your `$PATH` to run code-server. - For macOS it will install the Homebrew package. - - If Homebrew is not installed it will install the latest binary release into `~/.local`. + - If Homebrew is not installed it will install the latest standalone release into `~/.local`. - Add `~/.local/bin` to your `$PATH` to run code-server. -- If ran on an architecture with no binary releases, it will install the npm package with `yarn` or `npm`. - - We only have binary releases for amd64 and arm64 presently. +- If ran on an architecture with no releases, it will install the npm package with `yarn` or `npm`. + - We only have releases for amd64 and arm64 presently. ## Debian, Ubuntu @@ -136,7 +136,7 @@ brew services start code-server # Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml ``` -## Binary Releases +## Standalone Releases We publish self contained `.tar.gz` archives for every release on [github](https://github.com/cdr/code-server/releases). They bundle the node binary and `node_modules`. @@ -148,7 +148,7 @@ They bundle the node binary and `node_modules`. You can add the code-server `bin` directory to your `$PATH` to easily execute `code-server` without the full path every time. -Here is an example script for installing and using a binary `code-server` release on Linux: +Here is an example script for installing and using a standalone `code-server` release on Linux: ```bash mkdir -p ~/.local/lib ~/.local/bin diff --git a/install.sh b/install.sh index 38714162..0f2683c9 100755 --- a/install.sh +++ b/install.sh @@ -26,14 +26,14 @@ Usage: Echo the commands for the install process without running them. --version X.X.X Install a specific version instead of the latest. - --method [detect | archive] + --method [detect | standalone] Choose the installation method. Defaults to detect. - detect detects the system package manager and tries to use it. Full reference on the process is further below. - - archive installs a binary release archive into ~/.local + - standalone installs a standalone release archive into ~/.local Add ~/.local/bin to your \$PATH to use it. --prefix - Sets the prefix used by binary release archives. Defaults to ~/.local + Sets the prefix used by standalone release archives. Defaults to ~/.local The release is unarchived into ~/.local/lib/code-server-X.X.X and the binary symlinked into ~/.local/bin/code-server To install system wide pass ---prefix=/usr/local @@ -41,16 +41,16 @@ Usage: - For Debian, Ubuntu and Raspbian it will install the latest deb package. - For Fedora, CentOS, RHEL and openSUSE it will install the latest rpm package. - For Arch Linux it will install the AUR package. -- For any unrecognized Linux operating system it will install the latest binary +- For any unrecognized Linux operating system it will install the latest standalone release into ~/.local - For macOS it will install the Homebrew package. - - If Homebrew is not installed it will install the latest binary release + - If Homebrew is not installed it will install the latest standalone release into ~/.local -- If ran on an architecture with no binary releases, it will install the +- If ran on an architecture with no releases, it will install the npm package with yarn or npm. - - We only have binary releases for amd64 and arm64 presently. + - We only have releases for amd64 and arm64 presently. It will cache all downloaded assets into ~/.cache/code-server @@ -65,12 +65,12 @@ echo_latest_version() { echo "$version" } -echo_archive_postinstall() { +echo_standalone_postinstall() { echo cat << EOF -Binary release has been installed into $ARCHIVE_INSTALL_PREFIX/lib/code-server-$VERSION +Standalone release has been installed into $STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION Please extend your path to use code-server: - PATH="$ARCHIVE_INSTALL_PREFIX/bin:\$PATH" + PATH="$STANDALONE_INSTALL_PREFIX/bin:\$PATH" Then you can run: code-server EOF @@ -94,7 +94,7 @@ main() { unset \ DRY_RUN \ METHOD \ - ARCHIVE_INSTALL_PREFIX \ + STANDALONE_INSTALL_PREFIX \ VERSION \ OPTIONAL @@ -111,11 +111,11 @@ main() { METHOD="$(parse_arg "$@")" ;; --prefix) - ARCHIVE_INSTALL_PREFIX="$(parse_arg "$@")" + STANDALONE_INSTALL_PREFIX="$(parse_arg "$@")" shift ;; --prefix=*) - ARCHIVE_INSTALL_PREFIX="$(parse_arg "$@")" + STANDALONE_INSTALL_PREFIX="$(parse_arg "$@")" ;; --version) VERSION="$(parse_arg "$@")" @@ -140,12 +140,12 @@ main() { VERSION="${VERSION-$(echo_latest_version)}" METHOD="${METHOD-detect}" - if [ "$METHOD" != detect ] && [ "$METHOD" != archive ]; then + if [ "$METHOD" != detect ] && [ "$METHOD" != standalone ]; then echoerr "Unknown install method \"$METHOD\"" echoerr "Run with --help to see usage." exit 1 fi - ARCHIVE_INSTALL_PREFIX="${ARCHIVE_INSTALL_PREFIX-$HOME/.local}" + STANDALONE_INSTALL_PREFIX="${STANDALONE_INSTALL_PREFIX-$HOME/.local}" OS="$(os)" if [ ! "$OS" ]; then @@ -157,9 +157,9 @@ main() { ARCH="$(arch)" if [ ! "$ARCH" ]; then - if [ "$METHOD" = archive ]; then - echoerr "No binary releases available for the architecture $(uname -m)." - echoerr 'Please rerun without the "--method archive" flag to install from npm.' + if [ "$METHOD" = standalone ]; then + echoerr "No releases available for the architecture $(uname -m)." + echoerr 'Please rerun without the "--method standalone" flag to install from npm.' exit 1 fi echo "No precompiled releases for $(uname -m)." @@ -170,8 +170,8 @@ main() { CACHE_DIR="$(echo_cache_dir)" mkdir -p "$CACHE_DIR" - if [ "$METHOD" = archive ]; then - install_archive + if [ "$METHOD" = standalone ]; then + install_standalone return fi @@ -190,7 +190,7 @@ main() { ;; *) echo "Unsupported package manager." - install_archive + install_standalone ;; esac } @@ -256,7 +256,7 @@ install_macos() { echo "Homebrew not installed." - install_archive + install_standalone } install_deb() { @@ -300,31 +300,31 @@ install_aur() { echo_systemd_postinstall } -install_archive() { - echo "Installing binary release archive v$VERSION" +install_standalone() { + echo "Installing standalone release archive v$VERSION" echo fetch "https://github.com/cdr/code-server/releases/download/v$VERSION/code-server-$VERSION-$OS-$ARCH.tar.gz" \ "$CACHE_DIR/code-server-$VERSION-$OS-$ARCH.tar.gz" sh_c="sh_c" - if [ ! -w "$ARCHIVE_INSTALL_PREFIX" ]; then + if [ ! -w "$STANDALONE_INSTALL_PREFIX" ]; then sh_c="sudo_sh_c" fi - if [ -e "$ARCHIVE_INSTALL_PREFIX/lib/code-server-$VERSION" ]; then + if [ -e "$STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION" ]; then echo - echo "code-server-$VERSION is already installed at $ARCHIVE_INSTALL_PREFIX/lib/code-server-$VERSION" + echo "code-server-$VERSION is already installed at $STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION" echo "Remove it to reinstall." exit 0 fi - "$sh_c" mkdir -p "$ARCHIVE_INSTALL_PREFIX/lib" "$ARCHIVE_INSTALL_PREFIX/bin" - "$sh_c" tar -C "$ARCHIVE_INSTALL_PREFIX/lib" -xzf "$CACHE_DIR/code-server-$VERSION-$OS-$ARCH.tar.gz" - "$sh_c" mv -f "$ARCHIVE_INSTALL_PREFIX/lib/code-server-$VERSION-$OS-$ARCH" "$ARCHIVE_INSTALL_PREFIX/lib/code-server-$VERSION" - "$sh_c" ln -fs "$ARCHIVE_INSTALL_PREFIX/lib/code-server-$VERSION/bin/code-server" "$ARCHIVE_INSTALL_PREFIX/bin/code-server" + "$sh_c" mkdir -p "$STANDALONE_INSTALL_PREFIX/lib" "$STANDALONE_INSTALL_PREFIX/bin" + "$sh_c" tar -C "$STANDALONE_INSTALL_PREFIX/lib" -xzf "$CACHE_DIR/code-server-$VERSION-$OS-$ARCH.tar.gz" + "$sh_c" mv -f "$STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION-$OS-$ARCH" "$STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION" + "$sh_c" ln -fs "$STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION/bin/code-server" "$STANDALONE_INSTALL_PREFIX/bin/code-server" - echo_archive_postinstall + echo_standalone_postinstall } install_npm() { diff --git a/package.json b/package.json index e3fa2ecd..533beb6d 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "build": "./ci/build/build-code-server.sh", "build:vscode": "./ci/build/build-vscode.sh", "release": "./ci/build/build-release.sh", - "release:binary": "./ci/build/build-binary-release.sh", + "release:standalone": "./ci/build/build-standalone-release.sh", "release:github-draft": "./ci/build/release-github-draft.sh", "release:github-assets": "./ci/build/release-github-assets.sh", - "test:binary-release": "./ci/build/test-binary-release.sh", + "test:standalone-release": "./ci/build/test-standalone-release.sh", "package": "./ci/build/build-packages.sh", "_____": "", "fmt": "./ci/dev/fmt.sh",