* feat: refactor npm workflows to use download-artifact
This refactors the npm workflows to use the download-artifact GitHub Action. We
had problems in the past with our download_artifact custom bash function. This
also fixes an issue where we weren't downloading the correct artifacts when
publishing beta and dev tags to npm.
* fixup: remove unused env var
* fixup! add download-artifcat to npm-brew"
* fixup! remove unnecessary code comment
* fixup! move NPM_ENVIRONMENT logic to script
* 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
* 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
This extracst the publish on npm workflow from ci.yaml and adds a new workflow
called `npm-beta.yaml`.
Now we have three workflows that publish to npm.
- `npm-beta.yaml` only runs on pushes and merges into `main`
- `npm-dev.yaml` only runs on PRs into `main` with approval from
code-server-reviewers team
- `npm-brew.yaml` only runs on releases
This should fix problems we had previously where anyone could open a PR and
publish under the code-server namespace. It also separates out the workflows
based on environment and when they should run.
* 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>
* docs: Change `cdr` to `coder`, read desc please
Yeah, includes links.
* docs: Update README (links and the extra comma)
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* 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`
* Add test extension
This will let us test extension-related features (like the proxy URI).
I removed the environment variables in the script because they override
the ones you set yourself. We still set defaults in constants.ts.
* Add changelog entry for VSCODE_PROXY_URI
* Add terminal test for VSCODE_PROXY_URI
* Update VS Code
This adds the VSCODE_PROXY_URI environment variable.
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.
* 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
I have been wondering why my editor is not defaulting to two spaces and
it is because indent_size was removed from the * block.
I am not sure why we would need a separate block for package.json and
yaml anyway since they use the same settings as the rest of our code.
I would revert the commit but this change was made in a larger commit
with a bunch of unrelated changes.
* Support browsers from before 2020
As reported in #2825, #2826 and #3051, almost everything works in older browsers. This setting here prevented me from updating and I think it is an obvious enhancement to not restrict to browsers from 2020+. There should not be any measurable downsides of this change since es6 and es2020 are pretty similar with only minor differences.
* Include lib (polyfills) for <es2020 targets
* Assume all modern dom features despite es6 syntax
* Add modern dom iterators to es6 environment
Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Asher <ash@coder.com>
* Added instructions to install it on iOSi (#4614)
* Added instructions to install it on iOS
* Update ios.md
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: add ios to manifest
* docs: clean up ios docs
Co-authored-by: The AliX Legend <alixgamer175@gmail.com>
The problem before was that the pop() caused the open in existing
instance functionality to break because the arguments no longer
contained the file.
We could simply remove the pop() but since `workspace` and `folder` are
not CLI arguments I think it makes sense to handle them in a separate
function which can be called at the point where they are needed. This
also lets us de-duplicate some logic since we create these arguments in
two spots and lets us skip this logic when we do not need it.
The pop() is still avoided because manipulating a passed-in object
in-place seems like a risky move. If we really need to do this we
should copy the positional argument array instead.