Compare commits

..

447 Commits

Author SHA1 Message Date
Teffen Ellis
798dc0baf2 chore(release): bump version to 3.12.0 2021-09-15 15:54:06 -04:00
Teffen Ellis
c8f0d3e32d Remove subtree. 2021-09-15 15:18:33 -04:00
Teffen Ellis
f937849981 Disable CI caching during build. 2021-09-15 14:54:33 -04:00
Teffen Ellis
7f2b1dcd22 Fix outdated selector. Add debug info. 2021-09-15 14:54:33 -04:00
Teffen Ellis
c861a1d796 Enable cache on vendor assets. 2021-09-15 14:54:33 -04:00
Teffen Ellis
f2e65daca3 Disable cache. 2021-09-15 14:54:33 -04:00
Teffen Ellis
f885b29675 Add vscode via vendor package.
- Use yarn for vscode vendoring.
- Grab hash from package.
2021-09-15 14:54:33 -04:00
Joe Previte
28ba59ab3c Merge pull request #4165 from cdr/bpmct/add-codetogether
add CodeTogether docs
2021-09-15 18:35:45 +00:00
Ben Potter
e5d0f966c6 improve wording 2021-09-15 00:20:16 -05:00
Ben Potter
0ed8c8a294 change language 2021-09-15 00:18:50 -05:00
Ben Potter
3ce2b10076 use same formatting 2021-09-15 00:17:33 -05:00
Ben Potter
5dc7d17d16 add CodeTogether docs 2021-09-15 00:13:42 -05:00
Joe Previte
8e0877561e Merge pull request #4044 from cdr/jsjoeio-revert-revert
fix(revert): move helm README to docs
2021-09-14 17:34:34 +00:00
Joe Previte
674f37f244 Merge pull request #4159 from cdr/jsjoeio-fix-codecov-config
fix(codecov): use status > patch correctly
2021-09-14 17:13:24 +00:00
Joe Previte
a0f82f73a0 Merge pull request #4144 from galesky/main
Add docs around using duckly for collaboration
2021-09-13 14:29:16 -07:00
Joe Previte
d650894eb5 Revert "Revert "refactor: move helm README to docs/helm.md""
This reverts commit f319fca291.
2021-09-13 14:16:47 -07:00
Leonardo Galesky
7be9972dd5 fix(docs): update collaboration svg icon 2021-09-13 18:12:29 -03:00
Joe Previte
1d4ffda1f8 Merge pull request #4158 from ready-research/ReDoS
fix(security): fix ReDoS in Regex
2021-09-13 14:00:55 -07:00
Joe Previte
14c96164b2 fix(codecov): use status > patch correctly 2021-09-13 13:51:18 -07:00
Leonardo Galesky
0de9c07f0a Apply suggestions from @bpmct's code review
Co-authored-by: Ben Potter <me@bpmct.net>
2021-09-13 11:08:27 -03:00
galesky
c43cb5b24d ci(docs): fix formatting 2021-09-12 15:00:47 -03:00
galesky
8c2e566b72 docs(): create code sharing docs 2021-09-12 14:55:06 -03:00
Leonardo Galesky
ff34097a1f Merge pull request #1 from cdr/main
Merge cdr/main into galesky/main
2021-09-12 13:43:16 -03:00
ready-research
ca617df135 [Security] Fix ReDoS
Fix potential ReDoS
2021-09-11 18:40:47 +05:30
Joe Previte
bc3acb071e Merge pull request #4131 from cdr/jsjoeio-fix-csp
fix(lib/vscode): update csp in webview to allow ports
2021-09-10 17:45:26 +00:00
Joe Previte
82ae47e00b Merge pull request #4127 from cdr/jsjoeio-fix-screenshot
fix(docs): use png screenshot instead of svg
2021-09-10 17:03:28 +00:00
Joe Previte
9c9883e7a6 Merge pull request #4099 from cdr/jsjoeio-tests-app
feat: add tests for src/node/app.ts
2021-09-10 17:03:15 +00:00
Joe Previte
09440563ca feat: add tests for src/node/app.ts
This adds a couple tests for ensureAddress.
2021-09-09 17:58:36 -07:00
Joe Previte
a10df0ca2e fix(docs): use png screenshot instead of svg 2021-09-09 17:58:17 -07:00
Joe Previte
592d9bcbda fix(lib/vscode): update csp in webview to allow ports
With #3895, we caused a regression where the Content-Security-Policy prevented
images in the previewer to not work due to the ports in the resource URI.

This modifies the CSP in the webview to make sure images are not blocked by CSP.

I assume once we upgrade VS Code, we will revert this change.
2021-09-09 17:54:20 -07:00
Joe Previte
8a1c129dd1 Merge pull request #4129 from cdr/jsjoeio-fix-vulnerabilities
fix(security): address dependency vulnerabilities
2021-09-10 00:23:41 +00:00
Joe Previte
458474f11f fix(lib/vscode): upgrade yargs-parser 2021-09-09 16:42:38 -07:00
Joe Previte
5f81e29591 fix(lib/vscode): upgrade pac-resolver, path-parse 2021-09-09 16:32:25 -07:00
Joe Previte
293d11330e fix(lib/vscode): update axios to 0.21.2 2021-09-09 16:28:46 -07:00
Asher
7a735014bb Push latest Docker tag along with version tag (#4120) 2021-09-08 15:00:34 -05:00
Kyle Carberry
b00afbc034 Resolve remote authority to initialize tunnel API (#4105)
* Resolve remote authority to initialize tunnel API

* Fix linting

* Add comment
2021-09-08 12:50:36 -05:00
Max
b32b4edf3d fix: run postinstall script explicitly with bash (#4116)
Currently, Windows default script-shell (cmd) fails to run the postinstall script. This commit fixes the problem by running postinstall.sh explicitly with the default bash executable of the OS.

Related: #1397
2021-09-08 11:11:20 -05:00
Stefano Dissegna
0529f52b9d compile extensions media 2021-09-07 23:15:46 +00:00
Joe Previte
8fde5f42b7 Merge pull request #4071 from cdr/jsjoeio-fix-revert-docs
fix: revert revert and add ssh back into guide docs
2021-09-07 23:13:42 +00:00
Joe Previte
2c1aed2395 fix: update tar version with resolution 2021-09-07 14:51:16 -07:00
Joe Previte
b4c5dc548e Revert "revert: "docs(guide): add ssh into code-server on vs code" (#4060)"
This reverts commit c0d62da127.
2021-09-07 14:51:16 -07:00
Joe Previte
67b23aaa1d Merge pull request #4070 from cdr/jsjoeio-troubleshoot-docs
docs: add troubleshooting section for documentation
2021-09-03 14:10:55 -07:00
Joe Previte
ed1ded51c7 Merge pull request #4055 from cdr/jsjoeio-tests-vscode
feat(testing): add tests for src/browser/pages/vscode to hit 100% coverage
2021-08-30 16:10:31 -07:00
Joe Previte
ccd835c67d Merge pull request #4076 from cdr/renovate/eslint-plugin-prettier-4.x
chore(deps): update dependency eslint-plugin-prettier to v4
2021-08-30 15:44:50 -07:00
Renovate Bot
ccb30efd54 chore(deps): update dependency eslint-plugin-prettier to v4 2021-08-30 22:22:36 +00:00
Joe Previte
79b4e4780d feat: add full test coverage browser/vscode 2021-08-30 15:12:28 -07:00
Joe Previte
bd1e9b3843 docs: add troubleshooting section for documentation 2021-08-30 10:32:56 -07:00
Jonathan Yu
c0d62da127 revert: "docs(guide): add ssh into code-server on vs code" (#4060)
This reverts commit efbfe060cd as
some of the contents broke our doc site generator.
2021-08-28 13:06:33 -07:00
Joe Previte
f23f2190c4 Merge pull request #4050 from cdr/jsjoeio-fix-bots
fix: remove stale label action from ranger
2021-08-27 12:36:50 -07:00
Joe Previte
4798841f9f Merge pull request #4042 from cdr/jsjoeio-ssh-vscode
docs(guide): add ssh into code-server on vs code
2021-08-27 12:26:16 -07:00
Joe Previte
efbfe060cd docs(guide): add ssh into code-server on vs code 2021-08-27 11:16:12 -07:00
Joe Previte
607c9b2e56 fix: remove stale label action from ranger 2021-08-27 10:21:00 -07:00
Joe Previte
b5afb0594c Merge pull request #4048 from cdr/jsjoeio-add-stale
chore: add stale bot
2021-08-26 16:48:37 -07:00
Joe Previte
dbd1a22b7c feat: add stale bot config 2021-08-26 16:30:22 -07:00
Bruno Quaresma
6c6446fc97 Add check docs (#4047) 2021-08-26 19:24:43 +00:00
Joe Previte
e2a7ffbaf4 Merge pull request #4040 from cdr/jsjoeio-fix-typo-limits
docs(guide): clarify login limits
2021-08-26 10:43:27 -07:00
Joe Previte
070a122571 Merge pull request #4043 from cdr/jsjoeio-revert-helm
Revert "refactor: move helm README to docs/helm.md"
2021-08-25 12:09:10 -07:00
Joe Previte
f319fca291 Revert "refactor: move helm README to docs/helm.md"
This reverts commit bc3fb5e22f.
2021-08-25 12:02:39 -07:00
Joe Previte
f2bef942f7 docs(guide): clarify login limits 2021-08-25 11:00:00 -07:00
Joe Previte
c913386dc8 Merge pull request #4036 from cdr/jsjoeio-update-image
refactor: update image in readme
2021-08-25 10:42:22 -07:00
Joe Previte
02d355f461 Merge pull request #4034 from cdr/jsjoeio-docs-google-cloud
docs: add note about external domain in requirements
2021-08-25 10:39:46 -07:00
Joe Previte
15b39e6811 Merge pull request #4038 from sdissegna-maystreet/main
[#4013] backported https://github.com/microsoft/vscode/pull/131408
2021-08-25 10:29:02 -07:00
Joe Previte
8cf694930c refactor: update image in readme 2021-08-25 10:20:37 -07:00
Joe Previte
bc3fb5e22f refactor: move helm README to docs/helm.md 2021-08-25 09:04:26 -04:00
Stefano Dissegna
d26858b6ad backported https://github.com/microsoft/vscode/pull/131408 2021-08-25 09:08:24 +02:00
Joe Previte
3e55e5e1df Merge pull request #4037 from cdr/jsjoeio-tiny-docs-fix
docs: fix typos and wording in npm
2021-08-24 16:51:59 -07:00
Joe Previte
f0d3e02491 docs: add note about external domain in requirements 2021-08-24 16:38:12 -07:00
Joe Previte
fa6e86d038 docs: fix typos and wording in npm 2021-08-24 16:35:13 -07:00
Joe Previte
e5a9df322e Merge pull request #4028 from cdr/jsjoeio-docs-latest
fix(docs): use latest instead of version in links
2021-08-24 16:34:30 -07:00
Joe Previte
1284aa3002 Merge pull request #4032 from cdr/jsjoeio-npm-troubleshoot
docs: add note about npm logging
2021-08-24 16:15:50 -07:00
Joe Previte
4bb3175d3f Merge pull request #4033 from cdr/jsjoeio-docs-vuejs
docs: add proxying a vue app
2021-08-24 16:06:07 -07:00
Joe Previte
8cf98eaafb docs: add proxying a vue app 2021-08-24 15:47:52 -07:00
Joe Previte
d0ca3aec20 Merge pull request #4031 from cdr/jsjoeio-ports-docs
docs: add how to change port
2021-08-24 15:45:24 -07:00
Jonathan Yu
ea1b3a7245 chore: add example for parameter/value to Helm Values (#4020) 2021-08-24 15:30:04 -07:00
Joe Previte
5b6db905bb docs: add note about npm logging 2021-08-24 15:25:04 -07:00
Joe Previte
6f8dba7232 docs: add how to change port 2021-08-24 15:16:01 -07:00
Joe Previte
5b6b1dddad fix(docs): use latest instead of version in links 2021-08-24 11:54:46 -07:00
Joe Previte
1d8806fc42 Merge pull request #3999 from cdr/renovate/debian-11.x
chore(deps): update debian docker tag to v11
2021-08-24 10:55:31 -07:00
Ben Potter
ffc47d3414 Merge pull request #4015 from cdr/bpmct/win10-npm
improve npm/yarn install flow and add Windows 10 instructions
2021-08-23 19:47:49 -05:00
Ben Potter
60b3323660 remove line break 2021-08-23 19:29:25 -05:00
Ben Potter
dfa63ec37a Update docs/install.md
Co-authored-by: Jonathan Yu <jonathan@coder.com>
2021-08-23 19:23:45 -05:00
Joe Previte
7cde11e141 Merge pull request #4002 from cdr/renovate/minor-dependency-updates
chore(deps): update aquasecurity/trivy-action commit hash to 8eccb55
2021-08-23 11:53:31 -07:00
Ben Potter
2bfc793631 Update docs/npm.md
Co-authored-by: Katie Horne <katie@coder.com>
2021-08-23 11:06:44 -05:00
Ben Potter
44b532fb8b Update docs/npm.md
Co-authored-by: Katie Horne <katie@coder.com>
2021-08-23 11:06:34 -05:00
Ben Potter
dae730e64d fix typos 2021-08-23 09:08:36 -05:00
Ben Potter
f06ecd62e7 format 2021-08-22 13:50:49 -05:00
Ben Potter
7c05069272 add instructions for --link 2021-08-22 13:39:03 -05:00
Ben Potter
0f598e651b mention --link caveat 2021-08-22 12:49:52 -05:00
Ben Potter
d588fdb1fb fix typo 2021-08-22 12:45:09 -05:00
Ben Potter
d4ca5a415a clean up npm docs and add Windows 10 instructions 2021-08-22 12:36:41 -05:00
Renovate Bot
59d659c56f chore(deps): update aquasecurity/trivy-action commit hash to 8eccb55 2021-08-17 20:53:22 +00:00
Renovate Bot
234b8ade59 chore(deps): update debian docker tag to v11 2021-08-17 03:11:47 +00:00
Joe Previte
30dc47df9e Merge pull request #3954 from cdr/jsjoeio-add-npmignore
fix: add symlink to npmignore
2021-08-11 14:08:10 -07:00
Joe Previte
bffb009ecd fix: add symlink to npmignore 2021-08-11 13:49:25 -07:00
Bruno Quaresma
cee0e85e5e chore: add docs preview workflow (#3958) 2021-08-11 18:33:03 +00:00
galesky
f94e433930 fix(readme): tls docs path 2021-08-11 11:18:37 -04:00
Joe Previte
316c3aa999 Merge pull request #3949 from cdr/jsjoeio-revert-symlink-change
Revert "Merge pull request #3935 from cdr/jsjoeio-rm-symlink"
2021-08-10 12:16:07 -07:00
Joe Previte
ff3b976df8 Revert "Merge pull request #3935 from cdr/jsjoeio-rm-symlink"
This reverts commit 5049447225, reversing changes
made to 741b834b64.

We still need the symlink for the standlone packages which means we need to redo
how the symlink is removed, ensuring it's only removed in the npm package.
2021-08-10 11:59:03 -07:00
Joe Previte
264d44a11e Merge pull request #3950 from cdr/jsjoeio-fix-vulnerability
chore: fix path-parse vulnerability
2021-08-10 11:58:00 -07:00
Joe Previte
3c4e720fe5 chore: fix path-parse vulnerability 2021-08-10 11:08:49 -07:00
Joe Previte
cde28a0a0e Merge pull request #3934 from cdr/jsjoeio-fix-doc-versions
chore: fix docs version to only use latest
2021-08-09 13:56:53 -07:00
Joe Previte
5049447225 Merge pull request #3935 from cdr/jsjoeio-rm-symlink
fix(lib/vscode): remove symlink in npm package
2021-08-09 12:29:22 -07:00
Joe Previte
9d8365913f fix: remove symlink_asar from build-release step 2021-08-09 11:55:06 -07:00
Akash Satheesan
741b834b64 feat(ci): armv7 cross builds (#3892) 2021-08-10 00:05:31 +05:30
Joe Previte
b22ebd83ed chore: fix docs version to only use latest 2021-08-09 11:25:17 -07:00
Katie Horne
fb1176664f Merge pull request #3922 from cdr/fix-code-block
change code block formatting
2021-08-06 18:33:48 -05:00
Katie Horne
b29bf34811 change code block formatting 2021-08-06 18:14:43 -05:00
Joe Previte
e4207355f5 Merge pull request #3919 from cdr/v3.11.1
release: 3.11.1
2021-08-06 13:49:24 -07:00
Joe Previte
c2af5a2dae Merge pull request #3903 from cdr/separate-link-docs
docs: create link.md
2021-08-06 12:26:38 -07:00
Joe Previte
911af4075f chore(release): bump version to 3.11.1 2021-08-06 12:17:30 -07:00
Ashley McClelland
8c70dfa387 docs: make --link docs separate entry
link to --link docs from README to separate docs entry
2021-08-06 11:19:53 -07:00
G r e y
73380379da chore(ci): replace playwright action (#3910) 2021-08-06 10:53:28 -07:00
Joe Previte
f75edc26b7 Merge pull request #3895 from cdr/jsjoeio-fix-webview-uri
fix(lib/vscode): patch authority in asWebviewUri
2021-08-05 16:47:35 -07:00
Joe Previte
99503fb546 fix(lib/vscode): patch authority in asWebviewUri
We do this because resources in webviews don't load properly
when the port is used in the resource uri.

We're not sure why this is happening but adding this fix
to get webviews working like before.
2021-08-05 16:26:05 -07:00
Joe Previte
56f0c4e193 Merge pull request #3899 from cdr/jsjoeio-fix-tar
chore: bump tar with resolutions
2021-08-04 12:45:41 -07:00
Joe Previte
dbb8cfb315 chore: bump tar with resolutions 2021-08-04 12:28:03 -07:00
Joe Previte
570cb69832 docs: note about installation logs to bug report 2021-08-03 18:37:13 -04:00
Renovate Bot
379486ac38 fix(deps): update dependency ws to v8 2021-08-03 11:14:49 -04:00
Asher
afb8662d4d Query artifacts by branch name (#3881)
This way workflows will still work even if there have been enough runs
to push the version branch run off the first page.
2021-07-30 18:32:22 +00:00
Asher
d9df02e807 Remove Dependabot (#3880)
We use Renovate now.
2021-07-30 11:03:48 -07:00
Joe Previte
ff3b188864 Merge pull request #3858 from cdr/jsjoeio-add-proxy-test
feat: add more tests for proxy.ts
2021-07-29 15:33:17 -07:00
Joe Previte
9137816e33 feat: add getAvailablePort helper function 2021-07-29 15:17:04 -07:00
Joe Previte
42cfa4a7ca feat: add tests for proxy 2021-07-29 15:16:28 -07:00
Joe Previte
7e43f7d6b0 Merge pull request #3866 from cdr/jsjoeio-reorg-test-files
refactor: clean up test file structure
2021-07-29 15:14:37 -07:00
Akash Satheesan
93c89ba0e8 fix(ci): build+push image in release flow (#3838) 2021-07-29 23:31:46 +05:30
G r e y
0283c35225 docs(install): fix link to helm readme (#3869) 2021-07-29 09:54:33 -07:00
Joe Previte
7a6ec202ba refactor: match /test/unit structure to /src 2021-07-29 09:48:40 -07:00
Joe Previte
7a5c457209 Merge pull request #3865 from cdr/renovate/minor-dependency-updates
chore(deps): update minor dependency updates
2021-07-27 15:46:39 -07:00
Renovate Bot
16f2bbd007 chore(deps): update minor dependency updates 2021-07-27 21:55:34 +00:00
Joe Previte
36be0b724d Merge pull request #3862 from cdr/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.5
chore(deps-dev): bump @typescript-eslint/parser from 4.28.4 to 4.28.5
2021-07-27 09:52:30 -07:00
Joe Previte
18b1776cf0 Merge pull request #3861 from cdr/dependabot/npm_and_yarn/yarn-1.22.11
chore(deps): bump yarn from 1.22.10 to 1.22.11
2021-07-27 09:51:53 -07:00
Joe Previte
56ba22f142 Merge pull request #3863 from cdr/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.28.5
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 4.28.4 to 4.28.5
2021-07-27 09:51:24 -07:00
dependabot[bot]
e442542c5e chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.4 to 4.28.5.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.5/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-27 11:02:55 +00:00
dependabot[bot]
46e7d7ae7c chore(deps-dev): bump @typescript-eslint/parser from 4.28.4 to 4.28.5
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.4 to 4.28.5.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.5/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-27 11:02:35 +00:00
dependabot[bot]
396e2574df chore(deps): bump yarn from 1.22.10 to 1.22.11
Bumps [yarn](https://github.com/yarnpkg/yarn) from 1.22.10 to 1.22.11.
- [Release notes](https://github.com/yarnpkg/yarn/releases)
- [Changelog](https://github.com/yarnpkg/yarn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yarnpkg/yarn/compare/1.22.10...1.22.11)

---
updated-dependencies:
- dependency-name: yarn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-27 11:02:17 +00:00
Joe Previte
6d928a0666 Merge pull request #3846 from cdr/jsjoeio-test-should-enable-proxy
feat: add tests for shouldEnableProxy
2021-07-26 11:38:09 -07:00
Joe Previte
85d8c14b92 refactor: use Teffen's solution for useEnv 2021-07-26 11:21:30 -07:00
Joe Previte
3969a3990a Merge pull request #3840 from cdr/jsjoeio-uninstall-docs
docs(install): add uninstall instructions
2021-07-26 11:11:36 -07:00
Joe Previte
162f70ac1a docs(install): add uninstall instructions 2021-07-26 10:55:08 -07:00
Joe Previte
5b5a1f4f97 Merge pull request #3829 from cuining/main
Fix "serviceWorker.js" path
2021-07-26 10:25:47 -07:00
dependabot[bot]
05a97c3e75 chore(deps-dev): bump @types/semver from 7.3.7 to 7.3.8
Bumps [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) from 7.3.7 to 7.3.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: "@types/semver"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 09:57:26 -04:00
dependabot[bot]
e91b910f75 chore(deps-dev): bump @types/node from 14.17.5 to 14.17.6
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.17.5 to 14.17.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 09:56:51 -04:00
Teffen Ellis
ad85573e8f Merge pull request #3839 from cdr/add-docs-manifest
chore: add docs manifest
2021-07-26 09:51:54 -04:00
cuining
4e489f19b5 Update register.test.ts 2021-07-25 14:49:19 +08:00
Joe Previte
67e9eca942 feat: add tests for shouldEnableProxy 2021-07-23 15:07:23 -07:00
Bruno
be0e5de7eb chore: fix json format 2021-07-22 19:22:53 +00:00
Bruno
8ca8762591 chore: add docs manifest 2021-07-22 19:10:24 +00:00
Joe Previte
7b8cd25c0c Merge pull request #3760 from cdr/jsjoeio-add-vscode-test
feat: add registerRequireOnSelf on function
2021-07-21 15:48:28 -07:00
Joe Previte
911cb034f5 feat: add registerRequireOnSelf on function 2021-07-21 15:30:54 -07:00
Joe Previte
670f0a152f Merge pull request #3812 from cdr/jsjoeio-fix-pathToFsPath
refactor: only accept string in pathToFsPath
2021-07-21 12:06:01 -07:00
Joe Previte
d0d739bec8 Merge pull request #3832 from cdr/jsjoeio-codecov
chore: update coverage thresholds
2021-07-21 11:34:05 -07:00
Teffen Ellis
dfc88e3e63 chore: Update dependency requirements. Fix node version manager. 2021-07-21 14:32:16 -04:00
Joe Previte
7ac015ed80 chore: increase jest coverage threshold to 60 2021-07-21 11:15:17 -07:00
Joe Previte
da4f87a7dc chore: update codecov range 40-70 2021-07-21 11:15:00 -07:00
Joe Previte
cb778d6f36 chore: turn off patch requirment for codecov 2021-07-21 11:14:00 -07:00
Joe Previte
6e33dccb40 feat: add tests for isFile 2021-07-21 11:12:00 -07:00
Joe Previte
5c61318592 refactor: only accept string in pathToFsPath
CodeQL caught a path where we were passing in req.query.path
to pathToFsPath, which may not have been a string.

So we refactored some things to ensure we only pass it a string
which also let us change the parameter type to string
instead of string | string[].
2021-07-21 11:11:59 -07:00
cuining
d71649acb4 Fix "serviceWorker.js" path 2021-07-21 19:09:02 +08:00
Joe Previte
0f451524f9 Merge pull request #3816 from cdr/dependabot/npm_and_yarn/types/ws-7.4.7
chore(deps-dev): bump @types/ws from 7.4.6 to 7.4.7
2021-07-20 11:25:38 -07:00
Katie Horne
a84dd25bdf chore: update guides.md header to Accessing Web Services 2021-07-20 13:14:57 -05:00
Joe Previte
52c3b0d9b4 Merge pull request #3815 from cdr/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.28.4
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 4.28.3 to 4.28.4
2021-07-20 11:07:54 -07:00
Joe Previte
597cdcb44d Merge pull request #3817 from cdr/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.4
chore(deps-dev): bump @typescript-eslint/parser from 4.28.3 to 4.28.4
2021-07-20 11:07:07 -07:00
Katie Horne
9d6a154352 chore: update header from Self signed certificates to Accessing Web Services 2021-07-20 09:25:57 -05:00
dependabot[bot]
37b5631795 chore(deps-dev): bump @typescript-eslint/parser from 4.28.3 to 4.28.4
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.3 to 4.28.4.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.4/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-20 11:02:49 +00:00
dependabot[bot]
d44c31f896 chore(deps-dev): bump @types/ws from 7.4.6 to 7.4.7
Bumps [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) from 7.4.6 to 7.4.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

---
updated-dependencies:
- dependency-name: "@types/ws"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-20 11:02:27 +00:00
dependabot[bot]
8e8abc4817 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.3 to 4.28.4.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.4/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-20 11:02:15 +00:00
Joe Previte
475ae45853 Merge pull request #3813 from cdr/jsjoeio-upgrade-codecov-node
chore: update codecov to 3.8.3
2021-07-19 17:07:46 -07:00
Joe Previte
2d022b828d chore: update codecov to 3.8.3 2021-07-19 16:47:30 -07:00
Joe Previte
f96bcdc91e Merge pull request #3804 from cdr/dependabot/npm_and_yarn/eslint-7.31.0
chore(deps-dev): bump eslint from 7.30.0 to 7.31.0
2021-07-19 10:22:25 -07:00
dependabot[bot]
c3c57e5516 chore(deps-dev): bump eslint from 7.30.0 to 7.31.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.30.0 to 7.31.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.30.0...v7.31.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 16:57:18 +00:00
Joe Previte
3946a5cf2e Merge pull request #3784 from cdr/dependabot/npm_and_yarn/proxy-agent-5.0.0
chore(deps): bump proxy-agent from 4.0.1 to 5.0.0
2021-07-19 09:54:10 -07:00
Asher
7cfd149cd3 Add "plus" verbiage back to login limits
There was some confusion with the "and" since it can be interpreted that
you can only try logging in twelve times per hour in total but actually
you get two attempts per minute and then twelve per hour on top of that.
2021-07-19 10:15:09 -05:00
Alexander Pushkov
f9f3f38578 Merge pull request #3783 from notpushkin/patch-1
Remove leftover merge conflict on the FAQ page
2021-07-19 10:08:33 -05:00
Asher
589982f027 Fix incorrect manifest build
I mistakenly thought they were for each arch but it's for the version
and latest which makes a *lot* more sense.
2021-07-16 18:25:54 -05:00
Asher
f720b63583 Fix Docker push (#3796) 2021-07-16 17:46:20 -05:00
Asher
9ef6680adc Fix incorrect version var in artifact script 2021-07-16 17:39:53 -05:00
Asher
a32df56f99 Skip Docker if already pushed 2021-07-16 17:39:52 -05:00
Asher
4cfa384bb4 Skip brew if already published 2021-07-16 17:39:51 -05:00
Asher
3c0799fa59 Skip npm publish if already published
This helps make the publish workflow idempotent.
2021-07-16 17:39:50 -05:00
Asher
8608d8ec74 Fix Docker push
It seems we need to use `docker import` with the output from `docker
buildx` rather than `docker load` like we were doing when we used
`docker save`.
2021-07-16 17:39:49 -05:00
renovate[bot]
903f8d9cc2 Merge pull request #3703 from cdr/renovate/configure 2021-07-16 10:05:18 -05:00
dependabot[bot]
edc50ec7fb chore(deps): bump proxy-agent from 4.0.1 to 5.0.0
Bumps [proxy-agent](https://github.com/TooTallNate/node-proxy-agent) from 4.0.1 to 5.0.0.
- [Release notes](https://github.com/TooTallNate/node-proxy-agent/releases)
- [Changelog](https://github.com/TooTallNate/node-proxy-agent/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-proxy-agent/compare/4.0.1...5.0.0)

---
updated-dependencies:
- dependency-name: proxy-agent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-15 11:02:15 +00:00
Akash Satheesan
52579f182d chore(release): bump version to 3.11.0 2021-07-15 02:45:10 +05:30
Akash Satheesan
ddee4f748c feat(vscode): update to version 1.57.0 (#3544)
* Squashed 'lib/vscode/' changes from cfa2e218100..2064d4c301c

2064d4c301c fix issue reporter unit tests
d99a697eb52 Fix #125503
b098b10a77e Merge branch 'notebook/dev' into main
a57e41b7a43 notebooks: more accurately detect old style of renderers
c8a447f93b8 Fix #125507
ae4124aa7e1 Fix #122570
2bcdb95e7df update distro
89d750cd687 add restricted mode to created issues (#125537)
5f7166fd915 Put run menu above output container, Fix #125188
d9cf45e0dba Fix #125526
ab0bd774c91 Pass profiles, defaultProfile, isWorkspaceTrusted from renderer to shared process (#125450)
061403c7458 Switches to new RemoteHub authority separator
0e6d07052c8 remove untrustedWorkspace search for now
1c5b5a632f9 Hide "Customize Notebooks" in getting started behind setting
f843c51bca8 Update lock file
2456872bcaa Bump distro
12547c1de87 remove virtual workspace information from banner (#125512)
6de86dcd840 update notebook layout default values.
0f0abb3dc87 trust vfs (#125523)
8d87a664274 Bump es build
bcdfe884a3c Fix window reload with an empty remote window
a0bc15ff6fc Close Remote Connection shows up in local windows
fe1eafc80c0 Merge pull request #125498 from microsoft/hediet/fix-125034
5eb636f22fc Renames InlineSuggestionActions back to InlineCompletionsActions.
e8ad99de2b3 Merge branch 'main' into hediet/fix-125034
dcf62e3a1e4 Merge pull request #125501 from microsoft/hediet/add-accept-action
fe6fc208e9d Puts EditorOption.inlineSuggest to the right spot.
c6777d5c6c9 Reverts menu rename.
c5bbe0a35ea Merge pull request #125484 from microsoft/hediet/fix-125478
20cb29b076b Fixes #125430: Add a lock around the extension registry.
383ae36449b restricted mode hover: added a link to manage trust. For #125408
1a8285a9654 Adds accept action to inline suggestion hover. Fixes #125472.
2ba1dcb0c9c Removes setting ghostTextExpanded. Fixes #125037.
3300006ee17 * Renames command ids, context keys and command titles to Inline Suggestion. * Renames menu item, makes it proposed API.
f8c061e73d7 restricted trust status bar item should use rich hover. Fixes #125408
620434543f5 * renames editor.suggest.showSuggestionPreview to editor.suggest.preview * renames editor.suggest.showInlineCompletions to editor.inlineSuggest.enabled
4b0c17e1808 fixes #115535
93e61e267ca fix compile error
54dd1429b64 startup timings uses now `exit` and not `quit`, fyi @bpasero
922f866a282 run menu: more precise context keys
f207b383071 inline `NotebookExecuteHandler` type
fa1694c8afb Merge pull request #125465 from microsoft/menubarFix
5efc2e7abcd 💄
7954c27d2d9 Fixes #125478.
f99e1c358f0 fixes issue with asExternalUri API
8163cfd8c54 Make sure we layout editors in sideBySideEditor after they are created (#125445)
387e2f39ebb Properly complete notebook profile step
11f86fefb46 Track opening notebook separately from showing notebook GS page
a2ef11ff553 fixes context keys with menubar
fd2ed91612c Fix wrong CKS on output toolbar Fix #125109
f95fb77f22a Fix cellstatusbar layout issues from "visibleAfterExecute"  Fix #125403
0acf7df100e Fix showCellStatusbar default #125403
a244a4ccc65 improve messaging with remote
5d58be33080 switch to a switch for localization edge cases
ae0e8f04468 uppercase h in localization
885ac7f1c11 fixes #125406
b519331a06b fix #125458.
4c12628b2b5 fix #125234.
0c7e7cf21d6 disable notebook layout getting started.
4cae6713714 fix #125452.
72d325b4bc9 fix #125027
df59dc8470a don't show status bar entry until files are opened
d3db92b7a2e Fine tune image styles. Fix #122680
72a67899410 add settings links to improve understanding of workspace trust
c9e683d6c78 fix #124405
827398db432 fix #125444.
f004a398e0b Fix #125313
b26e1aba58c Remove hashes from override
41b1406d3a8 Revert parts of "Fix #125395" Re-enables GitHub extension in untrusted workspaces
eab8d0403f2 Revert "Fixes #125350: disallow in untrusted ws"
0006964091a Change cell type contextkey to markup Fix #125378
5ea26044187 Fix #124531
0a5d652bdfd Fixes #125332.
f73f263c6bf Needed localization changes for converting xlfs to json (#125442)
0f0f066b392 Remove codespaces walkthrough from Getting Started
96004bc2c97 icon hover: add pointer for element hovers
11debc38469 Merge branch 'notebook/dev' into main
b80011a819c Fix #124049
fd430418a01 Refine `CellInfo` type (#125351)
b2cc8487aed Flip positioning of steps and media in narrow layouts. Closes #125246
5966e9dfec0 Check to see if there are any artifacts that haven't been published (#125428)
a56ef182474 notebooks: fix default selection of untrusted renderer
788e39aad86 #125395 Improve the prompt
062401745a2 Switch loglevel to trace
73de22af596 Close #119722
be1cf4bddb5 Focus contributed profile terminals after creation
60651a0c4de Fix #125030
8f9eedf0019 Merge branch 'main' into notebook/dev
01c6fb557d0 Fix #125395
41163014f8c 💄
490cef7c075 Revoking trust in the remote scenario will reload the window
3f8672be8a4 fixes #124051
6d66648c51b Add snippets for ports attributes to settings helper Fixes #125081
e43c3957f64 rename onDidChangeNotebookAssociation to onDidChangeSelectedNotebooks
732769073a2 Workspace trust - add --disable-workspace-trust flag (#124998)
499e4948c7d Fix typo
41f117753ed debug: update js-debug
20df87725d3 fix build again
15aca96cd5c build - unblock lauching
8b4bc01166a Removes RemoteHub
0f2f7c7f04b Update notebook getting started images
b2a64b1379c Merge pull request #125352 from microsoft/tyriar/migrate
515b7125255 revert a change
fa19cd28adb fix build errors
6f0ce2e7508 Fix #125250
884b1e7a0d0 Fix "Trying to add a disposable to a DisposableStore that has already been disposed of." ref #125354
c8b7aaf2c29 Merge pull request #125340 from microsoft/merogge/onExit
7fd324944d3 Fix selected notebook profile highlights
99665d0b4ac Merge cell statusbar settings Fix #125173
2974dcbd985 Fix bugs causing walkthoughs to not open on install
ab1c9202003 Try setting gettingStarted as default editor (#125321)
ebde979a485 fix cell top/bottom border always active.
7dacb10b591 fix #125339.
e6aaf493989 Move notebook getting started walkthrough to its own section
f473e3dc9f8 fixes #125047
6cc80fea815 fix #125338.
66917f41795 fix #125334.
2356d7c5b76 fix init layout interrupted by editor group resize.
a2a61127667 Hide execute actions from markdown toolbar Fix #125336
0f8c499d101 Migrate profile setting and fallback properly
272208523b5 register the extension request handler once workspace is resolved fixes #125342
4c57cf40313 fix #125175.
bbc4995eca7 fix #125176.
195477a0e96 remove unused import
68e862e1d62 skip flaky window test.
9bd7cbd1403 notebook.insertToolbarLocation
769e7080f4b Fixes #125350: disallow in untrusted ws
ae2f0b39e63 Fix #122741
8f3a47cc88c add singleTerminal argument
6ef81b30370 add safeDisposeTerminal to terminal service
b295408c303 tweak wording
fa8a7a84a13 Merge branch 'main' into merogge/onExit
895dbf4dfd0 fix #125069
60dd761211b update the layout based on treatment.
26cd18321bd remove backwards compatible tests.
d215fc72380 Fallback to active editor if no webview is focused
c5a4158a651 fixes #125247
3d0d203bb02 fix #124849
509906cd916 Merge branch 'notebook/dev' into main
4d4f0b528a2 fixes #125319
093b03bb39e fix #124854 Co-Authored-By: Daniel Imms <daimms@microsoft.com
c4da8f4ab15 Improve terminal drag feedback
55f01b11fa0 fix #125067 fix #125039 Co-authored-by: Daniel Imms <daimms@microsoft.com>
941a603ccd0 Revert "Try fix getting started as default crashing integration tests"
0206b2ee43f Try fix getting started as default crashing integration tests
d0ba023c71e Fix #122680
48fcde4048c Fix #123476
0543065c41a Don't commit inline completions on tab when "tabMovesFocus" is active.
e2ad6d2c9a8 Merge pull request #125126 from microsoft/hediet/make-hover-unselectable
b49731160d3 Add henning to my-endgame notebook
1fee13180b7 Vertically center notebook profile list
09a3fa687a9 Resets context keys properly when editor is disposed.
c324c61ad57 add closing tags
e92e3d1a9ea Reset context keys when Ghost Text Controller is disposed.
ec5bf6733ca Fixes "Ctrl+Z doesn't retrigger inline suggestions"
26ff863e3d4 Merge pull request #125221 from jeanp413/fix-125035
ce8d2e86028 make IHoverDelegate.placement optional
32e6054985c Adds more documentation to the proposed inline completion API. Fixes #125267.
20be2c8eaa2 icon label hover: allow element placement. Fixes #125090
232412ff87b adopt terminalTabList
60a36219813 Revert "icon label hover: allow element placement. FIxes #125090"
4aa9f8271b8 Merge pull request #125292 from microsoft/tyriar/themeicon
8223d3d5c7f Fix #125156
0a32357e6d7 Fix filter.filterQuery initialization
3099c6f1c1b ios: trigger list/tree/table context menus
3a388466b85 tree viewer hover delegate: command handing now comes from hover service
1d471214fb3 icon label hover: allow element placement. FIxes #125090
0ee6895a6b8 Convert vscode ThemeIcon to internal type
e040c0881f7 Workspace trust - calculate trust before extension host starts (#125283)
ea339694fc7 fixes #125272
727caa7f238 Merge branch 'main' into notebook/dev
e0131062c84 bail on standard start when workspace isn't trusted
0bf73ff15ab make sash work better on ios
9764a02c5d3 sash: use DomEmitter
df709ddd3d5 Fix otherPortsAttributes protocol not updating correctly Fixes #125079
ef0fb8afb89 Revert "use associatedResource instead of untitledResource, https://github.com/microsoft/vscode/issues/125028"
073c4ffd7da remove deprecated notebook-namespace, notebooks is the future
a24c1495208 Merge pull request #125281 from microsoft/hediet/allow-inline-completion-array
2e53913b637 Separator in remote indicator can appear/disappear. Fixes #122309
d71e5718c90 Fix ctrl+click to open link in ports view Fixes #125076
f32b38aa216 Allows to directly return an array of inline completions instead of an InlineCompletionList.
b5bdc48d553 use vscode.notebooks not vscode.notebook
3d2309d4e74 Set icon for custom pty terminals
e537c47c63c Fix double extension terminal profile creation
a3337d01bb0 more api polish
17da5e37217 use associatedResource instead of untitledResource, https://github.com/microsoft/vscode/issues/125028
7051f7db889 Sort content of XLF files
109c9d9486b adopt viewType everywhere and drop support for it, fixes https://github.com/microsoft/vscode/issues/125163
b1e613481bb fix https://github.com/microsoft/vscode/issues/125163
9796ac82c3f (re)move NotebookCellOutput#id into proposal, also remove ctor overload that allows to set id
a14600c325f editor trust - limit trust validation in `openEditors` to the places we want
39e7fd6a779 Merge pull request #125128 from microsoft/alex/ghost-text
a1e7ce9cde2 tackle more todos, change ctor of NotebookCellData
0c3646199aa editors trust - support opening diffs into new window (#124618)
592ae5a1f53 editors trust - make sure diff editors bring up trust dialog too
a286059b90d macOS - workaround fullscreen window regression (#125122)
82acbe807f2 updated todo search file
ac05ae7b6f0 move file'ish things into workspace namespace
e57462fd1f6 dnd - only add file system resources (for #125187)
0b6e70302f8 remove deprecated API
dfc47c79571 rename notebookViewType context key to notebookType
542655758b4 fix https://github.com/microsoft/vscode/issues/125138
f2d6da27d01 make sure appendOutputItems and replaceOutputItems return something
ee87b2bd432 missing adopting for end-call
d487b379bae Merge branch 'main' into notebook/dev
7865b99b44e Fixes #125035
febc20e8d39 safari - disable clipboard error notification
e7b9f3a1a40 Show a confirmation notification when installing/uninstalling shell commands (fix #125145)
217f1a2f60a Workspace trust - extension enablement (#125179)
b154a3d3043 skip view column test.
322c81122dd Add "move cell up/down" to the cell context menu when drag and drop is disabled
a90729cb6f0 show notebook profile the first time when a notebook is opened.
c55d8a0e16c select notebook layout action.
b2da4119928 Add undo/redo per cell for jupyter profile.
7aa8c5ec4a7 Fix profile contribution schema
2d97edd98f2 Update QuickPick api doc (#124485)
8df0f068588 Group startTime and endTime into a single object
ef28d1663d9 Inline parameters to execution task start and end
5c6ae4fc5ac Update NotebookCellStatusBarItem constructor
872bbcc8c1c Update provideCellStatusBarItems
28bf10376c3 Add 'notebookLayout' tag to suggestions
4dd5ccb1566 Make registerWalkthrough public
d2561813a8d Merge branch 'notebook/dev' into main
dc9dc66109d tweak fix
ac7bb556e8f Disable "consolidated run button" in Jupyter profile
4449461cae4 fix #125121
a296485f007 fix #125045
8e86a3c6b16 Enable consolidated run button by default, now that Jupyter has caught up
515c64f05e6 fix #125125
5e27fb3ba85 Fix to make @recommended:languages search work
84196c8b8d3 fix: update colors
950ad4ffec5 colors: add support for exporting colors
2c503281922 Add import to pull notebook getting started content into build
9bd78a8bf53 notebooks: restore renderer messaging generic
088e0d282ee Revert "fix #125137"
d6d3091cbd3 fix #125137
c7f8b301938 Revert "fix #125137"
67e64a8fc86 Merge pull request #125083 from microsoft/ben/69349
80a899d8d67 fix #125040
aeecc7c03ff notebook: messaging api polish
4df863a28da Remove extra notebook images
092a2242ce5 fix #125137
2e8e888989a editors - more tests for capabilities
b743bf63de1 fix #125124
d6d9200832a notebook: fix mimetype switcher not working between custom renderers
ebcbe001591 update todo search file
6dbbcc2eee7 fix compile issues...
e8d8e53752a update/tackle todos
6fe84c402bb Merge pull request #125106 from microsoft/joh/api/noMetadataType
553893e940a Merge pull request #125104 from microsoft/joh/api/noItemMetadata
632f2156f2e remote indicator: remove vscode-vfs workaround
5a49e6a283e Focuses the editor after showing next/previous inline completion.
1bab611b73b Sets user-select: none to the hover actions so they cannot be selected anymore.
103d3edfdc0 Fix text replace case operation false positive Fix #123483
a3bad5878ef Add a protocol property to tunnels that corresponds to the attributes for that tunnel and is reflected in the UI.
bd8a0fb3d76 Fix #124779
0115c74d4af update todo@api search file
8dd2e53e247 bump versions
a476c9d4f08 fixes #124850
0580a6bae45 Settings: remove notification that changes are saved (fix #69349)
545b931b96b remove dedicated types for notebook and cell metadata
b1457fa4b6d remove NotebookCellOutputItem#metadata
e7b775adebf Revert "fixes #115535"
ae86512bf07 Fix automatic task timing Fixes #125044
6a02e8333c1 small jsdoc and todo tweaks
952e39f9d2d fixes #125026
d163f3f3d45 tooltip text grabbing broken. Fixes #124457
e9d05647b3b update distro
122df438a80 Run OSS Tool
89157c1a87a notebooks - tweak description for untitled files
1e446dfadf5 Don't hide suggest widget when expanding ghost text
ab80101db2d Revert "Fix regression with extension enablement"
24e1234559d [json/css/html] update services
a8a57c3fc67 Merge pull request #124288 from huszkacs/bug/issues_with_backspace
a4e1a259a2b Fix tests that were not updated
91b7e6027ad Move vscode.newWindow & vscode.removeFromRecentlyOpened out of apiCommands. For #110583
2ae32273fd2 update my-endgame notebook
0a1046ada41 Merge branch 'notebook/dev' into main
2f253fcc220 more todos
4093effb9b0 Merge pull request #124964 from microsoft/alex/ghost-text
79048992ef1 Adds leftTrim function, fixes bug in inlineCompletionToGhostText.
b1da1fbc8c4 Merge pull request #124972 from microsoft/hediet/fix-negative-overwriteAfter
3a259a7a6ae The replaced text does only need to be a prefix of the insert text after removing all leading whitespace.
1176faf27f2 Fix #119265
78c865d70d4 polish remote menu control actions
4ebf68103e6 readonly [] over ReadonlyArray...
67a85487125 Expose the inline completions provider in the monaco editor.
1eef15f0d54 more todos for notebook API...
552d457b718 updated code search file
f700cab7c36 💄
2031df26538 rename hasExecutionOrder to supportsExecutionOrder
f2fb2b8cbe3 rename viewType to notebookType, https://github.com/microsoft/vscode/issues/122922
ae17cc95591 Improve autocompletion for statusBar/remoteIndicator contribution point. Fixes #122566
efcf0eea9bc Remove default support from  vscode-translations-import
b55d4384260 Fix regression with extension enablement
b7be98705fd Update descriptions
220f89ba3c6 jsdoc and todos
1e57955c798 Remove handling of Default inno setup file
e1928efbb63 notebook API finalization part1
cc8ff11f574 Fix recursion exit condition in variable resolver
2e026cf7c28 more API todos
0fde806bf85 Add limited support for variables that resolve to other variables Fixes microsoft/vscode-remote-release#5007
355df0eccb6 move renderer script and IPC into proposed and merge with general renderer IPC, https://github.com/microsoft/vscode/issues/123601
da851abcd6f jsdoc 💄
8d244362832 remove resolved todo
83d5e2bda06 rename namespace to notebooks, https://github.com/microsoft/vscode/issues/122922
594fc814bca update untitled hint to work, use the correct setting name
f68ee48c524 Fixes #124742 by ensuring that overwriteAfter is not negative.
edf85f1711d fixes #122402
3b407e0b6c1 move onDidChangeNotebookCellExecutionState into proposed, https://github.com/microsoft/vscode/issues/124970
e9579534bb2 Only trigger session when typing, not when the model context changes.
6832b7ec4b0 Disables rendering visible whitespace due to feedback. This makes ghost text less real.
7cd53df7d72 Swaps previous and next inline completion actions in the hover menu.
427f48b8d17 Add prebuild commands
dea978dd1c1 custom hover for remote indicator
8d41153ffc5 support custom hover on status bar entries
d4161177d98 don't use console.trace for all...
692fb8ab211 print trace for potential cycle, https://github.com/microsoft/vscode/issues/124723#issuecomment-850674813
f55a5243a43 don't use console.trace for all...
910d70bb88d print trace for potential cycle, https://github.com/microsoft/vscode/issues/124723#issuecomment-850674813
8b04a825b49 Merge branch 'main' into notebook/dev
94f47f44c98 Merge branch 'main' into alex/ghost-text
d776f0c1eba Fixes border color. Renames to ghostTextBorder/Foreground.
85f9447b720 Call adjustWhitespace on snippet.
db1bd650dcc Don't compute ghost text that is not supported. Thus, no space is reserved for unsupported ghost text.
4f3d865a6b4 refactor for cleaner initialization (#124904)
ccb0a8c2d93 Revert change in default due to build failures
6737ea008ff Change executionState to state
6949856b195 Remove API todo
038bac01c41 jsdoc for notebook cell statusbar API
667e3dd844a Tune getting startred color picker
bb5b6afdce4 Remove "primary" in favor of alway opening the first applicable walkthrough
6adfa8b3135 Enable getting started as default startup editor
b2f203113c1 editors - more alignments across editor inputs
ada71479023 Open getting started the first time a notebook is opened
08eedafbd60 Finish getting started content
b0862e99074 Don't include our loader in notebooks (#124864)
26b9218d64f Merge branch 'josola-edit-devcontainer-readme-markdown' into main
ad52b3f4583 Fix merge conflicts
09d1935b4cd Correct dev container info in README
1605d16ee3d Refresh dev container content
d7a79f0393f Add notebook profiles to Getting Started
887ff91a14a Merge branch 'notebook/dev' into main
5e7cd998762 Bump TS build version
e3354e26eff Whitespace characters are near invisible in High Contrast theme (Fixes #124612)
bb4e83a19a8 Improve hover stability and handle case where mouse is directly over inline ghosted text
aada268951a update distro
5fe858a229c Workspace trust explainer in getting started
f568f5aec3a Avoid scaling down SVGs in Getting Started
eb65a93f4bb Include import ref to markdown so it gets included in bundle
bbc7af71930 fixes #115535
3772aeec10b Typo
24143e91320 Merge pull request #124828 from microsoft/alex/ghost-text
868b84ceb99 fixes #124850
f509e7552a9 update classifier
676340ffad9 Get expected service worker version from renderer instead of main.js
3bfa3455a6b Fix incorrect reference when 404 on webview resource
445dc50f737 Use unique id for releaseNotes webview
1380c0c5e0b Remove unused code for rewriting endpoint
8058ab1a966 Disable consolidated run button by default
15616f8d936 refactor codeExchangeProxy to use same route and use it for refresh token as well
a6f4d96b826 Fix #124049
44a24280846 editors - unset preferred mode/contents before attempting to resolve
c784a74b8ba send Output metadata, not just OutputItem metadata, to renderer
ea02f214c74 Merge remote-tracking branch 'origin/main' into alex/ghost-text
dca2b9e2db8 Show hover over multiline ghost text
ab1cf30d883 add api-todo code search file
affbf49ccca Introduce `HoverAnchor` to allow hovering on something other than a range
4202ab071a6 rename NotebookCellOutput#outputs to #items
b16b45fecb8 Tweaks the effect of showSuggestionPreview and introduces showInlineCompletions. Explicitly triggering inline completions will now work even if settings are disabled.
d2854fd7877 fix #124842
d9f1e27aeb9 more API todos
394a1ce2dbc Merge pull request #124752 from microsoft/tyriar/term_trust
2f0a9160d0a more jsdoc, also more API-todos...
9eb940e243f Remove padding left (#124823)
42af32d16a0 do not use shadow dom for editor context menu for iOS
6c10a5334ee add jsdoc placeholder everywhere
e7776ccdcc3 Setting for specifiying the local host for port forwarding Fixes #124581
e15f4026511 Add `mightBeForeignElement` detail for `CONTENT_TEXT` mouse target types
a2d1bd0d158 Adds menu 'editor/inlineCompletions/actions' that extensions can contribute to.
098dfd56e3c Changes shortcuts of next/previous inline completion to Alt + Open/Close Square Bracket.
00de32d013a Keep track of the span node used for hit testing
8e54aed67b7 Remove `IHoverPart.equals`
ccfda77c8e6 Reorder participants to improve stability
77bc8745b29 jsdoc for NotebookController
71fafe39464 update jsdoc for `NotebookCellExecution`
541a5d4fa70 smoke: trust dialog should appear in 5 seconds, and we can ignore if it doesn't
5b642616ef3 Use loading + spin codicon for task terminals status Part of https://github.com/microsoft/vscode/issues/121659
04e09dacdfd refine output modifications of NotebookCellExecution
3a857fc436d editors - add tests for capability change events
004f6609f8c Fix problems with port protocol
903e219ccb8 files - need to track individual readonly stats everywhere (#124524)
466dd4e490e files - provide access to stat object from not modified error
872fac207ee Merge branch 'main' into notebook/dev
d5c73cc952d fix https://github.com/microsoft/vscode/issues/123570
3ac57c71329 Fix NPEs caused by extension that is not in the marketplace
df03e4caadc Removed unused MarkdownString.
e5f70e8e2a2 fix smoke tests (#124814)
47d3d743cad set max zoom to 8 (#124769)
b2da15ea2d8 Merge pull request #124745 from microsoft/alex/ghost-text
a9c54044e50 Refactors inline completions model.
ccedcbdf5ec Do not accept suggestion on tab if indentation is suggested.
a2944c32ea9 Fixes rendering of whitespace in the inline decoration.
8a3f351eb9c Use explicit context when the user cycles through suggestions.
1fa3397c48c fix post-merge hickup
a97ebdbabc8 Merge branch 'main' into notebook/dev
8715d80695f fixes #124809
7a767570e85 editors - more tweaks to dnd behaviour
07ff28c58d2 Dont center markdown content
3ea0bf8fbca Implement run button with extra actions, and "run above"/"run below" actions
970858ef6dd Add first pass of color theme selection markdown content
29cad8fb5e6 Merge pull request #124754 from microsoft/tyriar/profile_api
e0c8a76b7ad don't sort scope list. Fixes Microsoft/vscode-pull-request-github#2751
c1448f3161e Remove ansi escapes from localized string
9eeb092206f Re-enable skipped test
9b609ab1e11 Clean up profile provider api
e8758933d80 Disallow custom profiles as default
e037348d272 Support launching contributed profiles from dropdown
280e0070733 Add undocumented always syntax only TS server mode
866ecdd45a0 Merge branch 'notebook/dev' into main
1c3cc87bccb Add an `InlineCompletionsHoverParticipant`
7ce379e3f2b Merge branch 'main' into tyriar/term_trust
d9e043161fb Bump sw version
73ff24e451d Fix de/encoding for rewritten vscode-resoruce uris
b8f11107f72 Use @types/vscode-webview
decb1ab6a89 update left aligned plus button margin.
484b04df64b fix #124774
902bb43b3b1 testing: move back to proposed
31aef10814f testing: hotkey for opening output peek
14a013e7f3c Support contributed profiles in dropdown
dd61b26f33a enable workspace trust by default #wt
5338cc32da7 fix build.
4403b9010e5 Tweak remote workspace trust calculation
e3d4313714f support editor options override.
384f42bca76 Tweak wording, fix #124724
0dd52e2d77f Update distro
b157bc7e5c3 Support for @recommended:languages search (#124546)
9224159b004 Migrate users from shell -> profile settings (#124615)
d2a0bfb2866 editors - log error when opening fails
61f3ac6e07b support context keys in menu bar (#124726)
0de0faecee5 fix https://github.com/microsoft/vscode/issues/122376
f523f65f398 Add a `description` field to decorations to be able to find leaks
4c5a061df61 rename NotebookKernelPreload to NotebookRendererScript
9ef57b5c216 remove NotebookCellOutputItem#value, https://github.com/microsoft/vscode/issues/123884
4ad3265cbed Support workspace trust in terminal
a56fe2b397e use isVirtualWorkspace
ed611d0ec39 Minor tweaks
4edb0110f6b Small tweaks
7bd0337d940 Move parts of the triggering logic into the widget
2508b33f0d3 Wait for listen when making tunnels
7a83e5aa627 workbench API: assumeGalleryExtensionsAreAddressable
e94e8ed3998 Show default profile on top of term dropdown
693677c8a24 babel.config.json language mode should be 'jsonc'. Fixes #124683
cd501b2e5bb Merge pull request #124741 from jeanp413/fix-124735
9dd89100b49 Improve editor DND to work with untyped resource editor inputs (#124749)
14a4548e4ab editors - use preferred content only once
da1193950a1 some jsdoc for NotebookCellExecution
30074591eea editors - input 💄
55d91bbed87 editors dnd - more 💄
9d907212baf rename NotebookCellExecutionTask to NotebookCellExecution
5d534b94f83 dart: fix language configuration location
d0d80ec337f fix build
23fb4207373 Merge branch 'main' into notebook/dev
0637663fcfe fix isNoCorsEnvironment
9095b835bbf editors dnd - fix dirty contents in files diff
c870d75473c editors dnd - enable diff editor transfer
70418f0aced editors dnd - fix untitled transfer
bba59424f56 Merge branch 'main' into ben/better-dnd
367a0b809ab editors dnd - towards allowing any untyped editor input
6ba7093a8a1 Fix window/folder/workspace terminology for status bar entry and banner
9638534dd51 Fixes #124735
c1d4497a31e Merge pull request #124664 from microsoft/aeschli/dart
1082913dd01 fix config default value.
433c801dcc3 editors dnd - some more cleanup
cbbdb17b80d editors dnd - rework to allow to set contents to untyped editors
b5b059d2e2b fix typo in files.ts (#124693)
5eec3c86e3c smoke test - disable experiments
85d8f223c70 Remove keymaps from getting started walkthrough
02968bc2503 Call post message to all parent clients
1fd2b4ed1e3 Rename keys and support full context key expressions for check offs
14b31425b90 Fix #124531
bfb94c85fa3 fix build.
c95af9ae460 fix build.
8519a42c5f6 notebook options respond to view type specific cell toolbar position.
e3c8ff57849 try showing the banner only after some files have been opened
561b8364008 testing: fix hidden tests not being un-hidable
ade83f05895 update context based on outputs.
574696980c9 notebooks: update state of messaging spec internally
c4fda24034a testing: fix terminal being shown inappropriately, use beaker
0feee9edefc Remove `instanceof` check
641c2b175ca Merge pull request #124707 from microsoft/alex/ghost-text
e0a52df1695 Merge branch 'notebook/dev' into main
c3d63c1a1b2 fixes #124692
8e9405e7a9b Keep the `ColorPickerModel` alive between repaints in the `ColorHover`
35b43a410b0 Help TS understand the code
ebdd548be22 fixes #124702
c538781d780 add notification if tsserver logs are left on for more than 7 days (#124149)
363e8f25f6f bump distro
244b48af73d testing: additional actions and better theming for peek
a5bbc53e882 Extract more color picker related logic to `ColorHoverParticipant`
4e6fe2dc51e Extract pieces of the Color Picker logic to a new `ColorHoverParticipant`
fd7c71a2eea 💄
c88d5756213 update compact view default value.
1e6b6cb6843 Pick up TS 4.3 final
6a12866c3e9 💄
1abeaf97753 Workspace trust - remote workspace (#124617)
a430e8f9692 Fix settings dropdown hover style Fix #124207
b6acb191fac Fixes #124665.
99bcc8e2458 Show clear outputs only when there is kernel.
9252be4f90a distro
21bf10d4977 Removed unused member.
54ebd819176 distro
f1a5d40aa75 refactor getCallbackEnvironment to return authority by default
5eddbd9d207 Properly support splitting ext profiles
08cf3df7457 Pass object instead of unwrapped args for term create
d7779916566 move buildExtensionMedia to lib
62e8b545f7a missing build
51a5caf3f23 Simplify terminal creation
bf5f7dd5ec1 Get split terminals working
d1ed9c8bf35 Adds proposed API for window.getInlineCompletionItemController(...).onDidShowCompletionItem.
3ff91e7621b Merge remote-tracking branch 'origin/main' into tyriar/profile_api
7f21b1af485 Revert "Allow extensions to create multiple sessions from the same provider (#124640)" (#124705)
4583ef442b0 Fixes bug that "show previous inline completion" actually shows the next one.
8f0589da177 Set suggestionPreviewExpanded to true by default.
9464d14f317 Make notebook renderer activate potentially async (#124647)
5eb64c54ca4 Modified markdown preview nested list styling (#124445)
23e1f261dc8 Remove `HoverPartInfo`
84bc432011c Add `IHoverPart.owner`
31a59b5970d bump distro
e6a1cc38437 Update commands.json
e29194ad0d3 Activation event, register api
6a7c700a12d file working copies - do not throw from ctor anymore when schemes are unexpected
bfccdcb9581 disable fullscreen on ios
764d8fdc3dd test: add test for event Relay (#119070)
a7ab347c2b3 remove old notification
d662cc56549 remove old license notification
c704e43d5dc Check that the /build/ folder compiles
0e3459b0b9f expose Grid.onDidScroll
0a4bfb31c90 fix naming
a628237458f Web: "Open Folder" on empty workspace does nothing
4cda850edf5 disable welcome editor in smoke tests (fix #124674)
0688745e82e Color.Format.Css.format does not return null, so the return type can be made more strict. (#124568)
dff33d73244 use actual object
0d44b63c1c1 fixes #124407
9cba86888c9 update node version in optimize
0a7a69f1908 fix build compilation
9eb4eff77b8 some more jsdoc, https://github.com/microsoft/vscode/issues/124357
d63a69abf3d some enforcement of unique mime types in the extension host, https://github.com/microsoft/vscode/issues/124357
24ca9e0d7c7 Merge pull request #124654 from ValidMelvin/main
a961587ecf7 dart as built-in language
98dc73a3296 unnecessary space in in julia cgmanifest
c97189d9d06 some more :lipstsick: and simplifications
a48d92d0fd8 only pick the first occurrence of an item per mimetype, ignore others, https://github.com/microsoft/vscode/issues/124357
18b6620bc39 fixes #123543
c2cc9b11afe Update README.md
14f61093f43 fixes #124507
69259e84a0a some 💄 for  https://github.com/microsoft/vscode/issues/124357
44b470c99ff fixes #124576
47d00215aff editors - cleanup untyped editor interfaces for text capabilities
04f585a580a cleanup interfaces
e12f21f498d Merge pull request #124549 from DonJayamanne/createNb
5e146d257b5 Update classifier.json
d0884f4a1ec webview - clear group listener when it gets disposed
fe1547c251b Merge pull request #124621 from microsoft/roblou/diffNotificationMessage
5cc9ec944d8 sandbox - bring in iframe based webview service
3084319750b Get rid of classes for workbench editor options (#124589)
b82b90c1000 editor options - more 💄 before merge
a18ea9c9ec2 Allow extensions to create multiple sessions from the same provider (#124640)
21162bfb68c Shift execution count label down just a bit
68efd480d0e Explicitly convert properties to strings before uploading
ad41b3a12b5 Mark a few more props as readonly
0a7061ed002 ReadonlyArray -> readonly arr[]
24a23a8ea05 Mark array params in vscode.d.ts readonly (#124599)
7d50ce2061e fix tests
2521499104b testing: add clear test button to peek view title
57af60a7b7f testing: initial test message split view
473cfe28bfa Revert "Revert "Merge branch 'main' of https://github.com/microsoft/vscode into main""
8822790908b Merge pull request #124622 from microsoft/gettingstarted/navigateToStep
7c01395da16 Revert "Merge branch 'main' of https://github.com/microsoft/vscode into main"
7a976501eb3 Merge branch 'main' of https://github.com/microsoft/vscode into main
22576768342 Applied new style to first getting started walkthrough
8ccc1243fc0 Fix notebook unit test
b0f67df65d7 Fix build
bb19c28fe2c Getting started layout polish
2d9aa1868ae Fix broken @tag in settings editor Better fix for #124520
0b2d890624c fixes #124619 #wt
20ce9d57629 fix weird border rendering on windows.
b4f4839da5e fix integration test
6bcd590a706 Merge branch 'notebook/dev' into main
e1731e91048 fix build
f378cff1a8e dropAndDrop -> dragAndDrop
032920fa2ee vfs -> virtualfs
72c4bd69c04 remote menu: sort entries of current remote first
757fd91f040 Hide TestReolver.newWindow when in virtual workspace
cf2a866b7dd test resolver: supports untrusted workspaces
68ba0141fbd fixed notebook focus indicator margin
5926c50d6c4 fix missing markdown height update
33209f104db update markdown height on options change.
7fd8f828c02 fix pwsh profile test failures (#124613)
8f18f3c5ff2 oops
771446e4a21 Make showCellStatusBarAfterExecute not experimental
71cc917274f Add option to show cell statusbar after execution
3ccbe2a6b1b Fixes #124247
789a91a487d wip
db6ffb43b90 fix #124583
c351b396cac Support terminal renaming inline in the tabs view (#124533)
33eb149bada Add reset to default to terminal tab color selector
18b30e5b494 Fix default shell args for debugging
a8b63f564af Merge pull request #124585 from microsoft/alex/ghost-text
19c88bc3c7a editors - more EditorOptions cleanup
5254e33173d Removes unused const.
af0078d44d5 editors - more EditorOptions cleanup
de08dcdf276 remove folding classes first when config change.
c17917e6ba4 Enable notebook renderers on web (#124557)
f2b1f78ad45 editors - remove EditorOptions
a21b824704b Enable notebook renderers on web (#124557)
0249ae32871 clarify that NotebookController#id should be stable, https://github.com/microsoft/vscode/issues/124535
080f8b5e35f editors - remove TextEditorOptions
8adc16d6c50 editors - remove TextOptions#create
b10db1828d0 editors - remove TextOptions#from
9bdb8f88816 editors - remove TextOptions#fromEditor
593a25d41e1 editors - remove TextOptions#apply
741beb8f264 TestResolver, use 127.0.0.1, not localhost
3de3141ff56 Implements basic cycling through completions.
4d4ebbee5fc Clear inline suggestions cache on commit.
f89fc476de3 Fixes colors for dark & white theme.
a78bc1aa96d icon label: supportIcons implies LabelWithHighlights
d4307f8d534 missing validation for top-level token color object
b6551f8e4e3 Workspace trust - no need to call setWorkspaceTrust (#124566)
afc2b062703 editors - start to remove typed editor options (notebooks, search)
64b0c65b8cb editors - fix cyclic dependencies
5880a6a4eeb Merge pull request #124570 from microsoft/hediet/ghost-text-expanded-by-default-setting
ce8b0049619 Merge pull request #124353 from microsoft/chrmarti/localinterface
97d576cb085 editors - more cleanup of large files
43b7187c3df Force inheritEnv in ext debug terminals
0685a4af28b Default bash, zsh and fish to login shells on macOS
a26ecef44b5 Add self to workbench-diagnostics
8a1de4b022a Merge pull request #124567 from microsoft/hediet/fix-after-decoration
0efc03fb168 Removes unused import.
5364a9351fd Adds option "editor.suggest.suggestionPreviewExpanded" to toggle whether suggestion previews are expanded by default.
8bd49ffd50b update distro
eff82a3cef1 rename trusted types CSP from notebookOutputRenderer to just notebookRenderer
ffd1f84ea9f rename notebookOutputRenderer to notebookRenderer, https://github.com/microsoft/vscode/issues/121819
fd212e712ea validation 💄 https://github.com/microsoft/vscode/issues/121819
52df34dcf19 Fixes invalid cursor position around after decorations.
eebf8e876ab editors - extract input and side by side to own classes
42e59bd3777 more complete cell info for markup renderers
e11764f8420 add ICellInfo#data to eventually replace bytes
b5fc2b0a398 NotebookCellOutputItem factories allow for metadata, expose "bytes" as data property, deprecate value-property, fix converter issues, https://github.com/microsoft/vscode/issues/123884
856fb393cb4 editors - more dnd code polish towards any editor dnd
f2248508a68 fix tests on windows
ab793cf02ac editors - make dnd code ready to delegate serialisation to respective editors
59f5bbaf253 editors - cleanup editor descriptors and 💄
dee37c6e765 web - offer upload action only for editable folders
e0f751f1287 editors - introduce and adopt capabilities
71d00b3b993 Merge branch 'main' into notebook/dev
0bada155580 more API todos
76523deb91e Bump browserslist from 4.16.1 to 4.16.6 (#124550)
963f30f0871 💄
b1823157d54 Fall back to existing published webview commit (#119295)
286b643ecd2 chore: bump electron@12.0.9
c3c2113c368 Preserve execution summary when converting dto
8173a0e0398 Fix hang when typing incomplete @feature in settings editor Fix #124520
28803975a1a Add @feature/notebook
e9f3fe9f301 rename markdown layout section.
fe41fcc58d6 💄
fe3cab25c5f compute position/width of output action bar.
af14bf673ab remove kernel picker config in menu contribution
1da9f2d2e6a Update subscribers.json
d28d8802e42 testing: add default keybindings
8b9f8595cc2 Remove unused
6cfad71ce61 notebooks: remove deprecated vscode css vars from webview
196e79256dc Add workspacePlatform context key for getting started items Closes #123824
6ed2584f390 fix unit tests.
46ef54c20e9 Merge branch 'notebook/dev' into main
8a41d85d1be notebook open layout settings.
f88c007f6c6 👋 Rachel, 👋 Tyler
d7ead317dca Close #122570
41d869f5514 move nb layout settings out of experiments.
79762396a06 Respect soft revert for custom editors (#115658)
78251f8e016 Update distro
7e0d8cd80ee Merge pull request #124511 from microsoft/tyriar/color_config
9993eb9d1ae testing: improve support for markdown messages
b168ece8de3 markdown: add nbsp to unescaped sequences
b04c9668927 Fix test resolver with trusted workspaces
dbdc7a259e2 added bottom spacing for table in markdown preview (#124385)
5cbd4bc4691 Fix color of single tab status icon
a8d2a3a87c5 Resolve todos
47b7320c1f4 Show tab prefix before icon is ready
a31d9ca6993 Don't show icon until its resolved
f7f6956554a Share profile property schema
17e82898ed1 Remove show all colors, add settings intellisense
a8e7253de09 fix scroll in table widget #wt fixes #124314
2b9f22631f5 Support terminal link word wrapping (#124514)
cdbf46815c6 update distro
fe1af896d5d Use remote reconnection constants  (#124517)
2b6564c1015 insert toolbar on the left.
df3c2c48755 testing: move apis to stable
b6dad5d1437 Support any theme color
3c2ffadf29c Dynamically generate terminal color css
9eaba8944ff Support colors in terminal profile setting
7a0ce574da6 Fix test output pty usage
777f09d4569 Fix safe config provider fallback to default
d63078aaf04 Merge pull request #124317 from jeanp413/fix-124127
a8397d15299 Merge pull request #124480 from nrayburn-tech/fix-122348
934a4244e27 Remove overrides from editor service (#124375)
b47569400a3 option to hide terminal tabs if there is only a single group fixes #122348
5319757634f Add fallback webviewExternalEndpoint in code
8f11975c47c Close #119722
d6b5df5e199 retry logic for setting password (#124390)
12fa7b04257 Increase timeout for webview focus change
4c4ec402e7e return early
b314536e56a Move find file references into the search group
18296326a9a Set proper context on new cell output toolbar
28767c88f0a Close #122795
cd8bf7ba536 fix zero height output height.
7bc2019b8d5 Updating pinning test
be8745ac9e0 Fixes #123228 (#123584)
6ee883bfa32 Split href before decoding instead of after
6af49913c2a title for notebook label in notebook toolbar
77ff6eb03bc Add image specific link normalizer (#124400)
e9b8c129155 Add types
a03daaf8506 Merge branch 'notebook/dev' into main
4ba27602740 fix #119214.
8afcdfaad8b extract complex options parsing.
9996e32bc9c testing: improvements when running a previously un-run test
6507d05310f freeze layout config.
6cda8d2373d extract configuration update
f38f3bb8e78 Merge pull request #124044 from microsoft/alex/ghost-text
51aa5402d63 Allow single line decorations that are not at the end of the line
06a86116b73 Fix firstHostSegment logic
827dec3a0df Use better logic for getting scheme and avoid extra decoding for authority
44fe867eddd fix tests
c23c9e448e6 Implement dragAndDrop enable setting
021071ff74a Avoid double encoding authority
22dc518a210 Remove unused type
97bbacd8087 Remove extra call to with
82d18a42fa2 testing: fix auto run triggering test multiple times
17f3a69e243 Allow toSide #119725
86cb6d6b337 Close #119725
4d53b454283 Fix local term warning in remote
5ac4f5f5be4 Fix didn't work
af3fbd968c9 Make sure we decode uri path
84f5040b3db Remove unused member
91fdd52d17b Merge remote-tracking branch 'origin/main' into alex/ghost-text
8b709a2f55a testing: provide test IDs in menu contributions, rather than internal elements
231c155d31f Refactors the inline completion feature.
852b70eafed Try fix (#124384)
c5da7f33a70 Fix wsl detection in profiles tests
b6387e477be Tweak output toolbar position
b78754e1e46 fix incorrect links (#124203)
a0d7f6292e9 Remove a few instances of 'vs code' in d.ts
b0683f58a5a fix #124360
9847783f62d Remove uuid from webview resource uris
79dea51e79a Rewrite webview urls to be more url-ish
8a4bf3081a8 update folding on mouse over
70c87f0db9b Fix #124240
adf68a52d56 editors - some type 💄 around setInput
effac5be7f9 drop as-prefix for ICreateCellInfo
8f093359f07 editors - simplify some serialized editor input
8aff8020dae Improve guard against unexpected URI call
82cd4f027ad fix leaking of NotebookCellOutputTextModel and NotebookCellOutputTextModel#_onDidChange, fyi @rebornix
c5b9b6c48c7 Fix missing async
5807530e3ae more jsdoc
85f518b2552 Add `RemoteAuthorityResolver.getCanonicalURI`
c650993dd39 Add `ResolvedOptions.isTrusted`
49e96be2fc1 💄 prefer `readonly` over `public readonly`
1087876df86 Use vendor-prefix for notebook specific mime-types, e.g application/vnd.code.notebook.stdout
045e5d2f568 Store conflicting defaults in storage service (#124366)
fc0b6f5e5ab fixes #122653
8b25f922b6b builtin support image/gif mime type
61aca51a322 consolidate SVGRendererContrib and HTMLRendererContrib - both were the same...
fb6f0d95fad consolidate JSONRenderer and CodeRenderer
103892d1eb4 fix code renderer layouting issues
32a06b9be2c [typescript] add limited description
bbe3b2266b5 allow to signal limited functionality in virtual workspaces
d65dace8ea0 Merge pull request #123351 from nrayburn-tech/fix-77239
b9f20119393 Bump distro
815f217174a jsdoc for factories, some unit tests, https://github.com/microsoft/vscode/issues/123884
8268bd46e7f 💄
375a15f07e9 Merge branch 'main' into notebook/dev
996dfffd637 enforce proposed API for shortTitle proposal, https://github.com/microsoft/vscode/issues/124355
c5637229dda Merge pull request #124289 from microsoft/command/shortTitle
2b959fdadc1  Listen on local interface only (#124350)
494e827e351 expose output item bytes to renderers and provide util functions: asText, asJSON, asBytes, asBlob, fyi @connor4312, https://github.com/microsoft/vscode/issues/123884
100a70731db SVG images are not render in the tooltip (fix #123688)
949f60498ae Merge pull request #124346 from microsoft/ben/pfs-promises
063be236f34 scm do not auto focus input box on iPad
f19843b0a3e editors - some 💄 and tests for workspace trust in openEditors
9086ecd9f08 Renames Suggestion to Completion and cleans up API
a6f7aa5e4c5 handle workspace uris
73c6f34f9ec Do not recognize Debian's .install file as a shell script. Fixes #124295
90b9e04f951 try to use suffix for view type when creating untitled notebook, fyi @brettfo, https://github.com/microsoft/vscode/issues/121974
779f9876bc0 debug: properly read the debug.saveBeforeStart respecting activeEditorMode
79e642a5ddb move and simplify renderer registry
bbc293839d4 declare IRenderMainframeOutput#dispose and adopt it for builtin renderer
55059ffe214 todo
e6dd819bf08 first cut of "bytes only" output items
4b5db9098c2 smoke test - disable failing search test
17459a4abd1 notebooks - add test for NotebookWorkingCopyTypeIdentifier
43b51ce8e76 notebooks - fix type identifier compute
703ca68ea6b fix typo
b8fe2db4392 fileworkingcopymanager2 => fileworkingcopymanager
0e58bef15cd file working copy => stored file working copy
78fbc51ad75 Close #124325
633ea857088 notebook working copy - some cleanup before refactorings
d0c5675f6f2 editors - less group.openEditor usage
e66c62f38a2 Generalize smoke text
89c8f919884 Add smoke test for #124146
4fd4e10e99e Fix #124146?
bfb822e4cf0 fix #124284
0989449a055 Fixes #124127
2f2b6b528d0 testing: show duration for test results, handle state computation better
3e5faf69c14 Remove console.log
9e04a67d125 Switch to use vscode-webview.net as default webview endpoint
acc07bd9591 Mark properties readonly
bf4c7042a3a cell toolbar overlap with notebook toolbar.
f29bd6f18dd Dont autofocus input on ipad Fix #122044
5b0fc94e6af fire event when trust is change in empty window #wt
c1b809ef221 Fix #124307
cd27f1fcb91 update text for loose file button #wt
07a2aab8f2c Remove duplication around checking isRemote
55c2fc5604e add setting and checkbox for untrusted files #wt
d3f040fe017 Fix notebook cell statusbar items duplicating. Cancel tokens on dispose, and dispose the timeout properly
894b7782cce Merge branch 'notebook/dev' into main
9627b4ea63e Emmet identify CDATA for wrap, fixes #123136
97740a7d253 Revert "Revert "Revert "Closes #122433"""
ddf8cc42616 Dispose CKS
4c1474b458d debug: finalize parentSession
514d3162bc8 Persist title source and set after reconnect
604b27db1bf Fixes android screen-keyboard backspace issue.
af0c01b1e36 Short title for command contribution.
18ea5ac15e6 Use isRemote instead of remote authority to determine where to load from
6f2381e33d7 Terminal tab icon API (#124004)
d0cea47ae39 Merge pull request #124194 from microsoft/dev/t-andreamah/outline-reveal-editor-switch-fix
dae2a9d4ebc do not auto focus on ios extensions input and keybindings
6b097212e69 Revert "Revert "Closes #122433""
bd934d89ea0 Use untyped editors for workspace trust
59abb887f6c notebook: address messaging api changes
5b17052a5b3 Fix webview tests
2270c36cff9 Use extension location instead of remote for asWebviewUri
9ffac783be4 Merge branch 'main' into dev/t-andreamah/outline-reveal-editor-switch-fix
22f7f470b69 Apply Logan's suggested changes
0b355ffc89b notebook: fix certain kernels/output not working
f75152cd815 notebook: fix certain kernels/output not working
ab5df442eb3 Merge pull request #123727 from microsoft/dev/t-andreamah/markdown-static-preview-scroll-state
18c254987cd Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state
2ab6e9cdd26 Debounce invoking the inline suggestions provider
99be6bad750 Add a command to hide the inline suggestions
62bbbcc7bf4 Remove log
875ada9bfad experimentalUseTitleEvent -> titleMode
76154be4d4b Truncate Windows path from sequence, do title handling based on remote OS
8a6cc9cba7c Fix dynamic title for reconnected terminals
74849362b2e Render only one line of ghosted text by default
713d5861404 💄 less casts
1718a6e2ac8 Hide hover on target element(s) click
224b0f22922 Fix category and max-memory option args
5ae8db2ae0e Render the suggest widget above when rendering a multi-line preview
8c194abb5e7 Do not shrink the additional lines once a shorter suggestion is displayed
da4fcc266fc file working copy - avoid ugly casts
aea7c1a3343 Merge pull request #124196 from microsoft/tyriar/dnd_2
e538fd90c0e Hover hover when context menu is shown
4a679df5312 Hide ghosted text when it wants to be displayed in the middle of a line
e91d5475acf Merge remote-tracking branch 'origin/main' into tyriar/dnd_2
c6d2254b2fd Create a `InlineSuggestionsSession` also when showing suggestions
b5a9a026068 Invalidate current suggestion based on cursor position
49339aba513 Only start a session after a content change (with debouncing)
fdbcef0a842 Add `editor.suggest.showSuggestionPreview` to turn on/off inline suggestions
c8410ece147 node-debug@1.44.28
234136b6c28 💄 acceptsNonWorkspaceFiles -> acceptsOutOfWorkspaceFiles
91bf9326334 fixes #123469
2cc3b168fde Do not force the instantiation of the `SuggestWidget`
1543754dcab Tweak loose file dialog warning
669b0b3f719 working copy manager - clean up some types add some new APIs on manager2 for unified access: - get(resource): working copy - workingCopies: workingcopy[] - onDidCreate: Event<working copy>
3234403c5d2 Merge pull request #124191 from microsoft/aeschli/virtualWorkspacesInExtensionView
19574448d0e Fix rendering snippets
5f7cfa3a54e Introduces a GhostTextWidget model to enable data binding.
a6f89f58a9e Workspace trust - empty workspace (#123811)
0c996a39b65 Implement consolidated output toolbar
f583b4b3367 Merge branch 'main' into notebook/dev
29c61570a5b Revert "Closes #122433"
34180ac9bef Remove code allowing multiple ids for a command
35eafb78732 Add sort imports command
e65a227c829 Test using readonly[] syntax in vscode.d.ts
1ddc623e585 Simplify logic for webview resource uris (#123740)
93be0a6fa03 Update simple service
46a1ca78249 notebook: initial renderer communication
1ecba0426a9 Make `reload webviews` support webview-views
b3ed595dde7 Extract isRequestFromSafeContext
39d1a94e86f Allow loading svgs from xhr
4fbd548d72c Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state
40592a274c9 fix test suite.
4fcc2720826 use custom shield dialog #wt
a65d55e9c48 Strict null fixes in webview
f822083cb70 Check `defaultPrevented` before showing built-in webview context menu
f594bb47e59 removing more unecessary whitespace
41606da2dc0 removing unecessary spaces
920c9a3a0d5 improve banner for virtual workspace
9ee1906718d pr feedback and combining prevEditor info for preview and non-preview
f433b4781a0 Pick up TS 4.3.1-rc
d921cc41fc0 Update markdown grammar
1642d4cd0ad Merge groupBy and groupByNumber utils Fix #123569
c1d6e44262e Avoid listener leak warning due to reusing cancel token for many RPC calls
0d338068034 Add suiteRepeat test util
5b3cf7cc2ae Merge branch 'notebook/dev' into main
c936add6013 hide kernel status bar item if it is already rendered in notebook toolbar.
b8c7d75e465 Avoid illegal line numbers in case of undoing a completion at the end of the file
63348b4a395 Improve contrast
de89605adfe Do not invoke provideInlineSuggestions when just moving the cursor
08f4a36de15 notebook toolbar container display none by default.
6956a38b674 Have the `InlineSuggestionsModel` listen to events directly
26194faa8be fix focus indicator default value.
2fbf0cd977e Respect the suggest widget only when there are suggestions
8c27c1f257b Update list focus highlight color in standaloned editor Refs #123703
0ec51535fa2 Rearrange actual group splits, not just instances
25bdb018483 Add theme key for terminal dnd
15f772fae32 notebook: include script url in back compat patch
b79825e7c4e Clean up
a3e72ce1d06 Reinit dnd observer after reattach
72b01fea379 Avoid selecting accepted text
d7f6d7e735d Fix markdown cell drag indiciator having wrong position in scrolled documents
de1c8ad93a9 Give clearer names and add comment
40a26850575 Fix shift for markdown cell selection only selecting current cell
3c417665643 Fix strict null errors in webview main
b8a0123cfc9 Fallback to fetch if localhost resolve fails
f0ef8dfd913 Add explicit null typings
c63ac2f6388 Use searchParams to get id
c13c6d8e468 Throw error when trying to reload/navigate within a webview
05f83d95d2b Fix issue reporter not debounce submissions (#123340)
8e87fea2f15 Support dragging to unsplit
40fbf5d915b insertToolbarPosition
e071cefa4df Support creating splits in different groups
f1a372c15f8 Support rearranging splits
2b30689ab00 Close #123935
25a12c75c5a use dummy uri
568bb89fadb Merge remote-tracking branch 'origin/main' into tyriar/dnd_2
5266a5fae3f Improved hover feedback
44d135e94f3 Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state
f4e05837d01 Remove custom height, use default from menu service #123869
134d9b187bb Closes #122433
a796ebfb8b4 update actions column width #wt
f36c7a0860b Terminal dnd feedback
3804c98d6f7 fix padding for table #wt
5442f154ef6 fix issue when not connected to remote #wt
6356613d809 Update according to suggestion
49187c4e785 Replace flush with setFlushOn with loglevel info, fixes #123856
45e5c50dbfd Partially implement terminal drag and drop
283180b64b2 don't show action icons all the time wte
9716c27e068 slightly better uri for untitled notebooks, https://github.com/microsoft/vscode/issues/121974
1256b258a6f Honor the selection suggestion in the suggest widget (when it is visible)
d553c21d5e0 fixes #123869
52c8fced385 focus indicator border or gutter
81c6572671c added default editor override for symbol reveal
9326ded502b show extensions limited due to virtual workspace
b02acf39081 Merge pull request #123738 from microsoft/dev/mjbvz/unify-renderers-api
284c21a588e tweak terminology for wt entries
9a322a0d62a use folder terminology due to windows/linux limit
dc8844925ab Part of #122996
b63ad124d2e mark untitled notebooks as dirty by default, don't hold on to untitled notebooks eagerly, https://github.com/microsoft/vscode/issues/121974
09ab8ad2029 wip
eaf5a49200b status - update description of `name` property
1f912dfa3d5 Fix #123617
ff6d8771c94 fixes #124085
88d9a3aaf5c Support command links in trusted tree hovers Fixes #123723
eb5874237eb Improve task terminal status message Fixes #124062
53b58c89d44 Fix loop in port forwarding
37a11814295 do not include non configured deprecated restricted settings
53352a29540 add API to open an untitled notebook, https://github.com/microsoft/vscode/issues/121974
b7058688ad3 Fixes #124143
a0819ed4fea Add ending period to --sync
faa3146a310 Add ending period fto prof-startup
159479eb5ae Allow to show status bar entries with an id and name (fix #74972)
f23f011f552 untitled - clarify resolve methods
734b79dadae fix #124102
08618458110 fix ExtensionRecommendationsService test (for #124119)
e5bf21393bf Additional navigation keys
99f3a3726eb Additional details in the aria label
06ee4764a4c untitled file working copy - test 💄
1cc2f71a1ff untitled file working copy - tests for new unified manager
8c6db097ac7 untitled file working copy - add new manager that unifies file and untitled working copies
bc37b284431 untitled file working copy - shared dispose handling
0d92cb9dd88 untitled file working copy - poperly resolve target
37fbfa61251 untitled file working copy - set visibility
5835fbc9f1d untitled file working copy - some code 💄
a47fc96766a untitled file working copy - fix tests
1edef157350 untitled file working copy - wire in save support
8173bd132fb untitled file working copy - add workingcopyservice#get
a3ee06b3e03 untitled file working copy - extract common super type for manager
02c72e2bd64 untitled file working copy - extract reusable interfaces
44dec56af8c untitled file working copy - 💄
103ba104a56 untitled file working copy - tests
9f990bbb6ec untitled file working copy - first cut manager
4173ced659c untitled file working copy - first cut
825f6c7ab84 valide URIs created via from, https://github.com/microsoft/vscode/issues/121198
b1349b64a64 update color registry names for inline values
677f2a3be12 remove excess whitespace
0e4159cb7aa fix localization key/description for debugInline colors
df308a9a81b add color customizations for inline debug values
a9c5e37ea0d fix #124102
c5611075cad fix ExtensionRecommendationsService test (for #124119)
501b691dd06 Additional navigation keys
6034e35043e Additional details in the aria label
e878f5a3ee4 Add support for untitled file working copies (#124120)
13aff6aa7d3 untitled file working copy - test 💄
a48180b6e6d valide URIs created via from, https://github.com/microsoft/vscode/issues/121198
f22eb7ee29d untitled file working copy - tests for new unified manager
5f6d4786857 Merge pull request #123065 from nrayburn-tech/120936
2ecf53bf79a untitled file working copy - add new manager that unifies file and untitled working copies
32d4df9b823 untitled file working copy - shared dispose handling
3a1b950c147 Merge branch 'main' into ben/untitled
97518f5e869 Copy testRepeat helper to extension integration tests
721cdd6472b Fix data loss when renaming custom editors (#124057)
bbb89b86f56 remove hover bg color on notebook toolbar icon.
8f140828107 fix mouse click double background
c59f782cc7d adopt table widget for workspace trust editor
616e0fd9927 refactor: polish
4815c9e9954 fix notebook toolbar scrollbar
a069768c9b6 Remove disposing of editor input in override service
0026416a7ea move showDeprecated suggest to be a CompletionOption option
2a9f02348f6 Make notebook toolbar cell visible on click (change notebook.cellToolbarVisibility default)
df93e53dfb6 Merge branch 'notebook/dev' into main
4486788c81c allow the left toolbar to overflow.
d501abe922d contribute actions to the toolbar.
bf9f6837d14 NotebooKernelActionViewItem accepts notebook editor widget.
9063312f9c1 keep ref from cellVM to outputVM for now.
5913c5b070e Merge pull request #124125 from microsoft/tyriar/join_terminals
9b1ba3f31f0 Adds Memento.keys #87110
8b726fc9f51 update color registry names for inline values
25873bb34c4 Adds Uri.from #121198
5c4fae91762 Merge remote-tracking branch 'origin/notebook/dev' into dev/mjbvz/unify-renderers-api
79bd573d9e4 Move OpenIssueReporter api command registration out of extHostApiCommands (#124068)
73cce9a080e Fix vertical terminal margin left/right
e657d422814 debug: expose parent session on DebugSessions
25967171f17 Delay workspace recommendations as remote extensions installations are ongoing For #124119
b84a8c4215a Re-enable selectionNavigation in terminal tabs
84c23ab5bd7 debug: bump node-debug2 version
b3c56f52813 testing: bad rendering of inline decorations for markdown messages
2bc36bec9dc breakpoints select on stop
71f4934a0c6 use enum
21e0fab8b87 Don't show join in command palette
1243a51d59b Support join terminals
4e7029f593b workbench web api: builtinExtensionsFilter
34775b7d660 add requestOpenUris api
fc76d8b6b44 fix #124113
455a8b6949b List focus colors are too dark (Fixes #123703)
aee486cd293 untitled file working copy - poperly resolve target
e02714b5775 Polish for some workspace reuse (#123519)
daaa8a98bf3 debug: focus breakpoint on debug stop
f113243a516 Close and reopen tunnel when protocol changes
960af85cd93 Reduce number of calls to get port attributes
fb9d3f3e501 Fix all ports showing as user forwarded
4726abdcfa8 explorer: do not remove dotes at end of filenames before validation
026e6239be9 Merge pull request #123895 from danielgary/wmic-replacement
8f78655dbe3 untitled file working copy - set visibility
615bb082c11 Tunnel -> Port
0f5ceb2f1db Add context menu for tunnel protocol Fixes #123750
414e5dbf1f8 install additional debuggers only when at least one debugger present
1c6e481373e untitled file working copy - some code 💄
b0272010af8 Disable bell sound completely
f3cca6236e0 remove todos about ipynb cell ids
3f6e29238c5 Show status icon in tooltip
f8054f260ee Merge remote-tracking branch 'origin/main' into alex/ghost-text
2d80cb75c4b Fixes #124038: Render a `<span>` for each `::after` decoration at end of line
cdeaebbd3be Show info terminal statuses in narrow view
3467760399e Merge pull request #123867 from hediet/hediet/fix-123178-leading-ws-in-wrapped-line
71e729d1222 Merge pull request #122785 from tejasvi/patch-1
1b591be32b2 Merge remote-tracking branch 'origin/main' into pr/tejasvi/122785
49ded4d7e11 Fixes #122825: Dispose proxies when the extension host terminates
7c07550dbc5 Log errors encountered during deactivate
e4159c8f892 Add protocol to portsAttributes Part of #123750
b2c32980765 untitled file working copy - fix tests
b94b2d2cf01 untitled file working copy - wire in save support
fe2761a026e untitled file working copy - add workingcopyservice#get
956347c4edc better logic for "notebook open/close, notebook ready when cell-document open event is fired", https://github.com/microsoft/vscode/issues/123655
191ebfabe65 Merge branch 'main' into notebook/dev
2f2f8d7b0f4 untitled file working copy - extract common super type for manager
102433ffbef untitled file working copy - extract reusable interfaces
27d250fa0da Merge branch 'main' into ben/untitled
07cf22f6814 Fix ctrl+enter in code cell editor
45aafeb326d fix #123816
fd7d84a392c Merge branch 'notebook/dev' into main
d51c7f66306 add experiment global toolbar.
079be5f0fd6 remove run all cells constraint
0031e783518 Store tab list width in global storage
e270ff06255 Make default horizontal tabs width 120px
1bd7c329fb2 Move tabs list size constants into const enum
e0ff23866ad 💄
49870fb9fca More accessibility improvements
47c96324ba6 Banner accessibility improvements
7c4a2cb6cc6 Add args to source profile schema
2bf81674ee7 refs #123976
a3fe790a45f Explicitly flush OutputAppender #123856
2c91cc8a7d2 Clean up decorations when hiding ghosted text
ac85998e016 Pipe language edit counts into CES survey (#124006)
22350f3dc54 Change the order for ghost text decorations (use a class name that sorts before)
9916815a187 Merge pull request #124039 from microsoft/tyriar/121278
74372fe5663 Fixes #124038: Render a `<span>` for each `::after` decoration at end of line
a1646e35c36 Remove try catch, clean up
6353aaac13a Share code between dispose instance and remove instance
9719ae6e725 untitled file working copy - 💄
1371a8e0d49 Bulk-edit veto dialog use the correct reason
327690a3cb9 Unsplit terminals
32db232a53a Scaffold ghost text
63b6e6c51d7 untitled file working copy - tests
45769b83189 debug issues assign to Andre
f2640c349b0 untitled file working copy - first cut manager
38dda41eaa0 Merge pull request #123474 from microsoft/tyriar/local_wording
e8dbf0cc9a1 Improve wording, separate for remote and virtual
befed354684 Merge remote-tracking branch 'origin/main' into tyriar/local_wording
509926497c8 sandbox - make CLI commands a native host thing (#123899)
dc85211b159 untitled file working copy - first cut
a6db2795e36 Fix elevateIfNeeded port attribute Fixes microsoft/vscode-remote-release#5065
736896527ce Improve npm trust message
d4ca8b7f3a3 icon contribution: add requires (for #117437)
b2273e80745 Merge remote-tracking branch 'origin/main' into main
d8b70e74a88 cleanup link styling
46596757d41 fix icon contribution id validation (for #117437)
9ef2514d701 Merge branch 'main' into pr/121835
aad39f1ea63 untitled editor names 💄
7320c8514c9 status bar - fix compile errors
381e7c2d0bc status bar - use secondary priority as sorting criteria (#123827)
da374067139 state service - do not log expected file not found error
82767cc1d7b add aria description for workspace trust editor refs #122537
cfa977755b1 fixes #122537
5a5d1bc91f8 Add provider label in auth menus (#123922)
ff59c24225a fix #123709
87476adaee7 Merge pull request #123919 from jeanp413/fix-123892
217261cf739 Mitigate #123856
055319001c6 Fixes #123892
802ba30de2e allow managing workspace trust from extension icon
f3277a1e1e9 fix markdown editor position for compact view.
f0e57a781af fix #123819.
12f273e3e07 fix #121056.
6d79421b349 Merge branch 'notebook/dev' into main
7b9bb17ce56 refresh styles after kernel is changed.
e5c7b899cf1 compact view.
d0b6c2d2276 fixes #123858
40d5e6796fb fix #123700.
baccddcd459 Use Windows mode if build # is <= 19041 (#123725)
dcfdc8d2e4e Merge pull request #123429 from jeanp413/file-drop-terminal-tab
18313e82b00 update markdown folding icon padding
fcde284705f Merge pull request #123246 from vibhavsarraf/terminal_link_normalize_path
109f7feb3b0 Trim leading ../ or ./ from quick access query
4e79908dcff Merge remote-tracking branch 'origin/main' into pr/vibhavsarraf/123246
42b1e81d5d5 Merge remote-tracking branch 'origin/main' into pr/vibhavsarraf/123246
e5f3dd9ef82 simplify default view styles.
f4691de9552 remove legacy comments.
1ccd6a07946 Merge pull request #123910 from jeanp413/fix-123891
36e2b3176ee Update distro
c492f13efc4 xterm@4.13.0-beta.1
dff22a07121 Fix double border on vertical splits
c33420d9872 Fixes #123891
8c0ba0b5d79 [remote menu] add command Install Additional Remote Development Extensions. Fixes #123905
6510b614c10 Consistent casing for  `Install Additional ...` quick pick entries
22d7f210f79 Fix full path flashing in terminal tab
4946fee0dd1 Alt+click to split single tab
f8a3cef533f debug colors: compress css selectors
828e83defca Merge pull request #123726 from suzmue/hoverText
0f7439bf2e7 Middle click to kill single tab
09b77ba6d8b added comment and removed empty lines
89b4b6c90d1 Replaced wmic call with windows-process-tree
c6525283099 Remove dialog in ChangeLocalPortAction Part of microsoft/vscode-remote-release#4958
c8b4656197f Add requireLocalPort property to portsAttributes Fixes microsoft/vscode-remote-release#4958
6aec850c759 Multiroot workspaces on Windows with forward slashes are treated as relative paths. Fixes #123871
27966a2521d Merge pull request #123833 from gjsjohnmurray/fix-123831
b540874d21d Incorporate task terminal status feedback
67133f048d5 Add tooltips to task status Fixes #123730
5446…

* chore(deps): fixup lockfiles

* chore: restore .gitignore

* fix(vscode): redo extra extension paths

* fix(vscode): add setSocket to PersistentProtocol

* fix(vscode): restore server files

* fix(vscode): restore typings

* fix(vscode): restore proxy_agent.ts symlink

* fix(vscode): use ptyHost.getEnv

* fix(vscode): uriTransformer refactoring

* fix(vscode): add new terminal listener

* fix(vscode): fix + enable layering lint

* chore: format file

* Squashed 'lib/vscode/' changes from 2064d4c301c..b4c1bd0a9b0

b4c1bd0a9b0 Merge pull request #125817 from microsoft/aeschli/125786
33d504f8455 clarify nls comment
d5fbc9f45fa fix localization strings with `command:`. For  #125786
f8b576c274b trust the empty window by default (#125788)
c5e845182bf Dont use exp service for choosing first content behaviour (#125780)
78429fb8736 Use interpolation to keep special syntax out of strings to be translated (#125790)
47c2272a70d candy/125576 (#125787)
1e7b9242e89 Merge pull request #125773 from microsoft/roblou/fix122768
134cc8b7711 Update values for keybinding query context to match real keybindings. Fix #122768
26317e8dccd fixes #125722 (#125768)
629091038fc allow a 3rd character for first part of language id (#125761)
5e6379fd7a9 Merge pull request #125741 from microsoft/tyriar/r157_125729
098c99e2237 Set terminal title in ctor for custom pty terminals
c7119ae8b63 Merge pull request #125679 from microsoft/isidorn/fixRunMenu
0ef242cb5cc Merge pull request #125728 from microsoft/joh/fix/125716
c188ea91a64 make sure to transform notebook data metadata
e27b85b9958 fix #125702 (#125703)
008c3ecf4cd Port fix for git diff paths in webviews to 1.57 (#125704)
c926ecf021a Clone object before applying migrated setting (#125696)
6d4a8af5cfc Hide terminal menu if no process support is registered
2c9833b549d better context key for run menu
bf84ee619e0 #125527 (#125651)
2c4bd4f2b3c Merge pull request #125654 from microsoft/hediet/reduce-flickering-of-inline-completions
2e9321da48b Merge pull request #125657 from microsoft/hediet/adjust-inline-completions-color
b915673f7b2 Fix #125569 (#125650)
1c5f331fa08 Merge pull request #125653 from microsoft/hediet/fix-no-focus-after-accept
9bde5523814 Adjusts inline completions color. Fixes #125646.
7b724945310 Reduces flickering of inline completions & fixes context key.
5ba2e425f31 Fixes #125524 by focusing editor after commit.
6cdc6160057 Merge pull request #125649 from microsoft/joh/fix/125550
b3d2cd902b7 re-throw and dispose reference when resolving failed
dcc182fe3d2 Revert ESBuild updates and fix #125518 (#125574)
bdafbc3b5f2 Merge pull request #125552 from microsoft/roblou/disableRunToolbar
ce8505d5580 Add "hostRequirements" to schema (microsoft/vscode-remote-release#5144)
de98ebbc81e only show notification once per window reload (#125548)
31a11d3b786 Disable consolidated run button by default. Fix #125544

git-subtree-dir: lib/vscode
git-subtree-split: b4c1bd0a9b03c749ea011b06c6d2676c8091a70c

* fix(lib/vscode): restore product.json

* fix(vscode): backport resources hotfix

* refactor(lib/vscode): reorganize code to fit vs rules

* fix(ci): remove stray symlinks

* cleanup(lib/vscode): format .gitignore

* chore(vscode): fix formatting

* refactor(vscode): remove parsePathArg in envService

* fix(vscode): add missing terminal commands

* fix(vscode): update .eslintignore paths

* chore: document uriTransformer hacks

* fix(lib/vscode): restore patches

* fix(lib/vscode): restore more patches

* Squashed 'lib/vscode/' changes from b4c1bd0a9b0..507ce72a446

507ce72a446 Merge pull request #126577 from microsoft/sandy081/recovery/fix125970
3f4baf46c6f move focus check while converting
d95f6de445f - migrate only from active window - respect old value while reading
08bca485860 Fix race that causes auto port forwarding setting to be ignored (#126481)
2650c2e51d3 Merge pull request #126413 from microsoft/inline-suggest-prevent-auto-suggest
45c13db2195 Do not auto-trigger suggest when typing exactly the inline suggestion
20a512db915 Fix #126178; fixes markdown scrolling bug
3300069a2b7 separated editor scroll info by type and consume entry on access
92c259a77f5 Update package.json (#126283)
d21d7d9d3e8 Port fix #126057 (#126215)
d9b1d6b8c17 Merge pull request #126234 from microsoft/tyriar/157_125985
a16b9181915 Pass config to external terminal service
6bca69fc6fb macos - restore Cmd+W to close window when no editors opened (#126045)
b9f4ab00ba8 linux - restore `--no-sandbox` for startup scripts (#126028)
ca66517cf90 Revert back to Electron `12.0.7` (#126026)
6370d95598d Set visibility of markdown cells before rendering it (#126099)

git-subtree-dir: lib/vscode
git-subtree-split: 507ce72a4466fbb27b715c3722558bb15afa9f48

* fmt(docs): remove trailing whitespace

* fix(test): fix e2e tests

* chore(deps): update vulnerable vscode deps

* fix(test): clean up terminal test

* Retry menu navigation in e2e tests

* Update VS Code loader with trusted types policy

* Update build resources with renamed file

* Restore proposed API patch

Without this it is impossible to enable the proposed API for extensions.

To replicate the issue run a build or search for enableProposedApiForAll
and set it to false (it is set to true during development) then try
running an extension that uses the proposed API like the GitHub pull
request extension and look for an error in the browser console.

* Restore async storage write patch

This issue can be reliably replicated by creating an extension with the
following code:

await context.globalState.update("key", "value")
vscode.commands.executeCommand("workbench.action.reloadWindow");

If you do this the global state will never update. This can be seen by
logging with a notification or browsing the global state manually.

This is probably a bug with upstream because without this patch it is
impossible to wait for the actual storage write.

This actually required more patching than we previously had; I don't
think it was working in 1.56 either.

* Remove duplicate telemetry service registration

We no longer comment out the telemetry service in the workbench so ours
is redundant.

- logTelemetry call was slightly wrong (uses an object rather than an
  array)
- No longer need the telemetry channel since the default uses the
  extension environment channel.
- No longer need disableTelemetry since we don't create the setting.
  This does mean the setting is not toggled off when the disable flag is
  set (it does of course still prevent telemetry) but that appears to be
  the same with upstream.

* Use service in terminal channel instead of interface

This allows us to avoid checking whether some functions exist when we
know they will. This means we can't use this for other pty services like
the browser one but that won't be necessary as this strictly runs on the
Node end anyway.

* Rename uri transformer using camel case

* Update yarn.lock

I got changes when I ran yarn so I reverted to 1.57 then ran yarn again
and here is the result.

* Restore .yarnrc patch

Delete .yarnrc and update the build process where that file is read
since it no longer exists.

This should resolve the issues we keep having with mismatched Node
versions. This can be consistently replicated by spinning up a new
environment (no previous modules or cache), running yarn, then running
yarn watch.

Also use process.versions.node instead of process.version as the latter
has an extra v at the beginning.

* Remove gulp-tar dependency

It's pulling in a security vuln and we don't need it anyway.

* Cancel current menu navigation on retry

* chore(docs): update docs with patches

* chore(ci): increase timeout to 15 minutes

Co-authored-by: Asher <ash@coder.com>
2021-07-14 00:39:20 +05:30
Joe Previte
cc50e7f72b Merge pull request #3771 from cdr/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.28.3
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 4.28.2 to 4.28.3
2021-07-13 10:56:31 -07:00
Joe Previte
174d9a7b31 Merge pull request #3770 from cdr/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.3
chore(deps-dev): bump @typescript-eslint/parser from 4.28.2 to 4.28.3
2021-07-13 10:56:06 -07:00
Asher
862c977dc8 Make installer work on any os/arch and add installer tests (#3712) 2021-07-13 12:47:16 -05:00
Asher
4ffecd641d Check for bashisms in install script 2021-07-13 12:28:40 -05:00
Asher
3339853c26 Avoid root when prefix is writable
Previously if the prefix was non-existent we would switch to root even
if the user does have the permissions to create the directory.

Fixes #3585
2021-07-13 12:22:06 -05:00
Asher
6045fdd3ac Make installer work on any os/arch 2021-07-13 12:22:05 -05:00
Asher
24f6834f5b Add installer unit tests 2021-07-13 12:22:00 -05:00
Asher
c31e72fb7b Add installer integration tests 2021-07-13 12:21:34 -05:00
dependabot[bot]
f4eba6da46 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.2 to 4.28.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.3/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 11:02:00 +00:00
dependabot[bot]
0777d5ea04 chore(deps-dev): bump @typescript-eslint/parser from 4.28.2 to 4.28.3
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.2 to 4.28.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.3/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 11:01:49 +00:00
Joe Previte
723a2745f6 Merge pull request #3769 from cdr/jsjoeio-chore-cleanup
refactor: clean up testing files
2021-07-12 17:19:41 -07:00
Joe Previte
fc16f7e06d refactor: clean up testing files 2021-07-12 17:05:44 -07:00
Joe Previte
a5cf01840a Merge pull request #3751 from cdr/jsjoeio-fix-type-confusion
fix: check uri.path is string in pathToFsPath
2021-07-12 16:40:36 -07:00
Joe Previte
7ce9ee0db6 fix: check path is string in pathToFsPath
There's a chance this function can be called with a path that is not a string.

To catch that, we check if path is of a different type and throw an error if it
is.

This also adds a couple tests for this function.
2021-07-12 16:39:42 -07:00
Katie Horne
c14500849b Merge pull request #3756 from cdr/docs-edits
refactor(docs): clean up and restructure
2021-07-12 17:26:52 -05:00
Katie Horne
66b6590e36 refactor(docs): clean up and restructure 2021-07-12 14:03:09 -05:00
Joe Previte
a96e16e593 Merge pull request #3767 from cdr/dependabot/npm_and_yarn/ts-node-10.1.0
chore(deps-dev): bump ts-node from 10.0.0 to 10.1.0
2021-07-12 10:45:42 -07:00
Joe Previte
8c2661b946 Merge pull request #3766 from cdr/dependabot/npm_and_yarn/ws-7.5.3
chore(deps): bump ws from 7.5.2 to 7.5.3
2021-07-12 10:45:15 -07:00
Joe Previte
58f4884c85 Merge pull request #3759 from cdr/jsjoeio-document-password-limit
docs(faq): add line about password login limits
2021-07-12 10:05:31 -07:00
dependabot[bot]
ec9ddd59c8 chore(deps-dev): bump ts-node from 10.0.0 to 10.1.0
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.0.0 to 10.1.0.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.0.0...v10.1.0)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 11:02:27 +00:00
dependabot[bot]
8fe31dfbf8 chore(deps): bump ws from 7.5.2 to 7.5.3
Bumps [ws](https://github.com/websockets/ws) from 7.5.2 to 7.5.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.2...7.5.3)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 11:01:57 +00:00
Joe Previte
fd042107b2 docs(faq): add line about password login limits 2021-07-09 12:16:53 -07:00
Joe Previte
2a5f5e4e18 Merge pull request #3753 from cdr/dependabot/npm_and_yarn/types/pem-1.9.6
chore(deps-dev): bump @types/pem from 1.9.5 to 1.9.6
2021-07-08 15:08:17 -07:00
Joe Previte
dafa95bfa1 Merge pull request #3752 from cdr/dependabot/npm_and_yarn/types/node-14.17.5
chore(deps-dev): bump @types/node from 14.17.1 to 14.17.5
2021-07-08 15:07:56 -07:00
dependabot[bot]
72d5a26388 chore(deps-dev): bump @types/pem from 1.9.5 to 1.9.6
Bumps [@types/pem](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pem) from 1.9.5 to 1.9.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pem)

---
updated-dependencies:
- dependency-name: "@types/pem"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 21:29:03 +00:00
dependabot[bot]
3db019d6b9 chore(deps-dev): bump @types/node from 14.17.1 to 14.17.5
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.17.1 to 14.17.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 21:28:42 +00:00
Joe Previte
343cec5159 Merge pull request #3749 from cdr/fix-dependabot-node
fix(dependabot): ignore major updates for node
2021-07-08 14:20:35 -07:00
Joe Previte
632f980bae fix(dependabot): ignore updates for node 16.x 2021-07-08 14:05:46 -07:00
Joe Previte
15d256b429 Merge pull request #3743 from cdr/jsjoeio-add-tests-vscode
feat: add more tests for browser/pages/vscode
2021-07-08 13:35:53 -07:00
Joe Previte
8e75d320ff Merge pull request #3726 from cdr/jsjoeio-docs-nginx
docs(guide): add note about configuration for NGINX
2021-07-08 13:34:45 -07:00
Joe Previte
66dc4cc0dc feat: add setBodyBackgroundToThemeBackgroundColor
This refactors some logic in src/browser/pages/vscode.ts
related to setting the background color of the body
to the editor background theme color.
2021-07-08 11:24:04 -07:00
Joe Previte
197bccc7cd Merge pull request #3745 from cdr/dependabot/npm_and_yarn/types/browserify-12.0.37
chore(deps-dev): bump @types/browserify from 12.0.36 to 12.0.37
2021-07-08 10:00:52 -07:00
dependabot[bot]
5181ac6912 chore(deps-dev): bump @types/browserify from 12.0.36 to 12.0.37
Bumps [@types/browserify](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/browserify) from 12.0.36 to 12.0.37.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/browserify)

---
updated-dependencies:
- dependency-name: "@types/browserify"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-08 11:54:48 +00:00
Joe Previte
71a8f9a103 Merge pull request #3733 from cdr/dependabot/npm_and_yarn/types/split2-3.2.1
chore(deps-dev): bump @types/split2 from 3.2.0 to 3.2.1
2021-07-07 12:01:25 -07:00
dependabot[bot]
00f319e4db chore(deps-dev): bump @types/split2 from 3.2.0 to 3.2.1
Bumps [@types/split2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/split2) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/split2)

---
updated-dependencies:
- dependency-name: "@types/split2"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 18:45:16 +00:00
Joe Previte
47afa15ece Merge pull request #3732 from cdr/dependabot/npm_and_yarn/types/js-yaml-4.0.2
chore(deps-dev): bump @types/js-yaml from 4.0.1 to 4.0.2
2021-07-07 11:42:53 -07:00
Joe Previte
a465af18dc Merge pull request #3742 from cdr/jsjoeio-fix-missing-dep
revert: add eslint-import-resolver-alias as dependency
2021-07-07 11:42:31 -07:00
Joe Previte
9fdf049ecc revert: add eslint-import-resolver-alias as dependency 2021-07-07 11:10:53 -07:00
Joe Previte
876a800753 Merge pull request #3739 from cdr/dependabot/npm_and_yarn/types/semver-7.3.7
chore(deps-dev): bump @types/semver from 7.3.6 to 7.3.7
2021-07-07 10:33:18 -07:00
Joe Previte
5471f14c2f Merge pull request #3740 from cdr/dependabot/npm_and_yarn/types/compression-1.7.1
chore(deps-dev): bump @types/compression from 1.7.0 to 1.7.1
2021-07-07 10:33:09 -07:00
Joe Previte
23b296d550 Merge pull request #3735 from cdr/dependabot/npm_and_yarn/types/body-parser-1.19.1
chore(deps-dev): bump @types/body-parser from 1.19.0 to 1.19.1
2021-07-07 10:31:09 -07:00
Joe Previte
722426856c Merge pull request #3729 from cdr/jsjoeio-remove-unused-deps
chore: remove unused dependencies
2021-07-07 10:20:05 -07:00
dependabot[bot]
043d5abcaa chore(deps-dev): bump @types/compression from 1.7.0 to 1.7.1
Bumps [@types/compression](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/compression) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/compression)

---
updated-dependencies:
- dependency-name: "@types/compression"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 17:16:17 +00:00
dependabot[bot]
5f4d0713bf chore(deps-dev): bump @types/semver from 7.3.6 to 7.3.7
Bumps [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) from 7.3.6 to 7.3.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: "@types/semver"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 17:15:50 +00:00
dependabot[bot]
5141543cd9 chore(deps-dev): bump @types/body-parser from 1.19.0 to 1.19.1
Bumps [@types/body-parser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/body-parser) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/body-parser)

---
updated-dependencies:
- dependency-name: "@types/body-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 17:14:56 +00:00
Joe Previte
17816bb3bd Merge pull request #3734 from cdr/dependabot/npm_and_yarn/types/http-proxy-1.17.7
chore(deps-dev): bump @types/http-proxy from 1.17.6 to 1.17.7
2021-07-07 10:11:59 -07:00
Joe Previte
9dfc72de1d Merge pull request #3731 from cdr/dependabot/npm_and_yarn/types/express-4.17.13
chore(deps-dev): bump @types/express from 4.17.12 to 4.17.13
2021-07-07 10:11:13 -07:00
dependabot[bot]
ae1839a140 chore(deps-dev): bump @types/http-proxy from 1.17.6 to 1.17.7
Bumps [@types/http-proxy](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/http-proxy) from 1.17.6 to 1.17.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/http-proxy)

---
updated-dependencies:
- dependency-name: "@types/http-proxy"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 11:02:38 +00:00
dependabot[bot]
60ef5b5cf2 chore(deps-dev): bump @types/js-yaml from 4.0.1 to 4.0.2
Bumps [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/js-yaml) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/js-yaml)

---
updated-dependencies:
- dependency-name: "@types/js-yaml"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 11:02:14 +00:00
dependabot[bot]
3777d569e9 chore(deps-dev): bump @types/express from 4.17.12 to 4.17.13
Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.12 to 4.17.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

---
updated-dependencies:
- dependency-name: "@types/express"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 11:02:07 +00:00
Joe Previte
0b072e771e chore: remove unused dependencies and clean up test deps 2021-07-06 16:38:45 -07:00
Joe Previte
6f7ae29dc4 Merge pull request #3728 from cdr/jsjoeio-fix-open-folder-explorer-panel
fix: openFolder button on Explorer panel
2021-07-06 15:02:29 -07:00
Joe Previte
990414cae1 fix: openFolder by using command ID for Explorer 2021-07-06 14:05:27 -07:00
Joe Previte
2540b0d02c docs(guide): add note for exposing address NGINX 2021-07-06 12:53:53 -07:00
Joe Previte
102f8117b7 Merge pull request #3724 from cdr/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.28.2
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 4.28.1 to 4.28.2
2021-07-06 12:43:48 -07:00
Joe Previte
dc39da1638 Merge pull request #3723 from cdr/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.2
chore(deps-dev): bump @typescript-eslint/parser from 4.28.1 to 4.28.2
2021-07-06 12:42:38 -07:00
dependabot[bot]
d4accfe806 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.1 to 4.28.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.2/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 17:08:29 +00:00
dependabot[bot]
05134e419b chore(deps-dev): bump @types/tar-stream from 2.2.0 to 2.2.1 (#3725)
Bumps [@types/tar-stream](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/tar-stream) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/tar-stream)

---
updated-dependencies:
- dependency-name: "@types/tar-stream"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-06 22:36:07 +05:30
Joe Previte
d2f11b7fcd Merge pull request #3719 from cdr/dependabot/npm_and_yarn/eslint-7.30.0
chore(deps-dev): bump eslint from 7.29.0 to 7.30.0
2021-07-06 09:54:09 -07:00
dependabot[bot]
1dfbf9a00b chore(deps-dev): bump @typescript-eslint/parser from 4.28.1 to 4.28.2
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.1 to 4.28.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.2/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 13:06:24 +00:00
dependabot[bot]
a1e5d39919 chore(deps): bump ws from 7.5.1 to 7.5.2 (#3716)
Bumps [ws](https://github.com/websockets/ws) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.1...7.5.2)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-06 18:34:21 +05:30
dependabot[bot]
ac4ef818b5 chore(deps-dev): bump @types/tar-fs from 2.0.0 to 2.0.1 (#3717)
Bumps [@types/tar-fs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/tar-fs) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/tar-fs)

---
updated-dependencies:
- dependency-name: "@types/tar-fs"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-06 18:33:56 +05:30
dependabot[bot]
c8bcfade7f chore(deps-dev): bump @types/ws from 7.4.5 to 7.4.6 (#3718)
Bumps [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) from 7.4.5 to 7.4.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

---
updated-dependencies:
- dependency-name: "@types/ws"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-06 18:33:28 +05:30
dependabot[bot]
83674c524d chore(deps-dev): bump eslint from 7.29.0 to 7.30.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.29.0 to 7.30.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.29.0...v7.30.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 11:01:54 +00:00
Joe Previte
d29391ae75 Merge pull request #3714 from cdr/jsjoeio-add-login-test
feat(test): check login.ts when base missing
2021-07-02 15:14:18 -07:00
Joe Previte
7ad536b5e9 feat(test): check login.ts when base missing 2021-07-02 14:57:16 -07:00
Joe Previte
b365830388 Merge pull request #3713 from cdr/jsjoeio-test-emitter
feat(test): try calling .dispose() x2 in emitter
2021-07-02 14:44:58 -07:00
Joe Previte
f3c4dcd074 feat(test): try calling .dispose() x2 in emitter 2021-07-02 14:27:12 -07:00
Joe Previte
58514c422f Merge pull request #3711 from cdr/jsjoeio-fix-link
chore: fix broken link in install.sh
2021-07-02 13:15:08 -07:00
Joe Previte
002fa08222 chore: fix broken link in install.sh 2021-07-02 11:14:36 -07:00
Joe Previte
f8a1a1ce02 Merge pull request #3707 from cdr/jsjoeio-fix-alpine-install-script
fix: update install script for alpine
2021-07-02 10:45:14 -07:00
Joe Previte
908b2c8502 fix: use new docs links in install script 2021-07-02 10:29:49 -07:00
Joe Previte
5a6af17725 fix: modify install script for alpine 2021-07-01 15:50:31 -07:00
Joe Previte
1ff09b814e Merge pull request #3706 from cdr/jsjoeio-update-docs-node-issues
docs(install): add troubleshooting node issues
2021-07-01 15:36:36 -07:00
Joe Previte
4ca4a26bec docs(install): add troubleshooting node issues 2021-07-01 15:21:55 -07:00
Joe Previte
ad92287d7e Merge pull request #3697 from cdr/jsjoeio-doc-env-requirements
docs(guide): add WebSockets to requirements
2021-07-01 14:50:53 -07:00
Joe Previte
975dd13d12 Merge pull request #3695 from cdr/jsjoeio-sanitize-error-msg
fix: escape error.message on login failure
2021-07-01 14:50:32 -07:00
Joe Previte
c0e123a801 fix(http): escape req.query.to in replaceTemplates 2021-07-01 10:43:37 -07:00
Joe Previte
2ba03c3424 docs: clarify redirect function in http.ts usage 2021-07-01 10:43:37 -07:00
Joe Previte
2092f82270 fixup! fix: escape error.message on login failure 2021-07-01 10:43:37 -07:00
Joe Previte
22a22a8f7a fix: escape error.message on login failure 2021-07-01 10:43:37 -07:00
Joe Previte
c505fc45a8 feat: add escapeHtml function
This can be used to escape any special characters in a string with HTML before
sending from the server back to the client. This is important to prevent a
cross-site scripting attack.
2021-07-01 10:43:36 -07:00
Joe Previte
b009ad0633 docs(guide): add WebSockets to requirements 2021-07-01 10:37:32 -07:00
Joe Previte
faa896c12c Merge pull request #3698 from cdr/jsjoeio-fix-argon-issue
fix(isHashMatch): check that hash starts with $
2021-07-01 10:33:29 -07:00
Joe Previte
4dcf3efeab Merge pull request #3700 from cdr/jsjoeio-add-job-timeouts
fix: add timeouts to CI jobs
2021-07-01 09:59:52 -07:00
dependabot[bot]
bb1b129a24 chore(deps-dev): bump typescript from 4.3.4 to 4.3.5 (#3702)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.4...v4.3.5)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-01 21:20:43 +05:30
Joe Previte
8695c874ed fix: add timeouts to ci jobs 2021-06-30 15:16:55 -07:00
Joe Previte
7f12fab3ca fix(isHashMatch): check that hash starts with $
Previously, we used argon2 to verify the hash with the password.

If the hash didn't start with a $, then it would enter the catch block.

Now we check the hash before trying to verify it and we also throw an Error if
the verify fails.

This makes the isHashMatch function more robust.
2021-06-30 15:00:21 -07:00
CoderErik
e9d4f877f9 Update links to careers page (#3696) 2021-06-30 11:14:04 -05:00
Ben Potter
d2f0e1738d Merge pull request #3691 from cdr/bpmct/readme-fix
docs: fix relative link to guide
2021-06-29 16:57:13 -04:00
Joe Previte
df814aa39a Merge pull request #3692 from elliott-king/patch-1
Fix broken link on docs site
2021-06-29 13:52:37 -07:00
Elliott King
33dbb7b707 Fix broken link on docs site
Links don't work on docs site unless they have md formatting.
2021-06-29 16:43:57 -04:00
Ben Potter
f194c14e6c docs: fix relative guide link 2021-06-29 14:36:25 -04:00
Bruno Quaresma
6dbabc0951 docs: Update README to point to code-server docs site (#3684) 2021-06-29 15:25:22 -03:00
Asher
f92cbb7470 Merge pull request #3664 from code-asher/parallel-tests 2021-06-29 12:24:55 -05:00
Asher
2238d7391e Fix occasional logout failure
It seems a dialog sometimes appears asking if you want to lose
changes (even though we have no changes; it seems based on timers in
some way). Playwright defaults to dismissing them (so quickly you might
not even see them) so accepting instead fixes navigation to the logout
page getting canceled.
2021-06-29 12:06:48 -05:00
Asher
43c6ffcb8f Remove login steps from logout test
I figure login is already tested so we can skip this and just use the
cookie.
2021-06-29 12:06:47 -05:00
Asher
49c7cc6e8a Retain failed e2e videos only 2021-06-29 12:06:46 -05:00
Asher
f2fa7701a9 Centralize credential handling
My thinking is that this may reduce the cognitive overhead for
developers writing new test suites.

This also allows us to perform different setup steps (like ensuring the
editor is visible when authenticated).
2021-06-29 12:06:45 -05:00
Asher
da4de439e0 Spawn a code-server instance for each test suite
This uses the current dev build by default but can be overidden with
CODE_SERVER_TEST_ENTRY (for example to test a release or some other
version).

Each instance has a separate state directory. This should make
parallelization work.

This also means you are no longer required to specify the password and
address yourself (or the extension directory once we add a test
extension). `yarn test:e2e` should just work as-is.

Lastly, it means the tests are no longer subject to yarn watch randomly
restarting.
2021-06-29 12:06:38 -05:00
Asher
49c44818d9 Move onLine to utilities
This way it can be used by the tests when spawning code-server on a
random port to look for the address.
2021-06-29 12:04:31 -05:00
Asher
add55ecd62 Import utils as a group in tests
This should simplify testing new utils a bit.
2021-06-29 12:03:38 -05:00
Asher
ba0364a522 Run each e2e test in a new workspace
The workspaces also have settings to prevent the welcome page from
appearing.
2021-06-29 12:03:37 -05:00
dependabot[bot]
4a47ce774d chore(deps-dev): bump @typescript-eslint/parser from 4.28.0 to 4.28.1 (#3688)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.0 to 4.28.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-29 21:34:51 +05:30
dependabot[bot]
4131b3fb05 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3689)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.28.0 to 4.28.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-29 18:04:19 +05:30
dependabot[bot]
7e32b8fb86 chore(deps): bump ws from 7.4.6 to 7.5.1 (#3690)
Bumps [ws](https://github.com/websockets/ws) from 7.4.6 to 7.5.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.6...7.5.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-29 18:02:12 +05:30
Joe Previte
e1d291e59c Merge pull request #3658 from cdr/jsjoeio/migrate-parcel
chore(dev): migrate away from parcel and replace with browserify
2021-06-28 12:04:10 -07:00
Joe Previte
6e1455da88 feat: add custom codecov 2021-06-28 11:41:48 -07:00
Joe Previte
b597519ab5 feat(test): add tests for src/browser/login 2021-06-28 11:41:48 -07:00
Joe Previte
be7ea8f3f7 refactor: migrate parcel to browserify
This also refactors a couple CSS stylesheets to be referenced directly in the
HTML files.

And it removes any CSS imports from src/browser files.
2021-06-28 11:41:45 -07:00
Joe Previte
df01808d4d Merge pull request #3640 from cdr/jsjoeio/add-test-nlsConfig
refactor: add func and tests for getNlsConfiguration
2021-06-28 11:40:43 -07:00
Joe Previte
a7a6d7e22a Merge pull request #3659 from cdr/jsjoeio/update-android-docs
docs(termux): add backspace workaround for android
2021-06-28 10:05:46 -07:00
Joe Previte
a355012560 Merge pull request #3660 from cdr/jsjoeio/docs-update-changelog-process
docs(MAINTAINING): update changelog process
2021-06-28 10:04:51 -07:00
dependabot[bot]
95536fafa9 chore(deps-dev): bump prettier from 2.3.1 to 2.3.2 (#3679)
Bumps [prettier](https://github.com/prettier/prettier) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-28 22:07:28 +05:30
dependabot[bot]
9042bbae9a chore(deps-dev): bump prettier-plugin-sh from 0.6.1 to 0.7.1 (#3680)
* chore(deps-dev): bump prettier-plugin-sh from 0.6.1 to 0.7.1

Bumps [prettier-plugin-sh](https://github.com/rx-ts/prettier) from 0.6.1 to 0.7.1.
- [Release notes](https://github.com/rx-ts/prettier/releases)
- [Changelog](https://github.com/rx-ts/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rx-ts/prettier/compare/prettier-plugin-sh@0.6.1...prettier-plugin-sh@0.7.1)

---
updated-dependencies:
- dependency-name: prettier-plugin-sh
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: reformat shell scripts

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Akash Satheesan <akash.satheesan@protonmail.com>
2021-06-28 22:06:55 +05:30
Bruno Quaresma
7912809af1 docs: move README into docs
Move README into docs
2021-06-28 11:27:17 -03:00
Bruno
010c1d8f2f Fix README path on build-release 2021-06-28 14:16:20 +00:00
Bruno
952aafff57 Remove dot 2021-06-24 17:10:00 +00:00
Bruno
18f90a7832 Unwrap badges and remove break lines 2021-06-24 16:56:46 +00:00
Bruno
2d467b4fbc Wrapping the badges on div 2021-06-24 16:55:02 +00:00
Bruno
1b288f91e4 docs: move README to docs 2021-06-24 16:21:28 +00:00
Joe Previte
3226a53b02 docs: update CHANGELOG process 2021-06-23 15:37:01 -07:00
Joe Previte
02b9489489 refactor: add func getNlsConfiguration & tests
This PR refactors part of vscode.ts and adds a function to get the NLS
Configuration.

This makes the code more readable and easier to test.

And it adds multiple tests for this part of the codebase.
2021-06-23 13:42:06 -07:00
Joe Previte
4b0dd07634 Merge pull request #3655 from cdr/dependabot/npm_and_yarn/typescript-eslint/parser-4.28.0
chore(deps-dev): bump @typescript-eslint/parser from 4.27.0 to 4.28.0
2021-06-23 11:32:44 -07:00
Joe Previte
d4fe54601b docs: add backspace android workaround 2021-06-23 11:26:59 -07:00
Joe Previte
fbba8e8b25 Merge pull request #3656 from cdr/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-4.28.0
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 4.27.0 to 4.28.0
2021-06-22 10:58:49 -07:00
dependabot[bot]
803dadbfa2 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.27.0 to 4.28.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-22 11:04:14 +00:00
dependabot[bot]
f2040b18e6 chore(deps-dev): bump @typescript-eslint/parser from 4.27.0 to 4.28.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.27.0 to 4.28.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.28.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-22 11:03:34 +00:00
Joe Previte
c5f0b1052c Merge pull request #3647 from cdr/khorne3-patch-1
Update link desc to Coder.com in README
2021-06-21 11:03:24 -07:00
Katie Horne
5b261e13a9 Update link desc to Coder.com in README 2021-06-21 10:51:55 -05:00
dependabot[bot]
9422a4aba7 chore(deps-dev): bump eslint from 7.28.0 to 7.29.0 (#3644)
Bumps [eslint](https://github.com/eslint/eslint) from 7.28.0 to 7.29.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.28.0...v7.29.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-21 18:03:28 +05:30
Joe Previte
aa08f84aeb Merge pull request #3635 from cdr/dependabot/npm_and_yarn/typescript-4.3.4
chore(deps-dev): bump typescript from 4.3.2 to 4.3.4
2021-06-18 10:04:48 -07:00
Joe Previte
a51836fca7 Merge pull request #3629 from cdr/jsjoeio/docs-testing
docs(CONTRIBUTING): add section on testing
2021-06-18 10:04:06 -07:00
dependabot[bot]
bee35549f1 chore(deps-dev): bump typescript from 4.3.2 to 4.3.4
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.2 to 4.3.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.2...v4.3.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-18 11:03:23 +00:00
Joe Previte
d9bb1a36eb docs(contr): add section on testing 2021-06-17 16:25:25 -07:00
Joe Previte
5f7e9b7361 Merge pull request #3630 from janiversen/patch-1
docs: Update CONTRIBUTING.md
2021-06-17 16:05:27 -07:00
jan iversen
ece5de699a Update CONTRIBUTING.md
Node needs be v14.x not greater. If installing the standard version ‘brew install node’, both ‘yarn’ and ‘code-server’ (release version) complains.

Newest version is v16.x so we are pretty far behind.
2021-06-17 20:57:00 +02:00
dependabot[bot]
bf45e7ca15 chore(deps-dev): bump @types/ws from 7.4.4 to 7.4.5 (#3627)
Bumps [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) from 7.4.4 to 7.4.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

---
updated-dependencies:
- dependency-name: "@types/ws"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-17 23:49:14 +05:30
dependabot[bot]
9dae4fec25 chore(deps): bump ws from 7.4.6 to 7.5.0 (#3625)
Bumps [ws](https://github.com/websockets/ws) from 7.4.6 to 7.5.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.6...7.5.0)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-17 23:49:03 +05:30
Joe Previte
83701f9f6d Merge pull request #3626 from cdr/dependabot/npm_and_yarn/wtfnode-0.9.0
chore(deps-dev): bump wtfnode from 0.8.4 to 0.9.0
2021-06-17 10:49:40 -07:00
jan iversen
4e14c11fa4 Allow development on any architecture (#3598) 2021-06-17 12:28:54 -05:00
dependabot[bot]
79f372c1a0 chore(deps-dev): bump wtfnode from 0.8.4 to 0.9.0
Bumps [wtfnode](https://github.com/myndzi/wtfnode) from 0.8.4 to 0.9.0.
- [Release notes](https://github.com/myndzi/wtfnode/releases)
- [Commits](https://github.com/myndzi/wtfnode/commits)

---
updated-dependencies:
- dependency-name: wtfnode
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-17 11:04:04 +00:00
Joe Previte
cbe3192971 Merge pull request #3617 from cdr/dependabot/npm_and_yarn/audit-ci-4.1.0
chore(deps-dev): bump audit-ci from 4.0.0 to 4.1.0
2021-06-16 10:03:35 -07:00
Joe Previte
ddbff58eec Merge pull request #3602 from patrickcylai/patrickcylai/fix-docs-hashed-password
fix: placeholder password in hashed password example
2021-06-16 09:49:53 -07:00
dependabot[bot]
18c0f32c24 chore(deps-dev): bump audit-ci from 4.0.0 to 4.1.0
Bumps [audit-ci](https://github.com/IBM/audit-ci) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/IBM/audit-ci/releases)
- [Commits](https://github.com/IBM/audit-ci/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: audit-ci
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-16 11:02:59 +00:00
Asher
b59b3936d0 Fix incorrect logout base (#3611)
Fixes #3608.
2021-06-15 15:11:01 -05:00
dependabot[bot]
3241a4f521 chore(deps-dev): bump @typescript-eslint/parser from 4.26.1 to 4.27.0 (#3609)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.26.1 to 4.27.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.27.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-15 21:46:00 +05:30
dependabot[bot]
5c9b625acb chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3610)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.26.1 to 4.27.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.27.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-15 21:34:56 +05:30
Patrick Lai
5fae520ebe fix: placeholder password in hashed password example 2021-06-13 01:25:05 +10:00
Joe Previte
4bb7a8ddb9 Merge pull request #3590 from mxschmitt/chore/upgrade-to-latest-playwright
chore: upgrade to Playwright 1.12 with its new test-runner
2021-06-10 11:15:41 -07:00
Joe Previte
2c818e3855 Merge pull request #3589 from cdr/dependabot/npm_and_yarn/argon2-0.28.2
chore(deps): bump argon2 from 0.28.0 to 0.28.2
2021-06-10 09:36:45 -07:00
Max Schmitt
dbb34ad710 chore: upgrade to Playwright 1.12 with its new test-runner 2021-06-10 15:09:38 +02:00
dependabot[bot]
fda44240c9 chore(deps): bump argon2 from 0.28.0 to 0.28.2
Bumps [argon2](https://github.com/ranisalt/node-argon2) from 0.28.0 to 0.28.2.
- [Release notes](https://github.com/ranisalt/node-argon2/releases)
- [Commits](https://github.com/ranisalt/node-argon2/compare/v0.28.0...v0.28.2)

---
updated-dependencies:
- dependency-name: argon2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-10 11:01:38 +00:00
Joe Previte
9fc9c041ad Merge pull request #3588 from cdr/dependabot/npm_and_yarn/lib/vscode/normalize-url-4.5.1
chore(deps): bump normalize-url from 4.5.0 to 4.5.1 in /lib/vscode
2021-06-09 15:06:08 -07:00
Joe Previte
a802a920ac Merge pull request #3587 from cdr/dependabot/npm_and_yarn/lib/vscode/build/normalize-url-4.5.1
chore(deps): bump normalize-url from 4.5.0 to 4.5.1 in /lib/vscode/build
2021-06-09 15:05:54 -07:00
dependabot[bot]
54684c0ad2 chore(deps): bump normalize-url from 4.5.0 to 4.5.1 in /lib/vscode
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-09 21:32:56 +00:00
dependabot[bot]
2594aa3e41 chore(deps): bump normalize-url from 4.5.0 to 4.5.1 in /lib/vscode/build
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-09 21:32:42 +00:00
Joe Previte
717eaa6470 Merge pull request #3422 from cdr/jsjoeio/fix-password-hash
fix: use sufficient computational effort for password hash
2021-06-09 14:32:05 -07:00
Joe Previte
1e55a648a5 feat: check for empty str in isHashMatch 2021-06-08 15:10:59 -07:00
Joe Previte
3b50bfc17d fix: sanitize password and cookie key 2021-06-08 14:33:17 -07:00
Joe Previte
deaa2242ca feat: add npm_config_build_from_source to build scripts
This is necessary due to argon2 being added and an upstream issue where it uses
a Linux build that is too new for CentOS 7.
2021-06-08 14:33:17 -07:00
Joe Previte
8c2bb61af9 refactor: parse options with multiple = in cli
There was a case with the hashed-password which had multiple equal signs in the
value and it wasn't being parsed correctly. This uses a new function and adds a
few tests.
2021-06-08 14:33:17 -07:00
Joe Previte
531b7c0c25 feat: add splitOnFirstEquals function 2021-06-08 14:33:16 -07:00
Joe Previte
517aaf71c5 docs: update FAQ with new hashing instructions 2021-06-08 14:33:16 -07:00
Joe Previte
923761cd78 refactor: password logic in http w/ isCookieValid 2021-06-08 14:33:16 -07:00
Joe Previte
6020480b30 feat: add isCookieValid function and tests 2021-06-08 14:33:16 -07:00
Joe Previte
409b473c82 refactor: rewrite password logic at /login 2021-06-08 14:33:15 -07:00
Joe Previte
a14ea39c4a feat: add handlePasswordValidation + tests 2021-06-08 14:33:15 -07:00
Joe Previte
7ff4117531 feat: add getPasswordMethod & test for it 2021-06-08 14:33:15 -07:00
Joe Previte
ffa5c16e51 feat: update cli and test for hashed-password 2021-06-08 14:33:15 -07:00
Joe Previte
788b958e20 refactor: update hash fn in test config 2021-06-08 14:33:14 -07:00
Joe Previte
1134780b8b refactor: make wsProxy async 2021-06-08 14:33:14 -07:00
Joe Previte
91303d4e40 refactor: make ensureAuthenticated async 2021-06-08 14:33:14 -07:00
Joe Previte
0cdbd33b46 refactor: make authenticated async everywhere
Since this checks if they are authenticated using the hash/password and it's
async, we need to update authenticated to be async, which means we have to
update it everywhere it's used.
2021-06-08 14:33:14 -07:00
Joe Previte
fcc3f0d951 refactor: update login logic with new async hashing
This adds the proper await logic for the hashing of passwords.
2021-06-08 14:33:13 -07:00
Joe Previte
fd3cb6cfa0 refactor: update unit tests for hash fns
Since the hash and isHashMatch are now async, I had to update the tests
accordingly. Now everything is working.
2021-06-08 14:33:13 -07:00
Joe Previte
70197bb2a5 refactor: use argon2 instead of bcrypt
This uses argon2 instead of bcrypt.

Note: this means the hash functions are now async which means we have to
refactor a lot of other code around auth.
2021-06-08 14:33:13 -07:00
Joe Previte
51f8341959 chore: update to argon2 in test 2021-06-08 14:33:13 -07:00
Joe Previte
dc2db5c62d chore: add argon2 package 2021-06-08 14:33:13 -07:00
Joe Previte
fc3326f1f2 feat: add tests using real hashes 2021-06-08 14:33:12 -07:00
Joe Previte
aaf044728f refactor: add functions to check hash password 2021-06-08 14:33:12 -07:00
Joe Previte
f35120c0a3 feat: add unit test for hash function 2021-06-08 14:33:12 -07:00
Joe Previte
17be8c5cd3 refactor: use bcrypt in e2e setup 2021-06-08 14:33:12 -07:00
Joe Previte
cac667317e refactor: use bcrypt in hash function 2021-06-08 14:33:11 -07:00
Joe Previte
dd2cb1649a chore: update CHANGELOG 2021-06-08 14:32:16 -07:00
dependabot[bot]
d8c3ba6a17 chore(deps): bump glob-parent in /lib/vscode/build/lib/watch (#3570)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-09 00:25:30 +05:30
dependabot[bot]
4cd0456103 chore(deps-dev): bump @typescript-eslint/parser from 4.26.0 to 4.26.1 (#3567)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.26.0 to 4.26.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.26.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-09 00:23:42 +05:30
dependabot[bot]
38647836bb chore(deps-dev): bump doctoc from 2.0.0 to 2.0.1 (#3568)
Bumps [doctoc](https://github.com/thlorenz/doctoc) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/thlorenz/doctoc/releases)
- [Commits](https://github.com/thlorenz/doctoc/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: doctoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-09 00:23:11 +05:30
dependabot[bot]
9288b02f0a chore(deps): bump trim-newlines from 3.0.0 to 3.0.1 (#3571)
Bumps [trim-newlines](https://github.com/sindresorhus/trim-newlines) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/sindresorhus/trim-newlines/releases)
- [Commits](https://github.com/sindresorhus/trim-newlines/commits)

---
updated-dependencies:
- dependency-name: trim-newlines
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-09 00:22:16 +05:30
Joe Previte
9052a1364a Merge pull request #3557 from cuining/main
chore: update .gitignore
2021-06-08 10:54:56 -07:00
dependabot[bot]
3edbd09ddb chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3569)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.26.0 to 4.26.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.26.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-08 21:55:01 +05:30
cuining
eadd194677 Update CHANGELOG.md 2021-06-08 10:46:30 +08:00
cuining
1cd736db81 Update CHANGELOG.md 2021-06-08 10:46:14 +08:00
cuining
8252e4460b Merge branch 'cdr:main' into main 2021-06-08 10:33:14 +08:00
Joe Previte
ecbef27981 Merge pull request #3559 from cdr/dependabot/npm_and_yarn/prettier-2.3.1
chore(deps-dev): bump prettier from 2.3.0 to 2.3.1
2021-06-07 11:13:19 -07:00
dependabot[bot]
635170c7ed chore(deps-dev): bump prettier from 2.3.0 to 2.3.1
Bumps [prettier](https://github.com/prettier/prettier) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.3.0...2.3.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 18:08:25 +00:00
Joe Previte
0659a2ea73 Merge pull request #3558 from cdr/dependabot/npm_and_yarn/eslint-7.28.0
chore(deps-dev): bump eslint from 7.27.0 to 7.28.0
2021-06-07 11:05:12 -07:00
dependabot[bot]
f37c748471 chore(deps-dev): bump eslint from 7.27.0 to 7.28.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.27.0 to 7.28.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.27.0...v7.28.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-07 11:02:40 +00:00
cuining
0400a891f7 Merge branch 'cdr:main' into main 2021-06-07 14:26:55 +08:00
cuining
c3dfb90eda Update .gitignore 2021-06-07 14:26:39 +08:00
Joe Previte
7b6df50553 Merge pull request #3545 from cdr/dependabot/npm_and_yarn/lib/vscode/ws-7.4.6
chore(deps): bump ws from 7.4.5 to 7.4.6 in /lib/vscode
2021-06-04 14:46:53 -07:00
dependabot[bot]
ca2ff01d68 chore(deps): bump ws from 7.4.5 to 7.4.6 in /lib/vscode
Bumps [ws](https://github.com/websockets/ws) from 7.4.5 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.5...7.4.6)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-04 18:46:07 +00:00
Akash Satheesan
23eacac207 chore(deps): update chrome-remote-interface (#3536) 2021-06-04 18:45:32 +00:00
Joe Previte
f3640610b5 Merge pull request #3532 from PisecesPeng/patch-1
docs: format 'Caddy'
2021-06-04 10:44:21 -07:00
PisecesPeng
aa9fadfb6f Update CHANGELOG.md 2021-06-04 07:03:33 +08:00
PisecesPeng
e97b79f879 Merge branch 'main' into patch-1 2021-06-04 06:52:07 +08:00
repo-ranger[bot]
56abc4a7cb Merge pull request #3468 from cdr/jsjoeio/fix-3444
fix(publish): update cdrci fork in brew-bump.sh
2021-06-03 17:35:36 +00:00
Joe Previte
8b38314913 feat: add 'set up homebrew' step publish.yaml 2021-06-03 10:18:48 -07:00
Joe Previte
808daa44e1 fix: update git push to cdrci repo in brew-bump 2021-06-03 10:18:48 -07:00
Akash Satheesan
05197d5213 feat(ci): add restore-keys for ci speedup (#3516) 2021-06-03 22:00:37 +05:30
PisecesPeng
988dc724f9 format 'caddy' for guide docs 2021-06-03 15:13:25 +08:00
Joe Previte
40ef0f23cb Merge pull request #3512 from cdr/oxy/release-doc-fixup
docs: move release process to MAINTAINING.md
2021-06-01 16:38:50 -07:00
Akash Satheesan
30a312df29 docs: change header depth 2021-06-01 16:34:17 -07:00
Akash Satheesan
857c62ae1d chore: yarn fmt + changelog 2021-06-01 16:34:16 -07:00
Prashant168
7dfd3676c1 docs: remove "Publishing A Release" from ci/README.md
Deleted "Publishing A Release" section from the readme.md file in the 'ci'
folder and then pasting the section in 'Maintaining.md'
2021-06-01 16:33:52 -07:00
Prashant168
e02ecc2c80 docs: add "Publishing A Release" in 'MAINTAINING.md' file
Pasted "Publishing A Release" in the 'MAINTAINING.md' file from line #98
2021-06-01 16:33:48 -07:00
Joe Previte
54aea3f77f Merge pull request #3520 from cdr/jsjoeio/fix-ws-vul
fix: ws vulnerabilities
2021-06-01 15:59:38 -07:00
Joe Previte
70b5ae0084 chore: fix ws vulnerabilities 2021-06-01 15:36:51 -07:00
Asher
546dd9c278 Catch getLayoutMap error (#3518)
This might be causing issues with the PWA showing a blank screen with
MacOS.
2021-06-01 16:04:26 -05:00
Akash Satheesan
58622ccc34 chore: update node to v14 (#3481) 2021-06-01 22:49:03 +05:30
dependabot[bot]
c2a8634bcc chore(deps-dev): bump @typescript-eslint/parser from 4.25.0 to 4.26.0 (#3514)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.25.0 to 4.26.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.26.0/packages/parser)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-01 15:27:19 +00:00
dependabot[bot]
1aabca7df9 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3515)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.25.0 to 4.26.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.26.0/packages/eslint-plugin)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-01 20:45:28 +05:30
dependabot[bot]
af9b2bfd3f chore(deps-dev): bump eslint-plugin-import from 2.23.3 to 2.23.4 (#3511)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.23.3 to 2.23.4.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.23.3...v2.23.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-31 14:54:13 +00:00
dependabot[bot]
0832df1a3f chore(deps): bump ws from 7.4.2 to 7.4.6 in /test (#3510)
Bumps [ws](https://github.com/websockets/ws) from 7.4.2 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.2...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-31 20:12:53 +05:30
dependabot[bot]
8c7e7819b9 chore(deps): bump aquasecurity/trivy-action from 0.0.17 to 0.0.18 (#3500)
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.0.17 to 0.0.18.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](dba83feec8...ac8de07fd1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 22:39:07 +05:30
Akash Satheesan
1ccf69f731 chore: cross-compile docker images with buildx (#3503) 2021-05-28 16:51:41 +00:00
Joe Previte
8e92dd62ab chore: update CHANGELOG (#3465)
Co-authored-by: Akash Satheesan <akash@coder.com>
2021-05-27 16:46:04 +00:00
dependabot[bot]
b9dc2079fe chore(deps-dev): bump @typescript-eslint/parser from 4.24.0 to 4.25.0 (#3471)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.24.0 to 4.25.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.25.0/packages/parser)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Akash Satheesan <akash@coder.com>
2021-05-27 16:37:05 +00:00
Joe Previte
0e67ab7b85 docs: add changelog to MAINTAINING.md (#3467)
Co-authored-by: Akash Satheesan <akash@coder.com>
2021-05-27 22:02:09 +05:30
Joe Previte
8ed578b686 docs: remove toc from changelog (#3466)
Co-authored-by: Akash Satheesan <akash@coder.com>
2021-05-27 16:16:54 +00:00
dependabot[bot]
b1186d7223 chore(deps-dev): bump @types/express from 4.17.11 to 4.17.12 (#3480)
Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.11 to 4.17.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-27 16:06:46 +00:00
dependabot[bot]
87cceb7f4c chore(deps): bump ws from 7.4.5 to 7.4.6 (#3479)
Bumps [ws](https://github.com/websockets/ws) from 7.4.5 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.5...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-27 21:24:55 +05:30
dependabot[bot]
45d736a884 chore(deps-dev): bump typescript from 4.2.4 to 4.3.2 (#3489)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.2.4 to 4.3.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.2.4...v4.3.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-27 21:01:51 +05:30
Joe Previte
66cabab578 Merge pull request #3460 from shiv-tyagi/grammer-fix
docs: fix confusing sentence in pull requests section
2021-05-25 11:09:47 -07:00
Joe Previte
535e9720ef Merge branch 'main' into grammer-fix 2021-05-25 11:04:58 -07:00
dependabot[bot]
8accaf57d6 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3470)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.24.0 to 4.25.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.25.0/packages/eslint-plugin)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-25 23:17:04 +05:30
Shiv Tyagi
65a01ebe0f Merge branch 'main' into grammer-fix 2021-05-25 09:46:40 +05:30
Shiv
5c41954417 ran yarn fmt locally 2021-05-25 07:37:19 +05:30
Joe Previte
dc81786166 Merge pull request #3451 from cdr/dependabot/npm_and_yarn/ts-node-10.0.0
chore(deps-dev): bump ts-node from 9.1.1 to 10.0.0
2021-05-24 14:53:27 -07:00
dependabot[bot]
b07fa410c7 chore(deps-dev): bump ts-node from 9.1.1 to 10.0.0
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 9.1.1 to 10.0.0.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v9.1.1...v10.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 21:45:22 +00:00
Joe Previte
de16f57609 Merge pull request #3464 from cdr/dependabot/npm_and_yarn/test/browserslist-4.16.6
chore(deps): bump browserslist from 4.16.4 to 4.16.6 in /test
2021-05-24 14:42:11 -07:00
Joe Previte
8df83acb5f Merge branch 'main' into dependabot/npm_and_yarn/test/browserslist-4.16.6 2021-05-24 14:37:33 -07:00
Joe Previte
6f7e9a37cd Merge branch 'main' into grammer-fix 2021-05-24 14:37:17 -07:00
Joe Previte
5c42b7c44b Merge pull request #3424 from desimone/patch-1
docs: add Pomerium
2021-05-24 14:37:11 -07:00
Joe Previte
374bda17ab Merge branch 'main' into grammer-fix 2021-05-24 14:36:11 -07:00
dependabot[bot]
20874c1833 chore(deps): bump browserslist from 4.16.4 to 4.16.6 in /test
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.4 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.16.4...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 21:28:37 +00:00
Joe Previte
a86c9afae4 Merge branch 'main' into patch-1 2021-05-24 14:27:59 -07:00
Joe Previte
c6d5da1c9c Merge pull request #3461 from cdr/jsjoeio/fix-3459
fix(ci): disable trivy-scan-image
2021-05-24 14:27:53 -07:00
Joe Previte
3d9f9221fa Merge branch 'main' into patch-1 2021-05-24 14:27:50 -07:00
Joe Previte
35f57e5ebb chore(security): upgrade browserslist 2021-05-24 14:21:00 -07:00
Joe Previte
ff93932ba2 fix: temporarily disable trivy-scan-image 2021-05-24 14:02:15 -07:00
Shiv
471e4ac72b updated changelog 2021-05-24 23:23:12 +05:30
Shiv Tyagi
9f3d575973 Merge branch 'main' into grammer-fix 2021-05-24 22:40:43 +05:30
Joe Previte
99542e67aa Merge pull request #3450 from cdr/dependabot/npm_and_yarn/eslint-plugin-import-2.23.3
chore(deps-dev): bump eslint-plugin-import from 2.23.2 to 2.23.3
2021-05-24 10:04:29 -07:00
Joe Previte
cf13e6bf52 Merge branch 'main' into dependabot/npm_and_yarn/eslint-plugin-import-2.23.3 2021-05-24 09:56:18 -07:00
Joe Previte
680a1e27c1 Merge pull request #3449 from cdr/dependabot/npm_and_yarn/eslint-7.27.0
chore(deps-dev): bump eslint from 7.26.0 to 7.27.0
2021-05-24 09:54:23 -07:00
Shiv
72b3fd9df4 fixed confusing sentence in pull requests section 2021-05-24 22:20:14 +05:30
dependabot[bot]
2d7bc7f675 chore(deps-dev): bump eslint-plugin-import from 2.23.2 to 2.23.3
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.23.2 to 2.23.3.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.23.2...v2.23.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 11:02:52 +00:00
dependabot[bot]
dc2d769161 chore(deps-dev): bump eslint from 7.26.0 to 7.27.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.26.0 to 7.27.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.26.0...v7.27.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 11:02:34 +00:00
Joe Previte
0608e86e3d Merge pull request #3440 from cdr/v3.10.2
release: 3.10.2
2021-05-21 16:43:19 -07:00
Joe Previte
ee78c31b4a Merge branch 'main' into patch-1 2021-05-21 10:46:41 -07:00
bobby
c1bc464150 Update docs/FAQ.md
Co-authored-by: Joe Previte <jjprevite@gmail.com>
2021-05-21 10:44:54 -07:00
bobby
9d7ac2aa60 Add Pomerium
RE: https://github.com/pomerium/pomerium/pull/2223
2021-05-19 17:23:30 -07:00
5317 changed files with 9118 additions and 1432379 deletions

View File

@@ -62,6 +62,11 @@ Additionally, collecting core dumps (you may need to enable them first) if
code-server crashes can be helpful.
-->
<!--
If you're having issues with installation please include the installation logs
i.e. the output of `yarn global add code-server` if you installed with `yarn`
-->
## Screenshot
<!-- Ideally provide a screenshot, gif, video or screen recording. -->

View File

@@ -5,6 +5,4 @@ If there is no existing issue, please first create one unless the fix is minor.
Please make sure the base of your PR is the default branch!
-->
## Checklist
- [ ] updated `CHANGELOG.md`
Fixes #

23
.github/codecov.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
codecov:
require_ci_to_pass: yes
allow_coverage_offsets: True
coverage:
precision: 2
round: down
range: "40...70"
status:
patch: off
parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: no
macro: no
comment:
layout: "reach,diff,flags,files,footer"
behavior: default
require_changes: no

View File

@@ -1,4 +1 @@
name: "code-server CodeQL config"
paths-ignore:
- lib/vscode

View File

@@ -1,32 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
time: "11:00"
ignore:
# GitHub always delivers the latest versions for each major
# release tag, so handle updates manually
- dependency-name: "actions/*"
- dependency-name: "github/codeql-action/*"
- dependency-name: "microsoft/playwright-github-action"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
time: "11:00"
ignore:
- dependency-name: "@types/node"
versions: ["15.x", "14.x", "13.x"]
- dependency-name: "xdg-basedir"
# 5.0.0 has breaking changes as they switch to named exports
# and convert the module to ESM
# We can't use it until we switch to ESM across the project
# See release notes: https://github.com/sindresorhus/xdg-basedir/releases/tag/v5.0.0
versions: ["5.x"]
- dependency-name: "limiter"
# 2.0.0 has breaking changes
# so we can't update yet.
versions: ["2.x"]

4
.github/ranger.yml vendored
View File

@@ -15,10 +15,6 @@ labels:
"squash when passing": merge
"rebase when passing": merge
"merge when passing": merge
stale:
action: close
delay: 7 days
comment: "⚠️ This issue has been marked stale and will automatically be closed in $DELAY."
"new contributor":
action: comment
delay: 5s

12
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 180
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 5
# Label to apply when stale.
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no activity occurs in the next 5 days.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@@ -1,4 +1,4 @@
name: ci
name: Build
on:
push:
@@ -18,16 +18,17 @@ jobs:
prebuild:
name: Pre-build checks
runs-on: ubuntu-latest
timeout-minutes: 15
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Install helm
uses: azure/setup-helm@v1.1
@@ -38,6 +39,8 @@ jobs:
with:
path: "**/node_modules"
key: yarn-build-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
yarn-build-
- name: Install dependencies
if: steps.cache-yarn.outputs.cache-hit != 'true'
@@ -63,14 +66,15 @@ jobs:
name: Run audit-ci
needs: prebuild
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Fetch dependencies from cache
id: cache-yarn
@@ -78,6 +82,8 @@ jobs:
with:
path: "**/node_modules"
key: yarn-build-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
yarn-build-
- name: Install dependencies
if: steps.cache-yarn.outputs.cache-hit != 'true'
@@ -91,50 +97,57 @@ jobs:
name: Build
needs: prebuild
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Fetch dependencies from cache
id: cache-yarn
uses: actions/cache@v2
with:
path: "**/node_modules"
key: yarn-build-${{ hashFiles('**/yarn.lock') }}
# TODO@Teffen investigate why this omits code-oss-dev/node_modules
# - name: Fetch dependencies from cache
# id: cache-yarn
# uses: actions/cache@v2
# with:
# path: |
# "**/node_modules"
# "**/vendor/modules"
# "**/vendor/modules/code-oss-dev/node_modules"
# key: yarn-build-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/vendor/yarn.lock') }}
# restore-keys: |
# yarn-build-
- name: Install dependencies
if: steps.cache-yarn.outputs.cache-hit != 'true'
# if: steps.cache-yarn.outputs.cache-hit != 'true'
run: yarn --frozen-lockfile
- name: Build code-server
run: yarn build
# Parse the hash of the latest commit inside lib/vscode
# Parse the hash of the latest commit inside vendor/modules/code-oss-dev
# use this to avoid rebuilding it if nothing changed
# How it works: the `git log` command fetches the hash of the last commit
# that changed a file inside `lib/vscode`. If a commit changes any file in there,
# that changed a file inside `vendor/modules/code-oss-dev`. If a commit changes any file in there,
# the hash returned will change, and we rebuild vscode. If the hash did not change,
# (for example, a change to `src/` or `docs/`), we reuse the same build as last time.
# This saves a lot of time in CI, as compiling VSCode can take anywhere from 5-10 minutes.
- name: Get latest lib/vscode rev
- name: Get latest vendor/modules/code-oss-dev rev
id: vscode-rev
run: echo "::set-output name=rev::$(git log -1 --format='%H' ./lib/vscode)"
run: echo "::set-output name=rev::$(jq -r '.devDependencies["code-oss-dev"]' vendor/package.json | sed -r 's|.*#(.*)$|\1|')"
- name: Attempt to fetch vscode build from cache
id: cache-vscode
uses: actions/cache@v2
with:
path: |
lib/vscode/.build
lib/vscode/out-build
lib/vscode/out-vscode
lib/vscode/out-vscode-min
vendor/modules/code-oss-dev/.build
vendor/modules/code-oss-dev/out-build
vendor/modules/code-oss-dev/out-vscode
vendor/modules/code-oss-dev/out-vscode-min
key: vscode-build-${{ steps.vscode-rev.outputs.rev }}
- name: Build vscode
@@ -164,15 +177,16 @@ jobs:
name: x86-64 Linux build
needs: build
runs-on: ubuntu-latest
timeout-minutes: 15
container: "centos:7"
steps:
- uses: actions/checkout@v2
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Install development tools
run: |
@@ -224,30 +238,40 @@ jobs:
# It is not feasible to cross-compile with CentOS.
# Cross-compile notes: To compile native dependencies for arm64,
# we install the aarch64 cross toolchain and then set it as the default
# we install the aarch64/armv7l cross toolchain and then set it as the default
# compiler/linker/etc. with the AR/CC/CXX/LINK environment variables.
# qemu-user-static on ubuntu-16.04 currently doesn't run Node correctly,
# so we just build with "native"/x86_64 node, then download arm64 node
# and then put it in our release. We can't smoke test the arm64 build this way,
# so we just build with "native"/x86_64 node, then download arm64/armv7l node
# and then put it in our release. We can't smoke test the cross build this way,
# but this means we don't need to maintain a self-hosted runner!
package-linux-arm64:
name: Linux ARM64 cross-compile build
package-linux-cross:
name: Linux cross-compile builds
needs: build
runs-on: ubuntu-16.04
timeout-minutes: 15
strategy:
matrix:
include:
- prefix: aarch64-linux-gnu
arch: arm64
- prefix: arm-linux-gnueabihf
arch: armv7l
env:
AR: aarch64-linux-gnu-ar
CC: aarch64-linux-gnu-gcc
CXX: aarch64-linux-gnu-g++
LINK: aarch64-linux-gnu-g++
NPM_CONFIG_ARCH: arm64
AR: ${{ format('{0}-ar', matrix.prefix) }}
CC: ${{ format('{0}-gcc', matrix.prefix) }}
CXX: ${{ format('{0}-g++', matrix.prefix) }}
LINK: ${{ format('{0}-g++', matrix.prefix) }}
NPM_CONFIG_ARCH: ${{ matrix.arch }}
NODE_VERSION: v14.17.4
steps:
- uses: actions/checkout@v2
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Install nfpm
run: |
@@ -255,7 +279,9 @@ jobs:
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install cross-compiler
run: sudo apt install g++-aarch64-linux-gnu
run: sudo apt install $PACKAGE
env:
PACKAGE: ${{ format('g++-{0}', matrix.prefix) }}
- name: Download npm package
uses: actions/download-artifact@v2
@@ -268,14 +294,14 @@ jobs:
- name: Build standalone release
run: yarn release:standalone
- name: Replace node with arm64 equivalent
- name: Replace node with cross-compile equivalent
run: |
wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-arm64.tar.gz
tar -xzf node-v12.18.4-linux-arm64.tar.gz node-v12.18.4-linux-arm64/bin/node --strip-components=2
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NPM_CONFIG_ARCH}.tar.xz
tar -xf node-${NODE_VERSION}-linux-${NPM_CONFIG_ARCH}.tar.xz node-${NODE_VERSION}-linux-${NPM_CONFIG_ARCH}/bin/node --strip-components=2
mv ./node ./release-standalone/lib/node
- name: Build packages with nfpm
run: yarn package arm64
run: yarn package ${NPM_CONFIG_ARCH}
- name: Upload release artifacts
uses: actions/upload-artifact@v2
@@ -287,13 +313,14 @@ jobs:
name: x86-64 macOS build
needs: build
runs-on: macos-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Install nfpm
run: |
@@ -327,19 +354,21 @@ jobs:
name: End-to-end tests
needs: package-linux-amd64
runs-on: ubuntu-latest
timeout-minutes: 15
env:
PASSWORD: e45432jklfdsab
CODE_SERVER_ADDRESS: http://localhost:8080
# Since we build code-server we might as well run tests from the release
# since VS Code will load faster due to the bundling.
CODE_SERVER_TEST_ENTRY: "./release-packages/code-server-linux-amd64"
steps:
- uses: actions/checkout@v2
- name: Install Node.js v12
- name: Install Node.js v14
uses: actions/setup-node@v2
with:
node-version: "12"
node-version: "14"
- name: Install playwright
uses: microsoft/playwright-github-action@v1
- name: Install playwright OS dependencies
run: npx playwright install-deps
- name: Fetch dependencies from cache
id: cache-yarn
@@ -347,6 +376,8 @@ jobs:
with:
path: "**/node_modules"
key: yarn-build-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
yarn-build-
- name: Download release packages
uses: actions/download-artifact@v2
@@ -354,9 +385,11 @@ jobs:
name: release-packages
path: ./release-packages
- name: Untar code-server file
- name: Untar code-server release
run: |
cd release-packages && tar -xzf code-server*-linux-amd64.tar.gz
cd release-packages
tar -xzf code-server*-linux-amd64.tar.gz
mv code-server*-linux-amd64 code-server-linux-amd64
- name: Install dependencies
if: steps.cache-yarn.outputs.cache-hit != 'true'
@@ -372,9 +405,7 @@ jobs:
yarn install --check-files
- name: Run end-to-end tests
run: |
./release-packages/code-server*-linux-amd64/bin/code-server --log trace &
yarn test:e2e
run: yarn test:e2e
- name: Upload test artifacts
if: always()
@@ -386,84 +417,6 @@ jobs:
- name: Remove release packages and test artifacts
run: rm -rf ./release-packages ./test/test-results
docker-amd64:
runs-on: ubuntu-latest
needs: package-linux-amd64
steps:
- uses: actions/checkout@v2
- name: Download release package
uses: actions/download-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Run ./ci/steps/build-docker-image.sh
run: ./ci/steps/build-docker-image.sh
- name: Upload release image
uses: actions/upload-artifact@v2
with:
name: release-images
path: ./release-images
# TODO: this is the last place where we use our self-hosted arm64 runner.
# In the future, consider switching to docker buildx + qemu,
# thus removing the requirement for us to maintain the runner.
docker-arm64:
runs-on: ubuntu-arm64-latest
needs: package-linux-arm64
steps:
- uses: actions/checkout@v2
- name: Download release package
uses: actions/download-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Run ./ci/steps/build-docker-image.sh
run: ./ci/steps/build-docker-image.sh
- name: Upload release image
uses: actions/upload-artifact@v2
with:
name: release-images
path: ./release-images
trivy-scan-image:
runs-on: ubuntu-20.04
needs: docker-amd64
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Download release images
uses: actions/download-artifact@v2
with:
name: release-images
path: ./release-images
- name: Run Trivy vulnerability scanner in image mode
# Commit SHA for v0.0.17
uses: aquasecurity/trivy-action@dba83feec810c70bacbc4bead308ae1e466c572b
with:
input: "./release-images/code-server-amd64-*.tar"
scan-type: "image"
ignore-unfixed: true
format: "template"
template: "@/contrib/sarif.tpl"
output: "trivy-image-results.sarif"
severity: "HIGH,CRITICAL"
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: "trivy-image-results.sarif"
# We have to use two trivy jobs
# because GitHub only allows
# codeql/upload-sarif action per job
trivy-scan-repo:
runs-on: ubuntu-20.04
steps:
@@ -471,7 +424,7 @@ jobs:
uses: actions/checkout@v2
- name: Run Trivy vulnerability scanner in repo mode
#Commit SHA for v0.0.17
uses: aquasecurity/trivy-action@dba83feec810c70bacbc4bead308ae1e466c572b
uses: aquasecurity/trivy-action@8eccb5539730451af599c84f444c6d6cf0fc2bb0
with:
scan-type: "fs"
scan-ref: "."

28
.github/workflows/docker.yaml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: Publish on Docker
on:
# Shows the manual trigger in GitHub UI
# helpful as a back-up in case the GitHub Actions Workflow fails
workflow_dispatch:
release:
types: [published]
jobs:
docker-images:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Run ./ci/steps/docker-buildx-push.sh
run: ./ci/steps/docker-buildx-push.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

94
.github/workflows/docs-preview.yaml vendored Normal file
View File

@@ -0,0 +1,94 @@
name: Docs preview
on:
pull_request:
branches:
- main
permissions:
actions: none
checks: none
contents: read
deployments: none
issues: none
packages: none
pull-requests: write
repository-projects: none
security-events: none
statuses: none
jobs:
preview:
name: Docs preview
runs-on: ubuntu-20.04
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.9.1
- name: Checkout m
uses: actions/checkout@v2
with:
repository: cdr/m
ref: refs/heads/master
token: ${{ secrets.GH_ACCESS_TOKEN }}
submodules: true
fetch-depth: 0
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: 12.x
- name: Cache Node Modules
uses: actions/cache@v2
with:
path: "/node_modules"
key: node-${{ hashFiles('yarn.lock') }}
- name: Create Deployment
id: deployment
run: ./ci/scripts/github_deployment.sh create
env:
GITHUB_TOKEN: ${{ github.token }}
DEPLOY_ENVIRONMENT: codercom-preview-docs
- name: Deploy Preview to Vercel
id: preview
run: ./ci/scripts/deploy_vercel.sh
env:
VERCEL_ORG_ID: team_tGkWfhEGGelkkqUUm9nXq17r
VERCEL_PROJECT_ID: QmZRucMRh3GFk1817ZgXjRVuw5fhTspHPHKct3JNQDEPGd
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
CODE_SERVER_DOCS_MAIN_BRANCH: ${{ github.event.pull_request.head.sha }}
- name: Install node_modules
run: yarn install
- name: Check docs
run: yarn ts-node ./product/coder.com/site/scripts/checkDocs.ts
env:
BASE_URL: ${{ steps.preview.outputs.url }}
- name: Update Deployment
# If we don't specify always, it won't run this check if failed.
# This means the deployment would be stuck pending.
if: always()
run: ./ci/scripts/github_deployment.sh update
env:
GITHUB_DEPLOYMENT: ${{ steps.deployment.outputs.id }}
GITHUB_TOKEN: ${{ github.token }}
DEPLOY_STATUS: ${{ steps.preview.outcome }}
DEPLOY_URL: ${{ steps.preview.outputs.url }}
- name: Comment Credentials
uses: marocchino/sticky-pull-request-comment@v2
if: always()
with:
header: codercom-preview-docs
message: |
✨ Coder.com for PR #${{ github.event.number }} deployed! It will be updated on every commit.
* _Host_: ${{ steps.preview.outputs.url }}/docs/code-server
* _Last deploy status_: ${{ steps.preview.outcome }}
* _Commit_: ${{ github.event.pull_request.head.sha }}
* _Workflow status_: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}

57
.github/workflows/installer.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Installer integration
on:
push:
branches:
- main
paths:
- "installer.sh"
pull_request:
branches:
- main
jobs:
ubuntu:
name: Test installer on Ubuntu
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install code-server
run: ./install.sh
- name: Test code-server
run: yarn test:standalone-release code-server
alpine:
name: Test installer on Alpine
runs-on: ubuntu-latest
container: "alpine:3.14"
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install curl
run: apk add curl
- name: Add user
run: adduser coder --disabled-password
# Standalone should work without root.
- name: Test standalone to a non-existent prefix
run: su coder -c "./install.sh --method standalone --prefix /tmp/does/not/yet/exist"
macos:
name: Test installer on macOS
runs-on: macos-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install code-server
run: ./install.sh
- name: Test code-server
run: yarn test:standalone-release code-server

View File

@@ -1,4 +1,4 @@
name: publish
name: Publish on npm and brew
on:
# Shows the manual trigger in GitHub UI
@@ -22,26 +22,19 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# NOTE: this job requires curl, jq and docker
# All of them are included in ubuntu-latest.
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run ./ci/steps/push-docker-manifest.sh
run: ./ci/steps/push-docker-manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
homebrew:
# The newest version of code-server needs to be available on npm when this runs
# otherwise, it will 404 and won't open a PR to bump version on homebrew/homebrew-core
needs: npm
runs-on: macos-latest
steps:
# Ensure things are up to date
# Suggested by homebrew maintainers
# https://github.com/Homebrew/discussions/discussions/1532#discussioncomment-782633
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- uses: actions/checkout@v2
- name: Configure git
run: |

30
.github/workflows/scripts.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Script unit tests
on:
push:
branches:
- main
paths:
- "installer.sh"
pull_request:
branches:
- main
jobs:
test:
name: Run script unit tests
runs-on: ubuntu-latest
# This runs on Alpine to make sure we're testing with actual sh.
container: "alpine:3.14"
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install test utilities
run: apk add bats checkbashisms
- name: Check Bashisms
run: checkbashisms ./install.sh
- name: Run script unit tests
run: ./ci/dev/test-scripts.sh

5
.gitignore vendored
View File

@@ -1,7 +1,6 @@
.tsbuildinfo
.cache
dist*
out*
/out*/
release/
release-npm-package/
release-standalone/
@@ -9,7 +8,7 @@ release-packages/
release-gcp/
release-images/
node_modules
/lib/vscode/node_modules.asar
vendor/modules
node-*
/plugins
/lib/coder-cloud-agent

1
.node-version Normal file
View File

@@ -0,0 +1 @@
14

1
.nvmrc Symbolic link
View File

@@ -0,0 +1 @@
.node-version

View File

@@ -143,9 +143,9 @@
"description": "Static images and the manifest live here in `src/browser/media` (see the explorer)."
},
{
"directory": "lib/vscode",
"directory": "vendor/modules/code-oss-dev",
"line": 1,
"description": "code-server makes use of VS Code's frontend web/remote support. Most of the modifications implement the remote server since that portion of the code is closed source and not released with VS Code.\n\nWe also have a few bug fixes and have added some features (like client-side extensions). See [https://github.com/cdr/code-server/blob/master/docs/CONTRIBUTING.md#modifications-to-vs-code](https://github.com/cdr/code-server/blob/master/docs/CONTRIBUTING.md#modifications-to-vs-code) for a list.\n\nWe make an effort to keep the modifications as few as possible."
}
]
}
}

View File

@@ -5,7 +5,7 @@
{
"file": "package.json",
"line": 31,
"description": "## Commands\n\nTo start developing, make sure you have Node 12+ and the [required dependencies](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites) installed. Then, run the following commands:\n\n1. Install dependencies:\n>> yarn\n\n3. Start development mode (and watch for changes):\n>> yarn watch"
"description": "## Commands\n\nTo start developing, make sure you have Node 14+ and the [required dependencies](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites) installed. Then, run the following commands:\n\n1. Install dependencies:\n>> yarn\n\n3. Start development mode (and watch for changes):\n>> yarn watch"
},
{
"file": "src/node/app.ts",

View File

@@ -1,25 +1,3 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Changelog
- [Changelog](#changelog)
- [3.10.2](#3102)
- [New Features](#new-features)
- [Bug Fixes](#bug-fixes)
- [Development](#development)
- [3.10.1](#3101)
- [Bug Fixes](#bug-fixes-1)
- [Documentation](#documentation)
- [Development](#development-1)
- [3.10.0](#3100)
- [New Features](#new-features-1)
- [Bug Fixes](#bug-fixes-2)
- [Documentation](#documentation-1)
- [Development](#development-2)
- [Previous versions](#previous-versions)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Changelog
<!--
@@ -55,6 +33,40 @@ VS Code v0.00.0
-->
## Next Version
VS Code v0.00.0
### New Features
- item
### Bug Fixes
- Fix logout when using a base path (#3608)
### Documentation
- docs: add Pomerium #3424 @desimone
- docs: fix confusing sentence in pull requests section #3460 @shiv-tyagi
- docs: remove toc from changelog @oxy @jsjoeio
- docs(MAINTAINING): add information about CHANGELOG #3467 @jsjoeio
- docs: move release process to MAINTAINING.md #3441 @oxy @Prashant168
- docs: format 'Caddy' from guide.md @PisecesPeng
### Development
- chore: cross-compile docker images with buildx #3166 @oxy
- chore: update node to v14 #3458 @oxy
- chore: update .gitignore #3557 @cuining
- fix: use sufficient computational effort for password hash #3422 @jsjoeio
- docs(CONTRIBUTING): add section on testing #3629 @jsjoeio
### Development
- fix(publish): update cdrci fork in brew-bump.sh #3468 @jsjoeio
- chore(dev): migrate away from parcel #3578 @jsjoeio
## 3.10.2
VS Code v1.56.1

View File

@@ -1,77 +0,0 @@
# code-server &middot; [!["GitHub Discussions"](https://img.shields.io/badge/%20GitHub-%20Discussions-gray.svg?longCache=true&logo=github&colorB=purple)](https://github.com/cdr/code-server/discussions) [!["Join us on Slack"](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=brightgreen)](https://cdr.co/join-community) [![Twitter Follow](https://img.shields.io/twitter/follow/CoderHQ?label=%40CoderHQ&style=social)](https://twitter.com/coderhq)
[![codecov](https://codecov.io/gh/cdr/code-server/branch/main/graph/badge.svg?token=5iM9farjnC)](https://codecov.io/gh/cdr/code-server)
[![See latest docs](https://img.shields.io/static/v1?label=Docs&message=see%20latest%20&color=blue)](https://github.com/cdr/code-server/tree/v3.10.2/docs)
Run [VS Code](https://github.com/Microsoft/vscode) on any machine anywhere and access it in the browser.
![Screenshot](./docs/assets/screenshot.png)
## Highlights
- Code on any device with a consistent development environment
- Use cloud servers to speed up tests, compilations, downloads, and more
- Preserve battery life when you're on the go; all intensive tasks run on your server
## Requirements
For a good experience, we recommend at least:
- 1 GB of RAM
- 2 cores
You can use whatever linux distribution floats your boat but in our [guide](./docs/guide.md) we assume Debian on Google Cloud.
## Getting Started
There are three ways you can get started:
1. Using the [install script](./install.sh), which automates most of the process. The script uses the system package manager (if possible)
2. Manually installing code-server; see [Installation](./docs/install.md) for instructions applicable to most use cases
3. Use our one-click buttons and guides to [deploy code-server to a popular cloud provider](https://github.com/cdr/deploy-code-server) ⚡
If you choose to use the install script, you can preview what occurs during the install process:
```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
```
To install, run:
```bash
curl -fsSL https://code-server.dev/install.sh | sh
```
When done, the install script prints out instructions for running and starting code-server.
We also have an in-depth [setup and configuration](./docs/guide.md) guide.
### code-server --link
We're working on a cloud platform that makes deploying and managing code-server easier.
Consider running code-server with the beta flag `--link` if you don't want to worry about
- TLS
- Authentication
- Port Forwarding
```bash
$ code-server --link
Proxying code-server, you can access your IDE at https://valmar-jon.cdr.co
```
## FAQ
See [./docs/FAQ.md](./docs/FAQ.md).
## Want to help?
See [CONTRIBUTING](./docs/CONTRIBUTING.md) for details.
## Hiring
Interested in [working at Coder](https://coder.com)? Check out [our open positions](https://jobs.lever.co/coder)!
## For Organizations
Visit [our website](https://coder.com) for more information about remote development for your organization or enterprise.

View File

@@ -10,28 +10,6 @@ Any file or directory in this subdirectory should be documented here.
- [./ci/lib.sh](./lib.sh)
- Contains code duplicated across these scripts.
## Publishing a release
1. Run `yarn release:prep` and type in the new version i.e. 3.8.1
2. GitHub actions will generate the `npm-package`, `release-packages` and `release-images` artifacts.
1. You do not have to wait for these.
3. Run `yarn release:github-draft` to create a GitHub draft release from the template with
the updated version.
1. Summarize the major changes in the release notes and link to the relevant issues.
2. Change the @ to target the version branch. Example: `v3.9.0 @ Target: v3.9.0`
4. Wait for the artifacts in step 2 to build.
5. Run `yarn release:github-assets` to download the `release-packages` artifact.
- It will upload them to the draft release.
6. Run some basic sanity tests on one of the released packages.
- Especially make sure the terminal works fine.
7. Publish the release and merge the PR.
1. CI will automatically grab the artifacts and then:
1. Publish the NPM package from `npm-package`.
2. Publish the Docker Hub image from `release-images`.
8. Update the AUR package.
- Instructions on updating the AUR package are at [cdr/code-server-aur](https://github.com/cdr/code-server-aur).
9. Wait for the npm package to be published.
## dev
This directory contains scripts used for the development of code-server.
@@ -100,8 +78,8 @@ You can disable minification by setting `MINIFY=`.
This directory contains the release docker container image.
- [./release-image/build.sh](./release-image/build.sh)
- Builds the release container with the tag `codercom/code-server-$ARCH:$VERSION`.
- [./ci/steps/build-docker-buildx-push.sh](./ci/steps/docker-buildx-push.sh)
- Builds the release containers with tags `codercom/code-server-$ARCH:$VERSION` for amd64 and arm64 with `docker buildx` and pushes them.
- Assumes debian releases are ready in `./release-packages`.
## images
@@ -129,8 +107,8 @@ Helps avoid clobbering the CI configuration.
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)
- Builds the docker image and then saves it into `./release-images/code-server-$ARCH-$VERSION.tar`.
- [./steps/docker-buildx-push.sh](./steps/docker-buildx-push.sh)
- Builds the docker image and then pushes it.
- [./steps/push-docker-manifest.sh](./steps/push-docker-manifest.sh)
- Loads all images in `./release-images` and then builds and pushes a multi architecture
docker manifest for the amd64 and arm64 images to `codercom/code-server:$VERSION` and

View File

@@ -0,0 +1,8 @@
{
"rpm": {
"armv7l": "armhfp"
},
"deb": {
"armv7l": "armhf"
}
}

View File

@@ -3,9 +3,6 @@ set -euo pipefail
# Builds code-server into out and the frontend into dist.
# MINIFY controls whether parcel minifies dist.
MINIFY=${MINIFY-true}
main() {
cd "$(dirname "${0}")/../.."
@@ -32,14 +29,9 @@ main() {
set -e
fi
parcel build \
--public-url "." \
--out-dir dist \
$([[ $MINIFY ]] || echo --no-minify) \
src/browser/register.ts \
src/browser/serviceWorker.ts \
src/browser/pages/login.ts \
src/browser/pages/vscode.ts
yarn browserify out/browser/register.js -o out/browser/register.browserified.js
yarn browserify out/browser/pages/login.js -o out/browser/pages/login.browserified.js
yarn browserify out/browser/pages/vscode.js -o out/browser/pages/vscode.browserified.js
}
main "$@"

View File

@@ -43,14 +43,31 @@ release_gcp() {
cp "./release-packages/$release_name.tar.gz" "./release-gcp/latest/$OS-$ARCH.tar.gz"
}
# On some CPU architectures (notably node/uname "armv7l", default on Raspberry Pis),
# different package managers have different labels for the same CPU (deb=armhf, rpm=armhfp).
# This function parses arch-override.json and returns the overriden arch on platforms
# with alternate labels, or the same arch otherwise.
get_nfpm_arch() {
if jq -re ".${PKG_FORMAT}.${ARCH}" ./ci/build/arch-override.json > /dev/null; then
jq -re ".${PKG_FORMAT}.${ARCH}" ./ci/build/arch-override.json
else
echo "$ARCH"
fi
}
# Generates deb and rpm packages.
release_nfpm() {
local nfpm_config
nfpm_config="$(envsubst <./ci/build/nfpm.yaml)"
# The underscores are convention for .deb.
nfpm pkg -f <(echo "$nfpm_config") --target "release-packages/code-server_${VERSION}_$ARCH.deb"
nfpm pkg -f <(echo "$nfpm_config") --target "release-packages/code-server-$VERSION-$ARCH.rpm"
PKG_FORMAT="deb"
NFPM_ARCH="$(get_nfpm_arch)"
nfpm_config="$(envsubst < ./ci/build/nfpm.yaml)"
nfpm pkg -f <(echo "$nfpm_config") --target "release-packages/code-server_${VERSION}_${NFPM_ARCH}.deb"
PKG_FORMAT="rpm"
NFPM_ARCH="$(get_nfpm_arch)"
nfpm_config="$(envsubst < ./ci/build/nfpm.yaml)"
nfpm pkg -f <(echo "$nfpm_config") --target "release-packages/code-server-$VERSION-$NFPM_ARCH.rpm"
}
main "$@"

View File

@@ -12,29 +12,31 @@ KEEP_MODULES="${KEEP_MODULES-0}"
main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
VSCODE_SRC_PATH="lib/vscode"
VSCODE_OUT_PATH="$RELEASE_PATH/lib/vscode"
VSCODE_SRC_PATH="vendor/modules/code-oss-dev"
VSCODE_OUT_PATH="$RELEASE_PATH/vendor/modules/code-oss-dev"
mkdir -p "$RELEASE_PATH"
bundle_code_server
bundle_vscode
rsync README.md "$RELEASE_PATH"
rsync ./docs/README.md "$RELEASE_PATH"
rsync LICENSE.txt "$RELEASE_PATH"
rsync ./lib/vscode/ThirdPartyNotices.txt "$RELEASE_PATH"
rsync ./vendor/modules/code-oss-dev/ThirdPartyNotices.txt "$RELEASE_PATH"
}
bundle_code_server() {
rsync out dist "$RELEASE_PATH"
rsync out "$RELEASE_PATH"
# For source maps and images.
mkdir -p "$RELEASE_PATH/src/browser"
rsync src/browser/media/ "$RELEASE_PATH/src/browser/media"
mkdir -p "$RELEASE_PATH/src/browser/pages"
rsync src/browser/pages/*.html "$RELEASE_PATH/src/browser/pages"
rsync src/browser/pages/*.css "$RELEASE_PATH/src/browser/pages"
rsync src/browser/robots.txt "$RELEASE_PATH/src/browser"
# Add typings for plugins
@@ -43,15 +45,15 @@ bundle_code_server() {
# Adds the commit to package.json
jq --slurp '.[0] * .[1]' package.json <(
cat <<EOF
cat << EOF
{
"commit": "$(git rev-parse HEAD)",
"scripts": {
"postinstall": "./postinstall.sh"
"postinstall": "bash ./postinstall.sh"
}
}
EOF
) >"$RELEASE_PATH/package.json"
) > "$RELEASE_PATH/package.json"
rsync yarn.lock "$RELEASE_PATH"
rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh"
@@ -81,20 +83,22 @@ bundle_vscode() {
rsync "$VSCODE_SRC_PATH/resources/linux/code.png" "$VSCODE_OUT_PATH/resources/linux/code.png"
rsync "$VSCODE_SRC_PATH/resources/web/callback.html" "$VSCODE_OUT_PATH/resources/web/callback.html"
# Adds the commit and date to product.json
# Add the commit and date and enable telemetry. This just makes telemetry
# available; telemetry can still be disabled by flag or setting.
jq --slurp '.[0] * .[1]' "$VSCODE_SRC_PATH/product.json" <(
cat <<EOF
cat << EOF
{
"enableTelemetry": true,
"commit": "$(git rev-parse HEAD)",
"date": $(jq -n 'now | todate')
}
EOF
) >"$VSCODE_OUT_PATH/product.json"
) > "$VSCODE_OUT_PATH/product.json"
# We remove the scripts field so that later on we can run
# yarn to fetch node_modules if necessary without build scripts running.
# We cannot use --no-scripts because we still want dependent package scripts to run.
jq 'del(.scripts)' <"$VSCODE_SRC_PATH/package.json" >"$VSCODE_OUT_PATH/package.json"
jq 'del(.scripts)' < "$VSCODE_SRC_PATH/package.json" > "$VSCODE_OUT_PATH/package.json"
pushd "$VSCODE_OUT_PATH"
symlink_asar

View File

@@ -1,8 +1,13 @@
#!/usr/bin/env bash
set -euo pipefail
# This is due to an upstream issue with RHEL7/CentOS 7 comptability with node-argon2
# See: https://github.com/cdr/code-server/pull/3422#pullrequestreview-677765057
export npm_config_build_from_source=true
main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
rsync "$RELEASE_PATH/" "$RELEASE_PATH-standalone"
@@ -12,9 +17,10 @@ main() {
# we use the same version it's using so we instead run a script with yarn that
# will print the path to node.
local node_path
node_path="$(yarn -s node <<<'console.info(process.execPath)')"
node_path="$(yarn -s node <<< 'console.info(process.execPath)')"
mkdir -p "$RELEASE_PATH/bin"
mkdir -p "$RELEASE_PATH/lib"
rsync ./ci/build/code-server.sh "$RELEASE_PATH/bin/code-server"
rsync "$node_path" "$RELEASE_PATH/lib/node"
@@ -23,6 +29,12 @@ main() {
cd "$RELEASE_PATH"
yarn --production --frozen-lockfile
# HACK: the version of Typescript vscode 1.57 uses in extensions/
# leaves a few stray symlinks. Clean them up so nfpm does not fail.
# Remove this line when its no longer needed.
rm -fr "$RELEASE_PATH/vendor/modules/code-oss-dev/extensions/node_modules/.bin"
}
main "$@"

View File

@@ -1,16 +1,17 @@
#!/usr/bin/env bash
set -euo pipefail
# Builds vscode into lib/vscode/out-vscode.
# Builds vscode into vendor/modules/code-oss-dev/out-vscode.
# MINIFY controls whether a minified version of vscode is built.
MINIFY=${MINIFY-true}
main() {
cd "$(dirname "${0}")/../.."
cd lib/vscode
yarn gulp compile-build compile-extensions-build
cd vendor/modules/code-oss-dev
yarn gulp compile-build compile-extensions-build compile-extension-media
yarn gulp optimize --gulpfile ./coder.js
if [[ $MINIFY ]]; then
yarn gulp minify --gulpfile ./coder.js

View File

@@ -6,10 +6,6 @@ main() {
source ./ci/lib.sh
git clean -Xffd
pushd lib/vscode
git clean -xffd
popd
}
main "$@"

View File

@@ -1,5 +1,5 @@
name: "code-server"
arch: "${ARCH}"
arch: "${NFPM_ARCH}"
platform: "linux"
version: "v${VERSION}"
section: "devel"

View File

@@ -4,29 +4,43 @@ set -eu
# Copied from arch() in ci/lib.sh.
detect_arch() {
case "$(uname -m)" in
aarch64)
echo arm64
;;
x86_64 | amd64)
echo amd64
;;
*)
# This will cause the download to fail, but is intentional
uname -m
;;
aarch64)
echo arm64
;;
x86_64 | amd64)
echo amd64
;;
*)
# This will cause the download to fail, but is intentional
uname -m
;;
esac
}
ARCH="${NPM_CONFIG_ARCH:-$(detect_arch)}"
# This is due to an upstream issue with RHEL7/CentOS 7 comptability with node-argon2
# See: https://github.com/cdr/code-server/pull/3422#pullrequestreview-677765057
export npm_config_build_from_source=true
main() {
# Grabs the major version of node from $npm_config_user_agent which looks like
# yarn/1.21.1 npm/? node/v14.2.0 darwin x64
major_node_version=$(echo "$npm_config_user_agent" | sed -n 's/.*node\/v\([^.]*\).*/\1/p')
if [ "$major_node_version" -lt 12 ]; then
echo "code-server currently requires at least node v12"
if [ -n "${FORCE_NODE_VERSION:-}" ]; then
echo "WARNING: Overriding required Node.js version to v$FORCE_NODE_VERSION"
echo "This could lead to broken functionality, and is unsupported."
echo "USE AT YOUR OWN RISK!"
fi
if [ "$major_node_version" -ne "${FORCE_NODE_VERSION:-14}" ]; then
echo "ERROR: code-server currently requires node v14."
if [ -n "$FORCE_NODE_VERSION" ]; then
echo "However, you have overrided the version check to use v$FORCE_NODE_VERSION."
fi
echo "We have detected that you are on node v$major_node_version"
echo "See https://github.com/cdr/code-server/issues/1633"
echo "You can override this version check by setting \$FORCE_NODE_VERSION,"
echo "but configurations that do not use the same node version are unsupported."
exit 1
fi
@@ -54,11 +68,17 @@ main() {
echo "Please see https://github.com/cdr/code-server/blob/master/docs/npm.md"
exit 1
fi
if [ -n "${FORCE_NODE_VERSION:-}" ]; then
echo "WARNING: The required Node.js version was overriden to v$FORCE_NODE_VERSION"
echo "This could lead to broken functionality, and is unsupported."
echo "USE AT YOUR OWN RISK!"
fi
}
# This is a copy of symlink_asar in ../lib.sh. Look there for details.
symlink_asar() {
rm -f node_modules.asar
rm -rf node_modules.asar
if [ "${WINDIR-}" ]; then
mklink /J node_modules.asar node_modules
else
@@ -67,13 +87,15 @@ symlink_asar() {
}
vscode_yarn() {
cd lib/vscode
echo 'Installing vendor dependencies...'
cd vendor/modules/code-oss-dev
yarn --production --frozen-lockfile
symlink_asar
cd extensions
yarn --production --frozen-lockfile
for ext in */; do
ext="${ext%/}"
echo "extensions/$ext: installing dependencies"

View File

@@ -10,7 +10,7 @@ main() {
gh release create "v$VERSION" \
--notes-file - \
--target "$(git rev-parse HEAD)" \
--draft <<EOF
--draft << EOF
v$VERSION
VS Code v$(vscode_version)

View File

@@ -20,7 +20,7 @@ main() {
cd "$(dirname "$0")/../.."
# Check that gh is installed
if ! command -v gh &>/dev/null; then
if ! command -v gh &> /dev/null; then
echo "gh could not be found."
echo "We use this with the release-github-draft.sh and release-github-assets.sh scripts."
echo -e "See docs here: https://github.com/cli/cli#installation"
@@ -28,7 +28,7 @@ main() {
fi
# Check that they have jq installed
if ! command -v jq &>/dev/null; then
if ! command -v jq &> /dev/null; then
echo "jq could not be found."
echo "We use this to parse the package.json and grab the current version of code-server."
echo -e "See docs here: https://stedolan.github.io/jq/download/"
@@ -36,7 +36,7 @@ main() {
fi
# Check that they have rg installed
if ! command -v rg &>/dev/null; then
if ! command -v rg &> /dev/null; then
echo "rg could not be found."
echo "We use this when updating files across the codebase."
echo -e "See docs here: https://github.com/BurntSushi/ripgrep#installation"
@@ -44,7 +44,7 @@ main() {
fi
# Check that they have node installed
if ! command -v node &>/dev/null; then
if ! command -v node &> /dev/null; then
echo "node could not be found."
echo "That's surprising..."
echo "We use it in this script for getting the package.json version"
@@ -53,7 +53,7 @@ main() {
fi
# Check that gh is authenticated
if ! gh auth status -h github.com &>/dev/null; then
if ! gh auth status -h github.com &> /dev/null; then
echo "gh isn't authenticated to github.com."
echo "This is needed for our scripts that use gh."
echo -e "See docs regarding authentication: https://cli.github.com/manual/gh_auth_login"

View File

@@ -1,7 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
# Makes sure the release works.
# Make sure a code-server release works. You can pass in the path otherwise it
# will use release-standalone in the current directory.
#
# This is to make sure we don't have Node version errors or any other
# compilation-related errors.
main() {
@@ -10,12 +12,14 @@ main() {
local EXTENSIONS_DIR
EXTENSIONS_DIR="$(mktemp -d)"
echo "Testing standalone release."
local path=${1:-./release-standalone/bin/code-server}
# Note: using a basic theme extension because it doesn't update often and is more reliable for testing
./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --install-extension wesbos.theme-cobalt2
echo "Testing standalone release in $path."
# NOTE: using a basic theme extension because it doesn't update often and is more reliable for testing
"$path" --extensions-dir "$EXTENSIONS_DIR" --install-extension wesbos.theme-cobalt2
local installed_extensions
installed_extensions="$(./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)"
installed_extensions="$("$path" --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)"
# We use grep as wesbos.theme-cobalt2 may have dependency extensions that change.
if ! echo "$installed_extensions" | grep -q "wesbos.theme-cobalt2"; then
echo "Unexpected output from listing extensions:"

View File

@@ -19,20 +19,20 @@ main() {
"*.sh"
)
prettier --write --loglevel=warn $(
git ls-files "${prettierExts[@]}" | grep -v "lib/vscode" | grep -v 'helm-chart'
git ls-files "${prettierExts[@]}" | grep -v "lib/vscode" | grep -v "vendor/modules/code-oss-dev" | grep -v 'helm-chart'
)
doctoc --title '# FAQ' docs/FAQ.md >/dev/null
doctoc --title '# Setup Guide' docs/guide.md >/dev/null
doctoc --title '# Install' docs/install.md >/dev/null
doctoc --title '# npm Install Requirements' docs/npm.md >/dev/null
doctoc --title '# Contributing' docs/CONTRIBUTING.md >/dev/null
doctoc --title '# Maintaining' docs/MAINTAINING.md >/dev/null
doctoc --title '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md >/dev/null
doctoc --title '# iPad' docs/ipad.md >/dev/null
doctoc --title '# Termux' docs/termux.md >/dev/null
doctoc --title '# Changelog' CHANGELOG.md >/dev/null
doctoc --title '# FAQ' docs/FAQ.md > /dev/null
doctoc --title '# Setup Guide' docs/guide.md > /dev/null
doctoc --title '# Install' docs/install.md > /dev/null
doctoc --title '# npm Install Requirements' docs/npm.md > /dev/null
doctoc --title '# Contributing' docs/CONTRIBUTING.md > /dev/null
doctoc --title '# Maintaining' docs/MAINTAINING.md > /dev/null
doctoc --title '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md > /dev/null
doctoc --title '# iPad' docs/ipad.md > /dev/null
doctoc --title '# Termux' docs/termux.md > /dev/null
# TODO: replace with a method that generates fewer false positives.
if [[ ${CI-} && $(git ls-files --other --modified --exclude-standard) ]]; then
echo "Files need generation or are formatted incorrectly:"
git -c color.ui=always status | grep --color=no '\[31m'

View File

@@ -35,10 +35,10 @@ main() {
# This escapes all newlines so that sed will accept them.
favicon_dark_style="$(printf "%s\n" "$favicon_dark_style" | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g')"
sed "$(
cat -n <<EOF
cat -n << EOF
s%<rect id="favicon"%$favicon_dark_style<rect id="favicon"%
EOF
)" favicon.svg >favicon-dark-support.svg
)" favicon.svg > favicon-dark-support.svg
}
main "$@"

View File

@@ -4,17 +4,14 @@ set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
eslint --max-warnings=0 --fix $(git ls-files "*.ts" "*.tsx" "*.js" | grep -v "lib/vscode")
stylelint $(git ls-files "*.css" | grep -v "lib/vscode")
eslint --max-warnings=0 --fix $(git ls-files "*.ts" "*.tsx" "*.js" | grep -v "vendor/modules/code-oss-dev" | grep -v "lib/vscode")
stylelint $(git ls-files "*.css" | grep -v "vendor/modules/code-oss-dev" | grep -v "lib/vscode")
tsc --noEmit --skipLibCheck
shellcheck -e SC2046,SC2164,SC2154,SC1091,SC1090,SC2002 $(git ls-files "*.sh" | grep -v "lib/vscode")
if command -v helm && helm kubeval --help >/dev/null; then
shellcheck -e SC2046,SC2164,SC2154,SC1091,SC1090,SC2002 $(git ls-files "*.sh" | grep -v "vendor/modules/code-oss-dev" | grep -v "lib/vscode")
if command -v helm && helm kubeval --help > /dev/null; then
helm kubeval ci/helm-chart
fi
cd lib/vscode
# Run this periodically in vanilla VS code to make sure we don't add any more warnings.
yarn -s eslint --max-warnings=3
cd "$OLDPWD"
}

View File

@@ -3,17 +3,28 @@ set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
# This installs the dependencies needed for testing
echo 'Installing code-server test dependencies...'
cd test
yarn
yarn install
cd ..
cd lib/vscode
yarn ${CI+--frozen-lockfile}
cd vendor
echo 'Installing vendor dependencies...'
symlink_asar
# * We install in 'modules' instead of 'node_modules' because VS Code's extensions
# use a webpack config which cannot differentiate between its own node_modules
# and itself being in a directory with the same name.
#
# * We ignore scripts because NPM/Yarn's default behavior is to assume that
# devDependencies are not needed, and that even git repo based packages are
# assumed to be compiled. Because the default behavior for VS Code's `postinstall`
# assumes we're also compiled, this needs to be ignored.
yarn install --modules-folder modules --ignore-scripts --frozen-lockfile
# Finally, run the vendor `postinstall`
yarn run postinstall
}
main "$@"

View File

@@ -3,10 +3,36 @@ set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
local dir="$PWD"
if [[ ! ${CODE_SERVER_TEST_ENTRY-} ]]; then
echo "Set CODE_SERVER_TEST_ENTRY to test another build of code-server"
else
pushd "$CODE_SERVER_TEST_ENTRY"
dir="$PWD"
popd
fi
echo "Testing build in '$dir'"
# Simple sanity checks to see that we've built. There could still be things
# wrong (native modules version issues, incomplete build, etc).
if [[ ! -d $dir/out ]]; then
echo >&2 "No code-server build detected"
echo >&2 "You can build it with 'yarn build' or 'yarn watch'"
exit 1
fi
if [[ ! -d $dir/vendor/modules/code-oss-dev/out ]]; then
echo >&2 "No VS Code build detected"
echo >&2 "You can build it with 'yarn build:vscode' or 'yarn watch'"
exit 1
fi
cd test
# We set these environment variables because they're used in the e2e tests
# they don't have to be these values, but these are the defaults
PASSWORD=e45432jklfdsab CODE_SERVER_ADDRESS=http://localhost:8080 yarn folio --config=config.ts --reporter=list "$@"
yarn playwright test "$@"
}
main "$@"

9
ci/dev/test-scripts.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
bats ./test/scripts
}
main "$@"

View File

@@ -3,7 +3,7 @@ set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
cd test/unit/test-plugin
cd test/unit/node/test-plugin
make -s out/index.js
# We must keep jest in a sub-directory. See ../../test/package.json for more
# information. We must also run it from the root otherwise coverage will not

View File

@@ -1,133 +0,0 @@
#!/usr/bin/env bash
# Description: This is a script to make the process of updating vscode versions easier
# Run it with `yarn update:vscode` and it will do the following:
# 1. Check that you have a remote called `vscode`
# 2. Ask you which version you want to upgrade to
# 3. Grab the exact version from the package.json i.e. 1.53.2
# 4. Fetch the vscode remote branches to run the subtree update
# 5. Run the subtree update and pull in the vscode update
# 6. Commit the changes (including merge conflicts)
# 7. Open a draft PR
set -euo pipefail
# This function expects two arguments
# 1. the vscode version we're updating to
# 2. the list of merge conflict files
make_pr_body() {
local BODY="This PR updates vscode to $1
## TODOS
- [ ] test editor locally
- [ ] test terminal locally
- [ ] make notes about any significant changes in docs/CONTRIBUTING.md#notes-about-changes
## Files with conflicts (fix these)
$2"
echo "$BODY"
}
main() {
cd "$(dirname "$0")/../.."
# Check if the remote exists
# if it doesn't, we add it
if ! git config remote.vscode.url >/dev/null; then
echo "Could not find 'vscode' as a remote"
echo "Adding with: git remote add vscode https://github.com/microsoft/vscode.git"
git remote add vscode https://github.com/microsoft/vscode.git
fi
# Ask which version we should update to
# In the future, we'll automate this and grab the latest version automatically
read -r -p "What version of VSCode would you like to update to? (i.e. 1.52) " VSCODE_VERSION_TO_UPDATE
# Check that this version exists
if [[ -z $(git ls-remote --heads vscode release/"$VSCODE_VERSION_TO_UPDATE") ]]; then
echo "Oops, that doesn't look like a valid version."
echo "You entered: $VSCODE_VERSION_TO_UPDATE"
echo "Verify that this branches exists here: https://github.com/microsoft/vscode/branches/all?query=release%2F$VSCODE_VERSION_TO_UPDATE"
exit 1
fi
# Check that they have jq installed
if ! command -v jq &>/dev/null; then
echo "jq could not be found."
echo "We use this when looking up the exact version to update to in the package.json in VS Code."
echo -e "See docs here: https://stedolan.github.io/jq/download/"
exit 1
fi
# Note: `git subtree` returns 129 when installed, and prints help;
# but when uninstalled, returns 1.
set +e
git subtree &>/dev/null
if [ $? -ne 129 ]; then
echo "git-subtree could not be found."
echo "We use this to fetch and update the lib/vscode subtree."
echo -e "Please install git subtree."
exit 1
fi
set -e
# Grab the exact version from package.json
VSCODE_EXACT_VERSION=$(curl -s "https://raw.githubusercontent.com/microsoft/vscode/release/$VSCODE_VERSION_TO_UPDATE/package.json" | jq -r ".version")
echo -e "Great! We'll prep a PR for updating to $VSCODE_EXACT_VERSION\n"
# For some reason the subtree update doesn't work
# unless we fetch all the branches
echo -e "Fetching vscode branches..."
echo -e "Note: this might take a while"
git fetch vscode
# Check if GitHub CLI is installed
if ! command -v gh &>/dev/null; then
echo "GitHub CLI could not be found."
echo "If you install it before you run this script next time, we'll open a draft PR for you!"
echo -e "See docs here: https://github.com/cli/cli#installation\n"
exit
fi
# Push branch to remote if not already pushed
# If we don't do this, the opening a draft PR step won't work
# because it will stop and ask where you want to push the branch
CURRENT_BRANCH=$(git branch | grep '\*' | cut -d' ' -f2-)
if [[ -z $(git config "branch.${CURRENT_BRANCH}.remote") ]]; then
echo "Doesn't look like you've pushed this branch to remote"
echo -e "Pushing now using: git push origin $CURRENT_BRANCH\n"
# Note: we need to set upstream as well or the gh pr create step will fail
# See: https://github.com/cli/cli/issues/575
echo "Please set the upstream and re-run the script"
exit 1
fi
echo "Going to try to update vscode for you..."
echo -e "Running: git subtree pull --prefix lib/vscode vscode release/${VSCODE_VERSION_TO_UPDATE} --squash\n"
# Try to run subtree update command
# Note: we add `|| true` because we want the script to keep running even if the squash fails
# We know the squash fails everytime because there will always be merge conflicts
git subtree pull --prefix lib/vscode vscode release/"${VSCODE_VERSION_TO_UPDATE}" --squash || true
# Get the files with conflicts before we commit them
# so we can list them in the PR body as todo items
CONFLICTS=$(git diff --name-only --diff-filter=U | while read -r line; do echo "- [ ] $line"; done)
PR_BODY=$(make_pr_body "$VSCODE_EXACT_VERSION" "$CONFLICTS")
echo -e "\nForcing a commit with conflicts"
echo "Note: this is intentional"
echo "If we don't do this, code review is impossible."
echo -e "For more info, see docs: docs/CONTRIBUTING.md#updating-vs-code\n"
# We need --no-verify to skip the husky pre-commit hook
# which fails because of the merge conflicts
git add . && git commit -am "chore(vscode): update to $VSCODE_EXACT_VERSION" --no-verify
# Note: we can't open a draft PR unless their are changes.
# Hence why we do this after the subtree update.
echo "Opening a draft PR on GitHub"
# To read about these flags, visit the docs: https://cli.github.com/manual/gh_pr_create
gh pr create --base main --title "feat(vscode): update to version $VSCODE_EXACT_VERSION" --body "$PR_BODY" --reviewer @cdr/code-server-reviewers --repo cdr/code-server --draft
}
main "$@"

View File

@@ -1,6 +1,8 @@
import browserify from "browserify"
import * as cp from "child_process"
import Bundler from "parcel-bundler"
import * as fs from "fs"
import * as path from "path"
import { onLine } from "../../src/node/util"
async function main(): Promise<void> {
try {
@@ -14,7 +16,7 @@ async function main(): Promise<void> {
class Watcher {
private readonly rootPath = path.resolve(__dirname, "../..")
private readonly vscodeSourcePath = path.join(this.rootPath, "lib/vscode")
private readonly vscodeSourcePath = path.join(this.rootPath, "vendor/modules/code-oss-dev")
private static log(message: string, skipNewline = false): void {
process.stdout.write(message)
@@ -40,7 +42,6 @@ class Watcher {
const plugin = process.env.PLUGIN_DIR
? cp.spawn("yarn", ["build", "--watch"], { cwd: process.env.PLUGIN_DIR })
: undefined
const bundler = this.createBundler()
const cleanup = (code?: number | null): void => {
Watcher.log("killing vs code watcher")
@@ -63,7 +64,7 @@ class Watcher {
server.kill()
}
Watcher.log("killing bundler")
Watcher.log("killing watch")
process.exit(code || 0)
}
@@ -84,16 +85,6 @@ class Watcher {
cleanup(code)
})
}
const bundle = bundler.bundle().catch(() => {
Watcher.log("parcel watcher terminated unexpectedly")
cleanup(1)
})
bundler.on("buildEnd", () => {
console.log("[parcel] bundled")
})
bundler.on("buildError", (error) => {
console.error("[parcel]", error)
})
vscode.stderr.on("data", (d) => process.stderr.write(d))
tsc.stderr.on("data", (d) => process.stderr.write(d))
@@ -101,37 +92,11 @@ class Watcher {
plugin.stderr.on("data", (d) => process.stderr.write(d))
}
// From https://github.com/chalk/ansi-regex
const pattern = [
"[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
"(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))",
].join("|")
const re = new RegExp(pattern, "g")
/**
* Split stdout on newlines and strip ANSI codes.
*/
const onLine = (proc: cp.ChildProcess, callback: (strippedLine: string, originalLine: string) => void): void => {
let buffer = ""
if (!proc.stdout) {
throw new Error("no stdout")
}
proc.stdout.setEncoding("utf8")
proc.stdout.on("data", (d) => {
const data = buffer + d
const split = data.split("\n")
const last = split.length - 1
for (let i = 0; i < last; ++i) {
callback(split[i].replace(re, ""), split[i])
}
// The last item will either be an empty string (the data ended with a
// newline) or a partial line (did not end with a newline) and we must
// wait to parse it until we get a full line.
buffer = split[last]
})
}
const browserFiles = [
path.join(this.rootPath, "out/browser/register.js"),
path.join(this.rootPath, "out/browser/pages/login.js"),
path.join(this.rootPath, "out/browser/pages/vscode.js"),
]
let startingVscode = false
let startedVscode = false
@@ -143,7 +108,7 @@ class Watcher {
startingVscode = true
} else if (startingVscode && line.includes("Finished compilation")) {
if (startedVscode) {
bundle.then(restartServer)
restartServer()
}
startedVscode = true
}
@@ -155,7 +120,8 @@ class Watcher {
console.log("[tsc]", original)
}
if (line.includes("Watching for file changes")) {
bundle.then(restartServer)
bundleBrowserCode(browserFiles)
restartServer()
}
})
@@ -166,29 +132,26 @@ class Watcher {
console.log("[plugin]", original)
}
if (line.includes("Watching for file changes")) {
bundle.then(restartServer)
restartServer()
}
})
}
}
}
private createBundler(out = "dist"): Bundler {
return new Bundler(
[
path.join(this.rootPath, "src/browser/register.ts"),
path.join(this.rootPath, "src/browser/serviceWorker.ts"),
path.join(this.rootPath, "src/browser/pages/login.ts"),
path.join(this.rootPath, "src/browser/pages/vscode.ts"),
],
{
outDir: path.join(this.rootPath, out),
cacheDir: path.join(this.rootPath, ".cache"),
minify: !!process.env.MINIFY,
logLevel: 1,
publicUrl: ".",
},
)
}
function bundleBrowserCode(inputFiles: string[]) {
console.log(`[browser] bundling...`)
inputFiles.forEach(async (path: string) => {
const outputPath = path.replace(".js", ".browserified.js")
browserify()
.add(path)
.bundle()
.on("error", function (error: Error) {
console.error(error.toString())
})
.pipe(fs.createWriteStream(outputPath))
})
console.log(`[browser] done bundling`)
}
main()

View File

@@ -20,4 +20,4 @@ version: 1.0.3
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: 3.10.2
appVersion: 3.12.0

View File

@@ -1,162 +0,0 @@
# code-server
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.10.2](https://img.shields.io/badge/AppVersion-3.10.2-informational?style=flat-square)
[code-server](https://github.com/cdr/code-server) code-server is VS Code running
on a remote server, accessible through the browser.
This chart is community maintained by [@Matthew-Beckett](https://github.com/Matthew-Beckett) and [@alexgorbatchev](https://github.com/alexgorbatchev)
## TL;DR;
```console
$ git clone https://github.com/cdr/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart
```
## Introduction
This chart bootstraps a code-server deployment on a
[Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh)
package manager.
## Prerequisites
- Kubernetes 1.6+
## Installing the Chart
To install the chart with the release name `code-server`:
```console
$ git clone https://github.com/cdr/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart
```
The command deploys code-server on the Kubernetes cluster in the default
configuration. The [configuration](#configuration) section lists the parameters
that can be configured during installation.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `code-server` deployment:
```console
$ helm delete code-server
```
The command removes all the Kubernetes components associated with the chart and
deletes the release.
## Configuration
The following table lists the configurable parameters of the code-server chart
and their default values.
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| extraArgs | list | `[]` | |
| extraConfigmapMounts | list | `[]` | |
| extraContainers | string | `""` | |
| extraInitContainers | string | `""` | |
| extraSecretMounts | list | `[]` | |
| extraVars | list | `[]` | |
| extraVolumeMounts | list | `[]` | |
| fullnameOverride | string | `""` | |
| hostnameOverride | string | `""` | |
| image.pullPolicy | string | `"Always"` | |
| image.repository | string | `"codercom/code-server"` | |
| image.tag | string | `"3.10.2"` | |
| imagePullSecrets | list | `[]` | |
| ingress.enabled | bool | `false` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| persistence.accessMode | string | `"ReadWriteOnce"` | |
| persistence.annotations | object | `{}` | |
| persistence.enabled | bool | `true` | |
| persistence.size | string | `"1Gi"` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext.enabled | bool | `true` | |
| securityContext.fsGroup | int | `1000` | |
| securityContext.runAsUser | int | `1000` | |
| service.port | int | `8443` | |
| service.type | string | `"ClusterIP"` | |
| serviceAccount.create | bool | `true` | |
| serviceAccount.name | string | `nil` | |
| tolerations | list | `[]` | |
| volumePermissions.enabled | bool | `true` | |
| volumePermissions.securityContext.runAsUser | int | `0` | |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm
install`. For example,
```console
$ helm upgrade --install code-server \
ci/helm-chart \
--set persistence.enabled=false
```
The above command sets the the persistence storage to false.
Alternatively, a YAML file that specifies the values for the above parameters
can be provided while installing the chart. For example,
```console
$ helm upgrade --install code-server ci/helm-chart -f values.yaml
```
> **Tip**: You can use the default [values.yaml](values.yaml)
# Extra Containers
There are two parameters which allow to add more containers to pod.
Use `extraContainers` to add regular containers
and `extraInitContainers` to add init containers. You can read more
about init containers in [k8s documentation](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/).
Both parameters accept strings and use them as a templates
Example of using `extraInitContainers`:
``` yaml
extraInitContainers: |
- name: customization
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: IfNotPresent
env:
- name: SERVICE_URL
value: https://open-vsx.org/vscode/gallery
- name: ITEM_URL
value: https://open-vsx.org/vscode/item
command:
- sh
- -c
- |
code-server --install-extension ms-python.python
code-server --install-extension golang.Go
volumeMounts:
- name: data
mountPath: /home/coder
```
With this yaml in file `init.yaml`, you can execute
```console
$ helm upgrade --install code-server \
ci/helm-chart \
--values init.yaml
```
to deploy code-server with python and golang extensions preinstalled
before main container have started.

View File

@@ -6,7 +6,7 @@ replicaCount: 1
image:
repository: codercom/code-server
tag: '3.10.2'
tag: '3.12.0'
pullPolicy: Always
imagePullSecrets: []
@@ -57,8 +57,18 @@ ingress:
# Optional additional arguments
extraArgs: []
# - --allow-http
# - --no-auth
# These are the arguments normally passed to code-server; run
# code-server --help for a list of available options.
#
# Each argument and parameter must have its own entry; if you use
# --param value on the command line, then enter it here as:
#
# - --param
# - value
#
# If you receive an error like "Unknown option --param value", it may be
# because both the parameter and value are specified as a single argument,
# rather than two separate arguments (e.g. "- --param value" on a line).
# Optional additional environment variables
extraVars: []

View File

@@ -2,11 +2,11 @@
set -euo pipefail
pushd() {
builtin pushd "$@" >/dev/null
builtin pushd "$@" > /dev/null
}
popd() {
builtin popd >/dev/null
builtin popd > /dev/null
}
pkg_json_version() {
@@ -14,7 +14,7 @@ pkg_json_version() {
}
vscode_version() {
jq -r .version lib/vscode/package.json
jq -r .version vendor/modules/code-oss-dev/package.json
}
os() {
@@ -35,17 +35,17 @@ os() {
}
arch() {
case "$(uname -m)" in
aarch64)
echo arm64
;;
x86_64 | amd64)
echo amd64
;;
*)
echo "unknown architecture $(uname -a)"
exit 1
;;
cpu="$(uname -m)"
case "$cpu" in
aarch64)
echo arm64
;;
x86_64 | amd64)
echo amd64
;;
*)
echo "$cpu"
;;
esac
}
@@ -57,12 +57,12 @@ arch() {
# https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs
get_artifacts_url() {
local artifacts_url
local workflow_runs_url="repos/:owner/:repo/actions/workflows/ci.yaml/runs?event=pull_request"
local version_branch="v$VERSION"
local workflow_runs_url="repos/:owner/:repo/actions/workflows/ci.yaml/runs?event=pull_request&branch=$version_branch"
artifacts_url=$(gh api "$workflow_runs_url" | jq -r ".workflow_runs[] | select(.head_branch == \"$version_branch\") | .artifacts_url" | head -n 1)
if [[ -z "$artifacts_url" ]]; then
echo >&2 "ERROR: artifacts_url came back empty"
echo >&2 "We looked for a successful run triggered by a pull_request with for code-server version: $code_server_version and a branch named $version_branch"
echo >&2 "We looked for a successful run triggered by a pull_request with for code-server version: $VERSION and a branch named $version_branch"
echo >&2 "URL used for gh API call: $workflow_runs_url"
exit 1
fi
@@ -85,7 +85,7 @@ download_artifact() {
local tmp_file
tmp_file="$(mktemp)"
gh api "$(get_artifact_url "$artifact_name")" >"$tmp_file"
gh api "$(get_artifact_url "$artifact_name")" > "$tmp_file"
unzip -q -o "$tmp_file" -d "$dst"
rm "$tmp_file"
}
@@ -113,7 +113,7 @@ RELEASE_PATH="${RELEASE_PATH-release}"
# Code itself but also extensions will look specifically in this directory for
# files (like the ripgrep binary or the oniguruma wasm).
symlink_asar() {
rm -f node_modules.asar
rm -rf node_modules.asar
if [ "${WINDIR-}" ]; then
# mklink takes the link name first.
mklink /J node_modules.asar node_modules

View File

@@ -1,4 +1,4 @@
FROM debian:10
FROM debian:11
RUN apt-get update \
&& apt-get install -y \

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
docker build -t "codercom/code-server-$ARCH:$VERSION" -f ./ci/release-image/Dockerfile .
}
main "$@"

View File

@@ -0,0 +1,20 @@
# Use this file from the top of the repo, with `-f ci/release-image/docker-bake.hcl`
# Uses env var VERSION if set;
# normally, this is set by ci/lib.sh
variable "VERSION" {
default = "latest"
}
group "default" {
targets = ["code-server"]
}
target "code-server" {
dockerfile = "ci/release-image/Dockerfile"
tags = [
"docker.io/codercom/code-server:latest",
notequal("latest",VERSION) ? "docker.io/codercom/code-server:${VERSION}" : "",
]
platforms = ["linux/amd64", "linux/arm64"]
}

View File

@@ -8,7 +8,7 @@ eval "$(fixuid -q)"
if [ "${DOCKER_USER-}" ]; then
USER="$DOCKER_USER"
if [ "$DOCKER_USER" != "$(whoami)" ]; then
echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd >/dev/null
echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
# Unfortunately we cannot change $HOME as we cannot move any bind mounts
# nor can we bind mount $HOME into a new home as that requires a privileged container.
sudo usermod --login "$DOCKER_USER" coder

View File

@@ -19,18 +19,33 @@ main() {
echo "Adding Homebrew/homebrew-core as $(upstream)"
git remote add upstream https://github.com/Homebrew/homebrew-core.git
echo "Fetching upstream commits..."
echo "Fetching upstream Homebrew/hombrew-core commits"
git fetch upstream
echo "Merging in latest changes"
echo "Merging in latest Homebrew/homebrew-core changes"
git merge upstream/master
echo "Pushing changes to cdrci/homebrew-core fork on GitHub"
git push origin master
# Source: https://serverfault.com/a/912788
# shellcheck disable=SC2016,SC2028
echo '#!/bin/sh\nexec echo "$HOMEBREW_GITHUB_API_TOKEN"' > "$HOME"/.git-askpass.sh
# Ensure it's executable since we just created it
chmod +x "$HOME/.git-askpass.sh"
# GIT_ASKPASS lets us use the password when pushing without revealing it in the process list
# See: https://serverfault.com/a/912788
GIT_ASKPASS="$HOME/.git-askpass.sh" git push https://cdr-oss@github.com/cdr-oss/homebrew-core.git --all
# Find the docs for bump-formula-pr here
# https://github.com/Homebrew/brew/blob/master/Library/Homebrew/dev-cmd/bump-formula-pr.rb#L18
brew bump-formula-pr --force --version="${VERSION}" code-server --no-browse --no-audit
local output
if ! output=$(brew bump-formula-pr --version="${VERSION}" code-server --no-browse --no-audit 2>&1); then
if [[ $output == *"Duplicate PRs should not be opened"* ]]; then
echo "$VERSION is already submitted"
else
echo "$output"
exit 1
fi
fi
# Clean up and remove homebrew-core
cd ..

View File

@@ -1,14 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
./ci/release-image/build.sh
mkdir -p release-images
docker save "codercom/code-server-$ARCH:$VERSION" >"release-images/code-server-$ARCH-$VERSION.tar"
}
main "$@"

37
ci/steps/docker-buildx-push.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -euo pipefail
# See if this version already exists on Docker Hub.
function version_exists() {
local output
output=$(curl --silent "https://index.docker.io/v1/repositories/codercom/code-server/tags/$VERSION")
if [[ $output == "Tag not found" ]]; then
return 1
else
return 0
fi
}
main() {
cd "$(dirname "$0")/../.."
# ci/lib.sh sets VERSION and provides download_artifact here
source ./ci/lib.sh
if version_exists; then
echo "$VERSION is already pushed"
return
fi
# Download the release-packages artifact
download_artifact release-packages ./release-packages
# Login to Docker
if [[ ${CI-} ]]; then
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
fi
docker buildx bake -f ci/release-image/docker-bake.hcl --push
}
main "$@"

View File

@@ -5,13 +5,25 @@ main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
# npm view won't exit with non-zero so we have to check the output.
local hasVersion
hasVersion=$(npm view "code-server@$VERSION" version)
if [[ $hasVersion == "$VERSION" ]]; then
echo "$VERSION is already published"
return
fi
if [[ ${CI-} ]]; then
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >~/.npmrc
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
fi
download_artifact npm-package ./release-npm-package
# https://github.com/actions/upload-artifact/issues/38
tar -xzf release-npm-package/package.tar.gz
# Ignore symlink when publishing npm package
# See: https://github.com/cdr/code-server/pull/3935
echo "node_modules.asar" > release/.npmignore
yarn publish --non-interactive release
}

View File

@@ -1,37 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
download_artifact release-images ./release-images
if [[ ${CI-} ]]; then
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
fi
for img in ./release-images/*; do
docker load -i "$img"
done
# We have to ensure the amd64 and arm64 images exist on the remote registry
# in order to build the manifest.
# We don't put the arch in the tag to avoid polluting the main repository.
# These other repositories are private so they don't pollute our organization namespace.
docker push "codercom/code-server-amd64:$VERSION"
docker push "codercom/code-server-arm64:$VERSION"
export DOCKER_CLI_EXPERIMENTAL=enabled
docker manifest create "codercom/code-server:$VERSION" \
"codercom/code-server-amd64:$VERSION" \
"codercom/code-server-arm64:$VERSION"
docker manifest push --purge "codercom/code-server:$VERSION"
docker manifest create "codercom/code-server:latest" \
"codercom/code-server-amd64:$VERSION" \
"codercom/code-server-arm64:$VERSION"
docker manifest push --purge "codercom/code-server:latest"
}
main "$@"

View File

@@ -2,13 +2,16 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Contributing
- [Pull Requests](#pull-requests)
- [Commits](#commits)
- [Requirements](#requirements)
- [Development Workflow](#development-workflow)
- [Updating VS Code](#updating-vs-code)
- [Notes about Changes](#notes-about-changes)
- [Build](#build)
- [Creating pull requests](#creating-pull-requests)
- [Commits and commit history](#commits-and-commit-history)
- [Development workflow](#development-workflow)
- [Updates to VS Code](#updates-to-vs-code)
- [Build](#build)
- [Test](#test)
- [Unit tests](#unit-tests)
- [Integration tests](#integration-tests)
- [End-to-end tests](#end-to-end-tests)
- [Structure](#structure)
- [Modifications to VS Code](#modifications-to-vs-code)
- [Currently Known Issues](#currently-known-issues)
@@ -17,42 +20,52 @@
- [Detailed CI and build process docs](../ci)
## Pull Requests
## Requirements
Please create a [GitHub Issue](https://github.com/cdr/code-server/issues) for each issue
you'd like to address unless the proposed fix is minor.
The prerequisites for contributing to code-server are almost the same as those
for [VS
Code](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites).
Here is what is needed:
In your Pull Requests (PR), link to the issue that the PR solves.
- `node` v14.x
- `git` v2.x or greater
- [`git-lfs`](https://git-lfs.github.com)
- [`yarn`](https://classic.yarnpkg.com/en/)
- Used to install JS packages and run scripts
- [`nfpm`](https://classic.yarnpkg.com/en/)
- Used to build `.deb` and `.rpm` packages
- [`jq`](https://stedolan.github.io/jq/)
- Used to build code-server releases
- [`gnupg`](https://gnupg.org/index.html)
- All commits must be signed and verified; see GitHub's [Managing commit
signature
verification](https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification)
or follow [this tutorial](https://joeprevite.com/verify-commits-on-github)
- `build-essential` (Linux only - used by VS Code)
- Get this by running `apt-get install -y build-essential`
- `rsync` and `unzip`
- Used for code-server releases
- `bats`
- Used to run script unit tests
## Creating pull requests
Please create a [GitHub Issue](https://github.com/cdr/code-server/issues) that
includes context for issues that you see. You can skip this if the proposed fix
is minor.
In your pull requests (PR), link to the issue that the PR solves.
Please ensure that the base of your PR is the **main** branch.
### Commits
### Commits and commit history
We prefer a clean commit history. This means you should squash all fixups and fixup-type commits before asking for review (cleanup, squash, force-push). If you need help with this, feel free to leave a comment in your PR and we'll guide you.
We prefer a clean commit history. This means you should squash all fixups and
fixup-type commits before asking for a review (e.g., clean up, squash, then force
push). If you need help with this, feel free to leave a comment in your PR, and
we'll guide you.
## Requirements
The prerequisites for contributing to code-server are almost the same as those for
[VS Code](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites).
There are several differences, however. Here is what is needed:
- `node` v12.x or greater
- `git` v2.x or greater
- [`yarn`](https://classic.yarnpkg.com/en/)
- used to install JS packages and run scripts
- [`nfpm`](https://classic.yarnpkg.com/en/)
- used to build `.deb` and `.rpm` packages
- [`jq`](https://stedolan.github.io/jq/)
- used to build code-server releases
- [`gnupg`](https://gnupg.org/index.html)
- all commits must be signed and verified
- see GitHub's ["Managing commit signature verification"](https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification) or follow [this tutorial](https://joeprevite.com/verify-commits-on-github)
- `build-essential` (Linux)
- `apt-get install -y build-essential` - used by VS Code
- `rsync` and `unzip`
- used for code-server releases
## Development Workflow
## Development workflow
```shell
yarn
@@ -62,27 +75,31 @@ yarn watch
`yarn watch` will live reload changes to the source.
### Updating VS Code
### Updates to VS Code
Updating VS Code requires `git subtree`. On some rpm-based Linux distros, `git subtree` is not included by default, and needs to be installed separately.
To install, run `dnf install git-subtree` or `yum install git-subtree` as necessary.
1. Update the package tag listed in `vendor/package.json`:
To update VS Code, follow these steps:
```json
{
"devDependencies": {
"vscode": "cdr/vscode#X.XX.X-code-server"
}
}
```
1. Run `yarn update:vscode`.
2. Enter a version. Ex. 1.53
3. This will open a draft PR for you.
4. There will be merge conflicts. First commit them.
1. We do this because if we don't, it will be impossible to review your PR.
5. Once they're all fixed, test code-server locally and make sure it all works.
2. From the code-server **project root**, run `yarn install`.
Then, test code-server locally to make sure everything works.
1. Check the Node.js version that's used by Electron (which is shipped with VS
Code. If necessary, update your version of Node.js to match.
1. Open a PR
#### Notes about Changes
> Watch for updates to
> `vendor/modules/code-oss-dev/src/vs/code/browser/workbench/workbench.html`. You may need to
> make changes to `src/browser/pages/vscode.html`.
- watch out for updates to `lib/vscode/src/vs/code/browser/workbench/workbench.html`. You may need to make changes to `src/browser/pages/vscode.html`
### Build
## Build
You can build using:
You can build as follows:
```shell
yarn build
@@ -90,7 +107,7 @@ yarn build:vscode
yarn release
```
Run your build with:
Run your build:
```shell
cd release
@@ -107,42 +124,140 @@ yarn test:standalone-release
yarn package
```
NOTE: On Linux, the currently running distro will become the minimum supported version.
In our GitHub Actions CI, we use CentOS 7 for maximum compatibility.
If you need your builds to support older distros, run the build commands
inside a Docker container with all the build requirements installed.
> On Linux, the currently running distro will become the minimum supported
> version. In our GitHub Actions CI, we use CentOS 7 for maximum compatibility.
> If you need your builds to support older distros, run the build commands
> inside a Docker container with all the build requirements installed.
### Test
There are three kinds of tests in code-server:
1. Unit tests
2. Integration tests
3. End-to-end tests
### Unit tests
Our unit tests are written in TypeScript and run using
[Jest](https://jestjs.io/), the testing framework].
These live under [test/unit](../test/unit).
We use unit tests for functions and things that can be tested in isolation. The file structure is modeled closely after `/src` so it's easy for people to know where test files should live.
### Integration tests
These are a work in progress. We build code-server and run a script called
[test-standalone-release.sh](../ci/build/test-standalone-release.sh), which
ensures that code-server's CLI is working.
Our integration tests look at components that rely on one another. For example,
testing the CLI requires us to build and package code-server.
### End-to-end tests
The end-to-end (e2e) tests are written in TypeScript and run using
[Playwright](https://playwright.dev/).
These live under [test/e2e](../test/e2e).
Before the e2e tests run, we run `globalSetup`, which eliminates the need to log
in before each test by preserving the authentication state.
Take a look at `codeServer.test.ts` to see how you would use it (see
`test.use`).
We also have a model where you can create helpers to use within tests. See
[models/CodeServer.ts](../test/e2e/models/CodeServer.ts) for an example.
Generally speaking, e2e means testing code-server while running in the browser
and interacting with it in a way that's similar to how a user would interact
with it. When running these tests with `yarn test:e2e`, you must have
code-server running locally. In CI, this is taken care of for you.
## Structure
The `code-server` script serves an HTTP API for login and starting a remote VS Code process.
The `code-server` script serves as an HTTP API for login and starting a remote VS
Code process.
The CLI code is in [src/node](../src/node) and the HTTP routes are implemented in
[src/node/routes](../src/node/routes).
The CLI code is in [src/node](../src/node) and the HTTP routes are implemented
in [src/node/routes](../src/node/routes).
Most of the meaty parts are in the VS Code portion of the codebase under [lib/vscode](../lib/vscode), which we described next.
Most of the meaty parts are in the VS Code portion of the codebase under
[vendor/modules/code-oss-dev](../vendor/modules/code-oss-dev), which we describe next.
### Modifications to VS Code
In v1 of code-server, we had a patch of VS Code that split the codebase into a front-end
and a server. The front-end consisted of all UI code, while the server ran the extensions
and exposed an API to the front-end for file access and all UI needs.
In v1 of code-server, we had a patch of VS Code that split the codebase into a
front-end and a server. The front-end consisted of the UI code, while the server
ran the extensions 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
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. We do this by using a git subtree to fork and modify VS Code. This code lives under [lib/vscode](../lib/vscode).
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 VS Code front-end and implements the server. We do this by using
a Git subtree to fork and modify VS Code. This code lives under
[vendor/modules/code-oss-dev](../vendor/modules/code-oss-dev).
Some noteworthy changes in our version of VS Code:
Some noteworthy changes in our version of VS Code include:
- Adding our build file, which includes our code and VS Code's web code
- Allowing multiple extension directories (both user and built-in)
- Modifying the loader, websocket, webview, service worker, and asset requests to
use the URL of the page as a base (and TLS, if necessary for the websocket)
- Sending client-side telemetry through the server
- Allowing modification of the display language
- Making it possible for us to load code on the client
- Making it possible to install extensions of any kind
- Fixing issue with getting disconnected when your machine sleeps or hibernates
- Adding connection type to web socket query parameters
- Adding our build file, [`vendor/modules/code-oss-dev/coder.js`](../vendor/modules/code-oss-dev/coder.js), which includes build steps specific to code-server
- Node.js version detection changes in [`build/lib/node.ts`](../vendor/modules/code-oss-dev/build/lib/node.ts) and [`build/lib/util.ts`](../vendor/modules/code-oss-dev/build/lib/util.ts)
- Allowing extra extension directories
- Added extra arguments to [`src/vs/platform/environment/common/argv.ts`](../vendor/modules/code-oss-dev/src/vs/platform/environment/common/argv.ts) and to [`src/vs/platform/environment/node/argv.ts`](../vendor/modules/code-oss-dev/src/vs/platform/environment/node/argv.ts)
- Added extra environment state to [`src/vs/platform/environment/common/environment.ts`](../vendor/modules/code-oss-dev/src/vs/platform/environment/common/environment.ts);
- Added extra getters to [`src/vs/platform/environment/common/environmentService.ts`](../vendor/modules/code-oss-dev/src/vs/platform/environment/common/environmentService.ts)
- Added extra scanning paths to [`src/vs/platform/extensionManagement/node/extensionsScanner.ts`](../vendor/modules/code-oss-dev/src/vs/platform/extensionManagement/node/extensionsScanner.ts)
- Additions/removals from [`package.json`](../vendor/modules/code-oss-dev/package.json):
- Removing `electron`, `keytar` and `native-keymap` to avoid pulling in desktop dependencies during build on Linux
- Removing `gulp-azure-storage` and `gulp-tar` (unsued in our build process, may pull in outdated dependencies)
- Adding `proxy-agent`, `proxy-from-env` (for proxying) and `rimraf` (used during build/install steps)
- Adding our branding/custom URLs/version:
- [`product.json`](../vendor/modules/code-oss-dev/product.json)
- [`src/vs/base/common/product.ts`](../vendor/modules/code-oss-dev/src/vs/base/common/product.ts)
- [`src/vs/workbench/browser/parts/dialogs/dialogHandler.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts)
- [`src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page.ts)
- [`src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts)
- Removing azure/macOS signing related dependencies from [`build/package.json`](../vendor/modules/code-oss-dev/build/package.json)
- Modifying `.gitignore` to allow us to add files to `src/vs/server` and modifying `.eslintignore` to ignore lint on the shared files below (we use different formatter settings than VS Code).
- Sharing some files with our codebase via symlinks:
- [`src/vs/base/common/ipc.d.ts`](../vendor/modules/code-oss-dev/src/vs/base/common/ipc.d.ts) points to [`typings/ipc.d.ts`](../typings/ipc.d.ts)
- [`src/vs/base/common/util.ts`](../vendor/modules/code-oss-dev/src/vs/base/common/util.ts) points to [`src/common/util.ts`](../src/common/util.ts)
- [`src/vs/base/node/proxy_agent.ts`](../vendor/modules/code-oss-dev/src/vs/base/node/proxy_agent.ts) points to [`src/node/proxy_agent.ts`](../src/node/proxy_agent.ts)
- Allowing socket changes by adding `setSocket` in [`src/vs/base/parts/ipc/common/ipc.net.ts`](../vendor/modules/code-oss-dev/src/vs/base/parts/ipc/common/ipc.net.ts)
- We use this for connection persistence in our server-side code.
- Added our server-side Node.JS code to `src/vs/server`.
- This code includes the logic to spawn the various services (extension host, terminal, etc.) and some glue
- Added [`src/vs/workbench/browser/client.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/browser/client.ts) to hold some server customizations.
- Includes the functionality for the Log Out command and menu item
- Also, imported and called `initialize` from the main web file, [`src/vs/workbench/browser/web.main.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/browser/web.main.ts)
- Added a (hopefully temporary) hotfix to [`src/vs/workbench/common/resources.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/common/resources.ts) to get context menu actions working for the Git integration.
- Added connection type to WebSocket query parameters in [`src/vs/platform/remote/common/remoteAgentConnection.ts`](../vendor/modules/code-oss-dev/src/vs/platform/remote/common/remoteAgentConnection.ts)
- Added `CODE_SERVER*` variables to the sanitization list in [`src/vs/base/common/processes.ts`](../vendor/modules/code-oss-dev/src/vs/base/common/processes.ts)
- Fix localization support:
- Added file [`src/vs/workbench/services/localizations/browser/localizationsService.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/services/localizations/browser/localizationsService.ts).
- Modified file [`src/vs/base/common/platform.ts`](../vendor/modules/code-oss-dev/src/vs/base/common/platform.ts)
- Modified file [`src/vs/base/node/languagePacks.js`](../vendor/modules/code-oss-dev/src/vs/base/node/languagePacks.js)
- Added code to allow server to inject settings to [`src/vs/platform/product/common/product.ts`](../vendor/modules/code-oss-dev/src/vs/platform/product/common/product.ts)
- Extension fixes:
- Avoid disabling extensions by extensionKind in [`src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.ts) (Needed for vscode-icons)
- Remove broken symlinks in [`extensions/postinstall.js`](../vendor/modules/code-oss-dev/extensions/postinstall.js)
- Add tip about extension gallery in [`src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts)
- Use our own server for GitHub authentication in [`extensions/github-authentication/src/githubServer.ts`](../vendor/modules/code-oss-dev/extensions/github-authentication/src/githubServer.ts)
- Settings persistence on the server in [`src/vs/workbench/services/environment/browser/environmentService.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/services/environment/browser/environmentService.ts)
- Add extension install fallback in [`src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts)
- Add proxy-agent monkeypatch and keep extension host indefinitely running in [`src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts)
- Patch build system to avoid removing extension dependencies for `yarn global add` users in [`build/lib/extensions.ts`](../vendor/modules/code-oss-dev/build/lib/extensions.ts)
- Allow all extensions to use proposed APIs in [`src/vs/workbench/services/environment/browser/environmentService.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/services/environment/browser/environmentService.ts)
- Make storage writes async to allow extensions to wait for them to complete in [`src/vs/platform/storage/common/storage.ts`](../vendor/modules/code-oss-dev/src/vs/platform/storage/common/storage.ts)
- Specify webview path in [`src/vs/code/browser/workbench/workbench.ts`](../vendor/modules/code-oss-dev/src/vs/code/browser/workbench/workbench.ts)
- URL readability improvements for folder/workspace in [`src/vs/code/browser/workbench/workbench.ts`](../vendor/modules/code-oss-dev/src/vs/code/browser/workbench/workbench.ts)
- Socket/Authority-related fixes (for remote proxying etc.):
- [`src/vs/code/browser/workbench/workbench.ts`](../vendor/modules/code-oss-dev/src/vs/code/browser/workbench/workbench.ts)
- [`src/vs/platform/remote/browser/browserSocketFactory.ts`](../vendor/modules/code-oss-dev/src/vs/platform/remote/browser/browserSocketFactory.ts)
- [`src/vs/base/common/network.ts`](../vendor/modules/code-oss-dev/src/vs/base/common/network.ts)
- Added code to write out IPC path in [`src/vs/workbench/api/node/extHostCLIServer.ts`](../vendor/modules/code-oss-dev/src/vs/workbench/api/node/extHostCLIServer.ts)
As the web portion of VS Code matures, we'll be able to shrink and possibly
eliminate our modifications. In the meantime, upgrading the VS Code version requires
@@ -150,7 +265,7 @@ us to ensure that our changes are still applied and work as intended. In the fut
we'd like to run VS Code unit tests against our builds to ensure that features
work as expected.
**Note**: We have [extension docs](../ci/README.md) on the CI and build system.
> 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
move it out and into code-server.

View File

@@ -3,159 +3,139 @@
# FAQ
- [Questions?](#questions)
- [iPad Status?](#ipad-status)
- [Community Projects (awesome-code-server)](#community-projects-awesome-code-server)
- [How can I reuse my VS Code configuration?](#how-can-i-reuse-my-vs-code-configuration)
- [Differences compared to VS Code?](#differences-compared-to-vs-code)
- [Installing an extension](#installing-an-extension)
- [How can I request a missing extension?](#how-can-i-request-a-missing-extension)
- [Installing an extension manually](#installing-an-extension-manually)
- [How do I configure the marketplace URL?](#how-do-i-configure-the-marketplace-url)
- [Where are extensions stored?](#where-are-extensions-stored)
- [How is this different from VS Code Codespaces?](#how-is-this-different-from-vs-code-codespaces)
- [How should I expose code-server to the internet?](#how-should-i-expose-code-server-to-the-internet)
- [Can I store my password hashed?](#can-i-store-my-password-hashed)
- [How do I securely access web services?](#how-do-i-securely-access-web-services)
- [Sub-paths](#sub-paths)
- [Sub-domains](#sub-domains)
- [Why does the code-server proxy strip `/proxy/<port>` from the request path?](#why-does-the-code-server-proxy-strip-proxyport-from-the-request-path)
- [Proxying to Create React App](#proxying-to-create-react-app)
- [Multi-tenancy](#multi-tenancy)
- [Docker in code-server container?](#docker-in-code-server-container)
- [How can I disable telemetry?](#how-can-i-disable-telemetry)
- [How does code-server decide what workspace or folder to open?](#how-does-code-server-decide-what-workspace-or-folder-to-open)
- [How do I debug issues with code-server?](#how-do-i-debug-issues-with-code-server)
- [Heartbeat File](#heartbeat-file)
- [Healthz endpoint](#healthz-endpoint)
- [Can I use code-server on the iPad?](#can-i-use-code-server-on-the-ipad)
- [How does the config file work?](#how-does-the-config-file-work)
- [Isn't an install script piped into sh insecure?](#isnt-an-install-script-piped-into-sh-insecure)
- [How do I make my keyboard shortcuts work?](#how-do-i-make-my-keyboard-shortcuts-work)
- [How do I access my Documents/Downloads/Desktop folders in code-server on OSX?](#how-do-i-access-my-documentsdownloadsdesktop-folders-in-code-server-on-osx)
- [Differences compared to Theia?](#differences-compared-to-theia)
- [`$HTTP_PROXY`, `$HTTPS_PROXY`, `$NO_PROXY`](#http_proxy-https_proxy-no_proxy)
- [Enterprise](#enterprise)
- [Why can't code-server use Microsoft's extension marketplace?](#why-cant-code-server-use-microsofts-extension-marketplace)
- [How can I request an extension that's missing from the marketplace?](#how-can-i-request-an-extension-thats-missing-from-the-marketplace)
- [How do I install an extension?](#how-do-i-install-an-extension)
- [How do I install an extension manually?](#how-do-i-install-an-extension-manually)
- [How do I use my own extensions marketplace?](#how-do-i-use-my-own-extensions-marketplace)
- [Where are extensions stored?](#where-are-extensions-stored)
- [How can I reuse my VS Code configuration?](#how-can-i-reuse-my-vs-code-configuration)
- [How does code-server decide what workspace or folder to open?](#how-does-code-server-decide-what-workspace-or-folder-to-open)
- [How do I access my Documents/Downloads/Desktop folders in code-server on macOS?](#how-do-i-access-my-documentsdownloadsdesktop-folders-in-code-server-on-macos)
- [How do I direct server-side requests through a proxy?](#how-do-i-direct-server-side-requests-through-a-proxy)
- [How do I debug issues with code-server?](#how-do-i-debug-issues-with-code-server)
- [What is the healthz endpoint?](#what-is-the-healthz-endpoint)
- [What is the heartbeat file?](#what-is-the-heartbeat-file)
- [How do I change the password?](#how-do-i-change-the-password)
- [Can I store my password hashed?](#can-i-store-my-password-hashed)
- [Is multi-tenancy possible?](#is-multi-tenancy-possible)
- [Can I use Docker in a code-server container?](#can-i-use-docker-in-a-code-server-container)
- [How do I disable telemetry?](#how-do-i-disable-telemetry)
- [What's the difference between code-server and Theia?](#whats-the-difference-between-code-server-and-theia)
- [What's the difference between code-server and VS Code Codespaces?](#whats-the-difference-between-code-server-and-vs-code-codespaces)
- [Does code-server have any security login validation?](#does-code-server-have-any-security-login-validation)
- [Are there community projects involving code-server?](#are-there-community-projects-involving-code-server)
- [How do I change the port?](#how-do-i-change-the-port)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Questions?
Please file all questions and support requests at <https://github.com/cdr/code-server/discussions>.
Please file all questions and support requests at
<https://github.com/cdr/code-server/discussions>.
## iPad Status?
## How should I expose code-server to the internet?
Please see [./ipad.md](./ipad.md).
Please see [our instructions on exposing code-server safely to the
internet](./guide.md).
## Community Projects (awesome-code-server)
## Can I use code-server on the iPad?
Visit the [awesome-code-server](https://github.com/cdr/awesome-code-server) repository to view community projects and guides with code-server! Feel free to add your own!
See [iPad](./ipad.md) for information on using code-server on the iPad.
## How can I reuse my VS Code configuration?
## How does the config file work?
The very popular [Settings Sync](https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync) extension works.
When `code-server` starts up, it creates a default config file in `~/.config/code-server/config.yaml`:
You can also pass `--user-data-dir ~/.vscode` to reuse your existing VS Code extensions and configuration.
```yaml
bind-addr: 127.0.0.1:8080
auth: password
password: mew...22 # Randomly generated for each config.yaml
cert: false
```
Or copy `~/.vscode` into `~/.local/share/code-server`.
The default config defines the following behavior:
## Differences compared to VS Code?
- Listen on the loopback IP port 8080
- Enable password authorization
- Do not use TLS
`code-server` takes the open source core of VS Code and allows you to run it in the browser.
However, it is not entirely equivalent to Microsoft's VS Code.
Each key in the file maps directly to a `code-server` flag (run `code-server --help` to see a listing of all the flags). Any flags passed to `code-server`
will take priority over the config file.
While the core of VS Code is open source, the marketplace and many published Microsoft extensions are not.
You can change the config file's location using the `--config` flag or
`$CODE_SERVER_CONFIG` environment variable.
Furthermore, Microsoft prohibits the use of any non-Microsoft VS Code from accessing their marketplace.
The default location respects `$XDG_CONFIG_HOME`.
See the [TOS](https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf).
## How do I make my keyboard shortcuts work?
> Marketplace Offerings are intended for use only with Visual Studio Products and Services
> and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
Many shortcuts will not work by default, since they'll be "caught" by the browser.
As a result, we cannot offer any extensions on the Microsoft marketplace. Instead,
we have created our own marketplace for open source extensions.
It works by scraping GitHub for VS Code extensions and building them. It's not perfect but getting
better by the day with more and more extensions.
If you use Chrome, you can work around this by installing the progressive web
app (PWA):
These are the closed source extensions presently unavailable:
1. Start the editor
2. Click the **plus** icon in the URL toolbar to install the PWA
1. [Live Share](https://visualstudio.microsoft.com/services/live-share)
- We may implement something similar, see [#33](https://github.com/cdr/code-server/issues/33)
1. [Remote Extensions (SSH, Containers, WSL)](https://github.com/microsoft/vscode-remote-release)
- We may reimplement these at some point, see [#1315](https://github.com/cdr/code-server/issues/1315)
For other browsers, you'll have to remap keybindings for shortcuts to work.
For more about the closed source parts of VS Code, see [vscodium/vscodium](https://github.com/VSCodium/vscodium#why-does-this-exist).
## Why can't code-server use Microsoft's extension marketplace?
### Installing an extension
Though code-server takes the open-source core of VS Code and allows you to run
it in the browser, it is not entirely equivalent to Microsoft's VS Code.
Extensions can be installed from the marketplace using the extensions sidebar in
One major difference is in regards to extensions and the marketplace. The core
of VS code is open source, while the marketplace and many published Microsoft
extensions are not. Furthermore, Microsoft prohibits the use of any
non-Microsoft VS Code from accessing their marketplace. Per the [Terms of
Service](https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf):
> Marketplace Offerings are intended for use only with Visual Studio Products
> and Services, and you may only install and use Marketplace Offerings with
> Visual Studio Products and Services.
Because of this, we can't offer any extensions on Microsoft's marketplace.
Instead, we've created a marketplace offering open-source extensions. The
marketplace works by scraping GitHub for VS Code extensions and building them.
These are the closed-source extensions that are presently unavailable:
1. [Live Share](https://visualstudio.microsoft.com/services/live-share). We may
implement something similar (see
[#33](https://github.com/cdr/code-server/issues/33))
1. [Remote Extensions (SSH, Containers,
WSL)](https://github.com/microsoft/vscode-remote-release). We may implement
these again at some point, see
([#1315](https://github.com/cdr/code-server/issues/1315)).
For more about the closed source portions of VS Code, see [vscodium/vscodium](https://github.com/VSCodium/vscodium#why-does-this-exist).
## How can I request an extension that's missing from the marketplace?
We are in the process of transitioning to [Open VSX](https://open-vsx.org/).
Once we've [implemented Open
VSX](https://github.com/eclipse/openvsx/issues/249), we can finalize this
transition. As such, we are not currently accepting new extension requests.
In the meantime, we suggest:
- [Switching to Open VSX](#how-do-i-configure-the-marketplace-url) now
- Downloading and [installing the extension manually](#installing-an-extension-manually)
## How do I install an extension?
You can install extensions from the marketplace using the extensions sidebar in
code-server or from the command line:
```shell
```console
code-server --install-extension <extension id>
# example: code-server --install-extension wesbos.theme-cobalt2
```
## How can I request a missing extension?
We are currently in the process of transitioning to [Open VSX](https://open-vsx.org/).
Once <https://github.com/eclipse/openvsx/issues/249>
is implemented, we can fully make this transition. Therefore, we are no longer
accepting new requests for extension requests.
Instead, we suggest one of the following:
- [Switch to Open VSX](#how-do-i-configure-the-marketplace-url) now
- Download and [install the extension manually](#installing-an-extension-manually)
## Installing an extension manually
If an extension is not available from the marketplace or does not work, you can
grab its VSIX from its GitHub releases or build it yourself.
Once you have downloaded the VSIX to the remote machine you can either:
- Run the `Extensions: Install from VSIX` command in the Command Palette.
- Use `code-server --install-extension <path to vsix>`
You can also download extensions from the command line. For instance, downloading off OpenVSX can be done like this:
```shell
SERVICE_URL=https://open-vsx.org/vscode/gallery ITEM_URL=https://open-vsx.org/vscode/item code-server --install-extension <extension id>
```
## How do I configure the marketplace URL?
If you have your own marketplace that implements the VS Code Extension Gallery API, it is possible to
point code-server to it by setting `$SERVICE_URL` and `$ITEM_URL`. These correspond directly
to `serviceUrl` and `itemUrl` in VS Code's `product.json`.
e.g. to use [open-vsx.org](https://open-vsx.org):
```bash
export SERVICE_URL=https://open-vsx.org/vscode/gallery
export ITEM_URL=https://open-vsx.org/vscode/item
```
While you can technically use Microsoft's marketplace with these, please do not do so as it
is against their terms of use. See [above](#differences-compared-to-vs-code) and this
discussion regarding the use of the Microsoft URLs in forks:
<https://github.com/microsoft/vscode/issues/31168#issue-244533026>
See also [VSCodium's docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#extensions--marketplace).
These variables are most valuable to our enterprise customers for whom we have a self hosted marketplace product.
## Where are extensions stored?
Defaults to `~/.local/share/code-server/extensions`.
If the `XDG_DATA_HOME` environment variable is set the data directory will be
`$XDG_DATA_HOME/code-server/extensions`. In general we try to follow the XDG directory spec.
You can install an extension on the CLI with:
```bash
# From the Coder extension marketplace
code-server --install-extension ms-python.python
@@ -163,280 +143,101 @@ code-server --install-extension ms-python.python
code-server --install-extension downloaded-ms-python.python.vsix
```
## How is this different from VS Code Codespaces?
## How do I install an extension manually?
VS Code Codespaces is a closed source and paid service by Microsoft. It also allows you to access
VS Code via the browser.
If there's an extension unavailable in the marketplace or an extension that
doesn't work, you can download the VSIX from its GitHub releases or build it
yourself.
However, code-server is free, open source and can be run on any machine without any limitations.
Once you have downloaded the VSIX to the remote machine, you can either:
While you can self host environments with VS Code Codespaces, you still need an Azure billing
account and you have to access VS Code via the Codespaces web dashboard instead of directly
connecting to your instance.
- Run the **Extensions: Install from VSIX** command in the Command Palette.
- Run `code-server --install-extension <path to vsix>` in the terminal
## How should I expose code-server to the internet?
You can also download extensions using the command line. For instance,
downloading from OpenVSX can be done like this:
Please follow [./guide.md](./guide.md) for our recommendations on setting up and using code-server.
code-server only supports password authentication natively.
**note**: code-server will rate limit password authentication attempts at 2 a minute and 12 an hour.
If you want to use external authentication (i.e sign in with Google) you should handle this
with a reverse proxy using something like [oauth2_proxy](https://github.com/pusher/oauth2_proxy)
or [Cloudflare Access](https://teams.cloudflare.com/access).
For HTTPS, you can use a self signed certificate by passing in just `--cert` or
pass in an existing certificate by providing the path to `--cert` and the path to
the key with `--cert-key`.
The self signed certificate will be generated into
`~/.local/share/code-server/self-signed.crt`.
If `code-server` has been passed a certificate it will also respond to HTTPS
requests and will redirect all HTTP requests to HTTPS.
You can use [Let's Encrypt](https://letsencrypt.org/) to get a TLS certificate
for free.
Again, please follow [./guide.md](./guide.md) for our recommendations on setting up and using code-server.
## Can I store my password hashed?
Yes you can! Set the value of `hashed-password` instead of `password`. Generate the hash with:
```
printf "thisismypassword" | sha256sum | cut -d' ' -f1
```shell
SERVICE_URL=https://open-vsx.org/vscode/gallery ITEM_URL=https://open-vsx.org/vscode/item code-server --install-extension <extension id>
```
Of course replace `thisismypassword` with your actual password.
## How do I use my own extensions marketplace?
Example:
If you own a marketplace that implements the VS Code Extension Gallery API, you
can point code-server to it by setting `$SERVICE_URL` and `$ITEM_URL`. These correspond directly
to `serviceUrl` and `itemUrl` in VS Code's `product.json`.
```yaml
auth: password
hashed-password: 1da9133ab9dbd11d2937ec8d312e1e2569857059e73cc72df92e670928983ab5 # You got this from the command above
For example, to use [open-vsx.org](https://open-vsx.org), run:
```bash
export SERVICE_URL=https://open-vsx.org/vscode/gallery
export ITEM_URL=https://open-vsx.org/vscode/item
```
## How do I securely access web services?
Though you can technically use Microsoft's marketplace in this manner, we
strongly discourage you from doing so since this is [against their Terms of Use](#why-cant-code-server-use-microsofts-extension-marketplace).
code-server is capable of proxying to any port using either a subdomain or a
subpath which means you can securely access these services using code-server's
built-in authentication.
For further information, see [this
discussion](https://github.com/microsoft/vscode/issues/31168#issue-244533026)
regarding the use of the Microsoft URLs in forks, as well as [VSCodium's
docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#extensions--marketplace).
### Sub-paths
## Where are extensions stored?
Just browse to `/proxy/<port>/`.
Extensions are store, by default, to `~/.local/share/code-server/extensions`.
### Sub-domains
If you set the `XDG_DATA_HOME` environment variable, the data directory will be
`$XDG_DATA_HOME/code-server/extensions`. In general, we try to follow the XDG directory spec.
You will need a DNS entry that points to your server for each port you want to
access. You can either set up a wildcard DNS entry for `*.<domain>` if your domain
name registrar supports it or you can create one for every port you want to
access (`3000.<domain>`, `8080.<domain>`, etc).
## How can I reuse my VS Code configuration?
You should also set up TLS certificates for these subdomains, either using a
wildcard certificate for `*.<domain>` or individual certificates for each port.
You can use the [Settings
Sync](https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync)
extension for this purpose.
Start code-server with the `--proxy-domain` flag set to your domain.
```
code-server --proxy-domain <domain>
```
Now you can browse to `<port>.<domain>`. Note that this uses the host header so
ensure your reverse proxy forwards that information if you are using one.
## Why does the code-server proxy strip `/proxy/<port>` from the request path?
HTTP servers should strive to use relative URLs to avoid needed to be coupled to the
absolute path at which they are served. This means you must use trailing slashes on all
paths with subpaths. See <https://blog.cdivilly.com/2019/02/28/uri-trailing-slashes>
This is really the "correct" way things work and why the striping of the base path is the
default. If your application uses relative URLs and does not assume the absolute path at
which it is being served, it will just work no matter what port you decide to serve it off
or if you put it in behind code-server or any other proxy!
However many people prefer the cleaner aesthetic of no trailing slashes. This couples you
to the base path as you cannot use relative redirects correctly anymore. See the above
link.
For users who are ok with this tradeoff, use `/absproxy` instead and the path will be
passed as is. e.g. `/absproxy/3000/my-app-path`
### Proxying to Create React App
You must use `/absproxy/<port>` with create-react-app.
See [#2565](https://github.com/cdr/code-server/issues/2565) and
[#2222](https://github.com/cdr/code-server/issues/2222). You will need to inform
create-react-app of the path at which you are serving via `$PUBLIC_URL` and webpack
via `$WDS_SOCKET_PATH`.
e.g.
```sh
PUBLIC_URL=/absproxy/3000 \
WDS_SOCKET_PATH=$PUBLIC_URL/sockjs-node \
BROWSER=none yarn start
```
Then visit `https://my-code-server-address.io/absproxy/3000` to see your app exposed through
code-server!
Highly recommend using the subdomain approach instead to avoid this class of issue.
## Multi-tenancy
If you want to run multiple code-servers on shared infrastructure, we recommend using virtual
machines with a VM per user. This will easily allow users to run a docker daemon. If you want
to use kubernetes, you'll definitely want to use [kubevirt](https://kubevirt.io) or [sysbox](https://github.com/nestybox/sysbox) to give each
user a VM-like experience instead of just a container.
## Docker in code-server container?
If you'd like to access docker inside of code-server, mount the docker socket in from `/var/run/docker.sock`.
Install the docker CLI in the code-server container and you should be able to access the daemon!
You can even make volume mounts work. Lets say you want to run a container and mount in
`/home/coder/myproject` into it from inside the `code-server` container. You need to make sure
the docker daemon's `/home/coder/myproject` is the same as the one mounted inside the `code-server`
container and the mount will just work.
## How can I disable telemetry?
Use the `--disable-telemetry` flag to completely disable telemetry. We use the
data collected only to improve code-server.
Alternatively, you can also pass `--user-data-dir ~/.vscode` or copy `~/.vscode`
into `~/.local/share/code-server` to reuse your existing VS Code extensions and
configuration.
## How does code-server decide what workspace or folder to open?
code-server tries the following in order:
code-server tries the following in this order:
1. The `workspace` query parameter.
2. The `folder` query parameter.
3. The workspace or directory passed on the command line.
4. The last opened workspace or directory.
1. The `workspace` query parameter
2. The `folder` query parameter
3. The workspace or directory passed via the command line
4. The last opened workspace or directory
## How do I debug issues with code-server?
## How do I access my Documents/Downloads/Desktop folders in code-server on macOS?
First run code-server with at least `debug` logging (or `trace` to be really
thorough) by setting the `--log` flag or the `LOG_LEVEL` environment variable.
`-vvv` and `--verbose` are aliases for `--log trace`.
Newer versions of macOS require permission through a non-UNIX mechanism for
code-server to access the Desktop, Documents, Pictures, Downloads, and other folders.
```
code-server --log debug
```
You may have to give Node.js full disk access, since it doesn't implement any of the macOS permission request features natively:
Once this is done, replicate the issue you're having then collect logging
information from the following places:
1. The most recent files from `~/.local/share/code-server/coder-logs`.
2. The browser console.
3. The browser network tab.
Additionally, collecting core dumps (you may need to enable them first) if
code-server crashes can be helpful.
## Heartbeat File
`code-server` touches `~/.local/share/code-server/heartbeat` once a minute as long
as there is an active browser connection.
If you want to shutdown `code-server` if there hasn't been an active connection in X minutes
you can do so by continuously checking the last modified time on the heartbeat file and if it is
older than X minutes, kill `code-server`.
[#1636](https://github.com/cdr/code-server/issues/1636) will make the experience here better.
## Healthz endpoint
`code-server` exposes an endpoint at `/healthz` which can be used to check
whether `code-server` is up without triggering a heartbeat. The response will
include a status (`alive` or `expired`) and a timestamp for the last heartbeat
(defaults to `0`). This endpoint does not require authentication.
```json
{
"status": "alive",
"lastHeartbeat": 1599166210566
}
```
## How does the config file work?
When `code-server` starts up, it creates a default config file in `~/.config/code-server/config.yaml` that looks
like this:
```yaml
bind-addr: 127.0.0.1:8080
auth: password
password: mewkmdasosafuio3422 # This is randomly generated for each config.yaml
cert: false
```
Each key in the file maps directly to a `code-server` flag. Run `code-server --help` to see
a listing of all the flags.
The default config here says to listen on the loopback IP port 8080, enable password authorization
and no TLS. Any flags passed to `code-server` will take priority over the config file.
The `--config` flag or `$CODE_SERVER_CONFIG` can be used to change the config file's location.
The default location also respects `$XDG_CONFIG_HOME`.
## Isn't an install script piped into sh insecure?
Please give
[this wonderful blogpost](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) by
[sandstorm.io](https://sandstorm.io) a read.
## How do I make my keyboard shortcuts work?
Many shortcuts will not work by default as they'll be caught by the browser.
If you use Chrome you can get around this by installing the PWA.
Once you've entered the editor, click the "plus" icon present in the URL toolbar area.
This will install a Chrome PWA and now all keybindings will work!
For other browsers you'll have to remap keybindings unfortunately.
## How do I access my Documents/Downloads/Desktop folders in code-server on OSX?
Newer versions of macOS require permission through a non-UNIX mechanism for access to the Desktop, Documents, Pictures, Downloads, and other folders.
You may have to give Node "full disk access" since it doesn't implement any of the macOS permission request stuff natively.
1. Find where Node is installed on your machine
1. Find where Node.js is installed on your machine
```console
➜ ~ which node
$ which node
/usr/local/bin/node
```
1. Grant Node Full Disk Access:
2. Grant Node.js full disk access. Open **System Preferences** > **Security &
Privacy** > **Privacy** > **Full Disk Access**. Then, click the 🔒 to unlock,
click **+**, and select the Node.js binary you located in the previous step.
Open System Preferences > Security & Privacy > Privacy (horizontal) tab > Full Disk Access (vertical) tab > Click the 🔒 to unlock > Click + and select the Node binary you located.
See [#2794](https://github.com/cdr/code-server/issues/2794) for additional context.
See [#2794](https://github.com/cdr/code-server/issues/2794) for context on this.
## How do I direct server-side requests through a proxy?
## Differences compared to Theia?
> code-server proxies only server-side requests.
[Theia](https://github.com/eclipse-theia/theia) is a browser IDE loosely based on VS Code. It uses the same
text editor library named [Monaco](https://github.com/Microsoft/monaco-editor) and the same
extension API but everything else is very different. It also uses [open-vsx.org](https://open-vsx.org)
for extensions which has an order of magnitude less extensions than our marketplace.
See [#1473](https://github.com/cdr/code-server/issues/1473).
To direct server-side requests through a proxy, code-server supports the
following environment variables:
You can't just use your VS Code config in Theia like you can with code-server.
To summarize, code-server is a patched fork of VS Code to run in the browser whereas
Theia takes some parts of VS Code but is an entirely different editor.
## `$HTTP_PROXY`, `$HTTPS_PROXY`, `$NO_PROXY`
code-server supports the standard environment variables to allow directing
server side requests through a proxy.
- `$HTTP_PROXY`
- `$HTTPS_PROXY`
- `$NO_PROXY`
```sh
export HTTP_PROXY=https://134.8.5.4
@@ -446,18 +247,163 @@ export HTTPS_PROXY=https://134.8.5.4
code-server
```
- See [proxy-from-env](https://www.npmjs.com/package/proxy-from-env#environment-variables)
for a detailed reference on the various environment variables and their syntax.
- code-server only uses the `http` and `https` protocols.
- See [proxy-agent](https://www.npmjs.com/package/proxy-agent) for the various supported
proxy protocols.
- See
[proxy-from-env](https://www.npmjs.com/package/proxy-from-env#environment-variables)
for a detailed reference on these environment variables and their syntax (note
that code-server only uses the `http` and `https` protocols).
- See [proxy-agent](https://www.npmjs.com/package/proxy-agent) for information
on on the supported proxy protocols.
**note**: Only server side requests will be proxied! This includes fetching extensions,
requests made from extensions etc. To proxy requests from your browser you need to
configure your browser separately. Browser requests would cover exploring the extension
marketplace.
## How do I debug issues with code-server?
## Enterprise
First, run code-server with the `debug` logging (or `trace` to be really
thorough) by setting the `--log` flag or the `LOG_LEVEL` environment variable.
`-vvv` and `--verbose` are aliases for `--log trace`.
Visit [our enterprise page](https://coder.com) for more information about our
enterprise offerings.
First, run code-server with `debug` logging (or `trace` logging for more
thorough messages) by setting the `--log` flag or the `LOG_LEVEL` environment
variable.
```text
code-server --log debug
```
> Note that the `-vvv` and `--verbose` flags are aliases for `--log trace`.
Next, replicate the issue you're having so that you can collect logging
information from the following places:
1. The most recent files from `~/.local/share/code-server/coder-logs`
2. The browser console
3. The browser network tab
Additionally, collecting core dumps (you may need to enable them first) if
code-server crashes can be helpful.
## What is the healthz endpoint?
You can use the `/healthz` endpoint exposed by code-server to check whether
code-server is running without triggering a heartbeat. The response includes a
status (e.g., `alive` or `expired`) and a timestamp for the last heartbeat
(the default is `0`).
```json
{
"status": "alive",
"lastHeartbeat": 1599166210566
}
```
This endpoint doesn't require authentication.
## What is the heartbeat file?
As long as there is an active browser connection, code-server touches
`~/.local/share/code-server/heartbeat` once a minute.
If you want to shutdown code-server if there hasn't been an active connection
after a predetermined amount of time, you can do so by checking continuously for
the last modified time on the heartbeat file. If it is older than X minutes (or
whatever amount of time you'd like), you can kill code-server.
Eventually, [#1636](https://github.com/cdr/code-server/issues/1636) will make
this process better.
## How do I change the password?
Edit the `password` field in the code-server config file at
`~/.config/code-server/config.yaml`, then restart code-server:
```bash
sudo systemctl restart code-server@$USER
```
## Can I store my password hashed?
Yes, you can do so by setting the value of `hashed-password` instead of `password`. Generate the hash with:
```shell
echo -n "thisismypassword" | npx argon2-cli -e
$argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
```
Replace `thisismypassword` with your actual password and **remember to put it
inside quotes**! For example:
```yaml
auth: password
hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
```
The `hashed-password` field takes precedence over `password`.
## Is multi-tenancy possible?
If you want to run multiple code-servers on shared infrastructure, we recommend
using virtual machines (provide one VM per user). This will easily allow users
to run a Docker daemon. If you want to use Kubernetes, you'll want to
use [kubevirt](https://kubevirt.io) or
[sysbox](https://github.com/nestybox/sysbox) to give each user a VM-like
experience instead of just a container.
## Can I use Docker in a code-server container?
If you'd like to access Docker inside of code-server, mount the Docker socket in
from `/var/run/docker.sock`. Then, install the Docker CLI in the code-server
container, and you should be able to access the daemon.
You can even make volume mounts work. Let's say you want to run a container and
mount into `/home/coder/myproject` from inside the `code-server` container. You
need to make sure the Docker daemon's `/home/coder/myproject` is the same as the
one mounted inside the `code-server` container, and the mount will work.
## How do I disable telemetry?
Use the `--disable-telemetry` flag to disable telemetry.
> We use the data collected only to improve code-server.
## What's the difference between code-server and Theia?
At a high level, code-server is a patched fork of VS Code that runs in the
browser whereas Theia takes some parts of VS Code but is an entirely different
editor.
[Theia](https://github.com/eclipse-theia/theia) is a browser IDE loosely based
on VS Code. It uses the same text editor library
([Monaco](https://github.com/Microsoft/monaco-editor)) and extension API, but
everything else is different. Theia also uses [Open VSX](https://open-vsx.org)
for extensions.
Theia doesn't allow you to reuse your existing VS Code config.
## What's the difference between code-server and VS Code Codespaces?
Both code-server and VS Code Codespaces allow you to access VS Code via a
browser.
VS Code Codespaces, however, is a closed-source, paid service offered by
Microsoft. While you can self-host environments with VS Code Codespaces, you
still need an Azure billing account, and you must access VS Code via the
Codespaces web dashboard instead of connecting directly to it.
On the other hand, code-server is free, open-source, and can be run on any
machine with few limitations.
## Does code-server have any security login validation?
code-server supports setting a single password and limits logins to two per
minute plus an additional twelve per hour.
## Are there community projects involving code-server?
Visit the [awesome-code-server](https://github.com/cdr/awesome-code-server)
repository to view community projects and guides with code-server! Feel free to
add your own!
## How do I change the port?
There are two ways to change the port on which code-server runs:
1. with an environment variable e.g. `PORT=3000 code-server`
2. using the flag `--bind-addr` e.g. `code-server --bind-addr localhost:3000`

View File

@@ -2,91 +2,172 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Maintaining
- [Maintaining](#maintaining)
- [Workflow](#workflow)
- [Milestones](#milestones)
- [Triage](#triage)
- [Project Boards](#project-boards)
- [Versioning](#versioning)
- [Pull Requests](#pull-requests)
- [Merge Strategies](#merge-strategies)
- [Release](#release)
- [Release Manager Rotation](#release-manager-rotation)
- [Workflow](#workflow)
- [Milestones](#milestones)
- [Triage](#triage)
- [Project boards](#project-boards)
- [Versioning](#versioning)
- [Pull requests](#pull-requests)
- [Merge strategies](#merge-strategies)
- [Changelog](#changelog)
- [Releases](#releases)
- [Publishing a release](#publishing-a-release)
- [Documentation](#documentation)
- [Troubleshooting](#troubleshooting)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Maintaining
Current maintainers:
- @code-asher
- @oxy
- @jsjoeio
This document is meant to serve current and future maintainers of code-server, but also share openly our workflow for maintaining the project.
This document is meant to serve current and future maintainers of code-server,
as well as share our workflow for maintaining the project.
## Workflow
The workflow used by code-server maintainers is one that aims to be easy to understood by the community and easy enough for new maintainers to jump in and start contributing on day one.
The workflow used by code-server maintainers aims to be easy to understood by
the community and easy enough for new maintainers to jump in and start
contributing on day one.
### Milestones
We operate mainly using [milestones](https://github.com/cdr/code-server/milestones). This was heavily inspired by our friends over at [vscode](https://github.com/microsoft/vscode).
We operate mainly using
[milestones](https://github.com/cdr/code-server/milestones). This was heavily
inspired by our friends over at [vscode](https://github.com/microsoft/vscode).
Here are the milestones we use and how we use them:
- "Backlog" -> Work not yet planned for a specific release.
- "On Deck" -> Work under consideration for upcoming milestones.
- "Backlog Candidates" -> Work that is not yet accepted for the backlog. We wait for the community to weigh in.
- "<0.0.0>" -> Work to be done for that version.
- "Backlog Candidates" -> Work that is not yet accepted for the backlog. We wait
for the community to weigh in.
- "<0.0.0>" -> Work to be done for a specific version.
With this flow, any un-assigned issues are essentially in triage state and once triaged are either "Backlog" or "Backlog Candidates". They will eventually move to "On Deck" (or be closed). Lastly, they will end up on a version milestone where they will be worked on.
With this flow, any un-assigned issues are essentially in triage state. Once
triaged, issues are either "Backlog" or "Backlog Candidates". They will
eventually move to "On Deck" (or be closed). Lastly, they will end up on a
version milestone where they will be worked on.
### Triage
We use the following process for triaging GitHub issues:
1. a submitter creates an issue
1. add appropriate labels
1. if we need to look into it further, add "needs-investigation"
1. add to milestone
1. if it should be fixed soon, add to version milestone or "On Deck"
1. if not urgent, add to "Backlog"
1. otherwise, add to "Backlog Candidate" if it should be considered
1. Create an issue
1. Add appropriate labels to the issue (including "needs-investigation" if we
should look into it further)
1. Add the issue to a milestone
1. If it should be fixed soon, add to version milestone or "On Deck"
2. If not urgent, add to "Backlog"
3. Otherwise, add to "Backlog Candidate" for future consideration
### Project Boards
### Project boards
We use project boards for projects or goals that span multiple milestones.
Think of this as a place to put miscellaneous things (like testing, clean up stuff, etc). As a maintainer, random todos may come up here and there. This gives you a place to add notes temporarily before opening a new issue. Given that our release milestones function off of issues, we believe tasks should have dedicated issues.
Think of this as a place to put miscellaneous things (like testing, clean up
stuff, etc). As a maintainer, random tasks may come up here and there. The
project boards give you places to add temporary notes before opening a new
issue. Given that our release milestones function off of issues, we believe
tasks should have dedicated issues.
It also gives us a way to separate the issue triage from bigger-picture, long-term work.
Project boards also give us a way to separate the issue triage from
bigger-picture, long-term work.
## Versioning
`<major.minor.patch>`
The code-server project follows traditional [semantic versioning](https://semver.org/), with the objective of minimizing major changes that break backward compatibility. We increment the patch level for all releases, except when the upstream Visual Studio Code project increments its minor version or we change the plugin API in a backward-compatible manner. In those cases, we increment the minor version rather than the patch level.
The code-server project follows traditional [semantic
versioning](https://semver.org/), with the objective of minimizing major changes
that break backward compatibility. We increment the patch level for all
releases, except when the upstream Visual Studio Code project increments its
minor version or we change the plugin API in a backward-compatible manner. In
those cases, we increment the minor version rather than the patch level.
## Pull Requests
## Pull requests
Ideally, every PR should fix an issue. If it doesn't, make sure it's associated with a version milestone.
Ideally, every PR should fix an issue. If it doesn't, make sure it's associated
with a version milestone.
If a PR does fix an issue, don't add it to the version milestone. Otherwise, the version milestone will have duplicate information: the issue & the PR fixing the issue.
If a PR does fix an issue, don't add it to the version milestone. Otherwise, the
version milestone will have duplicate information: the issue and the PR fixing
the issue.
### Merge Strategies
### Merge strategies
For most things, we recommend "Squash and Merge". If you're updating `lib/vscode`, we suggest using the "Rebase and Merge" strategy. There may be times where "Create a merge commit" makes sense as well. Use your best judgement. If you're unsure, you can always discuss in the PR with the team.
The code-server project follows traditional [semantic versioning](ttps://semver.org/), with the objective of minimizing major changes that break backward compatibility. We increment the patch level for all releases, except when the upstream Visual Studio Code project increments its minor version or we change the plugin API in a backward-compatible manner. In those cases, we increment the minor version rather than the patch level.
For most things, we recommend the **squash and merge** strategy. If you're
updating `lib/vscode`, we suggest using the **rebase and merge** strategy. There
may be times where **creating a merge commit** makes sense as well. Use your
best judgment. If you're unsure, you can always discuss in the PR with the team.
## Release
### Changelog
### Release Manager Rotation
To save time when creating a new release for code-server, we keep a running
changelog at `CHANGELOG.md`.
With each release, we rotate the role of "release manager" to ensure every maintainer goes through the process. This helps us keep documentation up-to-date and encourages us to continually review and improve the flow with each set of eyes.
If either the author or reviewer of a PR believes the change should be mentioned
in the changelog, then it should be added.
If there is not a **Next Version** when you modify `CHANGELOG.md`, please add it
using the template you see near the top of the changelog.
When writing your changelog item, ask yourself:
1. How do these changes affect code-server users?
2. What actions do they need to take (if any)?
If you need inspiration, we suggest looking at the [Emacs
changelog](https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS).
## Releases
With each release, we rotate the role of release manager to ensure every
maintainer goes through the process. This helps us keep documentation up-to-date
and encourages us to continually review and improve the flow.
If you're the current release manager, follow these steps:
1. Create a [release issue](../.github/ISSUE_TEMPLATE/release.md)
2. Fill out checklist
3. After release is published, close release milestone
1. Fill out checklist
1. Publish the release
1. After release is published, close release milestone
### Publishing a release
1. Run `yarn release:prep` and type in the new version (e.g., `3.8.1`)
1. GitHub Actions will generate the `npm-package`, `release-packages` and
`release-images` artifacts. You do not have to wait for this step to complete
before proceeding.
1. Run `yarn release:github-draft` to create a GitHub draft release from the
template with the updated version.
1. Summarize the major changes in the release notes and link to the relevant
issues.
1. Change the @ to target the version branch. Example: `v3.9.0 @ Target: v3.9.0`
1. Wait for the `npm-package`, `release-packages` and `release-images` artifacts
to build.
1. Run `yarn release:github-assets` to download the `release-packages` artifact.
They will upload them to the draft release.
1. Run some basic sanity tests on one of the released packages (pay special
attention to making sure the terminal works).
1. Publish the release and merge the PR. CI will automatically grab the
artifacts, publish the NPM package from `npm-package`, and publish the Docker
Hub image from `release-images`.
1. Update the AUR package. Instructions for updating the AUR package are at
[cdr/code-server-aur](https://github.com/cdr/code-server-aur).
1. Wait for the npm package to be published.
## Documentation
### Troubleshooting
Our docs are hosted on [Vercel](https://vercel.com/). Vercel only shows logs in realtime, which means you need to have the logs open in one tab and reproduce your error in another tab. Since our logs are private to Coder the organization, you can only follow these steps if you're a Coder employee. Ask a maintainer for help if you need it.
Taking a real scenario, let's say you wanted to troubleshoot [this docs change](https://github.com/cdr/code-server/pull/4042). Here is how you would do it:
1. Go to https://vercel.com/codercom/codercom
2. Click "View Function Logs"
3. In a separate tab, open the preview link from github-actions-bot
4. Now look at the function logs and see if there are errors in the logs

78
docs/README.md Normal file
View File

@@ -0,0 +1,78 @@
# code-server
[!["GitHub Discussions"](https://img.shields.io/badge/%20GitHub-%20Discussions-gray.svg?longCache=true&logo=github&colorB=purple)](https://github.com/cdr/code-server/discussions) [!["Join us on Slack"](https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=brightgreen)](https://cdr.co/join-community) [![Twitter Follow](https://img.shields.io/twitter/follow/CoderHQ?label=%40CoderHQ&style=social)](https://twitter.com/coderhq) [![codecov](https://codecov.io/gh/cdr/code-server/branch/main/graph/badge.svg?token=5iM9farjnC)](https://codecov.io/gh/cdr/code-server) [![See v3.12.0 docs](https://img.shields.io/static/v1?label=Docs&message=see%20v3.12.0%20&color=blue)](https://github.com/cdr/code-server/tree/v3.12.0/docs)
Run [VS Code](https://github.com/Microsoft/vscode) on any machine anywhere and
access it in the browser.
![Screenshot](./assets/screenshot.png)
## Highlights
- Code on any device with a consistent development environment
- Use cloud servers to speed up tests, compilations, downloads, and more
- Preserve battery life when you're on the go; all intensive tasks run on your
server
## Requirements
See [requirements](requirements.md) for minimum specs, as well as instructions
on how to set up a Google VM on which you can install code-server.
**TL;DR:** Linux machine with WebSockets enabled, 1 GB RAM, and 2 CPUs
## Getting started
There are three ways to get started:
1. Using the [install
script](https://github.com/cdr/code-server/blob/main/install.sh), which
automates most of the process. The script uses the system package manager if
possible.
2. Manually [installing
code-server](https://coder.com/docs/code-server/latest/install)
3. Using our one-click buttons and guides to [deploy code-server to a cloud
provider](https://github.com/cdr/deploy-code-server) ⚡
If you use the install script, you can preview what occurs during the install
process:
```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
```
To install, run:
```bash
curl -fsSL https://code-server.dev/install.sh | sh
```
When done, the install script prints out instructions for running and starting
code-server.
We also have an in-depth [setup and
configuration](https://coder.com/docs/code-server/latest/guide) guide.
## TLS and authentication (beta)
To add TLS and authentication out of the box, use [code-server --link](https://coder.com/docs/code-server/latest/link).
## Questions?
See answers to [frequently asked
questions](https://coder.com/docs/code-server/latest/FAQ).
## Want to help?
See [Contributing](https://coder.com/docs/code-server/latest/CONTRIBUTING) for
details.
## Hiring
Interested in [working at Coder](https://coder.com/careers)? Check out [our open
positions](https://coder.com/careers#openings)!
## For Organizations
Want remote development for your organization or enterprise? Visit [our
website](https://coder.com) to learn more about Coder.

View File

@@ -1,24 +1,30 @@
# Security Policy
The code-server team (and Coder, the organization) care a lot about keeping the project secure and safe for end-users.
Coder and the code-server team want to keep the code-server project secure and safe for end-users.
## Tools
We use a combination of tools to help us stay on top of vulnerabilities.
We use the following tools to help us stay on top of vulnerability mitigation.
- [dependabot](https://dependabot.com/)
- Submits pull requests to upgrade dependencies. We use dependabot's version upgrades as well as security updates.
- Submits pull requests to upgrade dependencies. We use dependabot's version
upgrades as well as security updates.
- code-scanning
- [CodeQL](https://securitylab.github.com/tools/codeql/)
- Semantic code analysis engine that runs on a regular schedule (see `codeql-analysis.yml`)
- Semantic code analysis engine that runs on a regular schedule (see
`codeql-analysis.yml`)
- [trivy](https://github.com/aquasecurity/trivy)
- Comprehensive vulnerability scanner that runs on PRs into the default branch and scans both our container image and repository code (see `trivy-scan-repo` and `trivy-scan-image` jobs in `ci.yaml`)
- Comprehensive vulnerability scanner that runs on PRs into the default
branch and scans both our container image and repository code (see
`trivy-scan-repo` and `trivy-scan-image` jobs in `ci.yaml`)
- [`audit-ci`](https://github.com/IBM/audit-ci)
- Audits npm and Yarn dependencies in CI (see "Audit for vulnerabilities" step in `ci.yaml`) on PRs into the default branch and fails CI if moderate or higher vulnerabilities(see the `audit.sh` script) are present.
- Audits npm and Yarn dependencies in CI (see `Audit for vulnerabilities` step
in `ci.yaml`) on PRs into the default branch and fails CI if moderate or
higher vulnerabilities (see the `audit.sh` script) are present.
## Supported Versions
Coder sponsors development and maintenance of the code-server project. We will fix security issues within 90 days of receiving a report, and publish the fix in a subsequent release. The code-server project does not provide backports or patch releases for security issues at this time.
Coder sponsors the development and maintenance of the code-server project. We will fix security issues within 90 days of receiving a report and publish the fix in a subsequent release. The code-server project does not provide backports or patch releases for security issues at this time.
| Version | Supported |
| ----------------------------------------------------- | ------------------ |
@@ -26,4 +32,4 @@ Coder sponsors development and maintenance of the code-server project. We will f
## Reporting a Vulnerability
To report a vulnerability, please send an email to security[@]coder.com and our security team will respond to you.
To report a vulnerability, please send an email to security[@]coder.com, and our security team will respond to you.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 974 KiB

After

Width:  |  Height:  |  Size: 357 KiB

61
docs/collaboration.md Normal file
View File

@@ -0,0 +1,61 @@
# Collaboration
With third-party extensions, you can use code-server to collaborate with other developers in real time.
## Code sharing using Duckly
[Duckly](https://duckly.com/) allows you to share your code in real-time even with people using different IDEs (like JetBrains and VSCode).
- Cross-IDE support,
- Real-time typing,
- P2P encrypted,
- Voice and audio chat,
- Terminal sharing
### Installing the Duckly Extension
Duckly uses an extension to provide real time sharing features
1. Install the Duckly extension from OpenVSX on `code-server`.
```bash
SERVICE_URL=https://open-vsx.org/vscode/gallery \
ITEM_URL=https://open-vsx.org/vscode/item \
code-server --install-extension gitduck.code-streaming
```
2. Refresh you `code-server` window. You should now be able to see the Duckly extension.
### Sharing with Duckly
As `code-server` is based on VS Code, you can follow the steps described on Duckly's [Pair programming with VS Code](https://duckly.com/tools/vscode) page and skip the installation step.
## Code sharing with CodeTogether
[CodeTogether](https://www.codetogether.com/) is another service with cross-platform live collaborative features:
- Sharing ports,
- Sharing, read/write terminals,
- Joining via web browser or another IDE.
However, some of these are [paid options](https://www.codetogether.com/pricing/).
### Installing the CodeTogether extension
1. Install the CodeTogether extension from OpenVSX on `code-server`.
```sh
SERVICE_URL=https://open-vsx.org/vscode/gallery \
ITEM_URL=https://open-vsx.org/vscode/item \
code-server --install-extension genuitecllc.codetogether
```
2. CodeTogether requires VS Code's proposed API to run. Start code-server with the following flag:
```sh
code-server --enable-proposed-api genuitecllc.codetogether
```
Another option would be to add a value in code-server's [config file](https://coder.com/docs/code-server/v3.12.0/FAQ#how-does-the-config-file-work).
3. Refresh code-server and navigate to the CodeTogether icon in the sidebar to host or join a coding session.

File diff suppressed because it is too large Load Diff

160
docs/helm.md Normal file
View File

@@ -0,0 +1,160 @@
# code-server Helm Chart
[![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square)](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) [![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)](https://img.shields.io/badge/Type-application-informational?style=flat-square) [![AppVersion: 3.12.0](https://img.shields.io/badge/AppVersion-3.12.0-informational?style=flat-square)](https://img.shields.io/badge/AppVersion-3.12.0-informational?style=flat-square)
[code-server](https://github.com/cdr/code-server) code-server is VS Code running
on a remote server, accessible through the browser.
This chart is community maintained by [@Matthew-Beckett](https://github.com/Matthew-Beckett) and [@alexgorbatchev](https://github.com/alexgorbatchev)
## Quickstart
```console
$ git clone https://github.com/cdr/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart
```
## Introduction
This chart bootstraps a code-server deployment on a
[Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh)
package manager.
## Prerequisites
- Kubernetes 1.6+
## Installing the Chart
To install the chart with the release name `code-server`:
```console
$ git clone https://github.com/cdr/code-server
$ cd code-server
$ helm upgrade --install code-server ci/helm-chart
```
The command deploys code-server on the Kubernetes cluster in the default
configuration. The [configuration](#configuration) section lists the parameters
that can be configured during installation.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `code-server` deployment:
```console
$ helm delete code-server
```
The command removes all the Kubernetes components associated with the chart and
deletes the release.
## Configuration
The following table lists the configurable parameters of the code-server chart
and their default values.
## Values
| Key | Type | Default |
| ------------------------------------------- | ------ | ------------------------ |
| affinity | object | `{}` |
| extraArgs | list | `[]` |
| extraConfigmapMounts | list | `[]` |
| extraContainers | string | `""` |
| extraInitContainers | string | `""` |
| extraSecretMounts | list | `[]` |
| extraVars | list | `[]` |
| extraVolumeMounts | list | `[]` |
| fullnameOverride | string | `""` |
| hostnameOverride | string | `""` |
| image.pullPolicy | string | `"Always"` |
| image.repository | string | `"codercom/code-server"` |
| image.tag | string | `"3.12.0"` |
| imagePullSecrets | list | `[]` |
| ingress.enabled | bool | `false` |
| nameOverride | string | `""` |
| nodeSelector | object | `{}` |
| persistence.accessMode | string | `"ReadWriteOnce"` |
| persistence.annotations | object | `{}` |
| persistence.enabled | bool | `true` |
| persistence.size | string | `"1Gi"` |
| podAnnotations | object | `{}` |
| podSecurityContext | object | `{}` |
| replicaCount | int | `1` |
| resources | object | `{}` |
| securityContext.enabled | bool | `true` |
| securityContext.fsGroup | int | `1000` |
| securityContext.runAsUser | int | `1000` |
| service.port | int | `8443` |
| service.type | string | `"ClusterIP"` |
| serviceAccount.create | bool | `true` |
| serviceAccount.name | string | `nil` |
| tolerations | list | `[]` |
| volumePermissions.enabled | bool | `true` |
| volumePermissions.securityContext.runAsUser | int | `0` |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```console
$ helm upgrade --install code-server \
ci/helm-chart \
--set persistence.enabled=false
```
The above command sets the the persistence storage to false.
Alternatively, a YAML file that specifies the values for the above parameters
can be provided while installing the chart. For example,
```console
$ helm upgrade --install code-server ci/helm-chart -f values.yaml
```
> **Tip**: You can use the default [values.yaml](values.yaml)
# Extra Containers
There are two parameters which allow to add more containers to pod.
Use `extraContainers` to add regular containers
and `extraInitContainers` to add init containers. You can read more
about init containers in [k8s documentation](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/).
Both parameters accept strings and use them as a templates
Example of using `extraInitContainers`:
```yaml
extraInitContainers: |
- name: customization
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: IfNotPresent
env:
- name: SERVICE_URL
value: https://open-vsx.org/vscode/gallery
- name: ITEM_URL
value: https://open-vsx.org/vscode/item
command:
- sh
- -c
- |
code-server --install-extension ms-python.python
code-server --install-extension golang.Go
volumeMounts:
- name: data
mountPath: /home/coder
```
With this yaml in file `init.yaml`, you can execute
```console
$ helm upgrade --install code-server \
ci/helm-chart \
--values init.yaml
```
to deploy code-server with python and golang extensions preinstalled
before main container have started.

View File

@@ -2,95 +2,156 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Install
- [Upgrading](#upgrading)
- [install.sh](#installsh)
- [Flags](#flags)
- [Detection Reference](#detection-reference)
- [Detection reference](#detection-reference)
- [yarn, npm](#yarn-npm)
- [Standalone releases](#standalone-releases)
- [Debian, Ubuntu](#debian-ubuntu)
- [Fedora, CentOS, RHEL, SUSE](#fedora-centos-rhel-suse)
- [Arch Linux](#arch-linux)
- [Termux](#termux)
- [Raspberry Pi](#raspberry-pi)
- [yarn, npm](#yarn-npm)
- [macOS](#macos)
- [Standalone Releases](#standalone-releases)
- [Docker](#docker)
- [helm](#helm)
- [Cloud Providers](#cloud-providers)
- [Helm](#helm)
- [Windows](#windows)
- [Raspberry Pi](#raspberry-pi)
- [Termux](#termux)
- [Cloud providers](#cloud-providers)
- [Uninstall](#uninstall)
- [install.sh](#installsh-1)
- [Homebrew](#homebrew)
- [yarn, npm](#yarn-npm-1)
- [Debian, Ubuntu](#debian-ubuntu-1)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
This document demonstrates how to install `code-server` on
various distros and operating systems.
## Upgrading
When upgrading you can just install the new version over the old one. code-server
maintains all user data in `~/.local/share/code-server` so that it is preserved in between
installations.
This document demonstrates how to install `code-server` on various distros and
operating systems.
## install.sh
We have a [script](../install.sh) to install code-server for Linux, macOS and FreeBSD.
The easiest way to install code-server is to use our [install
script](../install.sh) for Linux, macOS and FreeBSD. The install script
[attempts to use the system package manager](#detection-reference) if possible.
It tries to use the system package manager if possible.
First run to print out the install process:
You can preview what occurs during the install process:
```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
```
Now to actually install:
To install, run:
```bash
curl -fsSL https://code-server.dev/install.sh | sh
```
The script will print out how to run and start using code-server.
You can modify the installation process by including one or more of the
following flags:
If you believe an install script used with `curl | sh` is insecure, please give
[this wonderful blogpost](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) by
[sandstorm.io](https://sandstorm.io) a read.
- `--dry-run`: echo the commands for the install process without running them.
- `--method`: choose the installation method.
- `--method=detect`: detect the package manager but fallback to
`--method=standalone`.
- `--method=standalone`: install a standalone release archive into `~/.local`.
- `--prefix=/usr/local`: install a standalone release archive system-wide.
- `--version=X.X.X`: install version `X.X.X` instead of latest version.
- `--help`: see usage docs.
If you'd still prefer manual installation despite the below [detection reference](#detection-reference) and `--dry-run`
then continue on for docs on manual installation. The [`install.sh`](../install.sh) script runs the _exact_ same
commands presented in the rest of this document.
When done, the install script prints out instructions for running and starting
code-server.
### Flags
> If you're concerned about the install script's use of `curl | sh` and the
> security implications, please see [this blog
> post](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install)
> by [sandstorm.io](https://sandstorm.io).
- `--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=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.
If you prefer to install code-server manually, despite the [detection
references](#detection-reference) and `--dry-run` feature, then continue on for
information on how to do this. The [`install.sh`](../install.sh) script runs the
_exact_ same commands presented in the rest of this document.
### Detection Reference
### Detection reference
- For Debian and Ubuntu 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 standalone release into `~/.local`.
- For Debian and Ubuntu, code-server will install the latest deb package.
- For Fedora, CentOS, RHEL and openSUSE, code-server will install the latest RPM
package.
- For Arch Linux, code-server will install the AUR package.
- For any unrecognized Linux operating system, code-server will install the
latest standalone release into `~/.local`.
- Add `~/.local/bin` to your `$PATH` to run code-server.
- Ensure that you add `~/.local/bin` to your `$PATH` to run code-server.
- For macOS it will install the Homebrew package.
- For macOS, code-server will install the Homebrew package (if you don't have
Homebrew installed, code-server will install the latest standalone 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.
- Ensure that you add `~/.local/bin` to your `$PATH` to run code-server.
- For FreeBSD, it will install the [npm package](#yarn-npm) with `yarn` or `npm`.
- For FreeBSD, code-server will install the [npm package](#yarn-npm) with `yarn`
or `npm`.
- If ran on an architecture with no releases, it will install the [npm package](#yarn-npm) with `yarn` or `npm`.
- We only have releases for amd64 and arm64 presently.
- The [npm package](#yarn-npm) builds the native modules on postinstall.
- If you're installing code-server onto architecture with no releases,
code-server will install the [npm package](#yarn-npm) with `yarn` or `npm`
- We currently offer releases for amd64 and arm64.
- The [npm package](#yarn-npm) builds the native modules on post-install.
## yarn, npm
We recommend installing with `yarn` or `npm` when:
1. You aren't using a machine with `amd64` or `arm64`.
1. You are installing code-server on Windows
1. You're on Linux with `glibc` < v2.17, `glibcxx` < v3.4.18 on `amd64`, `glibc`
< v2.23, or `glibcxx` < v3.4.21 on `arm64`.
1. You're running Alpine Linux or are using a non-glibc libc. See
[#1430](https://github.com/cdr/code-server/issues/1430#issuecomment-629883198)
for more information.
Installing code-server with `yarn` or `npm` builds native modules on install.
This process requires C dependencies; see our guide on [installing with yarn and npm][./npm.md](./npm.md) for more information.
## Standalone releases
We publish self-contained `.tar.gz` archives for every release on
[GitHub](https://github.com/cdr/code-server/releases). The archives bundle the
node binary and node modules.
We create the standalone releases using the [npm package](#yarn-npm), and we
then create the remaining releases using the standalone version.
The only requirement to use the standalone release is `glibc` >= 2.17 and
`glibcxx` >= v3.4.18 on Linux (for macOS, there is no minimum system
requirement).
To use a standalone release:
1. Download the latest release archive for your system from
[GitHub](https://github.com/cdr/code-server/releases).
2. Unpack the release.
3. Run code-server by executing `./bin/code-server`.
You can add `./bin/code-server` to your `$PATH` so that you can execute
`code-server` without providing full path each time.
Here is a sample script for installing and using a standalone code-server
release on Linux:
```bash
mkdir -p ~/.local/lib ~/.local/bin
curl -fL https://github.com/cdr/code-server/releases/download/v$VERSION/code-server-$VERSION-linux-amd64.tar.gz \
| tar -C ~/.local/lib -xz
mv ~/.local/lib/code-server-$VERSION-linux-amd64 ~/.local/lib/code-server-$VERSION
ln -s ~/.local/lib/code-server-$VERSION/bin/code-server ~/.local/bin/code-server
PATH="~/.local/bin:$PATH"
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## Debian, Ubuntu
NOTE: The standalone arm64 .deb does not support Ubuntu <16.04.
Please upgrade or [build with yarn](#yarn-npm).
> The standalone arm64 .deb does not support Ubuntu 16.04 or earlier. Please
> upgrade or [build with yarn](#yarn-npm).
```bash
curl -fOL https://github.com/cdr/code-server/releases/download/v$VERSION/code-server_$VERSION_amd64.deb
@@ -101,8 +162,8 @@ sudo systemctl enable --now code-server@$USER
## Fedora, CentOS, RHEL, SUSE
NOTE: The standalone arm64 .rpm does not support CentOS 7.
Please upgrade or [build with yarn](#yarn-npm).
> The standalone arm64 .rpm does not support CentOS 7. Please upgrade or [build
> with yarn](#yarn-npm).
```bash
curl -fOL https://github.com/cdr/code-server/releases/download/v$VERSION/code-server-$VERSION-amd64.rpm
@@ -114,14 +175,14 @@ sudo systemctl enable --now code-server@$USER
## Arch Linux
```bash
# Installs code-server from the AUR using yay.
# Install code-server from the AUR using yay.
yay -S code-server
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
```bash
# Installs code-server from the AUR with plain makepkg.
# Install code-server from the AUR with plain makepkg.
git clone https://aur.archlinux.org/code-server.git
cd code-server
makepkg -si
@@ -129,34 +190,6 @@ sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## Termux
Please see "Installation" in the [Termux docs](./termux.md#installation)
## Raspberry Pi
If you're running a Raspberry Pi, we recommend install code-server with `yarn` or `npm`. See [yarn-npm](#yarn-npm).
## yarn, npm
We recommend installing with `yarn` or `npm` when:
1. You aren't on `amd64` or `arm64`.
2. If you're on Linux with glibc < v2.17 or glibcxx < v3.4.18 on amd64, or glibc < v2.23 or glibcxx < v3.4.21 on arm64.
3. You're running Alpine Linux, or are using a non-glibc libc. See [#1430](https://github.com/cdr/code-server/issues/1430#issuecomment-629883198)
**note:** Installing via `yarn` or `npm` builds native modules on install and so requires C dependencies.
See [./npm.md](./npm.md) for installing these dependencies.
You will need at least node v12 installed. See [#1633](https://github.com/cdr/code-server/issues/1633).
```bash
yarn global add code-server
# Or: npm install -g code-server
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## macOS
```bash
@@ -165,34 +198,6 @@ brew services start code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## 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`.
These are created from the [npm package](#yarn-npm) and the rest of the releases are created from these.
Only requirement is glibc >= 2.17 && glibcxx >= v3.4.18 on Linux and for macOS there is no minimum system requirement.
1. Download the latest release archive for your system from [github](https://github.com/cdr/code-server/releases).
2. Unpack the release.
3. You can run code-server by executing `./bin/code-server`.
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 standalone `code-server` release on Linux:
```bash
mkdir -p ~/.local/lib ~/.local/bin
curl -fL https://github.com/cdr/code-server/releases/download/v$VERSION/code-server-$VERSION-linux-amd64.tar.gz \
| tar -C ~/.local/lib -xz
mv ~/.local/lib/code-server-$VERSION-linux-amd64 ~/.local/lib/code-server-$VERSION
ln -s ~/.local/lib/code-server-$VERSION/bin/code-server ~/.local/bin/code-server
PATH="~/.local/bin:$PATH"
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## Docker
```bash
@@ -213,18 +218,83 @@ docker run -it --name code-server -p 127.0.0.1:8080:8080 \
codercom/code-server:latest
```
Our official image supports `amd64` and `arm64`.
Our official image supports `amd64` and `arm64`. For `arm32` support, you can
use a [community-maintained code-server
alternative](https://hub.docker.com/r/linuxserver/code-server).
For `arm32` support there is a popular community maintained alternative:
## Helm
https://hub.docker.com/r/linuxserver/code-server
You can install code-server using the [Helm package manager](https://coder.com/docs/code-server/latest/helm).
## helm
## Windows
See [the chart](../ci/helm-chart).
We currently [do not publish Windows releases](https://github.com/cdr/code-server/issues/1397). We recommend installing code-server onto Windows with [`yarn` or `npm`](#yarn-npm).
## Cloud Providers
> Note: You will also need to [build cdr/cloud-agent manually](https://github.com/cdr/cloud-agent/issues/17) if you would like to use `code-server --link` on Windows.
We maintain one-click apps and install scripts for different cloud providers such as DigitalOcean, Railway, Heroku, Azure, etc. Check out the repository:
## Raspberry Pi
https://github.com/cdr/deploy-code-server
We recommend installing code-server onto Raspberry Pi with [`yarn` or
`npm`](#yarn-npm).
## Termux
Please see code-server's [Termux docs](./termux.md#installation) for more
information.
## Cloud providers
We maintain [one-click apps and install scripts for cloud
providers](https://github.com/cdr/deploy-code-server) such as DigitalOcean,
Railway, Heroku, and Azure.
## Uninstall
code-server can be completely uninstalled by removing the application directory, and your user configuration directory.
To delete settings and data:
```shell
rm -rf ~/.local/share/code-server ~/.config/code-server
```
### install.sh
If you installed with the install script, by default code-server will be in `~/.local/lib/code-server-<version>` and you can remove it with `rm -rf`. e.g.
```shell
rm -rf ~/.local/lib/code-server-*
```
### Homebrew
To remove the code-server homebrew package, run:
```shell
brew remove code-server
# Alternatively
brew uninstall code-server
```
### yarn, npm
To remove the code-server global module, run:
```shell
yarn global remove code-server
```
or
```shell
npm uninstall -g code-server
```
### Debian, Ubuntu
To uninstall, run:
```shell
sudo apt remove code-server
```

View File

@@ -2,162 +2,200 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# iPad
- [Known Issues](#known-issues)
- [How to install PWA](#how-to-install-pwa)
- [How to access code-server with a self signed certificate on iPad?](#how-to-access-code-server-with-a-self-signed-certificate-on-ipad)
- [Servediter iPad App](#servediter-ipad-app)
- [Raspberry Pi USB-C Network](#raspberry-pi-usb-c-network)
- [Ctrl C Workaround](#ctrl-c-workaround)
- [Using the code-server progressive web app (PWA)](#using-the-code-server-progressive-web-app-pwa)
- [Access code-server with a self-signed certificate on an iPad](#access-code-server-with-a-self-signed-certificate-on-an-ipad)
- [Certificate requirements](#certificate-requirements)
- [Sharing a self-signed certificate with an iPad](#sharing-a-self-signed-certificate-with-an-ipad)
- [Access code-server using Servediter](#access-code-server-using-servediter)
- [Raspberry Pi USB-C network](#raspberry-pi-usb-c-network)
- [Recommendations](#recommendations)
- [By 2022 iPad coding more desirable on Arm Macs](#by-2022-ipad-coding-more-desirable-on-arm-macs)
- [Known issues](#known-issues)
- [Workaround for issue with `ctrl+c` not stopping a running process in the terminal](#workaround-for-issue-with-ctrlc-not-stopping-a-running-process-in-the-terminal)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Known Issues
Once you've installed code-server, you can access it from an iPad.
- Getting self signed certificates certificates to work is involved, see below.
- Keyboard issues
- May disappear sometimes [#1313](https://github.com/cdr/code-server/issues/1313), [#979](https://github.com/cdr/code-server/issues/979)
- Some short cuts expectations may not be met
- `command + n` opens new browser window instead of new file and difficult to even set to another quick key
- In general it's just note worthy you most likely will need to edit keyboard shortcuts
- No escape key by default on Magic Keyboard but everyone sets the globe key to be an escape key
- Opinion: It's actually an awesome joy having the escape key at bottom of keyboard
- Trackpad scrolling does not work [#1455](https://github.com/cdr/code-server/issues/1455)
- [Bug tracking of a WebKit fix here](https://bugs.webkit.org/show_bug.cgi?id=210071#c13)
- [tracking of WebKit patch](https://trac.webkit.org/changeset/270712/webkit)
- Alternative: Install line-jump extension and use keyboard to nav by jumping large amount of lines
- Alternative: Just use touch scrolling
- See [issues tagged with the iPad label](https://github.com/cdr/code-server/issues?q=is%3Aopen+is%3Aissue+label%3AiPad) for more.
- `ctrl+c` does not stop a long-running process in the browser
- Tracking upstream issue here: [#114009](https://github.com/microsoft/vscode/issues/114009)
- See [workaround](#ctrl-c-workaround)
## Using the code-server progressive web app (PWA)
## How to install PWA
To use code-server on an iPad, we recommend installing the code-server
progressive web app (PWA):
To install the code-server PWA, follow these steps:
1. Open code-server in Safari.
2. Click the **Share** icon.
3. Click **Add to Home Screen**.
1. Open code-server in Safari
2. Click the Share icon
3. Click "Add to Home Screen"
You can now open code-server from the Home screen, and when you do, you'll be
using the PWA. Running code-server as a PWA gets you more screen real estate and
access to top-level keyboard shortcuts since its running like a native app.
Now when you open code-server from the home screen, you will be using the PWA.
The advantages of this are more screen real estate and access to top-level keyboard shortcuts because it's running like an app.
An example shortcut is the `cmd+w` to close an active file in the workbench. You can add this to your `keybindings.json` by doing the following:
For example, you can use `cmd+w` to close an active file in the workbench. You
can add this to `keybindings.json`:
1. Open up code-serer
2. `Command Palette > Open Keyboard Shortcuts (JSON)`
3. Add the following to your `keybindings.json`
1. Open code-server
2. Go to **Command Palette** > **Open Keyboard Shortcuts (JSON)**
3. Add the following to `keybindings.json`
```json
{
"key": "cmd+w",
"command": "workbench.action.closeActiveEditor"
}
```
```json
{
"key": "cmd+w",
"command": "workbench.action.closeActiveEditor"
}
```
Test out command by hitting `cmd+w` to close an active file
4. Test the command by using `cmd+w` to close an active file.
## How to access code-server with a self signed certificate on iPad?
## Access code-server with a self-signed certificate on an iPad
Accessing a self signed certificate on iPad isn't as easy as accepting through all
the security warnings. Safari will prevent WebSocket connections unless the certificate
is installed as a profile on the device.
If you've installed code-server and are [running it with a self-signed
certificate](./guide.md#using-a-self-signed-certificate), you may see multiple
security warnings from Safari. To fix this, you'll need to install the
self-signed certificate generated by code-server as a profile on your device (you'll also need to do this to
enable WebSocket connections).
The below assumes you are using the self signed certificate that code-server
generates for you. If not, that's fine but you'll have to make sure your certificate
abides by the following guidelines from Apple: https://support.apple.com/en-us/HT210176
### Certificate requirements
**note**: Another undocumented requirement we noticed is that the certificate has to have `basicConstraints=CA:true`.
- We're assuming that you're using the self-signed certificate code-server
generates for you (if not, make sure that your certificate [abides by the
guidelines issued by Apple](https://support.apple.com/en-us/HT210176)).
- We've noticed that the certificate has to include `basicConstraints=CA:true`.
- Your certificate must have a subject alt name that matches the hostname you'll
use to access code-server from the iPad. You can pass this name to code-server
so that it generates the certificate correctly using `--cert-host`.
The following instructions assume you have code-server installed and running
with a self signed certificate. If not, please first go through [./guide.md](./guide.md)!
### Sharing a self-signed certificate with an iPad
To share a self-signed certificate with an iPad:
1. Get the location of the certificate code-server generated; code-server prints
the certificate's location in its logs:
```console
[2020-10-30T08:55:45.139Z] info - Using generated certificate and key for HTTPS: ~/.local/share/code-server/mymbp_local.crt
```
2. Send the certificate to the iPad, either by emailing it to yourself or using
Apple's Airdrop feature.
3. Open the `*.crt` file so that you're prompted to go into Settings to install.
4. Go to **Settings** > **General** > **Profile**, and select the profile. Tap **Install**.
5. Go to **Settings** > **About** > **Certificate Trust Settings** and [enable
full trust for your certificate](https://support.apple.com/en-us/HT204477).
You should be able to access code-server without all of Safari's warnings now.
**warning**: Your iPad must access code-server via a domain name. It could be local
DNS like `mymacbookpro.local` but it must be a domain name. Otherwise Safari will
refuse to allow WebSockets to connect.
DNS like `mymacbookpro.local`, but it must be a domain name. Otherwise, Safari will
not allow WebSockets connections.
1. Your certificate **must** have a subject alt name that matches the hostname
at which you will access code-server from your iPad. You can pass this to code-server
so that it generates the certificate correctly with `--cert-host`.
2. Share your self signed certificate with the iPad.
- code-server will print the location of the certificate it has generated in the logs.
## Access code-server using Servediter
```
[2020-10-30T08:55:45.139Z] info - Using generated certificate and key for HTTPS: ~/.local/share/code-server/mymbp_local.crt
```
If you are unable to get the self-signed certificate working, or you do not have a domain
name to use, you can use [Servediter for code-server](https://apps.apple.com/us/app/servediter-for-code-server/id1504491325).
- You can mail it to yourself or if you have a Mac, it's easiest to just Airdrop to the iPad.
> Servediter for code-server is **not** officially supported by the code-server team!
3. When opening the `*.crt` file, you'll be prompted to go into settings to install.
4. Go to `Settings -> General -> Profile`, select the profile and then hit `Install`.
- It should say the profile is verified.
5. Go to `Settings -> About -> Certificate Trust Settings` and enable full trust for
the certificate. [more apple support here](https://support.apple.com/en-us/HT204477)
6. Now you can access code-server! 🍻
To use Servediter:
### Servediter iPad App
1. Download the app from the App Store.
2. When prompted, provide your server information. If you are running a local
server or a [Raspberry Pi connected via USB-C](#raspberry-pi-usb-c-network), you will input your settings
into **Self Hosted Server**.
If you are unable to get the self signed certificate working or you do not have a domain
name to use, you can use the Servediter iPad App instead!
## Raspberry Pi USB-C network
**note**: This is not an officially supported app by the code-server team!
We've heard of users having great success using code-server on an iPad connected
to a Raspberry Pi via USB-C (the Raspberry Pi provides both power and direct
network access). Setting this up requires you to turn on **Network over USB-C**
on the Raspberry Pi, then continuing with code-server as usual on the iPad.
Download [Serveediter](https://apps.apple.com/us/app/servediter-for-code-server/id1504491325) from the
App Store and then input your server information. If you are running a local server or mabye a usb-c
connected Raspberry Pi, you will input your settings into "Self Hosted Server".
For more information, see:
## Raspberry Pi USB-C Network
It is a bit out of scope for this project, however, great success is being reported using iPad on the go with just a single USB-C cable connected to a Raspberry Pi both powering and supplying direct network access. Many support articles already exist but the key steps boil down to turning on Network over USB-C on the Raspberry Pi itself and the rest of the steps are just like getting Code Server running any where else.
Resources worthy of review:
- [General intro to Pi as an iPad accessory](https://www.youtube.com/watch?v=IR6sDcKo3V8)
- [General introduction to Pi as an iPad
accessory](https://www.youtube.com/watch?v=IR6sDcKo3V8)
- [iPad with Pi FAQ](https://www.youtube.com/watch?v=SPSlyqo5Q2Q)
- [Technical guide to perform the steps](https://www.geeky-gadgets.com/connect-a-raspberry-pi-4-to-an-ipad-pro-21-01-2020/)
- [Technical guide to connecting a Raspberry Pi to an
iPad](https://www.geeky-gadgets.com/connect-a-raspberry-pi-4-to-an-ipad-pro-21-01-2020/)
> Here are my keys to success. I bought a 4" touch screen with fan included that attaches as a case to the Pi. I use the touch screen for anytime I have connection issues, otherwise I turn off the Pi screen. I gave my Pi a network name so I can easily connect at home on wifi or when on go with 1 usb-c cable that supplys both power and network connectivity. Lastly, not all usb-c cables are equal and not all will work so try different usb-c cables if you are going mad (confirm over wifi first then move to cable).
>
> -- <cite>[Acker Apple](http://github.com/ackerapple/)</cite>
You may also find the following tips from [Acker
Apple](http://github.com/ackerapple/) helpful:
## Ctrl C Workaround
There is currently an issue with `ctrl+c` not stopping a running process in the integrated terminal. We have filed an issue upstream and are tracking [here](https://github.com/microsoft/vscode/issues/114009). As a temporary workaround, it works if you manually define the shortcut like so:
1. Open Command Palette
2. Look for "Preferences: Open Keyboard Shortcuts (JSON)"
3. Add this:
```json
{
"key": "ctrl+c",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0003"
},
"when": "terminalFocus"
}
```
Source: [StackOverflow](https://stackoverflow.com/a/52735954/3015595)
> Here are my keys to success. I bought a 4" touch screen with fan included that
> attaches as a case to the Pi. I use the touch screen for anytime I have
> connection issues, otherwise I turn off the Pi screen. I gave my Pi a network
> name so I can easily connect at home on wifi or when on go with 1 usb-c cable
> that supplys both power and network connectivity. Lastly, not all usb-c cables
> are equal and not all will work so try different usb-c cables if you are going
> mad (confirm over wifi first then move to cable).
## Recommendations
Once you have code-server accessible to your iPad a few things could help save you time:
Once you can access code-server on your iPad, you may find the following tips
and tricks helpful:
- Use multi task mode to make code changes and see browser at the same time
- Prevents iOs background dropping an App's state if you are full screen switching between code-server and browser
- Be sure you are using the debug/terminal that is built into VS Code so that you dont need another terminal app running
- Again, prevents switching between full screen app and losing your view to iOs background app memory management
- You should be of a mindset willing to deal and adapt with differences in having an imperfect experience, for the perceived joyful benefits of interacting with your computer in more intuitive ways
- Use multi-task mode to make code changes and see the browser at the same time
- This prevents the iOS background from dropping an app's state if you are
switching between code-server and browser (with both in full-screen)
- Be sure you are using the debug/terminal that is built into VS Code so that
you dont need another terminal app running
- This also prevents switching between full screen apps and losing your view
due to iOS' background app memory management
## By 2022 iPad coding more desirable on Arm Macs
## Known issues
> This section is generalized opinions intended to inform fellow Apple product consumers of perceived over time changes coming down the line
- Getting self-signed certificates to work [is an involved
process](#access-code-server-with-a-self-signed-certificate-on-an-ipad)
- Keyboard issues:
- The keyboard disappear sometimes
[#1313](https://github.com/cdr/code-server/issues/1313),
[#979](https://github.com/cdr/code-server/issues/979)
- Some expectations regarding shortcuts may not be met:
- `cmd + n` opens new browser window instead of new file, and it's difficult
to set alternative as a workaround
- In general, expect to edit your keyboard shortcuts
- There's no escape key by default on the Magic Keyboard, so most users set
the globe key to be an escape key
- Trackpad scrolling does not work
([#1455](https://github.com/cdr/code-server/issues/1455))
- Bug tracking of a WebKit fix
[here](https://bugs.webkit.org/show_bug.cgi?id=210071#c13)
- Tracking of [WebKit patch](https://trac.webkit.org/changeset/270712/webkit)
- Alternatives:
- Install line-jump extension and use keyboard to navigate by jumping large
amount of lines
- Use touch scrolling
- `ctrl+c` does not stop a long-running process in the browser
- Tracking upstream issue here:
[#114009](https://github.com/microsoft/vscode/issues/114009)
- See [workaround](#ctrl-c-workaround)
The general feeling from overall Apple movements recently, is that the Mac arm processors are in fact helping support the direction of having Macs with touch screens. Many great YouTube videos of interest call out highly suggestive evidence. In the past Apple has hard declared reasons of body fatigue and such as why not to encourage nor further developments on the iPad touch experience mixed with a keyboard/mouse/trackpad. Regardless, products and software have been released further supporting just that very experience.
Additionally, see [issues in the code-server repo that are tagged with the iPad
label](https://github.com/cdr/code-server/issues?q=is%3Aopen+is%3Aissue+label%3AiPad)
for more information.
The iPad coding experience has been a joy for some of us that are willing to trade an imperfect experience for a uniquely effective focus driven experience. Note worthy, some of us think it's a trashy waste of time. This experience is undoubtably going to get better just by the work that can be seen by all parties, even in our own code-server attempt to make it better.
### Workaround for issue with `ctrl+c` not stopping a running process in the terminal
Lastly, it is note worthy that if you have decided to incorporate a Raspberry Pi into you iPad coding experience, they are Arm processors. You are perfectly lined up with the future of Macs as well.
This's currently an issue with `ctrl+c` not stopping a running process in the
integrated terminal. We have filed an issue upstream and are tracking
[here](https://github.com/microsoft/vscode/issues/114009).
In the meantime, you can manually define a shortcut as a workaround:
1. Open the Command Palette
2. Look for **Preferences: Open Keyboard Shortcuts (JSON)**
3. Add the following snippet:
```json
{
"key": "ctrl+c",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0003"
},
"when": "terminalFocus"
}
```
_Source: [StackOverflow](https://stackoverflow.com/a/52735954/3015595)_

9
docs/link.md Normal file
View File

@@ -0,0 +1,9 @@
# code-server --link
Run code-server with the beta flag `--link` and you'll get TLS, authentication, and a dedicated URL
for accessing your IDE out of the box.
```console
$ code-server --link
Proxying code-server, you can access your IDE at https://example.cdr.co
```

104
docs/manifest.json Normal file
View File

@@ -0,0 +1,104 @@
{
"versions": ["v3.12.0"],
"routes": [
{
"title": "Home",
"description": "Learn how to install and run code-server.",
"path": "./README.md",
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16px\" xml:space=\"preserve\"><path d=\"M15.45,7L14,5.551V2c0-0.55-0.45-1-1-1h-1c-0.55,0-1,0.45-1,1v0.553L9,0.555C8.727,0.297,8.477,0,8,0S7.273,0.297,7,0.555 L0.55,7C0.238,7.325,0,7.562,0,8c0,0.563,0.432,1,1,1h1v6c0,0.55,0.45,1,1,1h3v-5c0-0.55,0.45-1,1-1h2c0.55,0,1,0.45,1,1v5h3 c0.55,0,1-0.45,1-1V9h1c0.568,0,1-0.437,1-1C16,7.562,15.762,7.325,15.45,7z\"></path></svg>"
},
{
"title": "Requirements",
"description": "Learn about what you need to run code-server.",
"icon": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 2V11H2V15C2 16.7 3.3 18 5 18H15C16.7 18 18 16.7 18 15V2H6ZM16 15C16 15.6 15.6 16 15 16H8V4H16V15Z\" /><path d=\"M14 7H10V9H14V7Z\" /><path d=\"M14 11H10V13H14V11Z\" /></svg>",
"path": "./requirements.md"
},
{
"title": "Install",
"description": "How to install code-server.",
"icon": "<svg class=\"MuiSvgIcon-root jss172\" focusable=\"false\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z\"></path></svg>",
"path": "./install.md",
"children": [
{
"title": "npm",
"description": "How to install code-server using npm or yarn",
"path": "./npm.md"
},
{
"title": "Helm",
"description": "How to install code-server using the Helm package manager",
"path": "./helm.md"
}
]
},
{
"title": "Usage",
"description": "How to set up and use code-server.",
"icon": "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 10l-2.5-1.5L15 12V4h5v8z\"></path></svg>",
"path": "./guide.md",
"children": [
{
"title": "--link",
"description": "How to run code-server --link",
"path": "./link.md"
},
{
"title": "iPad",
"description": "How to access your code-server installation using an iPad.",
"path": "./ipad.md"
},
{
"title": "Termux",
"description": "How to install Termux to run code-server on an Android device.",
"path": "./termux.md"
}
]
},
{
"title": "Collaboration",
"description": "How to setup real time collaboration using code server.",
"icon": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M12.2 13.4357L9.5 11.4357C10.4 10.7357 11 9.7357 11 8.5357V7.7357C11 5.8357 9.6 4.1357 7.7 4.0357C5.7 3.9357 4 5.5357 4 7.5357V8.5357C4 9.7357 4.6 10.7357 5.5 11.4357L2.8 13.5357C2.3 13.9357 2 14.5357 2 15.1357V17.0357C2 17.6357 2.4 18.0357 3 18.0357H12C12.6 18.0357 13 17.6357 13 17.0357V15.0357C13 14.4357 12.7 13.8357 12.2 13.4357Z\"/> <path d=\"M17.1 8.43436L15.3 7.23436C15.7 6.83436 16 6.23436 16 5.53436V4.63436C16 3.43436 15.1 2.23436 13.9 2.03436C12.7 1.83436 11.7 2.53436 11.2 3.43436C12.3 4.43436 13 5.83436 13 7.43436V8.43436C13 9.33436 12.8 10.2344 12.4 10.9344C12.4 10.9344 13.6 11.8344 13.6 11.9344H17C17.6 11.9344 18 11.5344 18 10.9344V10.1344C18 9.43436 17.7 8.83436 17.1 8.43436Z\"/></svg>",
"path": "./collaboration.md"
},
{
"title": "Upgrade",
"description": "How to upgrade code-server.",
"icon": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.8049 2.19795C17.7385 2.1311 17.6587 2.07899 17.5708 2.04504C17.4829 2.01108 17.3889 1.99604 17.2948 2.00089C7.89216 2.49153 4.4188 10.8673 4.38528 10.9517C4.33624 11.0736 4.32406 11.2071 4.35028 11.3358C4.3765 11.4645 4.43995 11.5827 4.53274 11.6756L8.32449 15.4674C8.41787 15.5606 8.53669 15.6242 8.66606 15.6502C8.79543 15.6762 8.92959 15.6634 9.05174 15.6135C9.13552 15.5793 17.4664 12.0671 17.9986 2.7087C18.0039 2.61474 17.9895 2.5207 17.9561 2.4327C17.9227 2.3447 17.8712 2.26471 17.8049 2.19795ZM12.3314 9.56427C12.1439 9.75179 11.9051 9.87951 11.645 9.93126C11.385 9.98302 11.1154 9.9565 10.8704 9.85505C10.6254 9.7536 10.4161 9.58178 10.2687 9.36131C10.1214 9.14085 10.0428 8.88166 10.0428 8.6165C10.0428 8.35135 10.1214 8.09215 10.2687 7.87169C10.4161 7.65123 10.6254 7.47941 10.8704 7.37796C11.1154 7.27651 11.385 7.24998 11.645 7.30174C11.9051 7.3535 12.1439 7.48121 12.3314 7.66873C12.5827 7.92012 12.7239 8.26104 12.7239 8.6165C12.7239 8.97197 12.5827 9.31288 12.3314 9.56427Z\"/><path d=\"M2.74602 14.5444C2.92281 14.3664 3.133 14.2251 3.36454 14.1285C3.59608 14.0319 3.8444 13.9819 4.09529 13.9815C4.34617 13.9811 4.59466 14.0302 4.82653 14.126C5.05839 14.2218 5.26907 14.3624 5.44647 14.5398C5.62386 14.7172 5.7645 14.9279 5.86031 15.1598C5.95612 15.3916 6.00522 15.6401 6.00479 15.891C6.00437 16.1419 5.95442 16.3902 5.85782 16.6218C5.76122 16.8533 5.61987 17.0635 5.44186 17.2403C4.69719 17.985 2 18.0004 2 18.0004C2 18.0004 2 15.2884 2.74602 14.5444Z\"/><path d=\"M8.9416 3.48269C7.99688 3.31826 7.02645 3.38371 6.11237 3.67352C5.19828 3.96332 4.36741 4.46894 3.68999 5.14765C3.33153 5.50944 3.01988 5.91477 2.76233 6.35415C2.68692 6.4822 2.6562 6.63169 2.67501 6.77911C2.69381 6.92652 2.76108 7.06351 2.86623 7.16853L4.1994 8.50238C5.43822 6.53634 7.04911 4.83119 8.9416 3.48269Z\"/><path d=\"M16.5181 11.0585C16.6825 12.0033 16.6171 12.9737 16.3273 13.8878C16.0375 14.8019 15.5318 15.6327 14.8531 16.3101C14.4914 16.6686 14.086 16.9803 13.6466 17.2378C13.5186 17.3132 13.3691 17.3439 13.2217 17.3251C13.0743 17.3063 12.9373 17.2391 12.8323 17.1339L11.4984 15.8007C13.4645 14.5619 15.1696 12.951 16.5181 11.0585Z\"/></svg>",
"path": "./upgrade.md"
},
{
"title": "FAQ",
"description": "Frequently asked questions on installing and running code-server.",
"icon": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.0001 18.3333C14.6025 18.3333 18.3334 14.6024 18.3334 10C18.3334 5.39762 14.6025 1.66666 10.0001 1.66666C5.39771 1.66666 1.66675 5.39762 1.66675 10C1.66675 14.6024 5.39771 18.3333 10.0001 18.3333Z\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.57495 7.5C7.77087 6.94306 8.15758 6.47342 8.66658 6.17428C9.17558 5.87513 9.77403 5.76578 10.3559 5.86559C10.9378 5.96541 11.4656 6.26794 11.8458 6.71961C12.2261 7.17128 12.4342 7.74294 12.4333 8.33333C12.4333 10 9.93328 10.8333 9.93328 10.8333\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 14.1667H10.0083\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>",
"path": "./FAQ.md"
},
{
"title": "Contributing",
"description": "How to contribute to code-server.",
"icon": "<svg width=\"20\" height=\"20\" fill=\"none\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5 2.5V12.5\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 7.5C16.3807 7.5 17.5 6.38071 17.5 5C17.5 3.61929 16.3807 2.5 15 2.5C13.6193 2.5 12.5 3.61929 12.5 5C12.5 6.38071 13.6193 7.5 15 7.5Z\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 17.5C6.38071 17.5 7.5 16.3807 7.5 15C7.5 13.6193 6.38071 12.5 5 12.5C3.61929 12.5 2.5 13.6193 2.5 15C2.5 16.3807 3.61929 17.5 5 17.5Z\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 7.5C15 9.48912 14.2098 11.3968 12.8033 12.8033C11.3968 14.2098 9.48912 15 7.5 15\" stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>",
"path": "./CONTRIBUTING.md",
"children": [
{
"title": "Code of conduct",
"description": "Coder expects contributors to code-server to behave in a manner that creates an open and welcoming environment.",
"path": "./CODE_OF_CONDUCT.md"
},
{
"title": "Maintenance",
"description": "Learn about the workflow followed by code-server's maintainers.",
"path": "./MAINTAINING.md"
},
{
"title": "Triage",
"description": "How the maintainers triage issues with code-server.",
"path": "./triage.md"
},
{
"title": "Security",
"description": "Learn about the tools used to detect vulnerabilities in code-server, and how you can report vulnerabilities.",
"path": "./SECURITY.md"
}
]
}
]
}

View File

@@ -2,23 +2,32 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# npm Install Requirements
- [Node.js version](#nodejs-version)
- [Ubuntu, Debian](#ubuntu-debian)
- [Fedora, CentOS, RHEL](#fedora-centos-rhel)
- [Alpine](#alpine)
- [macOS](#macos)
- [FreeBSD](#freebsd)
- [Windows](#windows)
- [Installing](#installing)
- [Troubleshooting](#troubleshooting)
- [Issues with Node.js after version upgrades](#issues-with-nodejs-after-version-upgrades)
- [Debugging install issues with npm](#debugging-install-issues-with-npm)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
If you're installing the npm module you'll need certain dependencies to build the native modules used by VS Code.
If you're installing code-server via `npm`, you'll need to install additional
dependencies required to build the native modules used by VS Code. This article
includes installing instructions based on your operating system.
- Node.js: version `>= 12`, `<= 14`
## Node.js version
_Note: the Node.js version requirements are based on the VS Code Node.js requirements. See [here](https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites)._
We use the same major version of Node.js shipped with VSCode's Electron,
which is currently `14.x`. VS Code also [lists Node.js
requirements](https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites).
Related:
- [#1633](https://github.com/cdr/code-server/issues/1633)
Using other versions of Node.js [may lead to unexpected
behavior](https://github.com/cdr/code-server/issues/1633).
## Ubuntu, Debian
@@ -30,6 +39,8 @@ sudo apt-get install -y \
npm config set python python3
```
Proceed to [installing](#installing)
## Fedora, CentOS, RHEL
```bash
@@ -39,6 +50,8 @@ sudo yum install -y python2
npm config set python python2
```
Proceed to [installing](#installing)
## Alpine
```bash
@@ -46,15 +59,89 @@ apk add alpine-sdk bash libstdc++ libc6-compat
npm config set python python3
```
Proceed to [installing](#installing)
## macOS
```bash
xcode-select --install
```
Proceed to [installing](#installing)
## FreeBSD
```sh
pkg install -y git python npm-node12 yarn-node12 pkgconf
pkg install -y git python npm-node14 yarn-node14 pkgconf
pkg install -y libinotify
```
Proceed to [installing](#installing)
## Windows
Installing code-server requires all of the [prerequisites for VS Code development](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites). When installing the C++ compiler tool chain, we recommend using "Option 2: Visual Studio 2019" for best results.
Next, install code-server with:
```bash
yarn global add code-server
# Or: npm install -g code-server
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
A `postinstall.sh` script will attempt to run. Select your terminal (e.g., Git bash) as the default application for `.sh` files. If an additional dialog does not appear, run the install command again.
If the `code-server` command is not found, you'll need to [add a directory to your PATH](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/). To find the directory, use the following command:
```shell
yarn global bin
# Or: npm config get prefix
```
For help and additional troubleshooting, see [#1397](https://github.com/cdr/code-server/issues/1397).
## Installing
After adding the dependencies for your OS, install the code-server package globally:
```bash
yarn global add code-server
# Or: npm install -g code-server
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## Troubleshooting
If you need further assistance, post on our [GitHub Discussions
page](https://github.com/cdr/code-server/discussions).
### Issues with Node.js after version upgrades
Occasionally, you may run into issues with Node.js.
If you install code-server using `yarn` or `npm`, and you upgrade your Node.js
version, you may need to reinstall code-server to recompile native modules.
Sometimes, you can get around this by navigating into code-server's `lib/vscode`
directory and running `npm rebuild` to recompile the modules.
A step-by-step example of how you might do this is:
1. Install code-server: `brew install code-server`
2. Navigate into the directory: `cd /usr/local/Cellar/code-server/<version>/libexec/lib/vscode/`
3. Recompile the native modules: `npm rebuild`
4. Restart code-server
### Debugging install issues with npm
`yarn` suppresses logs when running `yarn global add`, so to debug installation issues, install with `npm` instead:
```shell
# Uninstall
npm uninstall -g --unsafe-perm code-server > /dev/null 2>&1
# Install with logging
npm install --loglevel verbose -g --unsafe-perm code-server
```

56
docs/requirements.md Normal file
View File

@@ -0,0 +1,56 @@
# Requirements
You'll need a machine on which you can run code-server. You can use a physical
machine you have, or you can use a VM on GCP/AWS.
At the minimum, we recommend:
- 1 GB of RAM
- 2 CPU cores
You can use any Linux distribution, but [our
docs](https://coder.com/docs/code-server/latest/guide) assume that you're using
Debian hosted by Google Cloud (see the following section for instructions on
setting this up).
Your environment must have WebSockets enabled, since code-server uses WebSockets
for communication between the browser and the server.
## Set up a VM on Google Cloud
The following steps walk you through setting up a VM running Debian using Google
Cloud (though you are welcome to use any machine or VM provider).
If you're [signing up with Google](https://console.cloud.google.com/getting-started) for the first time, you should get a 12-month trial with
$300 of credits.
After you sign up and create a new Google Cloud Provider (GCP) project, create a
new Compute Engine VM instance:
1. Using the sidebar, navigate to **Compute Engine** > **VM Instances**.
2. Click **Create Instance**.
3. Provide a **name** for new instance.
4. Choose the **region** that's closest to you based on [GCP
ping](https://gcping.com/).
5. Choose a **zone** (any option is fine).
6. We recommend choose an **E2 series instance** from the [general-purpose
family](https://cloud.google.com/compute/docs/machine-types#general_purpose).
7. Change the instance type to **custom** and set at least **2 cores** and **2
GB of RAM**. You can add more resources if desired, though you can also edit
your instance at a later point.
8. Though optional, we highly recommend switching the persistent disk to an SSD
with at least 32 GB. To do so, click **change** under **Boot Disk**. Then,
change the type to **SSD Persistent Disk**, and set the size to **32**. (You
can also grow your disk at a later date).
9. Go to **Networking** > **Networking Interfaces** and edit the existing
interface to use a static internal IP. Click **Done** to save.
10. If you don't have a [project-wide SSH
key](https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#project-wide),
go to **Security** > **SSH Keys** to add your public key.
11. Click **Create** to proceed.
Notes:
- To lower costs, you can shut down your server when you're not using it.
- We recommend using the `gcloud cli` to avoid using the GCP Dashboard if possible.
- For serving code-server over HTTPS, we recommend using an external domain name along with a service such as Let's Encrypt

View File

@@ -2,60 +2,70 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Termux
- [Termux](#termux)
- [Installation](#installation)
- [Upgrading](#upgrading)
- [Known Issues](#known-issues)
- [Search issue](#search-issue)
- [Backspace not working](#backspace-not-working)
- [Install](#install)
- [Upgrade](#upgrade)
- [Known Issues](#known-issues)
- [Search doesn't work](#search-doesnt-work)
- [Backspace doesn't work](#backspace-doesnt-work)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Termux
Termux is a terminal application and Linux environment that you can also use to
run code-server from your Android phone.
Termux is an Android terminal application and Linux environment, which can also run code-server from your phone.
## Install
## Installation
1. Install Termux from [F-Droid](https://f-droid.org/en/packages/com.termux/).
1. Make sure it's up-to-date: `apt update && apt upgrade`
1. Install required packages: `apt install build-essential python git nodejs yarn`
1. Install code-server: `yarn global add code-server`
1. Run code-server: `code-server` and navigate to localhost:8080 in your browser
1. Install Termux from [F-Droid](https://f-droid.org/en/packages/com.termux/)
2. Make sure it's up-to-date by running `apt update && apt upgrade`
3. Install required packages: `apt install build-essential python git nodejs yarn`
4. Install code-server: `yarn global add code-server`
5. Run code-server: `code-server` and navigate to localhost:8080 in your browser
## Upgrading
## Upgrade
To upgrade run: `yarn global upgrade code-server --latest`
## Known Issues
### Search issue
The following details known issues and suggested workarounds for using
code-server with Termux.
There is a known issue with search not working on Android because it's missing `bin/rg`. To fix:
### Search doesn't work
There is a known issue with search not working on Android because it's missing
`bin/rg` ([context](https://github.com/cdr/code-server/issues/1730#issuecomment-721515979)). To fix this:
1. Install `ripgrep` with `pkg`
```sh
pkg install ripgrep
```
2. Make a soft link using `ln -s`
```sh
# run this command inside the code-server directory
ln -s $PREFIX/bin/rg ./lib/vscode/node_modules/vscode-ripgrep/bin/rg
```
1. Make a soft link using `ln -s`
For more context, see [comment](https://github.com/cdr/code-server/issues/1730#issuecomment-721515979).
```sh
# run this command inside the code-server directory
ln -s $PREFIX/bin/rg ./vendor/modules/code-oss-dev/vscode-ripgrep/bin/rg
```
### Backspace not working
### Backspace doesn't work
There is a known issue with the backspace key not working correctly when using the on-screen keyboard on Android. This is due to an upstream issue. Read more:
When using Android's on-screen keyboard, the backspace key doesn't work
properly. This is a known upstream issue:
- [Issues with Backspace in Codespaces on Android (Surface Duo)](https://github.com/microsoft/vscode/issues/107602)
- [Issues with backspace in Codespaces on Android (Surface Duo)](https://github.com/microsoft/vscode/issues/107602)
- [Support mobile platforms](https://github.com/xtermjs/xterm.js/issues/1101)
Workaround: use a Bluetooth keyboard.
There are two workarounds.
For more context, see issues:
**Option 1:** Modify keyboard dispatch settings
- [500 error: 3.9.2 not working on Android + Termux](https://github.com/cdr/code-server/issues/3036)
- [Document Android backspace issue](https://github.com/cdr/code-server/issues/3079)
1. Open the Command Palette
2. Search for **Preferences: Open Settings (JSON)**
3. Add `"keyboard.dispatch": "keyCode"`
The backspace button should work at this point.
_Thanks to @Nefomemes for the [suggestion](https://github.com/cdr/code-server/issues/1141#issuecomment-789463707)!_
**Option 2:** Use a Bluetooth keyboard.

View File

@@ -1,37 +1,35 @@
# Triage
## Filter
Triaging code-server issues is done with the following issue filter:
```
```text
is:issue is:open no:project sort:created-asc -label:blocked -label:upstream -label:waiting-for-info -label:extension-request
```
This will show issues that:
1. Are open.
2. Have no assigned project.
3. Are not `blocked` or tagged for work by `upstream` (VS Code core team)
- If an upstream issue is detrimental to the code-server experience we may fix it in
our patch instead of waiting for the VS Code team to fix it.
- Someone should periodically go through these issues to see if they can be unblocked
though!
4. Are not in `waiting-for-info`.
5. Are not extension requests.
1. Have no assigned project.
1. Are not `blocked` or tagged for work by `upstream` (the VS Code core team).
If an upstream issue is detrimental to the code-server experience we may fix
it in our patch instead of waiting for the VS Code team to fix it. Someone
should periodically go through these issues to see if they can be unblocked!
1. Are not labeled `waiting-for-info`.
1. Are not extension requests.
## Process
## Triage process
1. If an issue is a question/discussion it should be converted into a GitHub discussion.
2. Next, give the issue the appropriate labels and feel free to create new ones if
necessary.
- There are no hard and set rules for labels. We don't have many so look through and
see how they've been used throughout the repository. They all also have descriptions.
3. If more information is required, please ask the submitter and tag as
1. If an issue is a question/discussion, it should be converted into a GitHub
discussion.
1. Otherwise, give the issue the appropriate labels (feel free to create new
ones if necessary). There are no hard and set rules for labels. We don't have
many so look through and see how they've been used throughout the repository.
They all also have descriptions.
1. If more information is required, please ask the submitter and tag as
`waiting-for-info` and wait.
4. Finally, the issue should be moved into the
[code-server](https://github.com/cdr/code-server/projects/1) project where we pick
out issues to fix and track their progress.
1. Finally, the issue should be moved into the
[code-server](https://github.com/cdr/code-server/projects/1) project where we
pick out issues to fix and track their progress.
We also use [milestones](https://github.com/cdr/code-server/milestones) to track what
issues are planned/or were closed for what release.
We also use [milestones](https://github.com/cdr/code-server/milestones) to track
what issues are planned/or were closed for what release.

5
docs/upgrade.md Normal file
View File

@@ -0,0 +1,5 @@
# Upgrade
To upgrade code-server, install the new version over the old version. All user
data is in `~/.local/share/code-server`, so they are preserved between
installations.

View File

@@ -2,7 +2,7 @@
set -eu
# code-server's automatic install script.
# See https://github.com/cdr/code-server/blob/main/docs/install.md
# See https://coder.com/docs/code-server/latest/install
usage() {
arg0="$0"
@@ -13,8 +13,8 @@ usage() {
"
fi
cath <<EOF
Installs code-server for Linux, macOS and FreeBSD.
cath << EOF
Installs code-server.
It tries to use the system package manager if possible.
After successful installation it explains how to start using code-server.
@@ -48,26 +48,25 @@ Usage:
--rsh <bin>
Specifies the remote shell for remote installation. Defaults to ssh.
- 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 standalone
release into ~/.local
The detection method works as follows:
- Debian, Ubuntu, Raspbian: install the deb package from GitHub.
- Fedora, CentOS, RHEL, openSUSE: install the rpm package from GitHub.
- Arch Linux: install from the AUR (which pulls releases from GitHub).
- FreeBSD, Alpine: install from yarn/npm.
- macOS: install using Homebrew if installed otherwise install from GitHub.
- All others: install the release from GitHub.
- For macOS it will install the Homebrew package.
- If Homebrew is not installed it will install the latest standalone release
into ~/.local
We only build releases on GitHub for amd64 and arm64 on Linux and amd64 for
macOS. When the detection method tries to pull a release from GitHub it will
fall back to installing from npm when there is no matching release for the
system's operating system and architecture.
- For FreeBSD, it will install the npm package with yarn or npm.
The standalone method will force installion using GitHub releases. It will not
fall back to npm so on architectures without pre-built releases this will error.
- 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.
- The npm package builds the native modules on postinstall.
The installer will cache all downloaded assets into ~/.cache/code-server
It will cache all downloaded assets into ~/.cache/code-server
More installation docs are at https://github.com/cdr/code-server/blob/main/docs/install.md
More installation docs are at https://coder.com/docs/code-server/latest/install
EOF
}
@@ -81,29 +80,43 @@ echo_latest_version() {
echo_npm_postinstall() {
echoh
cath <<EOF
The npm package has been installed successfully!
Please extend your path to use code-server:
cath << EOF
npm package has been installed.
Extend your path to use code-server:
PATH="$NPM_BIN_DIR:\$PATH"
Please run with:
Then run with:
code-server
EOF
}
echo_standalone_postinstall() {
echoh
cath <<EOF
cath << EOF
Standalone release has been installed into $STANDALONE_INSTALL_PREFIX/lib/code-server-$VERSION
Please extend your path to use code-server:
Extend your path to use code-server:
PATH="$STANDALONE_INSTALL_PREFIX/bin:\$PATH"
Then you can run:
Then run with:
code-server
EOF
}
echo_brew_postinstall() {
echoh
cath << EOF
Brew release has been installed.
Run with:
code-server
EOF
}
echo_systemd_postinstall() {
echoh
cath <<EOF
cath << EOF
$1 package has been installed.
To have systemd start code-server now and restart on boot:
sudo systemctl enable --now code-server@\$USER
Or, if you don't want/need a background service you can run:
@@ -119,8 +132,6 @@ main() {
unset \
DRY_RUN \
METHOD \
STANDALONE_INSTALL_PREFIX \
VERSION \
OPTIONAL \
ALL_FLAGS \
RSH_ARGS \
@@ -129,63 +140,63 @@ main() {
ALL_FLAGS=""
while [ "$#" -gt 0 ]; do
case "$1" in
-*)
ALL_FLAGS="${ALL_FLAGS} $1"
;;
-*)
ALL_FLAGS="${ALL_FLAGS} $1"
;;
esac
case "$1" in
--dry-run)
DRY_RUN=1
;;
--method)
METHOD="$(parse_arg "$@")"
shift
;;
--method=*)
METHOD="$(parse_arg "$@")"
;;
--prefix)
STANDALONE_INSTALL_PREFIX="$(parse_arg "$@")"
shift
;;
--prefix=*)
STANDALONE_INSTALL_PREFIX="$(parse_arg "$@")"
;;
--version)
VERSION="$(parse_arg "$@")"
shift
;;
--version=*)
VERSION="$(parse_arg "$@")"
;;
--rsh)
RSH="$(parse_arg "$@")"
shift
;;
--rsh=*)
RSH="$(parse_arg "$@")"
;;
-h | --h | -help | --help)
usage
exit 0
;;
--)
shift
# We remove the -- added above.
ALL_FLAGS="${ALL_FLAGS% --}"
RSH_ARGS="$*"
break
;;
-*)
echoerr "Unknown flag $1"
echoerr "Run with --help to see usage."
exit 1
;;
*)
RSH_ARGS="$*"
break
;;
--dry-run)
DRY_RUN=1
;;
--method)
METHOD="$(parse_arg "$@")"
shift
;;
--method=*)
METHOD="$(parse_arg "$@")"
;;
--prefix)
STANDALONE_INSTALL_PREFIX="$(parse_arg "$@")"
shift
;;
--prefix=*)
STANDALONE_INSTALL_PREFIX="$(parse_arg "$@")"
;;
--version)
VERSION="$(parse_arg "$@")"
shift
;;
--version=*)
VERSION="$(parse_arg "$@")"
;;
--rsh)
RSH="$(parse_arg "$@")"
shift
;;
--rsh=*)
RSH="$(parse_arg "$@")"
;;
-h | --h | -help | --help)
usage
exit 0
;;
--)
shift
# We remove the -- added above.
ALL_FLAGS="${ALL_FLAGS% --}"
RSH_ARGS="$*"
break
;;
-*)
echoerr "Unknown flag $1"
echoerr "Run with --help to see usage."
exit 1
;;
*)
RSH_ARGS="$*"
break
;;
esac
shift
@@ -198,102 +209,103 @@ main() {
return
fi
VERSION="${VERSION-$(echo_latest_version)}"
METHOD="${METHOD-detect}"
if [ "$METHOD" != detect ] && [ "$METHOD" != standalone ]; then
echoerr "Unknown install method \"$METHOD\""
echoerr "Run with --help to see usage."
exit 1
fi
STANDALONE_INSTALL_PREFIX="${STANDALONE_INSTALL_PREFIX-$HOME/.local}"
OS="$(os)"
if [ ! "$OS" ]; then
echoerr "Unsupported OS $(uname)."
exit 1
fi
# These are used by the various install_* functions that make use of GitHub
# releases in order to download and unpack the right release.
CACHE_DIR=$(echo_cache_dir)
STANDALONE_INSTALL_PREFIX=${STANDALONE_INSTALL_PREFIX:-$HOME/.local}
VERSION=${VERSION:-$(echo_latest_version)}
# These can be overridden for testing but shouldn't normally be used as it can
# result in a broken code-server.
OS=${OS:-$(os)}
ARCH=${ARCH:-$(arch)}
distro_name
ARCH="$(arch)"
if [ ! "$ARCH" ]; then
if [ "$METHOD" = standalone ]; then
echoerr "No precompiled releases for $(uname -m)."
echoerr 'Please rerun without the "--method standalone" flag to install from npm.'
exit 1
fi
echoh "No precompiled releases for $(uname -m)."
install_npm
return
fi
if [ "$OS" = "freebsd" ]; then
if [ "$METHOD" = standalone ]; then
echoerr "No precompiled releases available for $OS."
echoerr 'Please rerun without the "--method standalone" flag to install from npm.'
exit 1
fi
echoh "No precompiled releases available for $OS."
install_npm
return
fi
CACHE_DIR="$(echo_cache_dir)"
# Standalone installs by pulling pre-built releases from GitHub.
if [ "$METHOD" = standalone ]; then
install_standalone
return
if has_standalone; then
install_standalone
exit 0
else
echoerr "There are no standalone releases for $ARCH"
echoerr "Please try again without '--method standalone'"
exit 1
fi
fi
case "$(distro)" in
macos)
install_macos
;;
debian)
install_deb
;;
fedora | opensuse)
install_rpm
;;
arch)
install_aur
;;
*)
echoh "Unsupported package manager."
install_standalone
;;
# DISTRO can be overridden for testing but shouldn't normally be used as it
# can result in a broken code-server.
DISTRO=${DISTRO:-$(distro)}
case $DISTRO in
# macOS uses brew when available and falls back to standalone. We only have
# amd64 for macOS so for anything else use npm.
macos)
BREW_PATH="${BREW_PATH-brew}"
if command_exists "$BREW_PATH"; then
install_brew
else
echoh "Homebrew not installed."
echoh "Falling back to standalone installation."
npm_fallback install_standalone
fi
;;
# The .deb and .rpm files are pulled from GitHub and we only have amd64 and
# arm64 there and need to fall back to npm otherwise.
debian) npm_fallback install_deb ;;
fedora | opensuse) npm_fallback install_rpm ;;
# Arch uses the AUR package which only supports amd64 and arm64 since it
# pulls releases from GitHub so we need to fall back to npm.
arch) npm_fallback install_aur ;;
# We don't have GitHub releases that work on Alpine or FreeBSD so we have no
# choice but to use npm here.
alpine | freebsd) install_npm ;;
# For anything else we'll try to install standalone but fall back to npm if
# we don't have releases for the architecture.
*)
echoh "Unsupported package manager."
echoh "Falling back to standalone installation."
npm_fallback install_standalone
;;
esac
}
parse_arg() {
case "$1" in
*=*)
# Remove everything after first equal sign.
opt="${1%%=*}"
# Remove everything before first equal sign.
optarg="${1#*=}"
if [ ! "$optarg" ] && [ ! "${OPTIONAL-}" ]; then
echoerr "$opt requires an argument"
echoerr "Run with --help to see usage."
exit 1
fi
echo "$optarg"
return
;;
*=*)
# Remove everything after first equal sign.
opt="${1%%=*}"
# Remove everything before first equal sign.
optarg="${1#*=}"
if [ ! "$optarg" ] && [ ! "${OPTIONAL-}" ]; then
echoerr "$opt requires an argument"
echoerr "Run with --help to see usage."
exit 1
fi
echo "$optarg"
return
;;
esac
case "${2-}" in
"" | -*)
if [ ! "${OPTIONAL-}" ]; then
echoerr "$1 requires an argument"
echoerr "Run with --help to see usage."
exit 1
fi
;;
*)
echo "$2"
return
;;
"" | -*)
if [ ! "${OPTIONAL-}" ]; then
echoerr "$1 requires an argument"
echoerr "Run with --help to see usage."
exit 1
fi
;;
*)
echo "$2"
return
;;
esac
}
@@ -315,45 +327,39 @@ fetch() {
sh_c mv "$FILE.incomplete" "$FILE"
}
install_macos() {
if command_exists brew; then
echoh "Installing from Homebrew."
echoh
install_brew() {
echoh "Installing latest from Homebrew."
echoh
sh_c brew install code-server
sh_c "$BREW_PATH" install code-server
return
fi
echoh "Homebrew not installed."
install_standalone
echo_brew_postinstall
}
install_deb() {
echoh "Installing v$VERSION deb package from GitHub releases."
echoh "Installing v$VERSION of the $ARCH deb package from GitHub."
echoh
fetch "https://github.com/cdr/code-server/releases/download/v$VERSION/code-server_${VERSION}_$ARCH.deb" \
"$CACHE_DIR/code-server_${VERSION}_$ARCH.deb"
sudo_sh_c dpkg -i "$CACHE_DIR/code-server_${VERSION}_$ARCH.deb"
echo_systemd_postinstall
echo_systemd_postinstall deb
}
install_rpm() {
echoh "Installing v$VERSION rpm package from GitHub releases."
echoh "Installing v$VERSION of the $ARCH rpm package from GitHub."
echoh
fetch "https://github.com/cdr/code-server/releases/download/v$VERSION/code-server-$VERSION-$ARCH.rpm" \
"$CACHE_DIR/code-server-$VERSION-$ARCH.rpm"
sudo_sh_c rpm -i "$CACHE_DIR/code-server-$VERSION-$ARCH.rpm"
echo_systemd_postinstall
echo_systemd_postinstall rpm
}
install_aur() {
echoh "Installing from the AUR."
echoh "Installing latest from the AUR."
echoh
sh_c mkdir -p "$CACHE_DIR/code-server-aur"
@@ -364,16 +370,20 @@ install_aur() {
fi
sh_c makepkg -si
echo_systemd_postinstall
echo_systemd_postinstall AUR
}
install_standalone() {
echoh "Installing standalone release archive v$VERSION from GitHub releases."
echoh "Installing v$VERSION of the $ARCH release from GitHub."
echoh
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"
# -w only works if the directory exists so try creating it first. If this
# fails we can ignore the error as the -w check will then swap us to sudo.
sh_c mkdir -p "$STANDALONE_INSTALL_PREFIX" 2> /dev/null || true
sh_c="sh_c"
if [ ! -w "$STANDALONE_INSTALL_PREFIX" ]; then
sh_c="sudo_sh_c"
@@ -395,50 +405,74 @@ install_standalone() {
}
install_npm() {
if command_exists yarn; then
echoh "Installing latest from npm."
echoh
YARN_PATH="${YARN_PATH-yarn}"
NPM_PATH="${YARN_PATH-npm}"
if command_exists "$YARN_PATH"; then
sh_c="sh_c"
if [ ! -w "$(yarn global bin)" ]; then
if [ ! "${DRY_RUN-}" ] && [ ! -w "$($YARN_PATH global bin)" ]; then
sh_c="sudo_sh_c"
fi
echoh "Installing with yarn."
echoh
"$sh_c" yarn global add code-server --unsafe-perm
NPM_BIN_DIR="$(yarn global bin)" echo_npm_postinstall
"$sh_c" "$YARN_PATH" global add code-server --unsafe-perm
NPM_BIN_DIR="\$($YARN_PATH global bin)" echo_npm_postinstall
return
elif command_exists npm; then
elif command_exists "$NPM_PATH"; then
sh_c="sh_c"
if [ ! -w "$(npm config get prefix)" ]; then
if [ ! "${DRY_RUN-}" ] && [ ! -w "$(NPM_PATH config get prefix)" ]; then
sh_c="sudo_sh_c"
fi
echoh "Installing with npm."
echoh
"$sh_c" npm install -g code-server --unsafe-perm
NPM_BIN_DIR="$(npm bin -g)" echo_npm_postinstall
"$sh_c" "$NPM_PATH" install -g code-server --unsafe-perm
NPM_BIN_DIR="\$($NPM_PATH bin -g)" echo_npm_postinstall
return
fi
echoh
echoerr "Please install npm or yarn to install code-server!"
echoerr "You will need at least node v12 and a few C dependencies."
echoerr "See the docs https://github.com/cdr/code-server/blob/v3.10.2/docs/install.md#yarn-npm"
echoerr "See the docs https://coder.com/docs/code-server/latest/install#yarn-npm"
exit 1
}
os() {
case "$(uname)" in
Linux)
echo linux
;;
Darwin)
echo macos
;;
FreeBSD)
echo freebsd
;;
# Run $1 if we have a standalone otherwise run install_npm.
npm_fallback() {
if has_standalone; then
$1
else
echoh "No standalone releases for $ARCH."
echoh "Falling back to installation from npm."
install_npm
fi
}
# Determine if we have standalone releases on GitHub for the system's arch.
has_standalone() {
case $ARCH in
amd64) return 0 ;;
# We only have amd64 for macOS.
arm64)
[ "$(distro)" != macos ]
return
;;
*) return 1 ;;
esac
}
# distro prints the detected operating system including linux distros.
# Also parses ID_LIKE for common distro bases.
os() {
uname="$(uname)"
case $uname in
Linux) echo linux ;;
Darwin) echo macos ;;
FreeBSD) echo freebsd ;;
*) echo "$uname" ;;
esac
}
# Print the detected Linux distro, otherwise print the OS name.
#
# Example outputs:
# - macos -> macos
@@ -475,7 +509,7 @@ distro() {
fi
}
# os_name prints a pretty human readable name for the OS/Distro.
# Print a human-readable name for the OS/distro.
distro_name() {
if [ "$(uname)" = "Darwin" ]; then
echo "macOS v$(sw_vers -productVersion)"
@@ -495,21 +529,17 @@ distro_name() {
}
arch() {
case "$(uname -m)" in
aarch64)
echo arm64
;;
x86_64)
echo amd64
;;
amd64) # FreeBSD.
echo amd64
;;
uname_m=$(uname -m)
case $uname_m in
aarch64) echo arm64 ;;
x86_64) echo amd64 ;;
*) echo "$uname_m" ;;
esac
}
command_exists() {
command -v "$@" >/dev/null
if [ ! "$1" ]; then return 1; fi
command -v "$@" > /dev/null
}
sh_c() {
@@ -571,7 +601,7 @@ prefix() {
fifo="$(mktemp -d)/fifo"
mkfifo "$fifo"
sed -e "s#^#$PREFIX: #" "$fifo" &
"$@" >"$fifo" 2>&1
"$@" > "$fifo" 2>&1
}
main "$@"

View File

@@ -1,100 +0,0 @@
# Code - OSS Development Container
This repository includes configuration for a development container for working with Code - OSS in an isolated local container or using [GitHub Codespaces](https://github.com/features/codespaces).
> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` with a web client at `6080`. For better performance, we recommend using a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Applications like the macOS Screen Sharing app will not perform as well.
## Quick start - local
1. Install Docker Desktop or Docker for Linux on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)
2. **Important**: Docker needs at least **4 Cores and 6 GB of RAM (8 GB recommended)** to run full build. If you on macOS, or using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item, going to **Preferences/Settings > Resources > Advanced**.
> **Note:** The [Resource Monitor](https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor) extension is included in the container so you can keep an eye on CPU/Memory in the status bar.
3. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Remote - Containers](https://aka.ms/vscode-remote/download/containers) extension.
![Image of Remote - Containers extension](https://microsoft.github.io/vscode-remote-release/images/remote-containers-extn.png)
> Note that the Remote - Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
4. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Remote-Containers: Clone Repository in Container Volume...**.
> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or using the Hyper-V engine on Windows. We recommend the "clone repository in container" approach instead since it uses "named volume" rather than the local filesystem.
5. Type `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press <kbd>Enter</kbd>.
6. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
Anything you start in VS Code or the integrated terminal will appear here.
Next: **[Try it out!](#try-it)**
## Quick start - GitHub Codespaces
> **IMPORTANT:** You need to use a "Standard" sized codespace or larger (4-core, 8GB) since VS Code needs 6GB of RAM to compile. This is now the default for GitHub Codespaces, but do not downgrade to "Basic" unless you do not intend to compile.
1. From the [microsoft/vscode GitHub repository](https://github.com/microsoft/vscode), click on the **Code** dropdown, select **Open with Codespaces**, and the **New codespace**
> Note that you will not see these options if you are not in the beta yet.
2. After the codespace is up and running in your browser, press <kbd>F1</kbd> and select **Ports: Focus on Ports View**.
3. You should see port `6080` under **Forwarded Ports**. Select the line and click on the globe icon to open it in a browser tab.
> If you do not see port `6080`, press <kbd>F1</kbd>, select **Forward a Port** and enter port `6080`.
4. In the new tab, you should see noVNC. Click **Connect** and enter `vscode` as the password.
Anything you start in VS Code or the integrated terminal will appear here.
Next: **[Try it out!](#try-it)**
### Using VS Code with GitHub Codespaces
You will likely see better performance when accessing the codespace you created from VS Code since you can use a[VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Here's how to do it.
1. [Create a codespace](#quick-start---github-codespaces) if you have not already.
2. Set up [VS Code for use with GitHub Codespaces](https://docs.github.com/github/developing-online-with-codespaces/using-codespaces-in-visual-studio-code)
3. After the VS Code is up and running, press <kbd>F1</kbd>, choose **Codespaces: Connect to Codespace**, and select the codespace you created.
4. After you've connected to the codespace, use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
5. Anything you start in VS Code or the integrated terminal will appear here.
Next: **[Try it out!](#try-it)**
## Try it!
This container uses the [Fluxbox](http://fluxbox.org/) window manager to keep things lean. **Right-click on the desktop** to see menu options. It works with GNOME and GTK applications, so other tools can be installed if needed.
Note you can also set the resolution from the command line by typing `set-resolution`.
To start working with Code - OSS, follow these steps:
1. In your local VS Code, open a terminal (<kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>\`</kbd>) and type the following commands:
```bash
yarn install
bash scripts/code.sh
```
Note that a previous run of `yarn install` will already be cached, so this step should simply pick up any recent differences.
2. After the build is complete, open a web browser or a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to the desktop environnement as described in the quick start and enter `vscode` as the password.
3. You should now see Code - OSS!
Next, let's try debugging.
1. Shut down Code - OSS by clicking the box in the upper right corner of the Code - OSS window through your browser or VNC viewer.
2. Go to your local VS Code client, and use Run / Debug view to launch the **VS Code** configuration. (Typically the default, so you can likely just press <kbd>F5</kbd>).
> **Note:** If launching times out, you can increase the value of `timeout` in the "VS Code", "Attach Main Process", "Attach Extension Host", and "Attach to Shared Process" configurations in [launch.json](../.vscode/launch.json). However, running `scripts/code.sh` first will set up Electron which will usually solve timeout issues.
3. After a bit, Code - OSS will appear with the debugger attached!
Enjoy!

View File

@@ -1 +0,0 @@
*.manifest

View File

@@ -1,15 +0,0 @@
#!/bin/bash
# This file establishes a basline for the reposuitory before any steps in the "prepare.sh"
# are run. Its just a find command that filters out a few things we don't need to watch.
set -e
SCRIPT_PATH="$(cd "$(dirname $0)" && pwd)"
SOURCE_FOLDER="${1:-"."}"
cd "${SOURCE_FOLDER}"
echo "[$(date)] Generating ""before"" manifest..."
find -L . -not -path "*/.git/*" -and -not -path "${SCRIPT_PATH}/*.manifest" -type f > "${SCRIPT_PATH}/before.manifest"
echo "[$(date)] Done!"

View File

@@ -1,28 +0,0 @@
#!/bin/bash
# This file simply wraps the dockeer build command used to build the image with the
# cached result of the commands from "prepare.sh" and pushes it to the specified
# container image registry.
set -e
SCRIPT_PATH="$(cd "$(dirname $0)" && pwd)"
CONTAINER_IMAGE_REPOSITORY="$1"
BRANCH="${2:-"main"}"
if [ "${CONTAINER_IMAGE_REPOSITORY}" = "" ]; then
echo "Container repository not specified!"
exit 1
fi
TAG="branch-${BRANCH//\//-}"
echo "[$(date)] ${BRANCH} => ${TAG}"
cd "${SCRIPT_PATH}/../.."
echo "[$(date)] Starting image build..."
docker build -t ${CONTAINER_IMAGE_REPOSITORY}:"${TAG}" -f "${SCRIPT_PATH}/cache.Dockerfile" .
echo "[$(date)] Image build complete."
echo "[$(date)] Pushing image..."
docker push ${CONTAINER_IMAGE_REPOSITORY}:"${TAG}"
echo "[$(date)] Done!"

View File

@@ -1,21 +0,0 @@
#!/bin/bash
# This file is used to archive off a copy of any differences in the source tree into another location
# in the image. Once the codespace is up, this will be restored into its proper location (which is
# quick and happens parallel to other startup activities)
set -e
SCRIPT_PATH="$(cd "$(dirname $0)" && pwd)"
SOURCE_FOLDER="${1:-"."}"
CACHE_FOLDER="${2:-"/usr/local/etc/devcontainer-cache"}"
echo "[$(date)] Starting cache operation..."
cd "${SOURCE_FOLDER}"
echo "[$(date)] Determining diffs..."
find -L . -not -path "*/.git/*" -and -not -path "${SCRIPT_PATH}/*.manifest" -type f > "${SCRIPT_PATH}/after.manifest"
grep -Fxvf "${SCRIPT_PATH}/before.manifest" "${SCRIPT_PATH}/after.manifest" > "${SCRIPT_PATH}/cache.manifest"
echo "[$(date)] Archiving diffs..."
mkdir -p "${CACHE_FOLDER}"
tar -cf "${CACHE_FOLDER}/cache.tar" --totals --files-from "${SCRIPT_PATH}/cache.manifest"
echo "[$(date)] Done! $(du -h "${CACHE_FOLDER}/cache.tar")"

View File

@@ -1,14 +0,0 @@
# This dockerfile is used to build up from a base image to create an image with cached results of running "prepare.sh".
# Other image contents: https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile
FROM mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev
ARG USERNAME=node
COPY --chown=${USERNAME}:${USERNAME} . /repo-source-tmp/
RUN mkdir /usr/local/etc/devcontainer-cache \
&& chown ${USERNAME} /usr/local/etc/devcontainer-cache /repo-source-tmp \
&& su ${USERNAME} -c "\
cd /repo-source-tmp \
&& .devcontainer/cache/before-cache.sh \
&& .devcontainer/prepare.sh \
&& .devcontainer/cache/cache-diff.sh" \
&& rm -rf /repo-source-tmp

View File

@@ -1,23 +0,0 @@
#!/bin/bash
# This file restores the results of the "prepare.sh" into their proper locations
# once the container has been created. It runs as a postCreateCommand which
# in GitHub Codespaces occurs parallel to other startup activities and does not
# really add to the overal startup time given how quick the operation ends up being.
set -e
SOURCE_FOLDER="$(cd "${1:-"."}" && pwd)"
CACHE_FOLDER="${2:-"/usr/local/etc/devcontainer-cache"}"
if [ ! -d "${CACHE_FOLDER}" ]; then
echo "No cache folder found."
exit 0
fi
echo "[$(date)] Expanding $(du -h "${CACHE_FOLDER}/cache.tar") file to ${SOURCE_FOLDER}..."
cd "${SOURCE_FOLDER}"
tar -xf "${CACHE_FOLDER}/cache.tar"
rm -f "${CACHE_FOLDER}/cache.tar"
echo "[$(date)] Done!"

View File

@@ -1,30 +0,0 @@
{
"name": "Code - OSS",
// Image contents: https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile
"image": "mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:branch-main",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/node/workspace/vscode,type=bind,consistency=cached",
"workspaceFolder": "/home/node/workspace/vscode",
"overrideCommand": false,
"runArgs": [ "--init", "--security-opt", "seccomp=unconfined"],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"resmon.show.battery": false,
"resmon.show.cpufreq": false
},
// noVNC, VNC, debug ports
"forwardPorts": [6080, 5901, 9222],
"extensions": [
"dbaeumer.vscode-eslint",
"mutantdino.resourcemonitor"
],
// Optionally loads a cached yarn install for the repo
"postCreateCommand": ".devcontainer/cache/restore-diff.sh",
"remoteUser": "node"
}

View File

@@ -1,10 +0,0 @@
#!/bin/bash
# This file contains the steps that should be run when creating the intermediary image that contains
# contents for that should be in the image by default. It will be used to build up from the base image
# to create an image that speeds up first time use of the dev container by "caching" the results
# of these commands. Developers can still run these commands without an issue once the container is
# up, but only differences will be processed which also speeds up the first time these operations occur.
yarn install
yarn electron

View File

@@ -1,15 +0,0 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Tab indentation
[*]
indent_style = tab
trim_trailing_whitespace = true
# The indent size used in the `package.json` file cannot be changed
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
[{*.yml,*.yaml,package.json}]
indent_style = space
indent_size = 2

View File

@@ -1,22 +0,0 @@
**/vs/nls.build.js
**/vs/nls.js
**/vs/css.build.js
**/vs/css.js
**/vs/loader.js
**/insane/**
**/marked/**
**/semver/**
**/test/**/*.js
**/node_modules/**
**/vscode-api-tests/testWorkspace/**
**/vscode-api-tests/testWorkspace2/**
**/extensions/**/out/**
**/extensions/**/build/**
**/extensions/markdown-language-features/media/**
**/extensions/markdown-language-features/notebook-out/**
**/extensions/typescript-basics/test/colorize-fixtures/**
**/extensions/**/dist/**
# These are code-server code symlinks.
src/vs/base/node/proxy_agent.ts
src/vs/ipc.d.ts
src/vs/server/common/util.ts

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +0,0 @@
* text=auto
LICENSE.txt eol=crlf
ThirdPartyNotices.txt eol=crlf
*.bat eol=crlf
*.cmd eol=crlf
*.ps1 eol=lf
*.sh eol=lf
*.rtf -text

View File

@@ -1,23 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- 🕮 Read our guide about submitting issues: https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions -->
<!-- 🔎 Search existing issues to avoid creating duplicates. -->
<!-- 🧪 Test using the latest Insiders build to see if your issue has already been fixed: https://code.visualstudio.com/insiders/ -->
<!-- 💡 Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. -->
- VS Code Version:
- OS Version:
Steps to Reproduce:
1.
2.
<!-- 🔧 Launch with `code --disable-extensions` to check. -->
Does this issue occur when all extensions are disabled?: Yes/No
<!-- 🪓 If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. -->
<!-- 📣 Issues caused by an extension need to be reported directly to the extension publisher. The 'Help > Report Issue' dialog can assist with this. -->

View File

@@ -1,5 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Question
url: https://stackoverflow.com/questions/tagged/visual-studio-code
about: Please ask and answer questions here.

View File

@@ -1,11 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->
<!-- Describe the feature you'd like. -->

View File

@@ -1,37 +0,0 @@
{
"2018-01-29 18:00, US/Pacific": "endgame",
"2018-02-07 12:00, US/Pacific": "release", # 1.20.0
"2018-02-12 12:00, US/Pacific": "development",
"2018-02-14 16:00, Europe/Zurich": "release", # 1.20.1
"2018-02-19 16:00, Europe/Zurich": "development",
"2018-02-26 18:00, US/Pacific": "endgame",
"2018-03-07 12:00, US/Pacific": "release", # 1.21.0
"2018-03-12 12:00, US/Pacific": "development",
"2018-03-15 12:00, US/Pacific": "release", # 1.21.1
"2018-03-20 12:00, US/Pacific": "development",
"2018-03-26 18:00, US/Pacific": "endgame",
"2018-04-06 18:00, US/Pacific": "release", # 1.22.1
"2018-04-11 18:00, US/Pacific": "development",
"2018-04-12 12:00, US/Pacific": "release", # 1.22.2
"2018-04-17 12:00, US/Pacific": "development",
"2018-04-23 18:00, US/Pacific": "endgame",
"2018-05-03 12:00, US/Pacific": "release", # 1.23.0
"2018-05-08 12:00, US/Pacific": "development",
"2018-05-10 12:00, US/Pacific": "release", # 1.23.1
"2018-05-15 12:00, US/Pacific": "development",
"2018-05-28 18:00, US/Pacific": "endgame",
# 'release' not needed anymore, return to 'development' after releasing.
"2018-06-06 12:00, US/Pacific": "development", # 1.24.0 released
"2018-06-25 18:00, US/Pacific": "endgame",
"2018-07-05 12:00, US/Pacific": "development", # 1.25.0 released
"2018-07-30 18:00, US/Pacific": "endgame",
"2018-08-13 12:00, US/Pacific": "development", # 1.26.0 released
"2018-08-27 18:00, US/Pacific": "endgame",
"2018-09-05 12:00, US/Pacific": "development", # 1.27.0 released
"2018-09-24 18:00, US/Pacific": "endgame",
"2018-10-08 09:00, US/Pacific": "development", # 1.28.0 released
"2018-10-29 18:00, US/Pacific": "endgame",
"2018-11-12 11:00, US/Pacific": "development", # 1.29.0 released
"2018-12-03 18:00, US/Pacific": "endgame",
"2018-12-12 13:00, US/Pacific": "development", # 1.30.0 released
}

View File

@@ -1,182 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vscode-github-triage-actions/master/classifier-deep/apply/apply-labels/deep-classifier-config.schema.json",
"vacation": [],
"assignees": {
"JacksonKearl": {"accuracy": 0.5}
},
"labels": {
"L10N": {"assign": []},
"VIM": {"assign": []},
"api": {"assign": ["jrieken"]},
"api-finalization": {"assign": []},
"api-proposal": {"assign": ["jrieken"]},
"authentication": {"assign": ["RMacfarlane"]},
"breadcrumbs": {"assign": ["jrieken"]},
"callhierarchy": {"assign": ["jrieken"]},
"code-lens": {"assign": ["jrieken"]},
"color-palette": {"assign": []},
"comments": {"assign": ["rebornix"]},
"config": {"assign": ["sandy081"]},
"context-keys": {"assign": []},
"css-less-scss": {"assign": ["aeschli"]},
"custom-editors": {"assign": ["mjbvz"]},
"debug": {"assign": ["isidorn"]},
"debug-console": {"assign": ["isidorn"]},
"dialogs": {"assign": ["sbatten"]},
"diff-editor": {"assign": []},
"dropdown": {"assign": []},
"editor": {"assign": ["rebornix"]},
"editor-autoclosing": {"assign": []},
"editor-autoindent": {"assign": ["rebornix"]},
"editor-bracket-matching": {"assign": []},
"editor-clipboard": {"assign": ["jrieken"]},
"editor-code-actions": {"assign": []},
"editor-color-picker": {"assign": ["rebornix"]},
"editor-columnselect": {"assign": ["alexdima"]},
"editor-commands": {"assign": ["jrieken"]},
"editor-comments": {"assign": []},
"editor-contrib": {"assign": []},
"editor-core": {"assign": []},
"editor-drag-and-drop": {"assign": ["rebornix"]},
"editor-error-widget": {"assign": ["sandy081"]},
"editor-find": {"assign": ["rebornix"]},
"editor-folding": {"assign": ["aeschli"]},
"editor-hover": {"assign": []},
"editor-indent-guides": {"assign": []},
"editor-input": {"assign": ["alexdima"]},
"editor-input-IME": {"assign": ["rebornix"]},
"editor-minimap": {"assign": []},
"editor-multicursor": {"assign": ["alexdima"]},
"editor-parameter-hints": {"assign": []},
"editor-render-whitespace": {"assign": []},
"editor-rendering": {"assign": ["alexdima"]},
"editor-scrollbar": {"assign": []},
"editor-symbols": {"assign": ["jrieken"]},
"editor-synced-region": {"assign": ["aeschli"]},
"editor-textbuffer": {"assign": ["rebornix"]},
"editor-theming": {"assign": []},
"editor-wordnav": {"assign": ["alexdima"]},
"editor-wrapping": {"assign": ["alexdima"]},
"emmet": {"assign": ["rzhao271"]},
"error-list": {"assign": ["sandy081"]},
"explorer-custom": {"assign": ["sandy081"]},
"extension-host": {"assign": []},
"extensions": {"assign": ["sandy081"]},
"extensions-development": {"assign": []},
"file-decorations": {"assign": ["jrieken"]},
"file-encoding": {"assign": ["bpasero"]},
"file-explorer": {"assign": ["isidorn"]},
"file-glob": {"assign": []},
"file-guess-encoding": {"assign": ["bpasero"]},
"file-io": {"assign": ["bpasero"]},
"file-watcher": {"assign": ["bpasero"]},
"font-rendering": {"assign": []},
"formatting": {"assign": []},
"git": {"assign": ["eamodio"]},
"gpu": {"assign": ["deepak1556"]},
"grammar": {"assign": ["mjbvz"]},
"grid-view": {"assign": ["joaomoreno"]},
"html": {"assign": ["aeschli"]},
"i18n": {"assign": []},
"icon-brand": {"assign": []},
"icons-product": {"assign": ["misolori"]},
"install-update": {"assign": []},
"integrated-terminal": {"assign": ["meganrogge"]},
"integrated-terminal-conpty": {"assign": ["meganrogge"]},
"integrated-terminal-links": {"assign": ["meganrogge"]},
"integration-test": {"assign": []},
"intellisense-config": {"assign": []},
"ipc": {"assign": ["joaomoreno"]},
"issue-bot": {"assign": ["chrmarti"]},
"issue-reporter": {"assign": ["RMacfarlane"]},
"javascript": {"assign": ["mjbvz"]},
"json": {"assign": ["aeschli"]},
"keybindings": {"assign": []},
"keybindings-editor": {"assign": ["sandy081"]},
"keyboard-layout": {"assign": ["alexdima"]},
"languages-basic": {"assign": ["aeschli"]},
"languages-diagnostics": {"assign": ["jrieken"]},
"layout": {"assign": ["sbatten"]},
"lcd-text-rendering": {"assign": []},
"list": {"assign": ["joaomoreno"]},
"log": {"assign": []},
"markdown": {"assign": ["mjbvz"]},
"marketplace": {"assign": []},
"menus": {"assign": ["sbatten"]},
"merge-conflict": {"assign": ["chrmarti"]},
"notebook": {"assign": ["rebornix"]},
"outline": {"assign": ["jrieken"]},
"output": {"assign": []},
"perf": {"assign": []},
"perf-bloat": {"assign": []},
"perf-startup": {"assign": []},
"php": {"assign": ["roblourens"]},
"portable-mode": {"assign": ["joaomoreno"]},
"proxy": {"assign": []},
"quick-pick": {"assign": ["chrmarti"]},
"references-viewlet": {"assign": ["jrieken"]},
"release-notes": {"assign": []},
"remote": {"assign": []},
"remote-explorer": {"assign": ["alexr00"]},
"rename": {"assign": ["jrieken"]},
"scm": {"assign": ["eamodio"]},
"screencast-mode": {"assign": ["lszomoru"]},
"search": {"assign": ["roblourens"]},
"search-editor": {"assign": ["JacksonKearl"]},
"search-replace": {"assign": ["sandy081"]},
"semantic-tokens": {"assign": ["aeschli"]},
"settings-editor": {"assign": ["roblourens"]},
"settings-sync": {"assign": ["sandy081"]},
"simple-file-dialog": {"assign": ["alexr00"]},
"smart-select": {"assign": ["jrieken"]},
"smoke-test": {"assign": []},
"snap": {"assign": ["joaomoreno"]},
"snippets": {"assign": ["jrieken"]},
"splitview": {"assign": ["joaomoreno"]},
"suggest": {"assign": ["jrieken"]},
"tasks": {"assign": ["alexr00"], "accuracy": 0.85},
"telemetry": {"assign": []},
"themes": {"assign": ["aeschli"]},
"timeline": {"assign": ["eamodio"]},
"timeline-git": {"assign": ["eamodio"]},
"titlebar": {"assign": ["sbatten"]},
"tokenization": {"assign": []},
"tree": {"assign": ["joaomoreno"]},
"typescript": {"assign": ["mjbvz"]},
"undo-redo": {"assign": []},
"unit-test": {"assign": []},
"uri": {"assign": ["jrieken"]},
"ux": {"assign": ["misolori"]},
"variable-resolving": {"assign": []},
"vscode-build": {"assign": []},
"web": {"assign": ["bpasero"]},
"webview": {"assign": ["mjbvz"]},
"workbench-cli": {"assign": []},
"workbench-diagnostics": {"assign": ["RMacfarlane"]},
"workbench-dnd": {"assign": ["bpasero"]},
"workbench-editor-grid": {"assign": ["sbatten"]},
"workbench-editors": {"assign": ["bpasero"]},
"workbench-electron": {"assign": ["deepak1556"]},
"workbench-feedback": {"assign": ["bpasero"]},
"workbench-history": {"assign": ["bpasero"]},
"workbench-hot-exit": {"assign": []},
"workbench-launch": {"assign": []},
"workbench-link": {"assign": []},
"workbench-multiroot": {"assign": ["bpasero"]},
"workbench-notifications": {"assign": ["bpasero"]},
"workbench-os-integration": {"assign": []},
"workbench-rapid-render": {"assign": ["jrieken"]},
"workbench-run-as-admin": {"assign": []},
"workbench-state": {"assign": ["bpasero"]},
"workbench-status": {"assign": ["bpasero"]},
"workbench-tabs": {"assign": ["bpasero"]},
"workbench-touchbar": {"assign": ["bpasero"]},
"workbench-views": {"assign": ["sbatten"]},
"workbench-welcome": {"assign": ["JacksonKearl"]},
"workbench-window": {"assign": ["bpasero"]},
"workbench-zen": {"assign": ["isidorn"]},
"workspace-edit": {"assign": ["jrieken"]},
"workspace-symbols": {"assign": []},
"zoom": {"assign": ["alexdima"] }
}
}

View File

@@ -1,401 +0,0 @@
[
{
"type": "comment",
"name": "question",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "updateLabels",
"addLabel": "*question"
},
{
"type": "label",
"name": "*question",
"action": "close",
"comment": "Please ask your question on [StackOverflow](https://aka.ms/vscodestackoverflow). We have a great community over [there](https://aka.ms/vscodestackoverflow). They have already answered thousands of questions and are happy to answer yours as well. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "label",
"name": "*dev-question",
"action": "close",
"comment": "We have a great developer community [over on slack](https://aka.ms/vscode-dev-community) where extension authors help each other. This is a great place for you to ask questions and find support.\n\nHappy Coding!"
},
{
"type": "label",
"name": "*extension-candidate",
"action": "close",
"comment": "We try to keep VS Code lean and we think the functionality you're asking for is great for a VS Code extension. Maybe you can already find one that suits you in the [VS Code Marketplace](https://aka.ms/vscodemarketplace). Just in case, in a few simple steps you can get started [writing your own extension](https://aka.ms/vscodewritingextensions). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "label",
"name": "*not-reproducible",
"action": "close",
"comment": "We closed this issue because we are unable to reproduce the problem with the steps you describe. Chances are we've already fixed your problem in a recent version of VS Code. If not, please ask us to reopen the issue and provide us with more detail. Our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines might help you with that.\n\nHappy Coding!"
},
{
"type": "label",
"name": "*out-of-scope",
"action": "close",
"comment": "We closed this issue because we don't plan to address it in the foreseeable future. You can find more detailed information about our decision-making process [here](https://aka.ms/vscode-out-of-scope). If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider.\n\nIf you wonder what we are up to, please see our [roadmap](https://aka.ms/vscoderoadmap) and [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nThanks for your understanding and happy coding!"
},
{
"type": "comment",
"name": "causedByExtension",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "updateLabels",
"addLabel": "*caused-by-extension"
},
{
"type": "label",
"name": "*caused-by-extension",
"action": "close",
"comment": "This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the [marketplace](https://aka.ms/vscodemarketplace) for VS Code. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "label",
"name": "*as-designed",
"action": "close",
"comment": "The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "duplicate",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "updateLabels",
"addLabel": "*duplicate"
},
{
"type": "label",
"name": "*duplicate",
"action": "close",
"comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues [here](${duplicateQuery}). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "verified",
"allowUsers": [
"@author"
],
"action": "updateLabels",
"addLabel": "z-author-verified",
"removeLabel": "author-verification-requested",
"requireLabel": "author-verification-requested",
"disallowLabel": "unreleased"
},
{
"type": "comment",
"name": "confirm",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "updateLabels",
"addLabel": "confirmed",
"removeLabel": "confirmation-pending"
},
{
"type": "comment",
"name": "confirmationPending",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "updateLabels",
"addLabel": "confirmation-pending",
"removeLabel": "confirmed"
},
{
"type": "comment",
"name": "needsMoreInfo",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "updateLabels",
"addLabel": "~needs more info"
},
{
"type": "comment",
"name": "jsDebugLogs",
"action": "updateLabels",
"addLabel": "needs more info",
"comment": "Please collect trace logs using the following instructions:\n\n> If you're able to, add `\"trace\": true` to your `launch.json` and reproduce the issue. The location of the log file on your disk will be written to the Debug Console. Share that with us.\n>\n> ⚠️ This log file will not contain source code, but will contain file paths. You can drop it into https://microsoft.github.io/vscode-pwa-analyzer/index.html to see what it contains. If you'd rather not share the log publicly, you can email it to connor@xbox.com"
},
{
"type": "comment",
"name": "closedWith",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "unreleased"
},
{
"type": "label",
"name": "~needs more info",
"action": "updateLabels",
"addLabel": "needs more info",
"removeLabel": "~needs more info",
"comment": "Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines. Please take the time to review these and update the issue.\n\nHappy Coding!"
},
{
"type": "label",
"name": "~needs version info",
"action": "updateLabels",
"addLabel": "needs more info",
"removeLabel": "~needs version info",
"comment": "Thanks for creating this issue! We figured it's missing some basic information, such as a version number, or in some other way doesn't follow our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines. Please take the time to review these and update the issue.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "a11ymas",
"allowUsers": [
"AccessibilityTestingTeam-TCS",
"dixitsonali95",
"Mohini78",
"ChitrarupaSharma",
"mspatil110",
"umasarath52",
"v-umnaik"
],
"action": "updateLabels",
"addLabel": "a11ymas"
},
{
"type": "label",
"name": "*off-topic",
"action": "close",
"comment": "Thanks for creating this issue. We think this issue is unactionable or unrelated to the goals of this project. Please follow our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extPython",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the Python extension. Please file it with the repository [here](https://github.com/microsoft/vscode-python). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extJupyter",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the Jupyter extension. Please file it with the repository [here](https://github.com/microsoft/vscode-jupyter). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extC",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the C extension. Please file it with the repository [here](https://github.com/microsoft/vscode-cpptools). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extC++",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the C++ extension. Please file it with the repository [here](https://github.com/microsoft/vscode-cpptools). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extCpp",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the C++ extension. Please file it with the repository [here](https://github.com/microsoft/vscode-cpptools). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extTS",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the TypeScript language service. Please file it with the repository [here](https://github.com/microsoft/TypeScript/). Make sure to check their [contributing guidelines](https://github.com/microsoft/TypeScript/blob/master/CONTRIBUTING.md) and provide relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extJS",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the TypeScript/JavaScript language service. Please file it with the repository [here](https://github.com/microsoft/TypeScript/). Make sure to check their [contributing guidelines](https://github.com/microsoft/TypeScript/blob/master/CONTRIBUTING.md) and provide relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extC#",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the C# extension. Please file it with the repository [here](https://github.com/OmniSharp/omnisharp-vscode.git). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extGo",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the Go extension. Please file it with the repository [here](https://github.com/golang/vscode-go). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extPowershell",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the PowerShell extension. Please file it with the repository [here](https://github.com/PowerShell/vscode-powershell). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extLiveShare",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the LiveShare extension. Please file it with the repository [here](https://github.com/MicrosoftDocs/live-share). Make sure to check their [contributing guidelines](https://github.com/MicrosoftDocs/live-share/blob/master/CONTRIBUTING.md) and provide relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extDocker",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the Docker extension. Please file it with the repository [here](https://github.com/microsoft/vscode-docker). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extJava",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the Java extension. Please file it with the repository [here](https://github.com/redhat-developer/vscode-java). Make sure to check their [troubleshooting instructions](https://github.com/redhat-developer/vscode-java/wiki/Troubleshooting) and provide relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "extJavaDebug",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "close",
"addLabel": "*caused-by-extension",
"comment": "It looks like this is caused by the Java Debugger extension. Please file it with the repository [here](https://github.com/microsoft/vscode-java-debug). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines for more information.\n\nHappy Coding!"
},
{
"type": "comment",
"name": "gifPlease",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
],
"action": "comment",
"comment": "Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, `.gif` files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.\n\nIf the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (`Developer: Toggle Screencast Mode` in the command palette).\n\nHappy coding!"
},
{
"type": "comment",
"name": "label",
"allowUsers": []
},
{
"type": "comment",
"name": "assign",
"allowUsers": [
"cleidigh",
"usernamehw",
"gjsjohnmurray",
"IllusionMH"
]
}
]

View File

@@ -1,13 +0,0 @@
{
perform: true,
commands:
[
{
type: "comment",
name: "findDuplicates",
allowUsers: ["cleidigh", "usernamehw", "gjsjohnmurray", "IllusionMH"],
action: "comment",
comment: "Potential duplicates:\n${potentialDuplicates}",
},
],
}

View File

@@ -1,6 +0,0 @@
{
insidersLabel: "insiders",
insidersColor: "006b75",
action: "add",
perform: true,
}

View File

@@ -1,6 +0,0 @@
{
insidersLabel: "insiders",
insidersColor: "006b75",
action: "remove",
perform: true,
}

View File

@@ -1,9 +0,0 @@
<!-- Thank you for submitting a Pull Request. Please:
* Read our Pull Request guidelines:
https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests
* Associate an issue with the Pull Request.
* Ensure that the code is up-to-date with the `main` branch.
* Include a description of the proposed changes and how to test them.
-->
This PR fixes #

View File

@@ -1,5 +0,0 @@
{
perform: true,
whenCreatedByTeam: false,
comment: "(Experimental duplicate detection)\nThanks for submitting this issue. Please also check if it is already covered by an existing one, like:\n${potentialDuplicates}",
}

View File

@@ -1,9 +0,0 @@
{
"notebook": [
"claudiaregio",
"rchiodo",
"greazer",
"donjayamanne",
"jilljac"
]
}

View File

@@ -1,30 +0,0 @@
name: Author Verified
on:
issues:
types: [closed]
# also make changes in ./on-label.yml
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
if: contains(github.event.issue.labels.*.name, 'author-verification-requested') && contains(github.event.issue.labels.*.name, 'insiders-released')
uses: actions/checkout@v2
with:
repository: "microsoft/vscode-github-triage-actions"
ref: stable
path: ./actions
- name: Install Actions
if: contains(github.event.issue.labels.*.name, 'author-verification-requested') && contains(github.event.issue.labels.*.name, 'insiders-released')
run: npm install --production --prefix ./actions
- name: Run Author Verified
if: contains(github.event.issue.labels.*.name, 'author-verification-requested') && contains(github.event.issue.labels.*.name, 'insiders-released')
uses: ./actions/author-verified
with:
appInsightsKey: ${{secrets.TRIAGE_ACTIONS_APP_INSIGHTS}}
token: ${{secrets.VSCODE_ISSUE_TRIAGE_BOT_PAT}}
requestVerificationComment: "This bug has been fixed in the latest release of [VS Code Insiders](https://code.visualstudio.com/insiders/)!\n\n@${author}, you can help us out by commenting `/verified` if things are now working as expected.\n\nIf things still don't seem right, please ensure you're on version ${commit} of Insiders (today's or later - you can use `Help: About` in the command palette to check), and leave a comment letting us know what isn't working as expected.\n\nHappy Coding!"
releasedLabel: insiders-released
verifiedLabel: verified
authorVerificationRequestedLabel: author-verification-requested

Some files were not shown because too many files have changed in this diff Show More