Commit Graph

289 Commits

Author SHA1 Message Date
Joe Previte
da03a648c2
fix(npm): use correct flags and update version for npm (#5533)
* fix: update npm-postinstall.sh script

Add --legacy-peer-deps to deal with weird npm issue with vscode
dependencies.

See: https://stackoverflow.com/a/66620869/3015595

* fix: use npm in release-standalone

* chore: update package.json

* chore: bump plugin engine for tests
2022-09-06 11:03:27 -07:00
Joe Previte
4e9ed56580
release: 4.6.1 (#5522)
* chore(release): bump version to 4.6.1

* chore: update reviewers in release-prep

* chore: update CHANGELOG

* chore: bump Helm chart
2022-08-31 14:53:14 -07:00
renovate[bot]
ccbf0bebb7
fix(deps): update dependency argon2 to ^0.29.0 (#5492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Joe Previte <jjprevite@gmail.com>
2022-08-23 16:18:52 +00:00
Edouard Vincent
90f603549a
fix: generate shrinkwrap file for deterministic dependencies (#5071) 2022-08-22 16:07:57 -05:00
Asher
33ee184ed7
release: 4.6.0 (#5469) 2022-08-19 14:08:39 -05:00
Asher
6037468e0f
release: 4.5.2 (#5447) 2022-08-15 16:21:10 -05:00
renovate[bot]
91589fd106
chore(deps): update dependency @types/node to v16 (#5170)
* Update Node types to 16

* Update Express core types

Fixes a number of conflicts it has with Node 16.

* Fix websocket router types

It seems req was `any` before so now we have to handle the types.  Also
it seems the socket is of type `stream.Duplex`, not `net.Socket`.

The ws types had to be updated to support the new type.

Unfortunately Code still uses the old type so cast for now.

In the web socket router just use a cast for the extra properties we
add.  We could add the types to the Express namespace but I am not sure
we really want these commonly accessible so keep with the casts for now.
Likely we should use Express's `locals` or something instead.

* Add missing return

Not sure why it only just now started complaining though.

Co-authored-by: Asher <ash@coder.com>
2022-08-10 16:15:52 -05:00
Joe Previte
f178f0400b
feat(e2e): add support running behind proxy (#5348)
* docs: update maintaining

* chore(e2e): add maxFailures to playwright

* fix(ci): skip submodule in e2e job

We don't need the submodules for the e2e job. This will speed up the
checkout step.

* feat(ci): add test-e2e-proxy job

This adds a new job to CI to run our tests behind Caddy and simulate
code-server running against a reverse-proxy.

* refactor: make e2e work with reverse proxy

This refactors the e2e test in a couple ways:
- remove setting cookie in localStorage (instead we pass --auth none)
- refactor address() method to account for reverse proxy logic

* Update test/e2e/models/CodeServer.ts

* Update test/playwright.config.ts

* Update test/utils/constants.ts

Co-authored-by: Asher <ash@coder.com>

* Update test/utils/helpers.ts

Co-authored-by: Asher <ash@coder.com>

Co-authored-by: Asher <ash@coder.com>
2022-08-09 18:24:37 +00:00
Joe Previte
f4fc2ebecf
release: 4.5.1 (#5354)
* chore(release): bump version to 4.5.1

* chore: bump helm chart

* chore: update CHANGELOG

* Revert "chore: bump helm chart"

This reverts commit 703b03b665bddc252d80ae674eb92e1bfbdec6ad.

* chore: bump helm chart to 3.0.0

* revert: remove bad change to manifes.json icon

* fix(ci): add package.json.version to code cachekey

Before this, creating a release sometimes prevented vscode from
rebuilding and using the cache instead. Now we use the
package.json.version in the cache key to "bust" the cache if the
package.json version is updated (aka a release).

Fixes #5316

* Update .github/workflows/ci.yaml

Co-authored-by: Asher <ash@coder.com>

* fixup: formatting

* Revert "refactor: remove version check e2e test"

This reverts commit b23c398b7d725e46b4b7a0bbc900aebc6bd277f3.

Co-authored-by: Asher <ash@coder.com>
2022-07-19 12:34:01 -07:00
Joe Previte
033cdf2357
chore(ci): update glob-parent (#5353) 2022-07-18 14:37:54 -07:00
Joe Previte
9ad0d9e6ad
release: 4.5.0 (#5308)
* chore(release): bump version to 4.5.0

* chore: update CHANGELOG

* chore: bump chart version

* docs: update MAINTAINING

* fix: add VSCODE_DEV=1 to e2e script

I'm not sure what changed in the latest version but without setting
VSCODE_DEV=1, code-server won't load. This fixes that.

* Revert "fix: add VSCODE_DEV=1 to e2e script"

This reverts commit 58c4826af82c12d3bc79340945204e6b7dc8cf04.

* fix: try setting VSCODE_DEV=1

* Revert "fix: try setting VSCODE_DEV=1"

This reverts commit 902f5f2f30d2e43a7c3b95decc85f82e98814145.

* refactor: remove version check e2e test

I am not sure why this is passing locally and failing CI. I need to
further investigate this since it fails depending on where you test.
2022-07-01 13:45:36 -07:00
renovate[bot]
4f0d5566c3
chore(deps): update minor dependency updates (#5301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-06-29 16:25:52 +00:00
Joe Previte
1296848afc
refactor: switch to codecov-uploader GitHub Action (#5303)
* refactor: switch to codecov-uploader GitHub Action

codecov deprecated their Node wrapper for uploading coverage reports.

This removes that and uses their new uploaded along with the v2 GitHub
Action they maintain.

* fix: update broken integration test
2022-06-28 10:04:35 -07:00
Joe Previte
c51ff3bce1
refactor: move integration tests to Jest (#5275)
* feat: add installExtension integration test

This adds a new helper function called `runCodeServerCommand` along with
a test for `--install-extension`. We can use this approach for writing
integration tests (i.e. testing a real code-server build, CLI commands,
etc).

* refactor: s/ test:standalone with test:integration

This replaces our integration approach to use Jest instead of a single
bash script. By doing this, we will be able to easily maintain and add
to our integration test suite.

* refactor: filter unit tests

Now that our integration tests also use Jest, we need to update our unit
test script to ignore `test/integration`.

* refactor: add SKIP_SUBMODULE_DEPS to postinstall

* refactor: add SKIP_SUBMODULE_DEPS to postinstall

* fixup!: skip submod deps

* refactor: move runCodeServerCommand into sep. file

When Jest runs a test, it loads all the files and imports for that test.
This means you might be "requiring" code that's unrelated to your tests.

This leads to unexpected errors depending on where the code runs.

Moved this file to avoid GLIBC and other errors relaed to argon2 when
running integration tests in CI.

* fizup: formatting

* fizup: increase timeout

* refactor: use fixture in installExtension test

Instead of relying on a network to install an extension, we use a
fixture - vsix file in the repo. This is also faster.

* feat: add integration test for listExtensions

* chore: ignore integration fixtures

* fixup: formatting

* fixup: remove custom-hacks.css

* fixup: formatting

* Update test/integration/installExtension.test.ts

Co-authored-by: Asher <ash@coder.com>

* Update test/integration/listExtensions.test.ts

Co-authored-by: Asher <ash@coder.com>

* Update test/integration/installExtension.test.ts

Co-authored-by: Asher <ash@coder.com>

* Update test/integration/listExtensions.test.ts

Co-authored-by: Asher <ash@coder.com>

* fixup: contributing integration tests section

* fixup: update ci/readme

* fixup: use RELEASE_PATH in test-integration.sh

* refactor: unzip vsix for listExtensions

* refactor: use exec instead of spawn

* Update docs/CONTRIBUTING.md

Co-authored-by: Asher <ash@coder.com>

* Update test/integration/listExtensions.test.ts

Co-authored-by: Asher <ash@coder.com>

* Update test/integration/listExtensions.test.ts

Co-authored-by: Asher <ash@coder.com>

* Update test/integration/listExtensions.test.ts

Co-authored-by: Asher <ash@coder.com>

* refactor: use different default binary path

* fixup!: formatting

Co-authored-by: Asher <ash@coder.com>
2022-06-24 16:33:38 +00:00
renovate[bot]
113ad85b37
chore(deps): update minor dependency updates (#5244)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-15 13:29:52 -07:00
Feng Yu
1e304b1e7d
chore(deps): upgrade typescript to v4.6 (#5202) 2022-05-13 16:57:50 +00:00
renovate[bot]
1788537cce
chore(deps): update minor dependency updates (#5181)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-10 21:01:13 +00:00
Joe Previte
f735c87ac7
release: 4.4.0 (#5169)
* chore(release): bump version to 4.4.0

* chore: update CHANGELOG with v4.4.0

* chore: bump version to 2.5.0 in Chart.yaml
2022-05-06 13:45:49 -07:00
Joe Previte
7027ec7d60
chore: upgrade Code to 1.66 (#5135)
* chore: upgrade Code to 1.66

* docs: update docs for Code upgrades

* fixup!: docs

* chore: update vscode submodule

* chore: update integration patch

* chore: update node-version patch

* chore: update github-auth patch

They completely changed how auth is handled for GitHub in
https://github.com/microsoft/vscode/pull/145424 so our patch may not
work. Will need to test and revisit.

* refactor: remove postinstall patch

It appears they renamed postinstall.js to postinstall.mjs and removed
the use of `rimraf` which means our patch is no longer needed! 🎉

b0e8554cce

* chore: refresh local-storage patch

* chore: refresh service-worker patch

* chore: bulk refresh patches

* fixup!: docs formatting

* refactor: remove unused last-opened patch

* fixup!: formatting docs

* fixup!: formatting docs

* refactor: remove rsync postinstall

* Revert "refactor: remove rsync postinstall"

This reverts commit 8d6b613e9d779ba18d0297710614516cde108bcf.

* refactor: update postinstall.js to .mjs

* feat(patches): add parent-origin bypass

* docs(patches): add notes for testing store-socket

* docs(patches): update testing info for node-version

* refactor(patches): delete github-auth.diff patch

* docs(patches): add notes for testing connection-type

* fixup!: delete github-auth patch

* fixup!: update connection type testing

* docs(patches): add notes to insecure-notification.diff

* docs(patches): add nots for update-check.diff

* fixup!: remove comma in integration patch

* fix(e2e): disable workspace trust

* refactor: add --no-default-rc for yarn install

* feat(patches): remove yarnrc in presinstall

* fixup!: silly mistake

* docs: add note about KEEP_MODULES=1

* docs(patches): add testing notes for node-version

* refactor(patches): remove node-version

It appears this is no longer needed due to the `remote/package.json` now which
targets node rather than electron.

* fixup!: add cd ../.. to code upgrade instructions

* fixup!: add note to yarn --production flag

* fixup!: make parent-origin easier to upstream

* Revert "refactor(patches): delete github-auth.diff patch"

This reverts commit 31a354a34345309fadc475491b392d7601e51a32.

* Revert "fixup!: delete github-auth patch"

This reverts commit bdeb5212e8c7be6cadd109941b486a4bcdae69fa.

* Merge webview origin patch into webview patch

* Remove unused post-install patch

* Prevent builtin extensions from updating

* Refresh sourcemaps patch

* Update Node to v16

This matches the version in ./lib/vscode/remote/.yarnrc.

I changed the engine to exactly 16 since if you use any different
version it will just not work since the modules will have been built for
16 (due to the .yarnrc).

* Replace fs.rmdir with fs.rm

Node is showing a deprecation warning about it.

* Update github-auth patch

The local credentials provider is no longer used when there is a remote
so this code moved into the backend web credential provider.

* Prevent fs.rm from erroring about non-existent files

We were using fs.rmdir which presumably did not have the same behavior
in v14 (in v16 fs.rmdir also errors).

* Install Python 3 in CentOS CI container

Co-authored-by: Asher <ash@coder.com>
2022-05-04 21:58:49 +00:00
Joe Previte
dea6a40ea8
chore: attempt to fix docker (#5106)
* chore: attempt to fix docker

* Update .github/workflows/docker.yaml

Co-authored-by: Asher <ash@coder.com>

* chore: add publish:docker to scripts

Co-authored-by: Asher <ash@coder.com>
2022-04-15 00:02:03 +00:00
Joe Previte
09fc64a4f0
v4.3.0 (#5099)
* chore(release): bump version to 4.3.0

* fix(release-prep.sh): ignore lib/vscode

* docs(CHANGELOG): add 4.3.0

* chore: bump chart version

* fixup!: remove change in postinstall

* fixup!: bullets in CHANGELOG

* fixup!: formatting

* fixup! typo in changelog

* fixup!: update date in changelog

Co-authored-by: Asher <ash@coder.com>
2022-04-14 15:37:25 -07:00
renovate[bot]
c05b727c61
chore(deps): update minor dependency updates (#5060)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Joe Previte <jjprevite@gmail.com>
2022-04-12 16:39:58 -07:00
renovate[bot]
d5d7c519e8
chore(deps): update dependency minimist to v2.2.1 (#5013)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-30 15:41:26 -07:00
Edouard Vincent
326a1d1862
feat: Add a shrinkwrap file to the NPM release (#5010) 2022-03-29 12:33:56 -05:00
Joe Previte
cf7cff0f72
release: 4.2.0 (#5014)
* chore(release): bump version to 4.2.0

* chore: update CHANGELOG

* chore: bump helm chart version
2022-03-22 16:34:29 -07:00
Joe Previte
60ebf2f851
chore: update to minimist-list (#5006) 2022-03-21 16:18:32 -07:00
renovate[bot]
d22f312cab
chore(deps): update dependency normalize-package-data to v4 (#4991)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-15 09:27:04 -07:00
Asher
21c74802e8
chore: move Code to a submodule (#4990)
* Move Code to a submodule

Closes #4901.

* Base Code cache on hash and re-enable node_modules cache

The current setup appears to only rebuild VS Code if the dependencies
change but we need to rebuild it if anything changes.

I also re-enabled the commented out node_modules caches.  They look like
they should work to me with the submodule method.  I think the problem
occurred because Code itself was being installed in the yarn step.
2022-03-14 21:37:29 -05:00
renovate[bot]
184ef68147
chore(deps): update dependency audit-ci to v6 (#4986)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-14 14:48:12 -07:00
Asher
7aa087ae34
release: v4.1.0 (#4946)
* release: bump version to 4.1.0

* Rename VS Code to Code in changelog

* Catch up changelog

* Add release as valid semantic tag
2022-03-03 14:46:17 -06:00
Edouard Vincent
1465d8d510
fix: Pin express to 5.0.0-alpha.8 (#4918)
Co-authored-by: Joe Previte <jjprevite@gmail.com>
2022-03-01 11:24:06 -07:00
Joe Previte
e3e9f052c4
fix: wrap socket in proxy before passing to vscode (#4840)
* chore: add ipc hook to e2e script

* refactor: allow codeServerArgs in e2e tests

* feat: add --cert e2e extension test

* fix: wrap websocket in proxy

* fixup: remvoe ignoreHTTPSErrors

* fixup: make codeServerArgs readonly

* fixup! add back ignoreHTTPSErrors
2022-02-15 14:51:42 -07:00
Joe Previte
8fc4832722
chore: update follow-redirects resolution (#4868)
* chore: update follow-redirects resolution

* chore: update vm2 resolution
2022-02-15 13:40:53 -07:00
Joe Previte
25b1340771
revert: @node-rs/argon2 -> node-argon2 (#4829)
* revert: partial revert of 723469ab5b

This reverts part of the changes introduced in refactor: migrate from argon2 ->
@node-rs/argon2 (#4733)

Switching to @node-rs/argon2 introduced bugs that we couldn't solve due to
limitations in npm.

see here
https://github.com/coder/code-server/issues/4804#issuecomment-1030338395
2022-02-04 15:52:42 -07:00
LG
10f57bac65
docs: Update some more links (#4806)
* Update links in package.json

I will try checking the docs too

* docs: Update links in triage.md

* docs: Update links in npm.md

* docs: Update links in whatever files that have `cdr`

* Replace globally, thanks @bpmct!

* fix: coderer instead of coder
I should've used all three toggles in the Search/Replace tab in the GItHub.dev editor.

* Code Formatting
2022-02-01 09:45:19 -07:00
Asher
439f27c568
release: v4.0.2 (#4801)
* Disable BROWSER env var

Right now the browser helper script does not actually work.  It seems
safer to skip this until we can fix it.

* Bump to 4.0.2

* Update changelog for 4.0.2
2022-01-27 19:00:06 -06:00
Joe Previte
14d0feff0d
chore(deps): update node-fetch and nanoid (#4787) 2022-01-25 10:52:17 -07:00
Joe Previte
a2f530161f
feat: publish beta and development tags on npm (#4769)
* feat: add logic to publish beta/dev npm

This adds new log to publish the npm package both while working on PRs and when
PRs are merged into main, allowing us to easily test changes in a
production-like setting.

Co-authored-by: Asher <ash@coder.com>
2022-01-21 16:28:56 -07:00
Joe Previte
723469ab5b
refactor: migrate from argon2 -> @node-rs/argon2 (#4733)
* chore(deps): replace argon2 w/@node-rs/argon2

* refactor: clean up hashPassword functions

* refactor(util): pass in process.platform

* fix: use correct settings for test-extension

Before, it was running into errors with an @types package.

Now, we're correctly running `tsc` so it picks up our `tsconfig.json` and we're
telling TypeScript to not typecheck our lib and exclude `node_modules`
2022-01-18 16:13:39 -07:00
renovate[bot]
2752d95ff6
chore(deps): update minor dependency updates (#4722)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-14 21:48:52 +00:00
Joe Previte
b621911e61
chore: use 1.14.7 follow-redirects (#4742) 2022-01-13 11:07:19 -07:00
Joe Previte
484429b5da
release: 4.0.1 (#4678)
* chore(release): bump version to 4.0.1

* fix: ignore pre-commit hook for release-prep script

* chore: bump helm-chart to 2.0.0

* chore: update CHANGELOG for 4.0.1
2022-01-05 13:06:32 -07:00
Asher
003480881b
fix: infinite proxy loop (#4676)
I think the problem is that when a proxy is not in use proxy-agent
returns the global agent...which is itself since we set it globally,
causing the loop.

VS Code already covers proxies meaning we only need to do it in our own
requests so to fix this pass in the agent in the version fetch request
instead of overidding globally.

Also avoid proxy-from-env and pass in the proxy URI instead as both
http_proxy and https_proxy can be used for either http or https requests
but it does not allow that.
2022-01-03 18:19:21 -06:00
Joe Previte
95d965a27b
fix: add codeServerVersion to vscode/product.json (#4632)
* fix: add codeServerVersion to vscode/product/json

* chore: update vscode

* chore: update modulePathIgnorePattern jest
2021-12-17 12:58:46 -07:00
Asher
c4c480a068
Implement last opened functionality (#4633)
* Implement last opened functionality

Fixes https://github.com/cdr/code-server/issues/4619

* Fix test temp dirs not being cleaned up

* Mock logger everywhere

This suppresses all the error and debug output we generate which makes
it hard to actually find which test has failed.  It also gives us a
standard way to test logging for the few places we do that.

* Use separate data directories for unit test instances

Exactly as we do for the e2e tests.

* Add integration tests for vscode route

* Make settings use --user-data-dir

Without this test instances step on each other feet and they also
clobber your own non-test settings.

* Make redirects consistent

They will preserve the trailing slash if there is one.

* Remove compilation check

If you do a regular non-watch build there are no compilation stats so
this bricks VS Code in CI when running the unit tests.

I am not sure how best to fix this for the case where you have a build
that has not been packaged yet so I just removed it for now and added a
message to check if VS Code is compiling when in dev mode.

* Update code-server update endpoint name
2021-12-17 13:06:52 -06:00
Joe Previte
c77999bcd3
release: 4.0.0 (#4597)
* chore(release): bump version to 4.0.0

* Bump test plugin code-server engine

Co-authored-by: Asher <ash@coder.com>
2021-12-10 13:30:53 -07:00
Asher
4b4ec37880
Fix relative paths (#4594)
* Add tests for relativeRoot

* Remove path.posix.join

Since this is for file system paths it feels incorrect to use it on
URL paths as they are different in many ways.

* Rewrite cookie path logic

Before we relied on the client to resolve the base given to it by the
backend against the path.

Instead have the client pass that information along so we can resolve it
on the backend.  This means the client has to do less work.

* Do not remove out directory before watch

This is re-used for incremental compilation.

Also remove del since that was the only use (and we can use fs.rmdir in
the future if we need something like this).

* Remove unused function resolveBase
2021-12-08 15:52:15 -06:00
JounQin
6c9c84090e
chore: replace eslint-import-resolver-alias with eslint-import-resolver-typescript (#4546)
Co-authored-by: Joe Previte <jjprevite@gmail.com>
2021-12-07 14:39:01 -07:00
renovate[bot]
80f30fc42c
fix(deps): update dependency qs to v6.10.2 (#4581)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-06 10:33:13 -07:00
renovate[bot]
3d4660491a
chore(deps): update minor dependency updates (#4531)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 11:31:35 -07:00