Compare commits

...

1701 Commits

Author SHA1 Message Date
Joe Previte
fc6d123da5 feat: update release template w/doc and dev 2021-02-12 16:22:32 -07:00
Joe Previte
0e3d1265d0 docs(ci): update release 2021-02-12 16:22:32 -07:00
Joe Previte
28e351c982 fixup: fmt install.md 2021-02-12 16:22:32 -07:00
Joe Previte
a5ac1cce83 docs(ci): update code coverage instructions 2021-02-12 16:22:32 -07:00
Joe Previte
ef6c1bd46a chore: update code coverage badge 2021-02-12 16:22:32 -07:00
Joe Previte
ba9196968b chore(install.sh): update to v3.9.0 2021-02-12 16:22:31 -07:00
Joe Previte
76edcced0d chore(helm-chart): update to v3.9.0 2021-02-12 16:22:31 -07:00
Joe Previte
2d407be795 docs(helm-chart): update to v3.9.0 2021-02-12 16:22:31 -07:00
Joe Previte
2ca22c3318 docs(install): update to v3.9.0 2021-02-12 16:22:31 -07:00
Joe Previte
0f17ceb9b5 chore: update package.json version 2021-02-12 16:22:31 -07:00
Asher
3fc556d4d5 Delegate authentication to plugins
Unfortunately since plugins can now override the root this is necessary
or just can't log in.
2021-02-12 16:50:23 -06:00
Asher
c2450d6bf3 Merge pull request #2722 from cdr/root-plugin 2021-02-12 16:07:23 -06:00
Asher
8c3896cf40 Move compression to deps from dev deps 2021-02-12 16:06:41 -06:00
Asher
de11753569 Fill req.args for tests 2021-02-12 16:05:15 -06:00
Asher
0abbc9789e Allow plugins to register at the root
Unfortunately we have existing plugins with routes there which we cannot
move.
2021-02-12 15:19:26 -06:00
Asher
619934dc29 Authenticate plugin routes (#2720) 2021-02-12 14:56:39 -06:00
Justin Poehnelt
97c1399401 feat: use compression in express server (#2680) 2021-02-12 14:27:33 -06:00
Joe Previte
1272bf9a52 Merge pull request #2696 from bpmct/clarify-alpine
docs: clarify Alpine install path in install.md
2021-02-11 09:50:59 -07:00
Ben
e4c82a097e update branch in URLs 2021-02-11 08:00:36 -05:00
Ben
3dcb92be40 fix npm docs link in install.sh 2021-02-11 08:00:33 -05:00
Ben
4318ac6834 fix whitespace 2021-02-11 08:00:28 -05:00
Ben
f92fd2c92e clarify alpine on install docs 2021-02-11 08:00:04 -05:00
Asher
8344e2062a Merge pull request #2622 from cdr/plugin-additions 2021-02-10 16:45:00 -06:00
Joe Previte
662b5b24e6 Merge pull request #2701 from cdr/add-unit-tests-constants
feat(testing): add unit tests for constants
2021-02-10 12:40:58 -07:00
Asher
de9491d5a6 Mark code-server as a virtual module 2021-02-10 13:13:23 -06:00
Joe Previte
1da773d09b Merge pull request #2706 from genome21/master
docs(README.md): update to include requirements
2021-02-10 11:00:59 -07:00
Joe Previte
f1337d53c6 Merge pull request #2702 from cdr/add-unit-tests-http
feat(testing): add unit tests for src/common/http
2021-02-10 10:57:16 -07:00
Asher
3f837d3036 Fix tests failing due to collisions in release 2021-02-10 10:32:17 -06:00
Robert Wilkins III
71cb9e7095 Merge pull request #1 from genome21/genome21-patch-1
Update README.md to include requirements
2021-02-09 23:43:58 -06:00
Robert Wilkins III
4fc0f92180 Update README.md to include requirements
Promote ease of adoption by placing the requirements in the README at the root folder level.
2021-02-09 23:41:36 -06:00
Asher
4f16087a94 Resolve code-server from the root
This fixes the lint script but unfortunately breaks my editor.
2021-02-09 16:36:26 -06:00
Asher
2b1b3e6dc0 Add eslint import alias resolver
Somehow I managed not to commit this earlier.
2021-02-09 16:20:28 -06:00
Asher
e4e0ac43b0 Don't load plugins in tests
This can affect the test behavior and results.
2021-02-09 15:39:57 -06:00
Asher
e098df0766 Fix code-server module not being provided in Jest 2021-02-09 15:23:08 -06:00
Joe Previte
c7c851dd01 feat: add tests for src/common/http 2021-02-09 13:13:19 -07:00
Asher
b881117762 Expand working directory comment 2021-02-09 13:35:34 -06:00
Asher
9647d65e52 Add code-server alias to eslint 2021-02-09 13:33:31 -06:00
Asher
2879bd4c22 Add type alias for required modules 2021-02-09 13:09:41 -06:00
Asher
3226d50747 Rename papi to pluginApi 2021-02-09 13:09:40 -06:00
Asher
2fe3d57df3 Mount plugins before bodyParser
Otherwise it consumes the body and plugins won't be able to do things
like proxy POST requests.
2021-02-09 13:09:39 -06:00
Asher
c78f56b334 Expose HttpError to plugins
This will let them throw and show nice errors more easily.
2021-02-09 13:09:38 -06:00
Asher
22d194515a Expose replaceTemplates to plugins
This is mainly so they can get relative paths in their HTML, in
particular code-server's static base so they can use the favicon and
service worker.
2021-02-09 13:09:37 -06:00
Asher
36aad9bdab Move global express args definition
This way tests that import the http utilities but not the routes won't
error due to missing types.
2021-02-09 13:09:36 -06:00
Asher
150513fbc4 Export Logger type
So plugins can pass the logger around.
2021-02-09 13:09:35 -06:00
Asher
5505959f7e Expose websocket server to plugins
Same reasoning used when exposing Express.
2021-02-09 13:09:34 -06:00
Asher
b13db3124b Add health websocket
This is used by some of our services.
2021-02-09 13:09:33 -06:00
Asher
f136a60093 Note that we immediately pause websockets 2021-02-09 13:09:32 -06:00
Asher
00cfd9bdf1 Add working directory to plugin config 2021-02-09 13:09:31 -06:00
Asher
3211eb1ce5 Expose log level to plugins
In case they need to map it to something else.
2021-02-09 13:09:30 -06:00
Asher
017b1cc633 Add deinit for plugins 2021-02-09 13:09:29 -06:00
Asher
3c6fac9ce4 Wait for inner process to exit 2021-02-09 13:09:28 -06:00
Asher
055e0ef9ec Provide WsRouter to plugins 2021-02-09 13:09:27 -06:00
Asher
fb37473e72 Load only test plugin during tests
The other plugins in my path were causing the tests to fail.
2021-02-09 12:20:30 -06:00
Asher
f6b04c7c29 Expose proxy server to plugins 2021-02-09 12:19:39 -06:00
Asher
a8e928798b Re-export express for plugins 2021-02-09 12:19:38 -06:00
Asher
5f1fab7d27 Re-export logger field for plugins 2021-02-09 12:19:36 -06:00
Asher
6ce29311a8 Merge pull request #2543 from cdr/vscode-1.52.1 2021-02-09 12:15:20 -06:00
Asher
898565e16a Resolve browser telemetry conflict 2021-02-09 11:11:38 -06:00
Asher
948e01fb27 Bundle jpg from VS Code
These seem to be used in some "getting started" page but I'm not sure
where it is.
2021-02-09 11:11:17 -06:00
Asher
068e399bf2 Remove Node browser shim
We used this to run vscodevim in the browser but it now has a version
that is able to run as a VS Code web extension. This does require an
update to our marketplace, however.
2021-02-09 10:40:14 -06:00
Asher
a65231808a Fall back to remote extension server on web 2021-02-09 10:39:35 -06:00
Asher
a6d4b24733 Resolve extensions viewlet conflicts 2021-02-09 10:39:08 -06:00
Asher
f8d546bdc6 Remove hidden home CSS
Now that you can customize the home it's probably fine to show it.
There's also an option for users to hide it.
2021-02-09 10:38:14 -06:00
Asher
cc59279f11 Remove GoHomeContributor
It's probably registered in some other way now.
2021-02-09 10:37:03 -06:00
Asher
89c38d3554 Update storage promise
A new doStore was added.
2021-02-09 10:36:39 -06:00
Asher
14c96d78ef Remove added logLevel
We've always had this.
2021-02-09 10:33:11 -06:00
Asher
80d50057fc Remove electron and resolve yarn.lock conflict 2021-02-09 10:32:27 -06:00
Asher
0a1a8fe4fe Remove new .yarnrc 2021-02-09 10:19:24 -06:00
Asher
9221efc104 Restore Node check
Since we're following the VS Code allowed version range now to prevent
bugs use the new range instead of commenting it out.
2021-02-09 10:09:45 -06:00
Asher
859de79d97 Update to VS Code 1.52.1 2021-02-09 16:08:37 +00:00
Asher
e4a830e9b7 Squashed 'lib/vscode/' changes from e5a624b788..3e344b17b7
3e344b17b7 Remove extrenuous file. (#113825)
36f9eaf1e7 Merge pull request #113596 from Ry0taK/release/1.52
e73a6b082c Create ryotak.txt
ea3859d4ba Bump version number to 1.52.1 (#112659)
608dfc1363 Catch all localhost duplicates when forwarding a port (#112575)
8b5ece7c20 Merge pull request #112431 from microsoft/misolori/notebook-color-icons
c11e9282d8 Merge pull request #112565 from microsoft/isidorn/enableBreakpointsFor
2b6973a35d debug: check for existence of enableBreakpointsFor.languageIds
374d05c17c Revert "debug: stop supporting enableBreakpointsFor"
f93c8a0386 Fix notebook status bar icon colors (fixes #112323)
940b5f4bb5 chore: fix run-on values for snap build (#112245)
dbbf7079b2 Make sure that tunnel information isn't set on desktop (#112228)
99edf4ff0f fix linux deb repo pointer (#112226)
91a50e3022 Set tunnel information for embedders (#112215)
c6cb541539 Fix port forwarded nofication showing for the wrong port (#112160)
6caba06920 Merge pull request #112141 from microsoft/joh/fix/111913
cb971b8ffd Preserve whitespace in tree hover (#112133)
e4af2d8ad6 disable proposed API checks on top-level getters
6f933020e8 Just set textContent for custom hover (#112075)
d66e3740a4 Merge pull request #112054 from microsoft/connor4312/js-debug-1.52.2
b4ec131cff retry all cosmosdb ops (#112072)
5e585c5fb4 use proper repos for linux arm (#112026)
37c2de252e debug: bump js-debug
bc13785d3d Retry createAsset sproc due to ECONNRESET (#112020)
559a78eaaa Mitigate #109728 (#112008)
62d6b82a6f Revert "build: create asset should still try to add asset" (#112009)
30e0c5784b fix #111898 (#111928)
532ba43c78 Remove console.log
39f33b588a wrap font faimly with quotes
dc8ac78031 fix #111910. Avoid notebook save race condition.
97e4af4d20 Fixes #111899: Maintain compatibility for context keys like `vim.use<C-r>`
acbe8f273e Only render `vscode-remote://` extensions as remote
9254ec3b28 fixes #111577
7413cc2493 yarn gulp vscode
528ca4c9ea fix duplicate imports
8e5a1da05e Update doc comment for resolveTreeItem Related to #111715
478c7b633f Make welcome buttons look better in wide pane Fixes #111744
d298a8d5d6 Fix timing issue with environment tunnels Fixes microsoft/vscode-remote-release#4112
7fcdba7fea Add heuristic for when to notify about forwarded port Fixes microsoft/vscode-remote-release#4133
2e3236827e suppress refactor preview from onWill-handler, workaround for https://github.com/microsoft/vscode/issues/111873
de3dd1383c Active indent lines do not render in High Contrast theme. Fixes #111137
8f410da37f Revert "fixes #110353"
6ed64df492 repl: font family
0c947cb4ee fixes #96264
6a1ad5b9b8 💄 code lens font fix
60bf040b98 workaround for https://github.com/microsoft/vscode/issues/111871, fixes https://github.com/microsoft/vscode/issues/111666
5e350b1b79 build: create asset should still try to add asset
7256c3ab26 💄 code lens font
6a58335d02 explorerViewer drop await
c2f68baa78 search: fix handle empty results from ripgrep
63137db51c debug: fix auto attach not turning on if reselecting current state
c70d984fa2 debug: bump js-debug
ff66544ada Allow using upper case hex characters for color
ff824f2776 Bump actions
b617b725a0 update notebook execute kb shortcut tooltip for windows.
1aa26c3775 Fixes #105808
9d5c351c71 notebook list view scrollbar should be below cell toolbar
53eac52308 Fixes #111499
1c1c59fd0f Kill code processes after each integration test suite run (#111844)
39fb92c6c5 Remove redundant when clauses
62b119aa22 Fixes bad has implementation
370e092880 extJupyter
41eb987d09 add log for save/saveas
7b1154d447 update resolve time stats even if they are the same.
7ecce71a48 Fixes #110376
450ae69a33 Fix #111835
2964a69479 Fix #111798: Getting Started: capitalized "Editor" looks weird
061e84830d fixes #110775
a82ae0c9b7 Fix #108266
564ff91763 fixes #111832
95f6cfa0ae More 💅: adjust overall padding & sizing (refs #111753)
ae93d48902 fixes #111583
15f38fe338 Fix ports view order in remote explorer Fixes #111830
a63786db23 Add paren, bracket, and brace to autoclosing pairs for make Fixes #89191
3c4bbf6da2 Fix ports view listener leak Same kind of cause as https://github.com/microsoft/vscode/issues/107903 Fixes #111772
6d222ba785 Fixes #97196: Clear out semantic tokens when there are no more providers
0447415697 Hide the editor's cursor when doing composition (fixes #106663)
79fb30f5b6 Fix resolveTreeItem called twice Fixes #111749
07333dec48 node-debug@1.44.15
87e43299ad update DAP to 1.43
09a7ad2ae7 fix raw timers telemetry event
4095701c70 Exclude endgame-plan issues from query
0ea221b325 fix query, remove commas
4f33022639 add verification query for issues from non-vscode team members
c0ad6a56c0 Slightly darken list active bg on light theme (fixes #111750)
92192baf76 Bring content closer to center vertical when space permitting Ref #111753
f603b548c5 Polish getting started styles (#111774)
af63e8263a Fix #111706: Getting started: images need alt text
2012817c0d Fix #111699: workbench.startupEditor setting not showing Getting Started tab
5215161c88 fixes #108712
5b121903fc Fix issue preventing cells from leaving "running" state Fix #110973
253844006a fix #111735.
1fc36c35bb remove extrenouus log fixes #111759
b122603b86 Fix comment decoration weirdness, fixes https://github.com/microsoft/vscode-pull-request-github/issues/2309
9d9ae54aa8 Add jpg to vscodeResources in order to bring gettingStarted images into the bundle
44dafcc840 Allow an `EncodedTokensProvider` to also provide a tokenize method
a9100d686c Update verification notebook milestone
4884986dd6 tweak smart select test
a2193cb827 fix #111714
efd8b0141e explorer: update creation labels
acaecbdc86 fixes #111602
0db0fa8fc9 Prompt when hitting a different UndoRedoSrouce when undoing (#111640)
2b179bff4a Extract `_undo`, `_redo`
0ac5e95251 Fix #109644
df2c328e59 string literal does not work with status bar item [background] color (fix #111687)
d758a74bf7 Merge pull request #110902 from Wscats/patch-5
d79110a329 Avoid layer breaker
bbdbcd333b Update contextkey.ts
9cd45f96de fixes #111710
383dc83e7f Fix the standalone editor build
97646e138a workbench.tree.expandMode
49ef641300 fixes #111639
af29768f18 Fix #110844
e16d1f06d7 Add default URI if not provided in dialog API Fixes #111585
f2ae4927f9 update distro
980ef5cb52 Merge pull request #110846 from Wscats/patch-3
94dd681d16 more fixes for #95697
16ffa1deff Add GreaterEquals and SmallerEquals and fix implementations
65c70884c1 Fix #106989
763b155fe9 Fix #111574
51b1029e98 Check detected tunnels before auto forwarding Fixes microsoft/vscode-remote-release#4112
87538e9cea Merge remote-tracking branch 'origin/master' into pr/Wscats/110846
2ba6946272 fixes #111581
8d171e6492 Improve multiple lock files notification Fixes #111589
0be03ecc6d fixes #111693
5d591624ae add install in browser action
16e91f1011 fix https://github.com/microsoft/vscode/issues/111741
f622d7b6f1 fixes #111657
9a9c6b5557 Extra character in icon hover. Fixes #111681
b9b92e3152 Fix tree item not getting resolved after data change Fixes #111711
f4187f2202 fixes #111732 #111733
806eaddcbe Fix resolveTreeItem getting called too early Fixes #111613
0587f828d6 fixes #111617
399be0e564 fixes #111671
3730238647 fixes #111601
e024fd8b96 add cancel-option to continue bisect model dialog, https://github.com/microsoft/vscode/issues/111667
914b5633f5 fixes #111593
2388291cbc start extension bisect with all extensions disabled and stop early if problem reproduces, https://github.com/microsoft/vscode/issues/111672
a1e5a1a593 Small typo in notebook mime type icon description. Fixes #111674
6d4532c484 align continue bisect messages, https://github.com/microsoft/vscode/issues/111667
1cad5ab365 Prepend `vs/nls` to `workerMain.js` (fixes #111599)
00bbeb3973 Fixes #111649: Have the diff editor control `wordWrapOverride1` and the toggle word wrap action `wordWrapOverride2` such that they can function independently
8041440e5b linux: disable integration tests
af848910f7 Merge pull request #111661 from dataleaky/master
c44732014d windows - prefer to focus window where files open in
14bf080705 Keep Editors Open menu choice in the editor '...' menu should be a checked option (fix #111668)
b2ef118857 window.restoreWindows: preserve description polish (fix #111607)
c76a42acc6 Bad rendering of status bar item with error background color (fix #111618)
1e0094545c Merge branch 'master' into master
d9ea0ced98 build: fix config
60f5e6ee9a build: disable exploration sync
647cecb29d build: exclude electron-11.x.y branch from continuous build
5e54da666c fix #111675 and #111673
9dba02c075 re #109594.
b2c2c20fe7 fix #109626.
8fa61d9652 Fix a dependency URL
a0aeb3a559 Update package.json
4d9277a23a Optimize autosave message when changing settings. Fixes #111648
c96643feab Fix #111598
0e8f9d143b Merge pull request #111541 from mdesrosiers/handle-find-widget-history-delayer-promise-rejection
f89bb0d54a Tweak verification needed query
c7e849f9be fix https://github.com/microsoft/vscode/issues/111604
af5c09a10c Remove console.log from hoverWidget Fixes #111609
3689660fcc Add descriptions for npm.packageManager options Fixes #111628
72cce5194c fixes #110511
f67050c029 Missing jsdoc in LinkedEditingRanges. Fixes #111590
e0f804f483 fixes #111496
55489fdd47 Move ports veiw into remote explorer by default
4ca1a30f5d Update distro commit
9395c9403b ignore already verified items
d531b6dfe9 proxy - various login dialog fixes
c5ffc57ee6 Get ready for ports view experiment
20bf09bc66 [linked editing] finalize LinkedEditingRangeProvider. Fixes #109923
ec2bcdbb57 #111573 also check for setting value type
6e7d1fa680 Fix #111573
bf21395291 column options in openWith-command can be undefined, fyi @mjbvz
3472159cb1 Merge pull request #111408 from microsoft/aeschli/notebookIcons
7536644522 Fixes #111569
648ed9f9d1 unblock build
f019356d4d Revert "Make users save new file (#110330)"
e3105b9453 Add jpg exclude to hygene
bd627caa54 Add actual images for content
e428ce2d26 Dont let product icon overflow
5a3c6cb697 Fix offcenter footer
35e9278e50 Fix scrolling on getting staarted
562f909902 Revert "fix: c++ exception in keytar module"
b0fba33756 Styling tweaks to getting started
8baa2cdaaf Better shape images in getting started
d95abcca66 Prevent error when reopening markdown preview. (#107205) (#111449)
1c4cc602c6 Fix merge conflict
8b59a9ce1a Focus on the content window for iframe based webviews
b854c0bffd Make vscode.openWith a proper api command (#111006)
6062ebe318 Bump highlight.js in /extensions/markdown-language-features (#111262)
9e5f14c1bc Default strict null checks to off for implicit projects
304d3d7e36 Handle rejected promise in history delayer
18ecb87939 fix html yarn.lock
b03cdca765 icon doc
15b05ff05a fix #108788.
68eaa95360 Bumps version of github-browser
c358910b01 Fixes #110880 - sets useConfigOnly=true on commit
634fb13135 [css][html] update dependencies
8448b1680c [html] update dependencies
c941749f5b Enable persistance of getting started ui state
dceba9ebb7 [css][html] Option to disable MDN Reference popups only (without effecting other functionalities). For #97979
c6e90c5ea3 Update 'statusBarItem.errorBackground' default color token (refs #110214)
ec13471816 [json] Inconsistency between files.insertFinalNewline and Format Document. Fixes #17359
d132d93aeb Register `DeleteInsideWord` as an editor action
0b97b6b160 [json] update dependencies
025952c4d5 Rename `editor.atomicSoftTabs` to `editor.stickyTabStops`
bb33ef06bf Fix #99530
de36470f39 Fixes #110897: Always disable word wrapping in left hand side editor of inline diff
833231811f Define a label for `deleteInsideWord`
3fb2f6f976 chore: bump distro
47ce2a8d6d #111845 fix localization tests
155691d0be chore: bump electron@9.3.5 (#111530)
5c71b5425a Fix #111357
b548ac2211 more build fixes
6dfdbe24d9 update distro
8cb4a6907b support passing log level using query param
ac165d7f97 bump cache salt
8c2a384efa 💄 format file
858817eb3c Update description of `remote.autoForwardPorts`
e7f19cf61a don't validate MessagePort inside iframe as safari seems to have trouble with that
bf24f189f1 Clean up defaultFolderPath
9689508fa5 Run OSS Tool and make necessary updates
2afcea867a Use argparse 1.0.9 in npm extension
648090440f caching is HARD
aa36c6211b move duplicated code into central place
2c5901053a spelling error in command name (fix #111455)
f5fb75d829 fix tests
0f1492d6da chore - remove unneccessary non null assertions
8ce7356104 Fix defaultFolderPath so that userhome is correct
2890fd321f Fix #111485
a5a37240bc fixes #108001
eee332ba85 fix misuse of VSCODE_ARCH in builds
2018df47d8 support font features, like ligatures, in code lens, https://github.com/microsoft/vscode/issues/16038
b7211aa875 fixes #107651
9172ecfad8 🆙 distro
a4054cda6d update references viewlet, also no more proposed API usage required
cedc2850ec Exclude testplan-item label
f47aae014c Merge pull request #111441 from microsoft/ben/native-tests
673c1adcb0 fix layer breaker
1efcfbf242 api - fix exception in status bar
ef2a900dec sandbox - add SH1 to HEX utility using crypto.subtle with fallback to our own solution
fbf7566d39 tests - add test suite for native modules
7723f2548c Fix #109406
8ee75c19bb Escape more white space in appendText Fixes #110464
c5ab321020 fix https://github.com/microsoft/vscode/issues/110554
444f79cc3a Improve quiet light diff syntax highlighting. For #107926
07224f0681 update to latest DAP
e24ea5ef61 Merge pull request #107926 from alisonnoyes/master
1a6d7f3118 [json] performance warning message can't be ignored. Fixes #105988
e6d6661247 fixes #111410
cfa02997d2 fixes #111413
e2dd774fa4 fix yarn retry logic
627ad0b4ee rename OnTypeRename -> LinkedEditing (for #109923)
f13720627f Improve task dependency cycle check Fixes #111369
cd9be282b7 Add condition editing UI to breakpoint filters
6795d766a0 remove old logging API proposal, fixes https://github.com/microsoft/vscode/issues/85992
79b6d35bd6 remove TreeItem2
01bbb81052 Finalize markdown tree tooltip and resolveTreeItem Fixes #100741
016655c546 fixes #104629
8891878a3b bump cache
210a1a1327 Merge pull request #111405 from microsoft/joao/trusted-extension-uris
3495d2fd76 💄
6391d710cf adopt latest loader, pass trusted types policy to loader, adopt in loader-usages
483e81f3b8 Fix duplicate port forwards for ipv4 vs ipv6 Fixes https://github.com/microsoft/vscode/issues/111400
f8d1c07e16 use createChannelReceiver, createChannelSender
995983da54 github: get all branches
c3414f3cf3 Always show the open view option in the open in browser command
cae277a203 Add a command for open port in browser Part of https://github.com/microsoft/vscode/issues/111402
2fb5b5b696 fixes #44542
0321ca5d96 fixes #106664
6c8f62432f Merge branch 'master' into aeschli/notebookIcons
8012c255e5 fix keybinding smoke test after icon name changes
4e45d27a72 fix stopIcon name
35a8955dc1 Merge branch 'master' into aeschli/notebookIcons
4ae452929e Merge pull request #111383 from microsoft/aeschli/extensionsIcons
3a92391c20 Merge pull request #111377 from microsoft/aeschli/preferencesIcons
fddc9bb221 success/error icons
f6249641f2 externalize notebook items
bafc05ff0a fix retry
71836f95dd fixes #111366
6253e47773 #44542 ability to reveal setting
42bb62a06f Exclude endgame-plan label
1e0af43774 trusted ext urls: use 1 hour instead of 10 mins
c471973938 Merge branch 'master' into aeschli/preferencesIcons
44ddde116f adopt checkProposedApiEnabled
14d59bef92 Allow status items with error background color (fix #110214) (#111353)
14415847e1 trusted extension urls
2cd7a70d62 original urls get passed along with openUrl
ac9e250cce support node 15
cfe2e99ad8 debug: load all stack frames text shuold have initial color when selected so it is readable
4cb5bb656a Merge branch 'master' into aeschli/preferencesIcons
8e6517069a Merge branch 'master' into aeschli/extensionsIcons
98f80c4047 Fix #110698
8784b77bfd fix #110699
1e77bd81d8 registerCodicon
8234453386 update tests
83f8b96a94 add extension icons
43f5beb307 fix terminal icons
09f281dff6 dirty dff icons
2f0552737c terminal icons
5c2127ec74 Fix #110964
f70430eae4 download to temp location first and rename
26a0c24c6c fixes #111218
818174d4e8 bulk edit service: Show infinte progress when there is only 1 item since we do not know how long it takes
4ac4cf3dff some more cleanup, enfore proposed API checks, fyi @RMacfarlane
c84fa206d4 add preferences icons
c219b0673c 💄 discover and mark more proposed types
44af5d2af2 marker view icons
f0bb23ca02 more icon work
58a90729c4 externalize activitybar icons
1e6e371d3b :liptsick: sort API types and namespaces, enforce proposed API for types
a94217739a Don't auto forward ports in WSL Fixes #111375
a5bda3ee95 support later node for building
f81e91d1c9 Merge pull request #111363 from microsoft/joh/playwright
cb8259c7b7 Fix forwarded ports restore race
e5111fc439 Only show "Not Forwarded" when auto forward is disabled Part of microsoft/vscode-remote-release#4021
58fe1b9dfa Add badge back to ports view Part of microsoft/vscode-remote-release#4021
3018240290 add user data init markers
047063458b Merge branch 'master' into joh/playwright
b2b5647451 disable two comparer test that fail in latest safari, https://github.com/microsoft/vscode/issues/111368 fyi @bpasero
6a974d536b Change port language to "forwarded" and add icon Part of microsoft/vscode-remote-release#4021
b269cd9464 Add open pull request query
2d4ec09c1d add yarn lock file
9ee2a1ee1e 🆙 update playwright
3c3ed7fb58 Fix #111351
b01183bda2 Add extension source to forwarded ports Part of microsoft/vscode-remote-release#4021
2f8f00d622 add dropDownButton-icon description
1aba2b87c6 fix unnecessary import
8648658c44 use codicon for openEditorWith picker
a6a53198f6 make viewPaneContainer twisties themable
32a18e3f5b add Codicon.dropDownButton
20b649729e button: use CSSIcon
75c71b49cc Fix #107152
6692bf17e8 find completion item color in detail and at the start/end of documentation, fixes https://github.com/microsoft/vscode/issues/109794
d9c33ab941 Fix port nofication cooldown
c13542b7ca Remove heading for forwarded ports Part of microsoft/vscode-remote-release#4021
ebaf0a2ef0 read line preview when having symbol results, https://github.com/microsoft/vscode/issues/109523
dcf4cd2a50 Improve tunnelFactory doc and remove an escaping undefined
8ba0fd356e IEnvironmentVariableInfo: Use ThemeIcon
b4912314fc move file decoration API to stable, https://github.com/microsoft/vscode/issues/54938
38a200c746 💄
c6be304059 Ignore flush errors during dispose since the underlying socket might be already closed
2d2a9e7527 Prevent unwanted concatenation of "null" to feedback URL (#111325)
4031280b29 Go to symbol in editor, open to side should reset scroll position in original editor (fix #111346)
5e6a2779f6 add try/catch for #111177
d49955575e 💄 relative pattern
a5e20f89e4 💄 imports
392b6a94e0 perf - remove redundant performance usages
d547170675 sandbox - move some changes from PR over to master
0a80aacc7b chore: update cache
764620efae fix: c++ exception in keytar module
5f569de4cd more removal of non-null
0921f711c3 Add GettingStartedService/Registry and initial getting started UI (#111175)
ef03adf3a0 notebook editor widget always creates list in ctor.
3f0ada11fd core action active editor context should always have a view model.
f24f7be7f0 less non-null operator in notebookEditorWidget
76882e4eb4 avoid memory leak of large text buffer from notebook cell text model.
2c20676f5c update distro (and hopefully unstuck builds)
2ecb47d4ec Use ThemeIcon & IconRegistry for custom icons
c59ddc6a1f update distro
cad45e538a Add `ProtocolMessageType.ReplayRequest` such that missing messages can be requested again
6edf58b9ae Avoid layer breaker (using `process` from `/browser/`)
3cd515d33e support installing web preferred extensions on web server
af52f2cb8c `TextModel` should not dispose its `TextBuffer`
8dce3899da avoid unnecessary deepclone
5b243ab54b don't leak env vars into process.env; fixes #83187
b51a171a75 Update codicons cbe2a17f29
e2c9d1a7a3 Avoid using `innerHTML` (#108400)
d7bdbe118e Allow running `yarn tsec-compile-check` also on Windows
84cf12f40b Add trusted types policies where `.innerHTML` needs to be used (#108400)
89c255a523 generate icon-css from theme.comon.IconRegistry
71462d03fe Fixes #111309
0ab259ff27 remove unsued code, fyi @roblourens, https://github.com/microsoft/vscode/issues/106741
37e9cceddc Enable sandbox, contextIsolation and vscode-file for process explorer and issue reporter (#111304)
545332f793 explorer: polish progress
e287b8c9d3 explorer: hook in cancellation
bef58ff84a forgot!
5cb2ee7b8b confirmed extension -> user trusted extension
cab737e707 Make `extensionKind: ['ui', 'web', 'workspace']` pick the web worker extension host if possible
b909e20513 progress: Increment by percentage points since progress API expects that
5a0ab56492 use native performance.mark when avialable
e3e2837476 Bring Running Extensions to the web
aa91d04552 add cancellation token to working copy service and hook it up with file operation participants
a500715422 fix terrapin order
a59aa579b6 fix debug toolbar colors
37274abda9 update distro
043c17ef7d update azure cosmos 🤷
d387fa978a Extract `AbstractRuntimeExtensionsEditor` to separate file
97f01b33e9 Move profiling related state down from `AbstractRuntimeExtensionsEditor`
ba867135c5 Extract `AbstractRuntimeExtensionsEditor`
97a896091d remove startupPerf experiement, https://github.com/microsoft/vscode-internalbacklog/issues/1620
a8b6afefab process explorer - prevent process loops
d189ecf936 issues - check for sender being destroyed before reply
cda7b564e8 fixes #111191
182fe687b7 #111291 fix tests
d63fee4308 Fix #111291
2864ebf134 Do not include iteration plans into the open issues
ad8b6baef6 Extract `SaveExtensionHostProfileAction` to a separate file
6dc1a9540c "undo delete" operation recreates file contents when intital create had contents, fixes https://github.com/microsoft/vscode/issues/111162
72f4a2a7de Fixed $REPOS macro
897d2ec9a4 Merge remote-tracking branch 'origin/master'
3de0ea500a Merge branch 'joao/snap-arm'
a15493cf90 Extract `DebugExtensionHostAction` to its own file
3ceea17846 npm: use project dir when using npm
84ce131781 Emoji characters in col 40 of an empty file causes crash (fix #111235)
bb60e21a36 fix esrp for arm64
799e72cc2f Add tunnel creation options to web api
221a5570b6 Fixing how escape key works in listWidget (#110760)
7bbf45c14e env - only show one notifications not two (fix #111246)
ce6f5e0f8f Make ports view flat when there're only forwarded ports Part of microsoft/vscode-remote-release#4021
6e631518ab Extract `ReportExtensionIssueAction` to a separate file
fb54cd1cd7 Move inline actions when ports view is in the panel Part of microsoft/vscode-remote-release#4021
9abd43315c Manually release reference to piece tree when disposing (#107999)
48f4109f3d unify win32 build templates
e6d2bd326d fix darwin build
97a7e63de8 also check cancellation token in outer perform function, https://github.com/microsoft/vscode/issues/111281
7b1da3a3d9 add IBulkEditOptions#token, https://github.com/microsoft/vscode/issues/111281
927290270a build: - ENABLE_TERRAPIN env - .build/terrapin cache flag - fix alpine cache - enable web cache
96b2c670d7 debt - extensions path is always defined
ffec932655 add timeout to terrapin step
236298851a 💄 use linked list instead of array-remove gymnastics, fyi @bpasero
2ea9ecd6da increate file participant default time to 1 minute, show notification progress which allows for cancellation, https://github.com/microsoft/vscode/issues/111208
00eea33b23 More cleanup for armhfp and aarch64 rpm hardcoded dependencies (#111253)
41ef01de56 Fix #111212
1460908e18 bootstrap - move portable mode into bootstrap-node
2433e29383 sandbox - use IPC communication to read bundles
ec5da2bdc1 build: rebuild keytar for arm64
c6e908997b jsdoc 💄 for relative pattern
f37ca74411 Merge pull request #111269 from dsanders11/patch-1
614a865d1d Fix error message
3898e2ced3 Update extension install button to match default button style
8c9dfcbcb4 fix: appName in upload-vscode-configuration task
093acbdcbf timeline icons: use codicon registry for now
5a04894296 update distro
357fc9d16b Use codicons instead of string literals
0728b59411 fix: upload-vscode-configuration task for macOS
f645a8d8c8 Link to ThemeIcon id reference
6a41811e10 Merge pull request #111183 from microsoft/aeschli/themableDebugIcons
3cfc3ac372 remove duplicate 'codicon' class (for #111240)
668b1d2439 explorer file operations: show progress
24e9b29b39 wording for output show more.
fd15b93261 remove layer breaker
40a81495f2 fix: removed plugin helper entitlement
07bd0e3c35 💄
23e7e2fef0 showNotebookDocument.
160baa3b8d 💄
f9aa23fb6c relative pattern - update JSDoc comment
2e8bbdb41e api - test relative pattern with URI
2be5cc1845 #107999 Use disposable store and add onWillDispose listener
562d9451bc Fix #109114
66cb21b0b1 Fix #107999
5987e40765 Add vscode.Uri to types for vscode.RelativePattern's base parameter (#111155)
c37ffd83ba fixes #111240
bd40e2555b remove TS on-type-rename feature, https://github.com/microsoft/vscode/issues/109923, fyi @mjbvz
a5344096a2 raceTimeout test failed (fix #111233)
950c942b7c TunnelCreationInformation -> TunnelCreationOptions Fixes #110795
c0ecf176e7 Move ports view into the panel Part of microsoft/vscode-remote-release#4021
17e9e4ca1a Merge branch 'joao/retry-yarn'
c4b7d10912 Use property bag for tunnel creation elevation Fixes #110795
e052c8e045 move down common icons
197f1341e6 explorerService: consolidate bulkFileService apply in one location
2a8ee68eaa #110721 pass action runner
afce5c425d Add simple check for task dependency cycles Fixes #111186
cf4f2fa6c8 #11123 more fixes
ac21b369b3 Merge branch 'master' into aeschli/themableDebugIcons
c2d3d7f857 bump distro
8df4bc17da Merge .nativeignore and .moduleignore. Fixes #111220
fed34f982e startup util fixes
95e32fc67e update cache salt
ff0785571f explorer: limit undo file content to 5mb
a4e4e7ede3 Merge pull request #111013 from microsoft/isidor/doNotUseTrashFlag
b5861b0330 update the monaco.d.ts
4563ba1f94 add start function to explicitly start performance observer
b7851bfc80 :chore: bump distro
050963b8d1 missing terrapin usage
ad3adfa28e retry yarn install
900e4474e9 missing terrapin usage
63efefb897 Merge pull request #111182 from microsoft/sandy081/notifications/dropdown
1ff7e57724 Merge branch 'master' into sandy081/notifications/dropdown
875ad7bdd7 Fix #111168
7e4f90277d run prettier over yml files
9a657db088 add tiny util to allow performance mark collection (via perf_hooks) independent of amd or commonjs usage
384d7b5e9e implement review comments
a327c55c85 Merge branch 'master' into aeschli/themableDebugIcons
4ddf7bc0a7 Fix null characters showing in forwarded ports
d970e263c7 more fixes for #111221
08d9b15245 fix dropdown position
a486099d30 fixes #111221
723ee37c02 bootstrap - expose preload process to base lib
d2365da65c rename doNotUseTrash to skipTrashBin
4d58b56772 Merge branch 'master' into isidor/doNotUseTrashFlag
0ec40638a8 Merge pull request #111042 from microsoft/isidorn/bulkFileEditsMaxSize
41025928ad bootstrap - fix more compile errors
ae64039e43 Move `runtimeExtensionsInput` to `/common/`
de85ef3a20 Fix hardcoded rpm dependencies for armv7hl and aarch64 (#111198)
e8ba7e51ee bootstrap - fix compile errors
6038823879 add doc
2efde187ac HTML Semantic Tokens test failures. Fixes #111214
44281ba1d5 do not support secondary option on menu
ff281d39f3 fix - pass the action runner
155b218dcf web - home indicator 💄
2046205637 debt - fix layer break with dependency to v8-inspect-profiler
4aae851063 Update Codicons: Add 'circle-large-outline' and 'circle-large-filled' 7ddcbfb5f4
abf3964921 Updating Codicons: Add 'pass-filled' https://github.com/microsoft/vscode-codicons/
c3e1f0e02a re #102503. allow open notebook on the side.
9ce365f085 chore: bump distro
0b7158b190 💄
e66547a1d9 ensure the editor has enough top padding when there is decoration ::after: { top }
0baf6bb9cc chore: update to electron 11 (#110759)
10d92e5efa Prompt user with info about terminal config, add settings search by @id, and add sendToShell setting (#110987)
6f87c1cf7f Removed "duplicate" label
8e76838da5 Tweaked endgame notebook, added my endgame notebook
2a1c8bbaf2 re #108464.
1732cb9540 DAP: add support for conditional exceptions
4c55c7264f Revert "Fix #58600, Format Emmet package.json (#110891)"
40a902c9cf Multiline markdownEnumDescription should not break split json settings editor Fix #110840
a7b1267006 both custom and native hover showing (#111178)
542de8a8d7 Fix bug where tasks.json tasks aren't resolved
eecbbcd3e3 fixes #110720
34b0cedeb7 fixes #108073
ef5a912876 fixes #109097
0223a22d87 externalize debug icons
535943628c revert
a2ca2bbb1c revert onCancel
5e82d27fa7 support menu with prompt choices
a85b3391ef Consider to remove migrateFromOldCachedViewContainersValue (fix #109726)
6c415c2486 Merge branch 'joao/terrapin'
ea989da383 Feedback from resolveTreeItem API proposal review Part of #100741
21a42246d3 fix compile
4e1eff7083 web - turn the home indicator into a menu
f19b19018c Automatic port forwarding polish Part of microsoft/vscode-remote-release#4021
e9fc5e147d Fixes microsoft/monaco-editor#2192
9a07d50f52 Delegate to the command service as a fallback (microsoft/monaco-editor#2195)
951509368c Add terminal hack for task line data back in Fixes #105159
93534b15da fixes #104793
12983c8175 Merge remote-tracking branch 'origin/master'
93f8adf263 💄
07d680b7c8 semantic highligting: deprecate member, add method. Fixes microsoft/language-server-protocol#1087
e81eb57671 Merge branch 'master' into pr/107705
ee6e905a8a cache OpenURLOptions in ExtensionUrlBootstrapHandler (#110725)
eaf5eaa29f Allow name to be updated on extension forwarded ports Fixes microsoft/vscode-remote-release#4028
4b6b2bc6c2 update cache salt
3a37613eb5 Automatically forward candidate ports Part of microsoft/vscode-remote-release#4021
ab6878688f fix terrapin usage
d632381e71 Add running process info to tunnels Part of microsoft/vscode-remote-release#4021
1436b523d4 [themes] Generate Color Theme From Current Settings doesn't have all colors. Fixes #111147
0a78fe165a Merge pull request #111110 from chenjigeng/master
6026ab576d fix #109104, #105884.
986e1248f6 bump distro
4ae26a1563 Update milestone
52098eaeb0 env - tweak shell resolve experience on startup
eae037b391 Fixed Hover style incorrect when writing javascript in HTML
fb80c0e44a Merge pull request #107126 from Timmmm/atomic_tabs
88856f1a1c Simplify changes from #108193
a194746aa3 auto attach: allow temporarily disabling
45ec698b12 Avoid walking whitespace twice when going left & small stylistic changes
f1cfe2d3a6 Update CodeActionOnSaveParticipant (#108193)
2b75c3d5ac updated javascript for in snippet (#111062)
9195c9ab14 Expose TS server tracing (#110534)
06be9f4029 testing: tests and speed improvements
3880463037 Temporarily only warn on duplicate scoped context
93e7dda5a1 Error if a new ScopedContextKeyService conflicts with an existing ScopedContextKeyService (#110363)
c9d89dd5ce `editor.atomicSoftTabs` can be a simple editor option
25e8ca8e18 Merge remote-tracking branch 'origin/master' into pr/Timmmm/107126
b2bd3540b0 Merge pull request #108448 from xndcn/patch-1
7265dfb6d7 testing: smarter change event
87b8061711 Merge pull request #110917 from dsanders11/patch-2
0ffe32409d Don't show complete command arguments in the native tooltips
786eca5cd6 Merge branch 'master' into patch-2
a0b7c2310f support dropdown actions in notifications
cbeaf4fc55 Merge pull request #108379 from KapitanOczywisty/patch-2
b2b3b015d5 Sort line decorations
796a38f930 Merge remote-tracking branch 'origin/master' into pr/KapitanOczywisty/108379
f25f1abfaf give the option completely to notebook extension for now.
d5a74a912b add trusted status bar item.
6b19da7102 update execution button when trusted notebook metadata changes.
1b3b40265b trusted notebook metadata
4d4f3660a0 opacity for notebook cell status
33c058d042 fix mouse click on text status item
d23c882470 use status bar item for execute cell placeholder
fc98345ba1 Extract output container renderer
efea77ab7c move cell output element to its own module
da00706deb cellDnd
57ca27e5f5 merge cell action view
8cf97fefd9 trust notebook prep
4b5dc2fcbc WorkspaceFileEditOptions add maxSize
d1280418d7 testing: initial api implementation
ff1887be3e Preserve per-window environment variables between workspace changes (fix #108571)
7d1cd1ff33 Fixes #99313
690d0e33c1 window - cleanup reload() method
1568c0ca45 🆙 distro
fb277edc0f env - take window configuration into account when resolving shellEnv
542a82754c yarn watch: save errors in separate files, make error regex multiline aware
1273299f3d 💄 bootstrap-window
6f3fcd2ce0 env - move shell env into bootstrap-window and let user env win over shell env
69de6464ce explorer: pass the folder flag when deleting directories
fe65b26426 perf - add ellapsedWaitForShellEnv to measure blocked time on startup
5f8aa18104 Merge commit 'a36c68b9ec3d6a0aca9799d7a10be741a6658a51' into joao/terrapin
bffd7a6ad8 Fix #111014
185212db53 Revisit explicit use of ConfigurationTarget.USER when updating config (#109373)
7207ee201f env - also surface shell env resolve errors to users
8a6fea66c0 Fixes #107636
c8e59100c4 Validate line numbers
bb7b7dc7f2 Fix doc comment for CustomExecution api Fixes #110981
d84b5eb2da bulkFileEdits: do not use file trash flag
936048e028 🆙 distro
a81ea8c4fa fix tests
9103955a6d [themes] wait applying settings until user data initialization is completed. Fixes #111009
6fdc79d81a env - set timeout back to 10s but show warning when it takes long
6541e52b5b icons: remote polish
c89f783319 Fix installing forever bug in server
acfd724aac Pick up latest TS 4.2 for building VS Code
caf01baa45 Copy createSettingMatchRegExp locally to fix cycle
b4c0cfb513 Better note current version in TS version UI
67b0e2d72d Pick up TS 4.1 final release
ea4d99921c update distro
1dcbd67f00 Load `applicationinsights` lazily
5d75857c59 Update marked cgmanifest entry
59428623f9 Cancel encodedSemanticClassifications-full on resource change
c833899a84 adds @features: settings search type and dropdown option to Configure Terminal Settings (#110874)
ffacef4727 Fix #58600, Format Emmet package.json (#110891)
8b720d6740 chore: bump keytar@7.2.0 (#110977)
f0ed8aa2e9 named codicons for views  (for #92791)
5ebe7eb5f6 fix #110750.
195779a054 Fix #110870
2fb9c3d5ce Fix #110702
692e61eda1 Fix #110702
145c6e5beb #110905 also optimise for builtin extensions arg
3946a0a314 fix another variation of the "palette" typo...
d72f3fba3b Move LoaderStats down to `/base/`
508ef0928c Better loader configuration for nodejs processes
d99a9ade8a Update to latest loader
a245552aa9 update distro
5876a5e4ae Merge pull request #110930 from microsoft/joh/undoOpts
83246704d4 update distro
b0d577c1b7 update doc
22895e9856 Introduce a server method to check if extensions are ready on server
835ce347fe bump distro
76e1b21f4f fixes #110800
624aca5bf5 Merge pull request #110855 from microsoft/joh/pureoutput
56c3caa680 fix https://github.com/microsoft/vscode/issues/110666
4a1cea9306 fix suggest explain mode for complex labels
3665005621 add undo options (undo group id, isUndoing) to working copy service and bulk edit logic
37f44b2e30 Merge pull request #109511 from chanmaoooo/deleteWordEntire
8374d6a4c7 Detect ports to forward more often Part of microsoft/vscode-remote-release#4021
cf3194d184 Add tests and improve the implementation
71fce013c9 Weird on-type-rename-decoration. Fixes #110878
06bf8e6539 editors - update readonly options when file providers change (fix #110854)
2f05337db0 Merge commit 'a36c68b9ec3d6a0aca9799d7a10be741a6658a51' into joao/snap-arm
990ca74d22 Docs for FileSystemWatcher limitations (#110858)
23a826ff3c more jsdoc for #54938
eb6356cfd7 debt - properly implement interface
47eb468acb sandbox - fix process in sandboxed environment (allow to run on Windows)
d04f3178dc proper name for register function: registerFileDecorationProvider, #54938
710c859af0 Use label for "Follow link" command's tooltip
a36c68b9ec Fix #110905
c11ef72380 Merge branch 'master' into patch-3
a89864b295 fix tests
268091616c Merge branch 'master' into patch-3
b1bc453c55 Fix notebook focus treatment in HC
a5c190e1ad fix #110894
7077e069cf 💄
1d42a1c1c3 debounce editor blur focus state update.
113e0428f6 Fix markdown cell focus treatment
3598f9714d Add new codespaces extension id to allow list
ab4cab8ac5 rename to `DeleteInsideWord`, remove keybinding
ddff206d37 Simplifications: substitute constant arguments
59fa30c069 Scope toolbar visibility to when notebook is in focus (refs #110883)
36a6f53480 Make notebook cell toolbar appear when not hovering over notebook (refs #110883)
334ede72c6 Fixes #97906: Do not classify user installed extensions as built-in extensions
d265071a78 Merge branch 'master' into joao/snap-arm
4f61f6d59e damn builds
7e0e697dc8 nbdiff. add menu to disposable store.
80169ca843 leaking disposables in notebook diff editor.
5ac643def7 re #109549. Reveal the first change in notebook diff editor on open.
c983b2ae4b explorer actions: use bulk edit service
21c0490036 explorerService: add hasViewFocus and undoRedoSource
49a1f40890 update my-work notebook
f4b9edc587 take local value when merging with conflicts
7dbdcf19a8 Merge branch 'master' into joao/snap-arm
8f1f1fda1b what the
ad6f4faafb use better name for async markdown rendering, https://github.com/microsoft/vscode/issues/67806
f5a7eb3848 markdown renderer listens to img load and sends resize events, https://github.com/microsoft/vscode/issues/67806
cacb0c90d9 Add `UndoRedoSource` as a means to mark and retrieve undo/redo elements based on their source
9e704c93be Merge pull request #110867 from microsoft/isidorn/bulkEditServiceSupportFolder
63f04d87da bulkEditService: support folder creation
25a5576bbe improve browser extensions view
5cca5c598c empty commit
cbfd4d5a9f fix snapcraft x64
6d439732d7 Reduce diff
2a499549ce add deleteWordEntire command
0718c3415f fix test
4ef843ec02 Merge pull request #97203 from bzarco/launch-multi-root-args
54a9df4857 debug console: increase maring right of count badge
78908e7eb4 bump distro
8513f398c4  command for open external
02ecc884d7 enable web extensions in web + server
671f169516 #100415 💄
ff468f6536 #100415 have fixed height only for initial empty installed view
8d25d42560 Merge pull request #110856 from microsoft/isidorn/addCopyOperation
28d71bdbab fix snap target-arch
11644ab3f8 Merge branch 'master' into joh/pureoutput
20d2857142 fix wrong file decoration check
74cefb3f13 bulkEdits: add copy to WorkspaceFileEditOptions
93a0ad81c3 Merge branch 'master' into launch-multi-root-args
ca20be531e simplify ITransformedDisplayOutputDto type
3d708b3c64 #100415 show installed extensions view always
7ec1a6899c remove transformXYZOutput
5dd81b4077 move orderedMimeTypes and pickedMimeTypeIndex out of the domain model into the UX (its sole user)
3d013dc76f move git rename to command palette
363534db96 Fix #100415
f6f12c1bcf linux build: fix step condition
11d9d4da8f fix compile error
edf43e529a build snap packages for linux arm
12b808cf08 make event optional, event naming, relax badge length a little, https://github.com/microsoft/vscode/issues/54938
f9c3f0dda2 Codicons in prompt (#96430)
a34cad5c6b Codicons in prompt (#96430)
72defdc77c Support greater than and less than
896848239d fix typos: pallete -> palette !!!
b80117cc34 web - enable dnd to download in pwa (fix #83517)
f11635ef11 🆙 distro
23ed0649cb storage - remove deprecated methods (fix #109967)
d21a51c233 re #109549. undo redo should edit markdown cell.
0109e4d504 fix #110826.
e7ce16ceb0 Preserve old showEmmetcommands ID #58600
33e7e030d2 Move Show Emmet Commands command to extension #58600
9641ad2253 Don't use local server for signin in remote scenarios, fixes #104628
f3db091486 re #109549. hook notebook cell language picker into Change Language Mode.
9ecb7e4039 re #109549. click on status bar focus the editor
11341a0d37 Merge pull request #109987 from lf-/patch-3
e0eb2e6e75 Fixes #110468
9fbf87e38a Move management of `inDiffEditor` to the other editor context keys
ba5371a252 Render "Extension" in Source column when the keybinding comes from a user installed extension (fixes #110653)
596a96ec7a Add `ResolvedKeybindingItem.isBuiltinExtension`
22b4c45bc1 update distro
58be98a0aa `native-keymap@2.2.1`
8a11346573 re #110581.
3184dca0bc cli server: add OpenExternalCommandPipeArgs
965c8c4cfd chore: bump distro
fb6a2a3258 Bump vscode-ripgrep Now has pcre2 in arm linux build
82b485f805 chore: bump keytar@7.1.0 (#110815)
8edc150fe7 Try resolving URIs immediately from the tunnelFactory Part of https://github.com/microsoft/vscode-remote-release/issues/4012
05606c1e09 reuse terminals only for unchanged config; fixes #81345
87050c7fb5 re #109967.
0593b3eb54 Backup location can change in same session (fix #109019)
d3057c54c8 remove console.time
7bf226cf50 add console log service to cli
cd3caa2d7d provide a promise to wait until initialization is finished
221b8289c4 Merge pull request #110792 from microsoft/alex/native-keymap
8c93891a4d Minor renames
ee4071ccbe Simplify handling of `diffEditor.codeLens`
f405a3dcde editors - stop trying to be smart about default editor options in `vscode.diff` command
f9f2637f79 debt - onDidBeforeRun => onBeforeRun
9c4c195980 Make users save new file (#110330)
442b1d1b61 Move all tree view out of contrib Fixes #110374
c4d2181da6 Clone (#110333)
540cb21d92 Add an elevate parameter to tunnelFactory Part of #110795
171a21b631 Add doc to resolveTreeItem Part of #100741
0c2c8dd8b8 Inline allOf clauses for additionalProperties: false (fixes microsoft/vscode-remote-release#2967)
60c625e9f0 fixes #110768
f255e3e00e Merge pull request #110573 from microsoft/joh/tsQuickRename
28b16c26d8 Move usage of `native-keymap` to the main process
8b192ae90f Move `IKeyboardLayoutService` to `/platform/`
d8e40aeedf fix tests on linux
1b7d1e21ca fix tests - dispose
793b679ebc adopt latest API
0cd3c4c994 fixes #110775
fd610cfa5f Merge branch 'master' into joh/tsQuickRename
8667e71704 #109019 remove dependency on backup location
6479a9c46a add node task to fix build breaks (#110762)
b25867b709 Support --diff parameter with reading from stdin (fix #110426)
2feb009c8e Editors: consider to allow name/description for file based editors (fix #110738)
d19c7c52fd fix #110740.
c4f50933f7 Remove some unused issue reporter code
c839f49d8d Inline DeferredPromise Noticed that this was imported from /test/. Not going to make it a nice async helper because this isn't generally a great pattern. It's used in SearchService right now sort of as part of a workaround for issues dealing with EH search providers. When we straighten that code out we'll be able to just delete this. Fix #110610
566917c00b 💄
0408c0010f use piece tree for size and line limit calculation.
6327e4b8da re #110581. adopt text truncation in text/plain.
09b47ace4a re #110581. truncate large simple text output.
d878434d63 prevent keyup of action baritem without keydown fixes #110745
4fb3e8e6c1 set tabindex on submenu entry fixes #110765
9c3522ec80 Include experiment info in issue reporter data
274bf78da4 Merge pull request #110748 from microsoft/misolori/notebook-styles
cabfaa63d0 Merge branch 'master' into misolori/notebook-styles
00fa5d3884 [typescript-language-features] Update importModuleSpecifierPreference values (#110536)
96949c76e5 Merge `IKeymapService` and `IKeyboardLayoutService`
8f32cbb1d6 Align `IKeyboardLayoutService` and `IKeymapService`
c2f89b213a Move keyboard mapper instantiation to KeyboardLayoutService
c0d53daa9e Emit `IKeyboardLayoutService.onDidChangeKeyboardLayout` only in case of a change
3224201b07 expose current flights on exp service
771f9f9a48 Update distro
744694ed31 Extract usage of `native-keymap` into IKeyboardLayoutService
e7fe18ddf8 Update default styles and polish focus treatment
cce8f8bc69 Fix #72878
6b85b9ff0e fixes Title: custom title zooms in #110716
fdd103cae2 Fix #100498
15353669a6 Merge branch 'master' into joh/tsQuickRename
8134d8c9e7 rename to OnTypeRenameRangeProvider. For #109923
0b8a242be0 surface latest jsbeatify settings. Fixes #84606. Fixes #79334
ec8e86a03e fixes #109603 for macOS web
e62a2054a1 Merge pull request #108451 from justjosias/patch-1
ce864da274 fix showing remote extensions
f663779523 Merge pull request #110572 from Wscats/patch-2
00525e9f7c Fixes #110603: Add `diffEditor.wordWrap`
c704881abb Validate dynamic configurations only on launch
62e830be77 Git/SCM: Use vscode.open and vscode.diff for a better editor opening experience (#110733)
da9a12b837 Fix #104055
9ba554073b debug: add unit tests for repl output count
11d835b65d debug hover polish the tip
97b9ca6028 debug console: respect element.count in aria label
b39c9d3cc9 assign extension to menu actions
0454fdfcd7 fix tests
cda2529387 debug: collapse identical lines in the debug console
876d1f09cc introduce new variable ${fileWorkspaceFolder}; fixes #84162
ea3b8da874 also quick rename type parameters, ignore declare only things
e6bb245b6c use predefined constants
f9224001d5 Merge branch 'master' into joh/tsQuickRename
b04e9c8f9d 💄 generate command docs
504b891937 move commands to their locations (#110714)
8f9aeb83da fix invalid command converter behaviour
2b06004f0d 💄
402e7afde7 https -> http in port forwarding view
85714e1007 clamp suggest line height between 8 and 100, https://github.com/microsoft/vscode/issues/110078
e416cba1b3 fix https://github.com/microsoft/vscode/issues/110707
46ff33b6b6 Subpixel antialiasing in some setting item labels Fix #86336
b4f09c5de3 Change search.actionsPosition default, fix #107163
2f34433853 Tweak settings tree sizing Fix #109095
4618539da2 💄
af6843bacf Convert terminal ext api null args to undefined Fix #110253
0180ce8eac Bump distro for merge resolve
89a418cc43 Add vscode-regexpp to remote/package.json
5afc5cd160 search: intelligently normalize crlf in regex search
7dde16206f Merge pull request #110094 from olivercoad/conflicting-autoclose-pairs
5d2ae44c01 Small style changes
d1d59f8b74 Fix #27716
5da5495a7f search: fix copy all containing extraneous crlf line endings
fbaf7b1187 fix #110427.
7a1ee06e24 increase titlebar height for macos big sur (#110592)
7a5fa10646 Merge remote-tracking branch 'origin/master' into pr/olivercoad/110094
8c76afad6c Fixes #108160: Handle padding in mouse target computation
9d389f0364 Handle error case for candidate ports Part of microsoft/vscode-remote-release#2776
f2ea8849e4 Merge branch 'master' into patch-2
c6efea07b0 💄
c5e6489b3d fixes #110430
f3efe70c9a don't attempt to convert API types inside the renderer, break up mainThread-api arguments (and plan future removal)
addaad3f99 Don't have 'show local' button in open dialog when remote Fixes #110264
043d8e2086 #109019 make fileSystemBackupsHome updatable
19c93615dd Properly call dispose on extension created tunnels Part of microsoft/vscode-remote-release#3961
0ec4ce387d Fix #110574
04be17a373 Fix #45244
17813ce44e Open command options are not mixed-in in the right order
eea8648466 Use vscode.open in NPM scripts view Part of #110497
a9837acc6e Optimize code readability
b851bf9ca0 Merge branch 'master' into joh/tsQuickRename
2ac7284762 add api argument stubs for strings and numbers
5c1789667c debug: make exception widget accessible
63ac48bf6d debt - move api command things into extHostCommand so that they can be contributed from anywhere
01dd9f0307 💄
71e24bc99b Fix #39543
70061a8b22 modernize vscode.resolveNotebookContentProviders-command, fyi @rebornix didn't find a unit-test for this!
443c0db7c9 modernize vscode.executeColorPresentationProvider-command
e25b8819f7 modernize vscode.executeCodeActionProvider-command
f3439ece09 modernize vscode.executeCodeLensProvider-command
94a57406aa deprecate old api command story
74703883e3 modernize vscode.executeSignatureHelpProvider-command
883936de2e modernize vscode.executeCompletionItemProvider-command
d310cba731 Handle conflicting multi-char auto closing pairs (fixes #72177)
4e4f02f632 Allow ms-vscode.github-richnav to access proposed API
c5ee747748 Merge pull request #110541 from loganrosen/ember-cli
29e7305d9d progress bar: report progress
39bea31ae8 Update classifier.json
1f11563975 debt - move contrib only service to contrib (output)
5b5e79558a debt - lift checkbox to workbench
76a8ea640e Add undefined to TaskProcessEndedDTO.exitCode (#110508)
0998e4ccbb respect user settings when creating terminals; fixes #109111
5d7ca3a879 debug hover: show tip to show language hover
45ce70792d fix tests
b5cd02f178 #106348 Adopt codicon for npm view
3ee6fc3f68 Fix showing newly enabled extension in enabled section
3d8ad7d74e tweak setting for #5312, fyi @usernamehw
336b58c8a2 Fix #106348
f1560e9a19 Merge pull request #110494 from usernamehw/word_suggestion_any_language
b07d19a768 storage - remove store2 (#109967)
8f82b02a4c Merge pull request #109842 from microsoft/joh/98228
20b49a4a9c storage - more target adoption (#109967)
d9893b5d64 💄 editor memento
38f55ece05 environment - add OS info (#106528)
710da39135 Mark .ember-cli as jsonc instead of json
ee46c1f89e Adopt Action2 for more search editor commands to fix #110407
bf6776b980 fix #87730.
293af2074e handle last line of copying lines.
63e42d414b re #97497.
f47b588736 💄
629cf65721 fix #97497.
591039e34c debug: fix compound integrated terminal launches breaking
cb7297a10a 💄
2b900dcf11 fix #110503.
4358d8bf30 rename 'dirSep' to 'pathSeparator'
b155f9757a Update seti
df143f19b7 no double spread
8d73ce7ed2 💄 no more homemade iteration
2fdc607f19 Merge pull request #110273 from microsoft/connor4312/fix-search-freeze-on-long-lines
217ad5ac66 Typo: Uncommited → Uncommitted
7f6ea40bc2 terminal: typeahead state management for verified lines
4c46272797 Stores the actual config object in the cache
e96cfbccbc 💄
576d8af2df Changes to use TernarySearchTree
8a5605bd21 Splits out loop & uses regex to improve perf Addresses PR feedback
d21cbabe6b Adds default context caching for objects Clears  all cached config context values for objects
165e49bfe8 use rename info instead of highlight info
ce7bd67d46 explore on-type-rename for TypeScript
16ffcb50fa adopt latest references viewlet, https://github.com/microsoft/vscode/issues/85636
611f28952f trustedDomains: loosen restrictions on what a * can be fixes #110501
b0ce55403a Merge pull request #105887 from nrayburn-tech/dirSep
edaf854a74 Remove "files.autoSaveDelay" from Commonly Used
753a1c095a Adjust debug toolbar shadow (fixes #110422)
561501492a Remove unneeded constructor from TreeItem2
0286c4f793 Add missing bit of TreeItemLabel API
4dae492ac7 Merge pull request #110428 from microsoft/connor4312/disallow-nested-config-resolver-keys
31b0068af0 Make TaskProcessEndEvent's exitCode reflect the truth Fixes #110185
630e706ad2 Add open context to certain commands (#110475)
e526f16131 Prioritize configured tasks in `getTask` Fixes #109939
2e15bd0592 Add a setting to include word based suggestions regardless of the language
7b5849b123 Fix build
ea5e971611 Tolerate strings again (fixes #110432)
b785be4c73 Finalize TreeItemLabel API Fixes #61579
5758f6fcd4 fix cmd + down in open editors view
fa856cf019 #67603 Add new extensions automatically to the list
7bfc7edadb open editors: introduce sorting
37103467dc dispose list elements on list dispose
dc74330d39 fixes #110429
690db82ef2 tweak fix for #29210 and thereby fix https://github.com/microsoft/vscode/issues/106090
52e9e02e0a Fixes #110141: Do not push undo stack elements for a no-op EOL change
549da12a6d fixes #104061
717a730f3a window - fix undefined access
e4da961570 Merge pull request #110455 from microsoft/joh/open
94d3497dac 💄
a9c04968f3 Merge pull request #110423 from dsanders11/patch-1
1cfb74c330 windows restore - add a new setting choice to restore the previous session even when opening a file or folder
cc9616baf8 use 'enablement' instead of 'preconditions'
e275af7e79 render activation events as code
fb0128c7ec Fix progress bit overflow bug (#110411)
b321d3c364 Merge branch 'master' into joh/open
33a49a9c63 Fix #67603
02316b635d editors - fix listener leak (#110336)
050a123750 Fix F6 in extension page webviews
4da8e50404 Don't show users a notification if a save is cancelled (#110344)
17c29f0b99 Add support for web TS Server logging over postMessage
afcfc97316 Fix method spelling
7c6994d1b5 Use toOpenedFilePath to ensure we don't ask TS server for projectInfo if a file is not open
fb93010aa2 Make sure we use the same path normalizer in a few additional places in buffer sync
805aa7e8f4 Make ResourceMap treat the same file with different scheme as different
67817c33a1 fix #40713.
bb8d5f1842 terminal: update typeahead tests
0ef0d2d65a fix #109765.
97664e1452 fix #74622.
b2eca1fd4d Fix InMemoryDocument to support both OS line endings Co-authored-by: mjbvz <matb@microsoft.com> Co-authored-by: meganrogge <megan.rogge@microsoft.com>
bd98013973 insert a 1 sec delay before using a newly created integr. terminal; a companion fix for #38578
56947b3a75 terminal: only start typeahead predictions after the first prediction for a line is valid
65c3fb0a08 [css] add ':' as trigger character. Fixes microsoft/vscode-css-languageservice#108
13669e6bbb fix https://github.com/microsoft/vscode/issues/110420
02f6319ca1 Fix autoSaveDelay missing from Commonly Used, add warnings for settings patterns
d5febf9628 config: disallow nested config resolver keys
fac5cc3a54 #102906 add tests
df171cfcab #102906 tweak wording
f086ee122c Set StorageTarget in auth service, #109967
dea609b7ba #102906 wording tweaks
f1c6ce7c9e clarify effect of command enablement
b3c2cc3a7f debug: fix integrated terminal not changing drive
0e708ea0f7 fix #90897.
776d80f470 Merge pull request #104997 from rotem-bar/jensui/102906
0d23be5d74 Merge branch 'master' into jensui/102906
a48ad3b1d8 clear find widget reveal timeout
d55e884024 Merge pull request #110370 from jeanp413/fix-107104
166f7a4cb0 Merge branch 'master' into fix-107104
f066dfcda8 Fix #67905
4ef91c2e40 Fix #94416
593d3dd94d debug: normalize drive letter in loaded sources view
f2ccceef3d fix #84772.
49d1396aeb update pattern and add to grammar
900bcb7632 Merge remote-tracking branch 'origin/master' into connor4312/fix-search-freeze-on-long-lines
3e797ae1aa Update drop shadows (refs #92301)
a986b578a2 fix #106570
4d6c4ae0b7 insert a 1 sec delay before using a newly created terminal; fixes #38578
6a8fe0a8da let CommandsConverter actually convert commands, make sure "magic" commands handle uri components
b794105cb6 Fix #90548
0bda02ba0d tweak throttle based on actual numbers
40558fc8e1 report `suggest.durations.json`-even only every 500th time
2b21aab9e2 fix #110410
8367f475e8 explorer: use EditorResourceAccessor
5bf6d0cabc fixes #65188
d7b84b8fd7 update monaco.d.ts
e69d768e53 adopt feedback for #109923
776193fdc0 explorer: reveal diff editor
ab7c9d605a fix reading store from config
740087a3e0 #109056 remove hack to use dialog service
61970cb6f3 preview - fix italic for description
fb5e7bae09 do not remove from remote if key is not registered - compute unregistered keys from last sync state
86621ccdee do not remove key in cloud if it is not registered
87fd567da0 add commit characters to explain mode, https://github.com/microsoft/vscode/issues/110382
efef7c1d15 layout code lens content widget when adding commands, fixes https://github.com/microsoft/vscode/issues/110332
bcf2f23cef Can't save workspace locally when using remote extension. Fixes #109713
49342801cd [semantic highlighting] improve fallback scope for macro. Fixes #110150
14075af62e don't resolve code lens when typing, immediately resolve code lens after receiving them, fixes https://github.com/microsoft/vscode/issues/96783
49bd4e4b34 Merge branch 'master' into dirSep
82c65e753f Add Refresh context menu action to candidate ports Fixes microsoft/vscode-remote-release#2927
d4e1ae56ed fix alpine build
5e5ce9ec53 Better compacting of URLs in ports view
8dc55cf219 fix sandbox
8c8e2a888c debt - make dialog handlers a workbench core piece
c58384b87b distro
eba1343a10 cleanup linux alpine build
b7cb5e2e1a Merge pull request #109643 from eltociear/patch-1
f27d73be72 fixes #110353
14140d2a19 Revert "Merge pull request #109049 from digeff/searchView/context/extensionPoints"
31c034604e remove old forUris, rename forUris2 to forUris, https://github.com/microsoft/vscode/issues/110241
a19b26ef69 Fixes #107104
7a322c44db Try to fix the build
f5898a0e59 surround match in zero-width spaces to avoid clobbering
3f62d10652 Removes deprecated IDefaultLayout interfaces
35f9bac07d Disable markdown smart select tests #110365
0572704226 Make settingLayout patterns strict Fix #110129
7ba372c80c Fix tests
f23e47b9a2 Extract getParentFlowToElement
c8877809c9 Pass webview editors an explicit scoped context key service
aab1c59227 Use UriIdentityService for #110241
a28b99d78b notebook: echo complete error object on preload function exception
49695de8a1 notebook: execute kernel preloads in series
2b9e62fcf0 Merge remote-tracking branch 'origin/master' into connor4312/fix-search-freeze-on-long-lines
00f32f9a26 make search editor ranges work for hidden text
046654ae65 make search editor ranges work for hidden text
a856e60a0c Better support dragging and dropping with webview views
10514bf423 Fix webview scrollbar colors for firefox
2b820b4bff Hook custom editor backup cancellation into the extension layer
7a4e81a674 fix catastrophic backtracking when parsing markdown files (#109964)
a1bb5ac207 Merge pull request #109049 from digeff/searchView/context/extensionPoints
9a08a10708 Support ctrl+v PS override on Firefox too
982bfc2334 Update decorations synchronously when the wrapping info changes
86f773db82 Merge remote-tracking branch 'origin/master' into searchView/context/extensionPoints
559f9b60d1 Applied feedback
809db2993b fixup!
63d15a97c7 Support character markup in mardown smart select (#110195)
4bfa0a0aca fix build
db6fbd581a Merge branch 'master' into connor4312/fix-search-freeze-on-long-lines
d2701267df Potential fix for microsoft/vscode-internalbacklog#1604
038835d88c Merge pull request #109551 from maldahleh/109255-support-detail-text-settings-dropdown
1ffb469a15 add no-drag to context view css in menu.ts fixes #110282
1ce5b5773e fix #105757.
3030d4f380 Remove registered color for selectBoxCustom detail
414c387375 fix #108950.
0dafeae79f 💄
636c588eda Refactor DialogService to use model and contributions (#109980)
57203b243d debug: add ability to close exception widget
92b9426701 Remove unused variable
014cca917e Merge branch 'master' into 109255-support-detail-text-settings-dropdown
cb23c0892e quote powershell arguments properly; fixes #68151
5184dff52f terminal: fix typeahead edge case
fcfc8531aa #110241 fix tests
96acd5f37f Merge pull request #108401 from turara:resolve-78733
3ef3247e85 Remove participants list from comment headers
140ce6130d adopt latest references viewlet extensions, https://github.com/microsoft/vscode/issues/85636
e7a598f648 Allow context view to align with anchor (#110277)
50416be1c6 #110241 Adopt TernarySearchTree.forUris2
00c4572909 Merge branch 'master' into resolve-78733
7065675056 Fix #109177
77154ae5c2 Merge pull request #110272 from microsoft/misolori/shadows
0a7f58fbf7 Merge branch 'master' into misolori/shadows
5fbd3b43bb Style terminal scroll bar on Firefox
3ab3514bd2 Force ctrl+v to not be sent to shell in Firefox
3d61a39074 fixes #103031
d34ba652f3 clarify explorer.enableDragAndDrop setting
02bd5f139b fix focus issue on list
e4cbfba51b Don't change LANG vars containing 'euc'
09ab4faf90 💄 remove LinkedList#toArray which became obsolete with iterators
d10b4cc81e polish when selecting config
ab6a005750 Fix #86077
d26f927791 Merge pull request #110268 from microsoft/alex/diff-word-wrap
415955a5cd Allow word wrapping in diff editor
cd395984ca Make inline lightbulb aware of wrapping of changed or deleted lines
982689e007 added GH PR extension to list of tracked repos
912e8f7e99 Merge pull request #110306 from microsoft/joh/wordBasedAll
e8b69537cd fixes #40295
74b2510985 word based completion includes words from other files of same language
ad88db1031 fixes #110304
76abce66de Merge branch 'pr/107958'
ddefc990cd correct codicon size for code lens placeholders
62877b66d8 Merge branch 'master' into pr/107958
0e4b1fec5d Render char diffs in the wrapped deleted or change lines in the inline diff
13f9f73353 💄
1d18ebe47e Merge branch 'master' into pr/107074
ecfb8771e4 Merge remote-tracking branch 'origin/master'
6a2da6d725 💄
7200f73de2 Merge branch 'master' into pr/106368
77a57165e4 debt - race more minimal edits computation against 1sec timeout
2c1272b794 fixes #104945
64ef9869b6 Fix filtering on * for simple file dialog Fixes #110265
55fdf94d67 fix https://github.com/microsoft/vscode/issues/109776
cb63744475 Adopt TernarySearchTree#forUris2 (#110241)
a56c7406d7 Fix issue where toggling between inline and side-by-side was forcing word wrap off
3f8e8a1733 Push view zones in the original editor when the original lines are wrapping in the inline diff case
438f610860 strict path casing in extension host profiler, https://github.com/microsoft/vscode/issues/110241
156d702f5a Diff editor: show path as description (fix #109224)
d751b6bcd2 add IExtUri#ignorePathCasing, use forUris2 in decorations service, https://github.com/microsoft/vscode/issues/110241
f2a9b63c64 Do not show hover on icon label after click Fixes #110284
f5e9a01715 make default not ignore path casing, https://github.com/microsoft/vscode/issues/110241
3bf2afdc01 add TernarySearchTree#forUri2 which allow correct path casing handling, https://github.com/microsoft/vscode/issues/110241
21c84a4351 restore old case ignore behaviour unless explicitly set
9b0522f3dc scmViewPane: do not render whitespace in commit message input field (#107913)
b3cc19b819 💄 use async-await for code lens provider logic
c0c4ceed44 fixes #110290
351e6172e1 update code lens when editor gains focus, https://github.com/microsoft/vscode/issues/83363
0216c71896 Revert "Use editor base weight when contributing peek commands, fixes https://github.com/microsoft/vscode/issues/109727#issuecomment-720986472"
1357f6d494 editor preview - ensure simple file dialog opens pinned too
65f805d98e fix build
6c32ada9b5 show extension editor manage action always
2815e732f7 Fix refocusing clearing existing forcus for iframe based webviews
4247b296eb Including ` as part of foldEndPairCharacters (#110108)
d04956f6a7 Switches the 'Fix all' quick fix provider to use resolveCodeAction (#107853)
ffb8c08dd9 Enable IgnoreMenuShortcuts for iframe based webviews
df7fdd6515 search: fix freezing ui on long lines
c9bebe2cc9 Fix #98041
37a01430cc Tweak shadow colors
840bc2ef1c Set explicit StorageTarget for webviews
0efbfd9190 fix #108765.
c067c9b947 Improve rendering of view zones with changed or deleted text (inline diff editor)
59b020a362 Merge pull request #110255 from microsoft/rzhao271/format-uri
8248e19817 Merge branch 'master' into rzhao271/format-uri
5ce31a6e8b fixes build break
b473bc55de Clean up drop shadows
2f7f100e44 Render inline diff view zones in batch
701e6713f9 Merge pull request #110112 from microsoft/misolori/squiggles-bg-theme
93a7a07559 Do not store the original content in the diff information for inline diff margin actions
2b9ae05554 Merge branch 'master' into misolori/squiggles-bg-theme
51eb0901d4 add setting for code lens font family and size, https://github.com/microsoft/vscode/issues/16038
5e8f9cf1d2 💄 code lens
fcef0e3db4 Use Array.flat() (#110189)
4e0c77f8aa Add `IViewModel.createLineBreaksComputer()`
e300dfcdd2 terminal: allow excluding programs by name from typeahead
b5f6a521e0 Fix vscode-emmet-helper issue #1
d29487617b update language
e5530fc4f0 fix #105920.
62d39a7dba Adopt storagetarget in Exp services refs #109967
98a3c4fe64 reduce work when menu is not visible fixes #108712
ef6b438769 Fix #88703
a45abdbd1b Update seti
87d49a7b66 Fix #108300
226503ba0a Merge pull request #110213 from jeanp413/fix-110212
ea6ee515f1 Add color tokens for warning/info bg
f1ebde547c fixes #109781
876af4ccfd no max width for welcome buttons
1c7d982b93 fixes #105201 Co-authored-by: rebornix <penn.lv@gmail.com>
6e6654a679 Fix #91534
f0580d497e Fix #101441
d6fb7989f5 Push view zones to accomodate equal but differently wrapped lines
1256b16ee1 Merge remote-tracking branch 'origin/master'
7509a0103e Fix #103941
91aa548b05 Merge branch 'master' into pr/104614
4ecf3f8f02 Merge remote-tracking branch 'origin/master'
98e0e93ae0 💄
61500a468c Fix #94289
c96f362934 Merge branch 'master' into pr/99324
f18700d036 Merge remote-tracking branch 'origin/master'
309cabdf51 💄
961cbd66b7 CLI help: consider to separate --file-uri and --folder-uri. Fixes #110206
978d39324a Merge branch 'master' into pr/104312
e7e38c161a Be aware of line mapping when rendering diff view zones and diff overview decorations
7e5609afa9 feat: implement Git: Push Tags command (#110096)
e3754e6f8d group uninstall and install another version actions into same group
294406d7a1 Fix #110121
23579d815f [file icon theme] icon match the last word of folder name not the whole name. Fixes #110183
ec084a25bd 💄
df4524f713 Merge branch 'master' into pr/97525
86d848d8e7 💄
592fa5cdaf Merge branch 'master' into pr/97486
fd306e8cb4 Merge branch 'pr/97322'
dd97a9d335 💄
d40499936f Merge pull request #108682 from Siegrift/enable-tsec-language-service-plugin
551db7ec94 Add new fileDirnameBasename variable Fixes #78316
8cfcd9a3fe Merge pull request #110178 from vfcp/master
2720a8022e Allow user tasks to run when no folder is open
66ea9c5ca1 Pass in actual editors
a0031aa6ac Small refactorings
07f0bade37 remove duplicated context key expressions, fixes https://github.com/microsoft/vscode/issues/97381
5290baabac improve message when files is too large for formatting, fixes https://github.com/microsoft/vscode/issues/105986
8cebd10782 set line height for suggest details, fixes https://github.com/microsoft/vscode/issues/110172
3ed1d0050c Merge branch 'master' into enable-tsec-language-service-plugin
14767349ab window - some renames 💄
147f623629 Merge branch 'master' into pr/97322
4439de9a3b tweak setting name `editor.suggest.showInlineDetails`, #109690
7efc22cc85 git.publish: do not await notification resolution related to #109977
776541c380 Setting to Disable Split Editor on Drag and Drop (fix #71016)
c73c0b30f2 💄 let -> const
35ff2c0df8 fixes #110012
85958bcecd fix https://github.com/microsoft/vscode/issues/97451
aede2434b0 fixes microsoft/vscode-remote-release#3180
5a534883c7 Fixes #110212
875c2ced66 Finalize FoldingRangeProvider.onDidChangeFoldingRanges. Fixes #108929
1fab0083f9 Renames
7ca4a47ba5 add vscode-test
4e24bef648 💄
54ba2bad67 Merge pull request #104923 from AE1020/scrollbar-paging
abcc621872 Rename option to `scrollByPage`
3517c02303 files - stop checking for BOM before writing
7bfd7fb685 Keyboard shortcuts for switching focus between left & right sides of diff view (fix #95068)
eb8c718e81 debt - fix compile errors in bootstrap files
3154dd4f69 editors - add workbench.editor.enablePreview to most commonly used settings
59a1893d6d Log number of loaded certificates (#91794)
f9e19c9ad1 only hide outputs when output is transient.
148b85862a fix #89250.
9ad6e7edf9 Correct themeLabel in package.nls.json for "Tomorrow Night Blue" theme
7095ef144b Revert "Revert "Fix #99971""
a2963771d1 hover info should not be broken within word (#106885)
024df33553 feat: add setting for default stash message
109d9984c1 fix: commit template appears as default stash message
19c0c60064 feat: detect default stash message use commit message as default stash message if commit message box is populated
03c38e6702 Add more logging to github auth provider
1d5854f611 Unassign myself from the classifier
3338ff4e18 Fixes navigation commands for webviews
6e2aa0bfb7 clean up code and remove unused methods
ce7e6d9978 Bump actions & fix #109699
153ba443d5 Use string.matchAll (#110074)
b419f2f169 Adopt StorageTarget in searchEditorInput Ref #109967
5961799c53 Escape backslashes in issue reporter data, fixes #105494
be410d1a3d explain why we modify textarea input handler in firefox.
fc07b2f170 add comments to clarify code
83f000df03 Merge pull request #106873 from belcherj/patch-1
cb044cec21 Merge remote-tracking branch 'origin/master' into pr/belcherj/106873
339681f631 Use excludive selectors for search editor contributions to fix #91453. cc @jrieken
fca7107884 fix #105901.
35bad7021d disable submenus rendered as dropdowns (#109934)
c8cfffe09f Add vscode-encrypt to nativeignore
df9cf627b1 Merge pull request #110095 from microsoft/rzhao271/webgl-description
9d5dbc6a1a Bump vscode-ripgrep
9d0346ad2f Fix #107858
c91facce0a Add an action to remove recently used tasks Fixes #93403
8335fcc3fc debug: do not auto pick dynamic launch configs
779a171f9d Align configure task quick pick closer to terminal Part of https://github.com/microsoft/vscode/issues/93864
ad19579a44 Don't clear filter for Show All Tasks Fixes #97467
15afc78232 Fix exthosttree tests
a1025c64c1 fixes #110077
9f2ce53867 debug: stop supporting enableBreakpointsFor
081632d225 debug: remove legacy adapterExecutableCommand
e95c40c1e4 API proposal for revealing tree view when no elements Fixes #90005
ce4fb6e323 fixes #96264
0cc93f5c48 debug: split ConfigurationManager into ConfigurationManager and AdapterManager
6ce30f1dce remove deprecated debugAdapterExectuable debug proposed api
f53678cb4b Update branch for sql grammar Fixes https://github.com/microsoft/vscode/issues/109251
85534c004c Only reset theme icon color in treeview once
4b0855f292 Improve the dynamic launch config UI
f63d695254 Fallback to userhome when no "file" scheme folders open (#110066)
0302b84221 web - set version to 1.52.0-dev
63ce8b4732 fixes #92146
d03925a88c Merge branch 'master' into pr/95915
e380037a06 [themes] Use light theme for --disable-extensions. Fixes #97058
168ebd1e66 fixes #95599
256066f94c Fix preffered pm when pm can't be determined
57ec100886 fixes #40548
1593959b5e In case of multiple possible longest common substrings, try to give preference to the ones containing the most ammount of text
24b28f57be Always use `vscode.open` to open markdown links
7f7307b89a Fix command for renabling extensions when running with cli flag, fixes #94532
4059ff428f Allow cancelling GitHub sign in, fixes #109101
93d736db23 fix #93326.
e026e9a77e Update JS/TS grammars
194068f693 adopt StorageTarget in SCM #109967
48ebbe9ffa Merge pull request #110038 from aasimkhan30/aasim/fix/checkboxOutline
663a049f0a Merge branch 'master' into aasim/fix/checkboxOutline
25c6703f39 debug: fix debugees blocking when writing stderr
024368a638 removed unnecessary important  from outline-offset in checkbox
c258fff193 Fix compile error
80a9ecff3e debug: cancel hover evaluate requests when hovering off dialog
451c2b61d3 Specify type of CodeLensProvider instead of using casts
9f4737fa3f Exclude definitions from js/ts references code lens
d88ac6f164 Finalize the isWritableFileSystem API
d54c3c67dc fix #74353
18902550f7 fix #70306.
11faf89369 added outline offset to checkbox to make focus visible.
05049f7fbb Add Definition list to Markdown Snippets (#110026)
8a7189599e Add color token for error bg
0440be9aa4 Fixes #110033
c2fafb10e3 fix #57197.
a58d816580 Don't remove -l from tasks on Mac if setting is set Fixes #107563
5a73a68e1f Revert "Fix #99971"
faf36c2f47 Fix #99971
fd951da3ae remote indicator 💄
736a46fc8b Merge remote-tracking branch 'origin/master'
49990bebe4 add git CommandErrorOutputTextDocumentContentProvider
2eb805ad75 Mention Inherit Env setting (fixes microsoft/vscode-remote-release#3030)
cd95d90589 Use correct context key service in custom trees Fixes #99767
ec471da613 Merge branch 'master' into pr/95354
cd6466909b fixes #92034
e3ace1fe1f Merge branch 'master' into pr/94369
7b6561ff5b Merge remote-tracking branch 'origin/master'
08d271585d 💄
eb1cea5432 Merge branch 'master' into pr/94358
8fe4a348ec Remove focus when scrolling (#94280)
544c986e0a Added a warning before dropping a stash. (#94267)
5afaec5c21 Merge remote-tracking branch 'origin/master'
7328c3ccb0 Merge branch 'master' into pr/91838
a089e24fed fix typo
818d57db15 Better diff for deleted file in merge conflict. Fixes #88973 (#91245)
36e2868372 preview - pin an editor when a navigation starts to another editor (#109779)
d6af4893ed Update grammars
1dbff8bdd1 Remote Host status bar entry has no max width (fix #107451)
47a956eb2e Fix #109023
9832b90fde explorer: Revisit explicit use of ConfigurationTarget.USER when updating config
520a050cd3 Add quotes to autoClosingPairs for make Fixes #89191
d43e45b796 updates
578d7381da fix #7989
b0a7c8496d IconLabel markdown title debt (#109914)
786f507696 Fix #107320
f021eee884 layout - write to correct config target (#109373)
bfb73347bc Added a grooming delta notebook
a69a01af9e Remove unnecessary argument (#109373)
fa4f11cf16 fix stray console.log
aaf17b5d9f Ignore dev container logs in url finder Fixes microsoft/vscode-remote-release#3953
ac2ca0b539 typescript - fix nls issue
1cbdea3da0 Revisit explicit use of ConfigurationTarget.USER when updating config. For #109373
a69f07abf0 Revisit use of ConfigurationTarget.User in tasks Part of #109373
22c2bad746 Merge pull request #109966 from microsoft/aeschli/remoteThemeFix
4f88f448a0 Adopt StorageTarget. For #109967
c486bbf493 editors - add a menu item to keep editors open
1082f3e58c Adopt storage target in tasks and remote explorer Part of #109967
a3658a2fee Merge branch 'master' into scrollbar-paging
1c0d056915 editors - some preview tweaks
19044c847c #109373 do not pass user target
92b6b9c80a storage - adopt more storage targets (#109967)
805ba83b59 Storage service error in shared process console (fix #109985)
eae74f5125 Loc comment #100941
e57af55eaa Pick up latest TS nightly for building VS Code
4a54027a82 Disable rename after refactoring in interactive playground
e6079bd127 fix #105614.
373ea1b969 Fix build
6eeaab8e5d Handle cancelled sign in when publishing to GitHub, fixes #96502
2e6d3bdf6c fix #27836.
0f623956c2 Show dialog when there are no trusted extensions for account, fixes #96359
5463322d19 Clear trusted extensions on sign out, fixes #96616
f4e49a5f3a php: revert break deindent behavior
6bbb17d318 terminal: unregister csi handler when not in use for performance
81a25a894c Rename implicit project settings and deprecate old ones
ff7cc33236 Use objects.equals for comparing configuration objects
05fee0cf3d Extract implictProjectConfiguration class
64705a07dc Add two new setting for strict null and strict funtion in js/ts that are implicit projects
c38a12c26c Quote jsconfig and tsconfig in setting
341124ff39 #109896 Remove IStorageKeysSyncRegistryService and introduce new service for syncing extensions storage
4a6a5ab1f8 Explicit fontLigatures description
05602b399f terminal: clear typeahead after timeout
8141dcf29a Extract adjustFoldingEnd
97db458fa4 Show closing ) while folding JS/TS
0608e3f5bd Pick up TS 4.1-rc for insiders
a7cd9408a9 add comment
6d5736aa3c #109967 Adopt to new storage API
c2dafddbae Add splitLines helper  function (#109869)
73eb361f29 notebooks: expose scriptUrl global to renderers and kernels
4286c603d6 Remove unused variable
bb8e52bca6 Update comments panel message text, fixes #91623
7183777033 fix: run to cursor with multiple paused sessions
d11872b127 Fix comments panel focus, fixes #103466
b35ea7e5a0 fix #54829
08e556dc5d fix #109486 and #109489
f8a91e4210 Adopt IStorageService.store2 in terminal
320602f7b6 Fix #109860
660222bdec fix https://github.com/microsoft/vscode/issues/103818
267817cf46 debug: adopt storageService.store2
bc5c7923f8 Merge branch 'master' into aeschli/remoteThemeFix
7ae6a45879 adopt StorageTarget, https://github.com/microsoft/vscode/issues/109967
35026262bc storage - avoid Object.entries in platform
2c292d3af4 fix tests
92314d61a5 reverse the eye open/closed icons for hiding snippets
2db5a355bc storage - adopt some StorageTargets
f5f4af6db3 Update C++ grammar
5e4c53cffc add another test for https://github.com/microsoft/vscode/issues/96545
c8d123ded5 Explorer: move off iterating over file changes
4b9e0bba6e Merge pull request #108964 from turara/fix-96545
3c33f50f39 Merge branch 'master' into aeschli/remoteThemeFix
d0343e68c0 sequencer for set and reload theme operations
9db1b1492a Merge remote-tracking branch 'origin/master'
c3b5f2bf1c cleanup for #89313
09829053d1 adopt storage changes in extension bisect
fa61ee7caf fix flawed comparison, increase threshold
ea84245395 Lint Sprüngli
e3a79e9e44 [css/html/json] Randomize inspect ports to avoid conflicts
1b9cd42b9b remove unused import
0382313947 Merge branch 'master' into pr/89313
4cd46e32b2 Merge remote-tracking branch 'origin/master'
e5285908ca 💄
f923ac98e9 storage - document enum better
90aa30e660 Merge branch 'master' into pr/89249
fe458b4aa2 Merge remote-tracking branch 'origin/master'
6029cd4e3a Merge branch 'refs/heads/pr/88772'
163bd1dcb3 storage - rename storage change event
e216a598d3 don't presist little size changes
ea14fc2c2f add command to reset suggest widget sizes
d562ace335 adopt to new storage api
8f5311c771 Merge pull request #109960 from microsoft/ben/storage-target
4f038dba60 💄
e6b53ff8da adopt using new storage service to sync storage
744eed0a96 Add icon in Windows explorer window (#86283)
e61be087c6 Merge branch 'master' into pr/88772
a665899915 fix compile and tests
194c7ea237 test name
dfb74a6c97 some comments and more tests
1f7234c0ee workspace color theme setting not picked up
214125ebcb fix https://github.com/microsoft/vscode/issues/101870
c2944c6f22 another failing/skipped test for https://github.com/microsoft/vscode/issues/101870
130aa96b42 add to #109818
0feb41eed0 test machine storage is not synced
b561be9e4c Add url finding for python 2.7 simple server Fixes microsoft/vscode-remote-release#3949
59bfe65e18 store synced state in user scope
8145e9f37a Fix local scheme for registered file systems in file picker Part of #https://github.com/microsoft/vscode/issues/109345
c49bc9b1cb fix tests
a0ce43416d make snippet prefix optional and hide snippets without prefix from IntelliSense and TabCompletion, fixes https://github.com/microsoft/vscode/issues/73635
8b712ee66d - Use global keys with user scope from storage service to sync - Remove versioning of keys
b449c95a84 Merge pull request #109916 from microsoft/joh/snippetIgnore
1f7528568e storage - add target to change event and cache targets
bd7a83c110 tweak wording
41d6a0a560 Merge branch 'master' into joh/snippetIgnore
21cfbaeeee Merge commit '265a2f6424dfbd3a9788652c7d376a7991d049a3' into joao/terrapin
57c7e40a50 bulk edit - respect sideBySide options from event
7a00f134f7 do not show sync icon when extensio is not installed
265a2f6424 Supress marked logging for using sanitize
983ced6961 Changes to const enum
cddb1b75f1 Moves newline handling into the hover Adds enum for parameter
e06d374787 Avoids paragraphs for newlines in string tooltips This better matches the native tooltip styling of newlines
1c2005331c [json] use links for $ref, not goto definition (fixes #101474)
e934668bd0 Merge pull request #109833 from fleon/patch-1
c68b238af3 Use `self` directly
51a4bbdfa5 1.10 is bad on macOS, revert this temporarily Revert "chore: bump vscode-ripgrep@1.10.0"
ab9bb823ea debug: allow serverReadyAction to run a launch config by name
57340b736b Warning when invoking explorer.newFile (fix #100604) (#109905)
7831795dcb Backups: remove legacy migration code path. Fixes #101484
9c00847244 OnTypeRenameProvider API wording
529388e524 💄
d88f099116 Remember History on Debug Console filter between vscode sessions
b9833bb962 Fix #99105
7278373f3d fixes #99709
bafccc8ebb format
f17f51878e update milestones in notebooks
ffd61f2917 fix markdown string integration test
0e43c7a495 Include description in custom tree aria label Part of #108480
7dca88de88 fixes #64188
503135e9b8 expose snippet enablement inside "Insert Snippet" picker
fc37a9d0d3 Move tasks onBeforeShutdown to electron-browser Fixes #108649
e52382a0b3 findExecutable should check PATH in a case-insensitive way Fix #109863
e01e0ebe39 [theme] Git:Input Validation Subject Length - not working on Monokai Theme.Fixes #101081
aba089cf11 Fix #95268
bd0c897c90 Fix #95211
20b534d41e add persisted snippet enablement
70227b45b5 remove unused label
ef941c2c3c 💄 more async-await
f5490aed3d Fix #108023
7936093c33 git: merge resources should return undefined original resource
5b3b6b8026 💄 async-await
a3a5d6a6e1 Fix tasks test
796db55744 Remove iframe around web worker in codespace case
56b686f9fd 💄 snippets
80d59864b1 appendText should escape leading whitespace, should escape leading quote character, also remove duplicated implementations, fixes https://github.com/microsoft/vscode/issues/68983, fixes https://github.com/microsoft/vscode/issues/109040
7d1affcf90 Throw useful error if task execution is undefined https://github.com/microsoft/vscode/issues/109861
5905725b5c Locally, but exported, constants hurt minification (a little) (fix #109899)
eeaa42d650 storage - let flush return a promise when done
2dce4b75e6 Merge branch 'master' into joao/terrapin
1703e7e71e fix bad JSON
a8036f5d27 Show current debug line in overview ruler
4ec0cd5f29 fixes #92709
153835e0f5 Fix #99963
e720530819 Open to side: do not first use fileService for resolving, since item is already part of explorer model
7601718ccc Use editor base weight when contributing peek commands, fixes https://github.com/microsoft/vscode/issues/109727#issuecomment-720986472
82ff980017 use item labels for themes
dfaf4ef080 Merge branch 'master' into joao/terrapin
4d9e54c0b8 increase job timeout
37e16f845b storage - adopt new API in one place
b64171bd0b storage - introduce onDidChangeTarget event
6f26a40b76 Fix #101612
183b2a2892 [themes] theme names are all not localized. Fixes #109840
c8b48d0d99 Fix #103438
8d429660a9 fix message
cecd55133f Fix #106989
6a242516e4 storage - first cut target support (user, machine)
1d98078624 fix #106857
ad1dc7f87a Strip newlines from the code actions title
296aa89012 debug: improve attach to vscode config
6acc9ff1ee editor cmd+e find with selection.
90b17ed115 Make it easier to override markdown table stylings
699e3e5afa Update marked
49873aa674 Bump actions
1ca6360d5e terminal: fix typeahead eol naming
1351f36293 💄
06c401b358 terminal: cleanup typeahead tests
25e70bb455 terminal: update typeahead tests
5e636afbcf Remove unused imports
4e15db0b49 Fixes always white comment body border
f25cb53571 Bump distro
4f1f830735 Merge remote-tracking branch 'origin/master' into searchView/context/extensionPoints
bce86a137e Fixed other context menus using this context
bf161eb5cd use mouse events for iPadOS instead of pointer events as iOS sometimes does not emit them
16d8eb9c57 Merge pull request #109630 from microsoft/eagerTerminalReconnection
c1a6bc16b8 terminal: capture cursor position correctly in typeahead backspace
220a067d8e Merge pull request #109850 from kena0ki/issue##109636
3258a28683 clarify activity bar action menu layout refs #40262
fd9ace8458 terminal: fix typeahead leaving stray characters with backspaces
cbb21a30dd terminal: restore old cursor style after failed backspace
933d888b2a Merge branch 'master' into eagerTerminalReconnection
efb8cba23a Fix #108817
e6e9d6c36b add report issue to extension bisect, move issue service interface to workbench/services, allow to file issue against disabled extension if explicitly names, fyi @RMacfarlane
6c5cc99c77 Merge branch 'master' into issue##109636
a9dfd7e0ed fixes #109849
a0012e5f63 fix terrapin step
3b3b94525f fixes #95697
6e9fe5a638 fixes #71994
a25c5efdf3 💄
fd8411e75e Fix #89559
4b49bae903 Update xterm.css
c110357096 fixes #67685
a5d719c570 Try new Rust grammar (#108254)
6d20077821 fixes #67315
7964dfd6e8 💄 async-await
8600d333fc debt - make editor smart select a "real" editor option
9d936d51f3 support ThemeIcon#color in workspace edit metadata, https://github.com/microsoft/vscode/issues/109460
4e198a4b4b :lipstsick: use underscore for privates
bea76730f1 feat: Autodetect npm.packageManager #102050 (#102494)
1bd7cf9e41 use gh username for todo-tags, nuke some todo-tags
ab94234299 Merge pull request #109740 from microsoft/joh/extbisect
0729278ad1 use label2 when  CompletionEntry#source is a path inside the workspace
441698a621 do not allow editor override for walkthough inputs, fixes https://github.com/microsoft/vscode/issues/109595
98262ef050 fixes #109818
7901aa87e4 wording, show number of disabled extensions, option to keep bad extension disabled, towards filing issue
7cce3438d1 #107657 skip it unitl fixed
4198638fac Fix #109755
744f2ab731 web - use unbuffered upload/download for small files to speed things up
f3a23697a9 Editors: revisit "preview" editors default behaviour (#109779)
d6c2656f19 [regression] Files served by readonly filesystem show double '(read-only)' suffix in titlebar again (fix #109733)
2d7aacfa92 notifications - reduce weight of ESC for closing if toast has no focus
d56b608506 sandbox - bring in browser based keyboard service to enable basic keyboard usage
0268b334e5 enable enableExperimentalProxyLoginDialog per default
5956564b72 storage - IWorkspaceStorageChangeEvent => IStorageChangeEvent
87f7879528 flush storage, some wording tweaks
44e28513b1 Merge branch 'master' into joh/extbisect
3e8c2e036d add "editor.suggest.showStatusDetailsInline"-setting to disable/enable inline details, https://github.com/microsoft/vscode/issues/109690
10a98746f2 Use `var` instead of `const` for the `global` variable
7e25008c60 Merge pull request #109750 from microsoft/sandy081/fix109709
5264ab94a3 chore: bump vscode-ripgrep@1.10.0
8abfa9bc03 Bump version to 1.52.0
580ac9765d rename variable to MatchRange to avoid argumentProcessor
75894bf0a6 Applied feedback
bb1be0326d Added extensibility points for searchView/context
5662d49333 Revert "Revert "Fix #109709""
bba3e33b7c fix compilo
a77dcf3cb1 tweak wordings
bc957f402a add commands and logic to bisect extensions
7cedcfa44f Merge branch 'master' into eagerTerminalReconnection
485badfd8d Fire onDidChangeConnectionState at the right time
574ee2032c Set initial terminal focus based on connection state
a607b1437b Fixed typo 'sequece' to 'sequence'
bb4b04f206 Terminal reconnection - Get rid of awkward "empty tab" concept
5d0525b50d Reconnect terminals at startup instead of waiting for the terminal view to become visible
994b071092 #109255 Add encoding description to settings file encoding drop-down
7f5714beec chore(extensions): incorrect localize key
c79c26babe Merge branch 'master' into resolve-78733
9dffbf40b6 Update SearchView#updateTextFromFindWidgetOrSelection to check seedWithNearestWord
18b30c6a8c Fix SearchView#updateTextFromSelection method to return correct value
10f7c0573e Update OneSnippet#move method to fix #96545.
8d535e661b Update matchCase and wholeWord options when updating text from find widget in SearchView
c9b479c4a1 use terrapin
720cdd5e1b Merge branch 'master' into patch-1
2f232ccbca Enable tsec language service plugin
5b5431d552 Merge branch 'master' into scrollbar-paging
36446b1b97 Merge branch 'master' into atomic_tabs
3064431dc5 Fix remaining hightlights
d3a3f39dbf Fix overlay area for minimap slider
e6cddb065a Update regular expression option when updating text from find widget in SearchView
f0583c0db2 Extract updateText method in SearchView
d000256957 Add atomicSoftTabs in one place that I missed
3ca4059ea5 Move mouse handling to a lower level to handle more cases
d119c92489 Add atomic tabs option
bb42ea52e0 Typo hightlight -> highlight
66160a8417 Add updateTextFromFindWidgetOrSelection method to SearchView
c9fb066990 Ignore LineDecoration order when comparing
e51cc0eae7 Move changes to scmViewPane
b08e733365 Merge branch 'master' into fix-89145
02cfa0b9a8 Create empty commit with changed files #107753
b9b6241354 Merge remote-tracking branch 'upstream/master' Merging bug fix with original VSCode repo
ff2a9a476e Fixed issue 104346
ceeb974856 Wire up `preconditions` for viewsWelcome buttons, and use it
af4fb00687 Initial 'Git extension is activating...' in SCM view
4e00a9b1a5 fix #106487 Contribute an "activating" placeholder message and button
822ca5f07b don't declare a variable that isn't used
2f1c0213d3 Fix composition logic for Firefox
3cc907a220 Fix return
3890d7fba9 Formatting
22ca0c1e8a Add providerName option to git.api.getRemoteSources
fa3c6026e2 Merge branch 'master' into dirSep
b955b58eee Add dirSep variable launch.json
16d89b0694 Merge branch 'master' into scrollbar-paging
6089fec6a4 Merge branch 'master' into scrollbar-paging
aca9ae3288 Option: editor.scrollbar.gutterClickMovesByPage
8b21b331fa Amend scrollbarState.test.ts for new positions
2fa97c8794 feat(extensions): added an option to disable related dependencies when disabling an extension with enabled dependencies
11664e62a3 Make Clicking in Scrollbars Move By Page
ff8d4feeb4 Git: Add cherryPick command
b4c528cbfd fixes #103281
663ecdbb2a Merge branch 'master' into better-checkout-type
d9d1be4e49 Avoid debug
ae540536b4 Rewrite checkout items
3f585d7400 Add better support for checkout type config
df3af97279 fix fetchOnPull behavior for Sync
fc797d2430 fix 97472
bed300cd4f Don't fail when resolving config variables without a `folderUri`.
8561cbb8ae Add force checkout and smart checkout
31ee5b9644 fix something
b24cb8b47d Add rename by git context menu
1531898fdb avoid loading and twisty set at the same time
1243ff76e4 Changed name of the setting to openAfterClone
b64cb1ecf4 Merge branch 'master' of https://github.com/microsoft/vscode
4420bbfbcf Offer to show git command output on failure
64b8e933ba Merge branch 'master' into fix-89145
5a9b210d91 Merge branch 'master' of https://github.com/microsoft/vscode
26e1217ce9 Merge branch 'master' of https://github.com/microsoft/vscode
156d5ab281 Added setting for opening cloned repository without prompt. #93300
412a44e9bc Git: ask to save unsaved files before stashing
bc85a9ffdb Added user choice for opening the folder always.
725985401d Merge branch 'master' into amend-message
37bca69ff1 💄
3b9dca805c Merge branch 'master' into fix-89145
f23fcb72f5 allow git amend message only
33b5a9ba25 Merge branch 'master' into ignore_sub
cdc6c051e5 Persist scm tree view state between sessions
712ceb8279 Fixes #89145
2abdb90472 git.pruneOnFetch setting implemented
d7ed37e864 add ignoreSubmodules option
REVERT: e5a624b788 Bump version number to 1.51.1 (#110355)
REVERT: 02f4e3563b reset icon color once
REVERT: 314b97acc6 Fixes #110033
REVERT: 67a784d64f Merge pull request #110247 from microsoft/joh/fix110188
REVERT: b0f1494e96 restore old case ignore behaviour unless explicitly set
REVERT: fcac248b07 Merge pull request #109961 from microsoft/joh/fix/109906
REVERT: 9a44531938 fix flawed comparison, increase threshold
REVERT: f918d52947 don't presist little size changes
REVERT: f37df00d4b add command to reset suggest widget sizes
REVERT: 271026ee11 Avoids paragraphs for newlines in string tooltips This better matches the native tooltip styling of newlines
REVERT: a5dfd9dcf8 Merge pull request #109882 from microsoft/roblou/fix109863
REVERT: a46559b134 findExecutable should check PATH in a case-insensitive way Fix #109863
REVERT: c57a3408d8 Merge pull request #109859 from microsoft/connor4312/typeahead-151-candidates
REVERT: c82d350c6c terminal: cleanup typeahead tests
REVERT: 54cadfb2cd terminal: update typeahead tests
REVERT: 192fd218cc terminal: fix typeahead leaving stray characters with backspaces
REVERT: 3d37590985 terminal: restore old cursor style after failed backspace
REVERT: fce8fc82ca Merge pull request #109829 from microsoft/sandy081/fix109709
REVERT: 0bc9b1de71 Revert "Revert "Fix #109709""

git-subtree-dir: lib/vscode
git-subtree-split: 3e344b17b7b63b23379a023d575a54ab3a838b6b
2021-02-09 16:06:38 +00:00
Joe Previte
a2a6122252 feat: add tests for constants 2021-02-08 16:21:37 -07:00
Joe Previte
719481e84e refactor: add getPackageJson fn in constants 2021-02-08 16:21:30 -07:00
Joe Previte
164d11e027 chore: clean up comment in util.test 2021-02-08 16:20:43 -07:00
Joe Previte
7f629c3675 Merge pull request #2671 from cdr/add-unit-tests
feat(testing): add unit tests for common/util
2021-02-08 11:32:55 -07:00
Joe Previte
ec6b6c591f Merge pull request #2684 from cdr/v3.8.1
release: v3.8.1
2021-02-05 17:12:29 -07:00
Anmol Sethi
41ad0c0c4c release-github-draft.sh: Remove incorrect assets reference
I think at some point this script created the release and attached
assets but that's not the case anymore.

For some reason this would error with undefined variable reference for
joe but bash doesn't complain for me or Asher.

Not sure what the difference is.
2021-02-05 15:11:16 -07:00
Joe Previte
2a127f168c docs: update code coverage badge 2021-02-05 14:13:26 -07:00
Joe Previte
07da291d72 chore: update v to 3.8.1 in values.yaml 2021-02-05 14:11:34 -07:00
Joe Previte
55c916a987 docs: update release doc with rg instructions 2021-02-05 14:10:27 -07:00
Joe Previte
05d8b61a32 chore: update to 3.8.1 in Chart.yaml 2021-02-05 14:09:16 -07:00
Joe Previte
244775dab5 docs(helm chart readme): update to 3.8.1 2021-02-05 14:08:35 -07:00
Joe Previte
25bf871e16 docs(install.md): update to 3.8.1 2021-02-05 14:07:27 -07:00
Joe Previte
2a2dade309 feat: update version in package.json to 3.8.1 2021-02-05 14:07:00 -07:00
Anmol Sethi
cf30b536ef Merge pull request #2674 from nhooyr/absproxy
Add /absproxy to remove --proxy-path-passthrough
2021-02-05 11:45:12 -05:00
Anmol Sethi
05a0f213a7 Update proxy path passthrough documentation
Includes updated create-react-app docs.

Closes #2565
2021-02-05 11:44:38 -05:00
Anmol Sethi
c08e3bb06d Add /absproxy to remove --proxy-path-passthrough
See https://github.com/cdr/code-server/issues/2222#issuecomment-765235938

Makes way more sense.
2021-02-05 11:44:34 -05:00
Joe Previte
4f6efced68 feat: add tests for getOptions 2021-02-04 15:18:44 -07:00
Joe Previte
323339d15a feat: add jsdom for browser-ish tests 2021-02-04 15:18:43 -07:00
Joe Previte
3cebfcd447 feat: add tests for logError 2021-02-04 15:18:43 -07:00
Joe Previte
71cf459ece feat: add tests for common/util 2021-02-04 15:18:43 -07:00
Joe Previte
4bace1ae4a Merge pull request #2669 from cdr/rename-docs-dir
refactor(docs): rename doc to docs
2021-02-04 10:17:34 -07:00
Joe Previte
f7b0cea42c Merge pull request #2670 from cdr/add-code-of-conduct
docs: add CODE_OF_CONDUCT.md
2021-02-03 12:34:24 -07:00
Joe Previte
43aa0401e0 Update docs/CODE_OF_CONDUCT.md 2021-02-03 11:08:06 -07:00
Joe Previte
74dc5a881f refactor: update email address 2021-02-03 11:06:19 -07:00
Joe Previte
d7f67b80df chore: add CODE_OF_CONDUCT to fmt script 2021-02-03 09:52:59 -07:00
Joe Previte
a1a0aec472 Create CODE_OF_CONDUCT.md 2021-02-03 09:51:39 -07:00
Joe Previte
4756257207 refactor: rename doc to docs 2021-02-03 09:46:35 -07:00
Joe Previte
4c6ad046b0 Merge pull request #2643 from cdr/add-playwright
feat(testing): add playwright
2021-02-02 11:02:06 -07:00
Joe Previte
6685a3e364 feat: update workflow 2021-02-01 15:11:45 -07:00
Joe Previte
66fe663e33 feat: add playwright 2021-02-01 15:11:28 -07:00
Anmol Sethi
966e9cc238 Merge pull request #2609 from cdr/proxy-res-d629
Fix body proxying, redirect proxying and add tests
2021-02-01 11:39:44 -05:00
Anmol Sethi
a60f61f9b3 proxy.test.ts: Add POST body test and redirection tests
Closes #2377
2021-02-01 11:16:52 -05:00
Anmol Sethi
58d72d53a1 routes/index.ts: register proxy routes before body-parser
Any json or urlencoded request bodies were being consumed by body-parser
before they could be proxied. That's why requests without Content-Type
were proxied correctly as body-parser would not consume their body.

This allows the http-proxy package to passthrough the request body correctly
in all instances.

Closes #2377
2021-02-01 11:08:40 -05:00
Anmol Sethi
f5cf3fd331 proxy.ts: Do not always rewrite redirects against the base path
This breaks --proxy-path-passthrough

However, we still need this when that code is disabled as many apps will
issue absolute redirects and expect the proxy to rewrite as appropriate.

e.g. Go's http.Redirect will rewrite relative redirects as absolute!
See https://golang.org/pkg/net/http/#Redirect
2021-02-01 11:08:40 -05:00
Anmol Sethi
d7f06975a6 test: Switch from leaked-handles to wtfnode (#2604)
See my comments at
https://github.com/cdr/code-server/pull/2563#issuecomment-763394741
2021-02-01 11:06:49 -05:00
Anmol Sethi
5446e0ad43 doc/FAQ.md: Link to VSCodium's extension marketplace docs as well (#2603) 2021-02-01 09:52:16 +00:00
Anmol Sethi
22ebfdc3af doc/guide.md: Update caddy install instructions (#2601)
Caddy has new installation instructions for Debian.

Closes #2599
2021-02-01 09:51:48 +00:00
Joe Previte
aab973a795 Merge pull request #2640 from cdr/issue-1343-control-c
doc/ipad.md: add ctrl c workaround
2021-01-28 16:33:03 -07:00
Joe Previte
a4a0048b90 Merge pull request #2639 from cdr/ipad-docs-install-pwa
doc/ipad.md: add install pwa
2021-01-28 16:32:46 -07:00
Dean Sheather
1fcb0c3ddd Merge pull request #2641 from cdr/send-ready-to-all-origins
Send 'loaded' event to all parent origins
2021-01-27 05:52:13 +10:00
Dean Sheather
42dcfc94ab Send 'loaded' event to all parent origins 2021-01-27 05:06:04 +10:00
Joe Previte
db359c40c7 docs: add install pwa to ipad 2021-01-26 11:18:41 -07:00
Joe Previte
8f0066b4a8 docs: add ctrl c workaround for ipad 2021-01-26 10:44:27 -07:00
Joe Previte
fa548e95e1 Merge pull request #2564 from cdr/issue-2550-migrate-mocha-jest
refactor(tests): migrate from mocha to jest
2021-01-25 17:12:39 -07:00
Joe Previte
102f51ce1f fix: surpress console log in cli test 2021-01-25 16:34:43 -07:00
Joe Previte
14c5aecd45 chore: update ts config and jest config 2021-01-25 16:34:32 -07:00
Joe Previte
3044224729 feat: add support for code coverage shield 2021-01-25 16:21:07 -07:00
Joe Previte
05beccf671 refactor: move jest around and add code coverage 2021-01-22 14:18:45 -07:00
Joe Previte
883dd13850 refactor: move jest and add package.json to /test 2021-01-21 14:06:49 -07:00
Joe Previte
646ee3ad7f refactor: correct type signature in app.ts 2021-01-21 10:11:56 -07:00
Joe Previte
850c7e1a91 fix: add void for resolve in socket test 2021-01-21 10:11:10 -07:00
Joe Previte
6bf51caa17 fix(app.ts): resolve with server 2021-01-21 10:11:10 -07:00
Joe Previte
f13ba9401b fix(TS error): add void to promise in util 2021-01-21 10:11:10 -07:00
Joe Previte
75717749b2 refactor: upgrade TS to 4.1.3 2021-01-21 10:11:09 -07:00
Joe Previte
0a07d67c8d fix: prevent mocha/jest types conlict
Modify the tsconfig.json in lib/vscode/src/build.

This adds the flag skipLibCheck: true to tell TypeScript
to not type-check the declaration files at build time.

We need to add this because otherwise it checks the declaration
files and reports an error of duplicate type definitions
because we use Jest for our tests and they use Mocha and they
both use the global namespace "test" in their .d.ts files.
2021-01-21 10:11:09 -07:00
Joe Previte
bea8bb0519 refactor: remove mocha 2021-01-21 10:10:33 -07:00
Joe Previte
de7d0394ae refactor: tests from mocha to jest 2021-01-21 10:10:32 -07:00
Joe Previte
cef7d42652 feat: setup jest 2021-01-21 10:10:32 -07:00
Torbjørn Viem Ness
c52198f30d install.sh: Fix usage of su (#2529)
See also https://github.com/cdr/code-server/pull/2529#issuecomment-763829674
2021-01-20 13:03:13 -05:00
Anmol Sethi
28e98c0ee0 Merge pull request #2563 from cdr/proxy-path-passthrough-0bb9
pathProxy.ts: Implement --proxy-path-passthrough
2021-01-20 02:44:29 -05:00
Anmol Sethi
c32d8b155f heart.ts: Fix leak when server closes
This had me very confused for quite a while until I did a binary search
inspection on route/index.ts. Only with the heart.beat line commented
out did my tests pass without leaking.

They weren't leaking fds but just this heartbeat timer and node of
course prints just fds that are active when it detects some sort of leak
I guess and that made the whole thing very confusing. These fds are not
leaked and will close when node's event loop detects there are no more
callbacks to run.

no of handles 3

tcp stream {
  fd: 20,
  readable: false,
  writable: true,
  address: {},
  serverAddr: null
}

tcp stream {
  fd: 22,
  readable: false,
  writable: true,
  address: {},
  serverAddr: null
}

tcp stream {
  fd: 23,
  readable: true,
  writable: false,
  address: {},
  serverAddr: null
}

It kept printing the above text again and again for 60s and then the
test binary times out I think. I'm not sure if it was node printing the
stuff above or if it was a mocha thing. But it was really confusing...

cc @code-asher for thoughts on what was going on.

edit: It was the leaked-handles import in socket.test.ts!!!
Not sure if we should keep it, this was really confusing and misleading.
2021-01-20 02:06:44 -05:00
Anmol Sethi
5c06646f58 Formatting and linting fixes 2021-01-20 02:06:44 -05:00
Anmol Sethi
60233d0974 test/proxy.test.ts: Implement 2021-01-20 02:06:44 -05:00
Anmol Sethi
240c8e266e test: Implement integration.ts for near full stack integration testing 2021-01-20 02:06:44 -05:00
Anmol Sethi
64e915de4a test: Rename testutil.ts to httpserver.ts 2021-01-20 02:06:44 -05:00
Anmol Sethi
d3074278ca app.ts: Fix createApp to log all http server errors
cc @code-asher
2021-01-20 02:06:43 -05:00
Anmol Sethi
8acb2aec11 plugin.test.ts: Switch to testutil.HttpServer 2021-01-20 02:06:43 -05:00
Anmol Sethi
ea1949e440 test: Add testutil.HttpServer
The goal is to remove supertest as it does not support typescript well
and there's really no good reason for the dependency. Also no websocket
testing support.
2021-01-20 02:06:43 -05:00
Anmol Sethi
9efcf7f3ce FAQ.md: Document wds problem with create-react-app and pathProxy.ts 2021-01-20 02:06:43 -05:00
Anmol Sethi
ba4a24809c routes/index.ts: Correctly register wsErrorHandler
express requires all 4 arguments to be declared for a error handler.
It's very unfortunate that our types do not handle this.
2021-01-20 02:06:43 -05:00
Anmol Sethi
497b01bffe FAQ.md: Document --proxy-path-passthrough
And the concerns surrounding it.

Closes #2485
2021-01-20 02:06:43 -05:00
Anmol Sethi
f169e3ac66 pathProxy.ts: Implement --proxy-path-passthrough
Closes #2222
2021-01-20 02:06:43 -05:00
Anmol Sethi
c17f3ffc79 Merge pull request #2596 from cdr/rdbeach
vscode.ts: Fix close current folder
2021-01-20 01:59:12 -05:00
Anmol Sethi
d234ddc1e1 vscode.ts: Fix close current folder
Fixes VscodeProvider to correctly obey the ew parameter.

Based on changes by @rdbeach. See the previous commit.
2021-01-18 11:29:18 -05:00
Robert Beach
28c7340608 Fix Close Folder/Workspace (#2532)
When you choose to close the current folder, it doesn't close properly
because the lastVisiited setting is still use. This fixes that.
2021-01-18 11:28:29 -05:00
Joe Previte
3394ece107 Merge pull request #2501 from cdr/issue-2132-help-info-extension-search-view
feat(extensions): add helper header above extensions search
2021-01-14 16:30:28 -07:00
Joe Previte
500ba92466 fix: style links with correct colors 2021-01-14 22:40:33 +00:00
Joe Previte
d9508946b5 feat: add helper header above extensions search
Add a short message above the search box on the Extensions panel. This
helps explain the extension divergence to the user.

If they click dismiss, it stores an item in localStorage to prevent the
message from showing up on subsequent loads.

Co-authored-by: Asher <ash@coder.com>
2021-01-14 22:40:19 +00:00
SPGoding
eae285cf93 Improve hashed-password FAQ (#2533) 2021-01-14 13:00:52 -06:00
Asher
39faceeee4 Merge pull request #2539 from cdr/callback-html 2021-01-11 16:19:08 -06:00
Anmol Sethi
07bc3d9774 Merge pull request #2551 from cdr/dark-mode-favicon-b1d7
favicon: Add dark mode support
2021-01-11 12:55:20 -05:00
Anmol Sethi
f15580b28a favicon: Add dark mode support
Closes #2538

Works as expected on latest Firefox and Chromium.
2021-01-11 12:54:25 -05:00
Anmol Sethi
fa2aed6d46 gen_icons.sh: Document pwa-icon vs favicon having different design 2021-01-09 01:45:08 -05:00
Anmol Sethi
693fdbefb4 browser: Add favicon.afdesign
It requires git-lfs to pull down if you want to adjust the favicon and
also the affinity designer software available only on Windows and Mac.

Might be a good idea to switch to Figma at some point and commit a
.fig file.
2021-01-08 23:03:34 -05:00
Asher
cb11e1f750 Fix typings rsync 2021-01-08 10:37:47 -06:00
Sean Smith
9e4206aa41 Add typings to release bundle (#2544) 2021-01-06 14:25:58 -06:00
Joe Previte
5164f925ee Merge pull request #2505 from cdr/docs-update-vscode
docs: add details to updating vscode section
2021-01-05 16:27:22 -07:00
Asher
05530db20e Fix symlink_asar failing if link is broken
This can happen if you `yarn release` without keeping node modules.
2021-01-05 15:28:42 -06:00
Asher
aa05993cf0 Bundle callback.html into final build 2021-01-05 15:26:11 -06:00
Joe Previte
f599e1d72e docs: add details to updating vscode section 2020-12-22 16:39:15 -07:00
Anmol Sethi
caee285240 Merge pull request #2489 from cdr/v3.8.0
v3.8.0
2020-12-18 15:52:53 -05:00
Anmol Sethi
c4610f7829 v3.8.0
🎅🏼
2020-12-18 15:09:55 -05:00
Anmol Sethi
4185675338 doc/ipad.md: Fix formatting 2020-12-18 15:09:43 -05:00
Asher
f763319bc3 Merge pull request #2160 from cdr/github-auth
Fix GitHub auth
2020-12-18 10:54:51 -08:00
Asher
c7baf5d04a Merge pull request #2482 from cdr/asar
Symlink node_modules.asar to node_modules in lib/vscode
2020-12-18 10:54:36 -08:00
Joe Previte
7c6b132238 Merge pull request #2472 from AckerApple/patch-1
Update ipad.md
2020-12-18 11:29:22 -07:00
Oxylibrium
ceb8eb8f39 doc/npm.md: Update docs for Alpine Linux (#2479) 2020-12-18 18:08:36 +00:00
Anmol Sethi
cb446666fa Merge pull request #2487 from cdr/proxy-docs-86d4
proxy-agent: Use proxy-from-env and add docs
2020-12-18 13:06:47 -05:00
Anmol Sethi
ea1b38737e Merge pull request #2466 from cdr/freebsd-abe7
ci: Add support for FreeBSD to the build process
2020-12-18 13:04:11 -05:00
Jean-Yves LENHOF
0f2085bd27 release-image: Use more minimal packages #2462 2020-12-18 13:01:59 -05:00
Asher
5f7f7f1a92 Simplify query concatenation in URL callback
Cases in URLs like ?&a=b or ?a=b& appear to be handled just fine.
2020-12-18 11:31:25 -06:00
Mayank Soni
0811b27ba1 docs: Update nginx certbot to use python3 #2439 2020-12-18 12:22:39 -05:00
Asher
d14c2e5bb7 Swap negative check for positive check 2020-12-18 11:21:06 -06:00
Anmol Sethi
60c270aef5 cli: hashedPassword -> hashed-password (#2454)
Capital letters in the CLI are evil.

cc @code-asher
2020-12-18 12:20:38 -05:00
Asher
4255f9c152 Use full path for ignoring node_modules.asar
Co-authored-by: Anmol Sethi <hi@nhooyr.io>
2020-12-18 09:01:27 -08:00
Asher
3aa4ae4539 Clarify why we need node_modules.asar 2020-12-18 10:59:15 -06:00
Anmol Sethi
d3d44280a7 install.sh: Add echo_npm_postinstall
Updates #2349
2020-12-18 11:52:08 -05:00
Anmol Sethi
ffa24de5b1 doc/npm.md: Document npm module dependencies for FreeBSD 2020-12-18 11:52:08 -05:00
Anmol Sethi
2bafbdc32f ci: Minor fixes for FreeBSD support 2020-12-18 11:52:08 -05:00
Anmol Sethi
003225d2cd vscode: Remove electron dependency but keep types
Electron doesn't support FreeBSD.
2020-12-18 11:52:08 -05:00
Anmol Sethi
de112b15ed clean.sh: Do not reset lib/vscode
Now that we've moved to the submodule, there is no need to reset changes
in there :)

cc @jsjoeio
2020-12-18 11:52:08 -05:00
Anmol Sethi
65ce3996ac build: Do not let agent install fail the build
We don't have an agent for FreeBSD right now.
2020-12-18 11:52:08 -05:00
Anmol Sethi
cb72128448 doc/FAQ: Document proxy environment variables 2020-12-18 11:17:20 -05:00
Anmol Sethi
ae902b9dd1 proxy_agent: Use proxy-from-env for robustness
Now we support pretty much every variable under the sun along with
$NO_PROXY all correctly and with minimal code on our end.
2020-12-18 11:10:07 -05:00
Anmol Sethi
94b4ba131e proxy_agent: Implement $HTTPS_PROXY
Just convention, see https://golang.org/pkg/net/http/#ProxyFromEnvironment
2020-12-18 10:39:31 -05:00
Anmol Sethi
ecb4d07364 proxy_agent: Improve documentation 2020-12-18 10:38:46 -05:00
Anmol Sethi
3efd515cdf proxy_agent: Fix very embarrassing mistake 2020-12-18 04:24:27 -05:00
Anmol Sethi
386af14a77 ci/README: Document command used to find stale version 2020-12-18 04:01:25 -05:00
Joe Previte
619ab45c37 Merge pull request #2476 from cdr/issue-1587-submodule-to-subtree
refactor (vscode): migrate from submodule to subtree
2020-12-17 15:28:41 -07:00
Asher
3cc74ccd79 Point to our auth relay 2020-12-17 15:49:37 -06:00
Asher
58c1be57fa Implement callback endpoints
VS Code uses these during the authentication flow.
2020-12-17 15:49:36 -06:00
Asher
121a520447 Symlink node_modules.asar to node_modules in lib/vscode
Closes #2197.
2020-12-17 15:48:19 -06:00
Joe Previte
98338e9a44 chore: fix linting error 2020-12-17 14:37:56 -07:00
Joe Previte
9a16e4e1e0 docs: add section for updating vs code 2020-12-17 14:08:51 -07:00
Joe Previte
74d6d5e1e1 fix: remove unnecessary grep line in fmt script 2020-12-17 10:00:32 -07:00
Acker Dawn Apple
5df500aeff Update ipad.md
Added table of contents links
2020-12-17 09:51:41 -05:00
Acker Dawn Apple
02069a62db Update ipad.md
Really tried the squeeze the most out of my own experiences with the hopes of helping others.
2020-12-17 09:46:02 -05:00
Joe Previte
fdde5a87a5 chore: format lint file 2020-12-16 17:04:49 -07:00
Joe Previte
be97f80d00 fix: add grep -v lib/vscode to git ls-files 2020-12-16 16:56:44 -07:00
Joe Previte
65ff47b056 docs: update based on feedback 2020-12-16 16:50:35 -07:00
Joe Previte
5b4fb69d54 docs: fix codetour and docs 2020-12-16 14:56:14 -07:00
Joe Previte
b176e3e20e refactor: update workflow in codetour 2020-12-16 11:49:52 -07:00
Joe Previte
e391f68fcd docs: update workflow and remove yarn vscode 2020-12-16 11:48:43 -07:00
Joe Previte
5830532726 refactor: remove submodule code from steps scripts 2020-12-16 11:48:02 -07:00
Joe Previte
fcc16e5397 refactor: move vscode.sh to postinstall 2020-12-16 11:47:20 -07:00
Joe Previte
25e6f8414a feat: remove vscode scripts used with submodule 2020-12-15 15:59:12 -07:00
Joe Previte
51a2a2ad2d feat: apply patch after setting up subtree 2020-12-15 15:53:52 -07:00
Joe Previte
be3e823608 Squashed 'lib/vscode/' content from commit e5a624b788
git-subtree-dir: lib/vscode
git-subtree-split: e5a624b788d92b8d34d1392e4c4d9789406efe8f
2020-12-15 15:52:33 -07:00
Joe Previte
41bee49d07 Merge commit 'be3e8236086165e5e45a5a10783823874b3f3ebd' as 'lib/vscode' 2020-12-15 15:52:33 -07:00
Joe Previte
6c5c22ea8e chore: remove submodule 2020-12-15 15:49:47 -07:00
Joe Previte
ff2ef35ea1 Merge pull request #2473 from cdr/add-vscode-clean-script
feat(local development): add vscode:clean script
2020-12-15 15:38:01 -07:00
Joe Previte
faeed81d43 feat: add vscode:clean script 2020-12-15 14:54:07 -07:00
Asher
9fb661d91e Use patience algorithm for diffs
This should prevent us from generating different diffs and adding noise
to our PRs. Patience seems like a good one; it generated a diff that I
felt was easier to read in the case of the yarn.lock optionator section.
2020-12-15 11:14:56 -06:00
Asher
f8b782bd68 Move ignore-last-opened to ipc.d.ts
This is so it can be used in VS Code. Don't tell anyone but I forgot to
run `yarn ci`.
2020-12-15 11:14:21 -06:00
Joe Previte
cc584f86b9 Merge pull request #2435 from cdr/issue-2328-customize-go-home
cli: add --home flag to customize "Go Home" button
2020-12-15 09:52:39 -07:00
JammSpread
f4ca41329a Add --ignore-last-opened option (#2434)
This allows bypassing the last opened behavior for certain cases where that's not desirable.

Fixes #1951
2020-12-15 10:22:58 -06:00
Acker Dawn Apple
24dbc0496b Update ipad.md
I've been coding from my iPad to Raspberry Pi going on several months. I feel a pro at it and far prefer it over a cloud service for it has far less lag being local hosted.
2020-12-15 10:19:11 -05:00
Anmol Sethi
71abff74ec Revert yarn.lock to master 2020-12-14 16:23:36 -07:00
Joe Previte
b0336e9d50 chore: revert yarn.lock to match master 2020-12-14 16:23:36 -07:00
Joe Previte
c266d4ac68 chore: revert accidental yarnlock changes in patch 2020-12-14 16:23:36 -07:00
Joe Previte
066ce21688 fix: remove unused import in workbench.ts 2020-12-14 16:23:36 -07:00
Joe Previte
90aa6f2ee4 chore: format FAQ 2020-12-14 16:23:36 -07:00
Joe Previte
b1282b9707 refactor: fix bug in --home test 2020-12-14 16:23:35 -07:00
Joe Previte
77ddac28fe chore: fix lint issue in patch 2020-12-14 16:23:35 -07:00
Joe Previte
f84174e331 docs: fix typo in docs 2020-12-14 16:23:35 -07:00
Joe Previte
00bd9e56c2 docs: update FAQ with new go home customization 2020-12-14 16:23:35 -07:00
Joe Previte
157eeab30c chore: generate new patch 2020-12-14 16:23:35 -07:00
Joe Previte
8daba6ca80 feat: add home as a cli option 2020-12-14 16:23:35 -07:00
Anmol Sethi
7e05ca09bb release-image: Remove unnecessary call to chsh (#2457)
Confused me in #2410, see #2455

debian:10 defaults to bash as $SHELL
2020-12-14 16:22:24 -05:00
Oxylibrium
f8dc3fccac install.sh: use $ID_LIKE to detect distro (#2423) 2020-12-14 21:18:24 +00:00
Anmol Sethi
32c5ed8a33 release-image: Ignore $DOCKER_USER on restart (#2458)
Closes #2267
2020-12-14 13:57:36 -05:00
Anmol Sethi
244afa402e routes: Redirect from /login when auth is disabled (#2456)
Sometimes I start with auth but then disable. Now I can just reload the
login page in my browser to be greeted with code-server.
2020-12-14 12:33:36 -05:00
Anmol Sethi
ed01515af1 FAQ.md: Add mention of hashedPassword (#2453)
Closes #2451
2020-12-14 12:11:10 -05:00
Anmol Sethi
88b8cff8e9 Merge pull request #2427 from cdr/link-docs-0cc3
cli: Show beta flags in help output
2020-12-14 05:19:50 -05:00
Asher
9efdec8771 Merge pull request #2412 from bpmct/codetour 2020-12-10 09:05:33 -08:00
Asher
704f34ed5f Add VS Code reqs link to development tour 2020-12-10 11:02:00 -06:00
Asher
bc1fe207d1 Link CONTRIBUTING.md from the tour
For now it has to be a full link but in the future it would be nice to
open it relatively in the editor.
2020-12-10 11:01:59 -06:00
Asher
fa7d3fd4c2 Change tour directories from file to directory
`file` doesn't seem to work without a specific git reference, but adding
a reference makes the explorer not follow the tour. Unfortunately
`directory` doesn't show the directory contents so I added the directory
name and "see the explorer" to the comment.
2020-12-10 11:01:33 -06:00
Ben
8d1c8041e9 change to directory 2020-12-09 22:02:07 -08:00
Ben
63029bec91 add development tour with commands 2020-12-09 13:16:27 -08:00
Ben
db8b41b058 make tour work on all branches 2020-12-09 09:22:19 -08:00
Ben
5610431310 add link to docs 2020-12-09 09:20:34 -08:00
Anmol Sethi
affb92f281 cli: Show beta flags in help output
Looks like

```
   -r --reuse-window         Force to open a file or folder in an already opened window.
 -vvv --verbose              Enable verbose logging.
      --link                 (beta) Securely bind code-server via Coder Cloud with the passed name. You'll get a URL like
                             https://myname.coder-cloud.com at which you can easily access your code-server instance.
                             Authorization is done via GitHub.
```

Based on commits by @JammSpread in #2405

Closes #2396
2020-12-08 19:00:33 -05:00
Anmol Sethi
6c693000eb Merge pull request #2405 from JammSpread/master
Modify --link arg and README (Cdr Cloud)
2020-12-08 18:30:34 -05:00
Asher
c0c39af509 Add tour points 2020-12-08 16:57:48 -06:00
SPGoding
1dd7e4b4e1 Add hashedPassword config (#2409)
Resolve #2225.
2020-12-08 14:54:17 -06:00
Joe Previte
ff1da17496 Merge pull request #2425 from cdr/2424-update-contributing
Update CONTRIBUTING.md
2020-12-08 11:33:17 -07:00
Joe Previte
cd6aefdce9 Merge branch 'master' into 2424-update-contributing 2020-12-08 11:07:22 -07:00
Joe Previte
c982302144 docs: add yarn to contributing requirements 2020-12-08 11:04:07 -07:00
Anmol Sethi
4f1dc8918a Merge pull request #2422 from cdr/ss-20c2
doc: Switch screenshot to use Chrome
2020-12-08 11:23:51 -05:00
Anmol Sethi
d17499f74c Remove @coder-asher and @nhooyr from CODEOWNERS
Not every PR needs our review. We get notified anyway as we're watching
the repository.
2020-12-08 11:13:19 -05:00
Anmol Sethi
e7e25c5dc7 doc: Switch screenshot to use Chrome
Safari runs code-server horribly. We shouldn't even pretend that it sort
of works.

See the issues tagged browser-safari!

Considered Firefox first but there's too many issues with it as well.
2020-12-08 11:13:19 -05:00
Anmol Sethi
225583b40e Merge pull request #2416 from cdr/issue-036f
doc: Describe issue triaging
2020-12-08 10:01:20 -05:00
Anmol Sethi
30994a566f doc: Elaborate on issue triaging 2020-12-08 10:00:57 -05:00
Anmol Sethi
ddc0658706 Remove cmoog assignment for extension requests 2020-12-08 09:34:18 -05:00
Anmol Sethi
104b85398c doc: Describe issue triaging 2020-12-07 15:17:53 -05:00
Anmol Sethi
1948f243e4 Merge pull request #2404 from cdr/ipad-8a8b
doc/ipad.md: Add Servediter iPad App
2020-12-07 15:12:19 -05:00
Ben
ba3f0bb512 add initial codetour 2020-12-07 06:38:17 -08:00
JK
9e7e8c073d Update cloud program section of README 2020-12-05 01:30:31 +00:00
JK
4d295e3195 Modify link arg and its desc to not be beta 2020-12-05 01:23:48 +00:00
Anmol Sethi
eb4864f9a5 Merge pull request #2400 from cdr/HTTP_PROXY-7e1f
Use proxy-agent to support $HTTP_PROXY
2020-12-04 16:12:45 -05:00
Anmol Sethi
01323d799b doc/ipad.md: Add Servediter iPad App
Builds upon the previous commit.

Thanks @AckerApple
2020-12-04 14:55:24 -05:00
Acker Dawn Apple
c87357e916 Update guide.md (#2125) 2020-12-04 14:51:35 -05:00
Anmol Sethi
58bbf2584a proxy_agent.ts: Document why there is no $HTTPS_PROXY support 2020-12-04 13:52:52 -05:00
Anmol Sethi
a021bf5d35 Fix CI 2020-12-04 13:52:52 -05:00
Anmol Sethi
c15b526eff vscode: Fix exthost logging
Closes #2364
See #2366

cc @code-asher

My previous commit didn't fix anything but still good to update @coder/logger.
2020-12-04 13:52:52 -05:00
Anmol Sethi
8a3471cbc7 vscode: Fix @coder/logger version
The previously used version seems to be buggy. I was seeing undefined
errors when using a logger.named logger at level info.
2020-12-04 13:51:50 -05:00
Anmol Sethi
ca3af6dd38 vscode/coder.js: Remove unnecessary vs/css and vs/nls args
buildfile.entrypoint ignores all args now and is hard coded to use these
strings as exclude.
2020-12-04 13:51:50 -05:00
Anmol Sethi
9e44dd81ee vscode: Document argument to extensionHostProcess 2020-12-04 13:51:40 -05:00
Colton Saska
366d182a6a Add path to coder-logs in 'How do I debug...' section (#2389)
'How do I debug issues with code-server?` section of FAQ listed the logs for VS Code for #2. This commit includes the log location for code-server.
2020-12-04 12:45:58 -06:00
Anmol Sethi
6738cff544 media: Improve icon size (#2401)
See https://github.com/cdr/code-server/pull/2383#issuecomment-738024951
2020-12-04 11:31:45 -05:00
Anmol Sethi
a72c642125 proxy_agent.ts: Document that no other code passes in explicit agent
From my inspection as of this date anyway.
2020-12-04 02:34:43 -05:00
Anmol Sethi
691d44d4a8 Use proxy-agent to support $HTTP_PROXY
Closes #124

This works by monkey patching the http and https modules's default agent
at runtime to the one given by the proxy-agent package.
2020-12-04 02:34:43 -05:00
Anmol Sethi
cee88ad637 update.ts: Fix response memory leak 2020-12-04 02:34:43 -05:00
Anmol Sethi
67470f0254 node: coder-cloud -> coder_cloud
File names should not have dashes.
2020-12-04 02:34:43 -05:00
Anmol Sethi
6c67dc7ce1 doc/npm.md: Fix formatting 2020-12-04 02:34:18 -05:00
Anmol Sethi
9baf1e90ff Merge pull request #2399 from JammSpread/master
Tweak Coder Cloud logs
2020-12-04 02:11:50 -05:00
ed789d0
fac80918f5 npm.md: Remove the "install Xcode" bit
#2398
2020-12-04 02:11:24 -05:00
JK
04357ddd88 Remove logs mentioning --link being beta 2020-12-04 01:50:47 +00:00
JK
0d53441950 Add "disabled by --link" note to certificate arg 2020-12-04 01:45:20 +00:00
Anmol Sethi
3612076b89 Merge pull request #2386 from cdr/v3.7.4
v3.7.4
2020-12-01 20:40:26 -05:00
Anmol Sethi
11f53784c5 v3.7.4 2020-12-01 18:50:31 -05:00
Anmol Sethi
7e1bb8fc96 browser: Fix HTML formatting 2020-11-30 19:16:00 -05:00
Anmol Sethi
ebe4d7ef29 Revamp icons (#2383)
I took our website's SVG favicon and plopped it on a round
white rectangle in Affinity Designer. The I exported it as an SVG and
wrote a script that uses imagemagick to convert to the various sizes and
formats we need.

Closes #2307
2020-11-30 19:11:26 -05:00
Asher
f71d98f95c Only attach to orphaned terminals (#2382)
Fixes #2356.
2020-11-30 17:31:14 -06:00
Anmol Sethi
7fe475c1ef Merge pull request #2365 from cdr/disable-update-1d93
cli: Add --disable-update-check flag
2020-11-30 15:47:51 -05:00
Anmol Sethi
261af28f70 vscode: Fixes for linting 2020-11-30 15:39:57 -05:00
Anmol Sethi
0713fa900b vscode: Fix update check timeouts
Forgot an extra 60 in the check interval and the notification timeout.
Very unfortunate. Check has been allowed every 168 minutes instead of
every week.
2020-11-30 15:30:19 -05:00
Anmol Sethi
cc18175ce3 cli: Add --disable-update-check flag
Closes #2361
2020-11-30 15:30:06 -05:00
Anmol Sethi
27f0f195a8 vscode: Use options.base for update checking
See https://github.com/cdr/code-server/pull/2358#discussion_r529858749
2020-11-30 15:29:53 -05:00
Anmol Sethi
7282ebf436 Merge pull request #2381 from cdr/reconnect-6fa3
vscode: Reconnect in the background up to 5 seconds
2020-11-30 15:22:25 -05:00
Anmol Sethi
c35d558352 vscode: Reconnect in the background up to 5 seconds
Based on the previous commits by @mgmachado but simplified.

I also changed the threshold to error after a single attempt as the
connection has likely been borked and the user should be in the know if
they couldn't reconnect after 5 seconds.

Closes #1791
2020-11-30 13:59:40 -05:00
Anmol Sethi
8cb4e2c226 vscode: Remove background reconnection fixes from patch
I'll have to manually apply as they are not compatible with the latest
VS Code after rebase anymore.
2020-11-30 13:56:41 -05:00
Machado, Meygha
e5067ba2a9 separate event domain from UI 2020-11-30 13:56:41 -05:00
Machado, Meygha
fa0853dca6 revert reconnect wait times 2020-11-30 13:56:41 -05:00
Machado, Meygha
a898dd34b9 solution with forceDialog for attempt 3 and no change to VisibleProgress class 2020-11-30 13:56:41 -05:00
Machado, Meygha
4eb4375119 one working solution without event suppression 2020-11-30 13:56:41 -05:00
Machado, Meygha
290c533c8e turn off visibleProgress on ConnectionLost 2020-11-30 13:56:40 -05:00
Machado, Meygha
67e2a99df2 show popup on third attempt 2020-11-30 13:56:40 -05:00
Anmol Sethi
0ad7d93ea6 Merge pull request #2374 from cdr/lint-vscode-c2c2
vscode: Make eslint pass
2020-11-30 13:26:03 -05:00
Anmol Sethi
4cb8a32f4c ci: Fetch vscode node_modules in lint.sh for eslint 2020-11-29 21:05:11 -05:00
Anmol Sethi
833314aae8 vscode: Make eslint pass
I disabled code-layering and code-import-patterns as I don't think we
can make them easily pass as we reference all sorts of code from both
browser and node files. At least not worth the headache now to refactor
everything.
2020-11-27 08:21:44 -05:00
Anmol Sethi
5247878d93 ci: Enable vscode linting
Updates #2359
2020-11-27 08:20:31 -05:00
Asher
ae65c83cbd Fix exthost error and warn logging (#2366)
Previously anything that wasn't "log" such as "warn" would end up doing
`logger[logger.warn]`. Would have caught this if I hadn't used `any`...

Fixes #2364.
2020-11-26 17:58:34 -05:00
Anmol Sethi
eca4448877 Merge pull request #2360 from cdr/v3.7.3
v3.7.3
2020-11-24 14:32:57 -05:00
Anmol Sethi
93fb76e4a7 v3.7.3 2020-11-24 13:12:10 -05:00
Anmol Sethi
a1537d7138 Merge pull request #2358 from cdr/update-noti-45e1
vscode: Show notification when upgrade is available
2020-11-24 13:10:25 -05:00
Anmol Sethi
def81245a4 vscode: Check updates with absolute path
In case the window location path changes. Not entirely sure if it can
but best to be on the safe side.
2020-11-24 13:07:30 -05:00
Anmol Sethi
37c80c9bbd vscode: Add missing semicolons
See #2359
2020-11-24 12:48:22 -05:00
Anmol Sethi
be37821ab9 update.ts: Simplify comparison 2020-11-24 12:42:26 -05:00
Anmol Sethi
f74f1721e6 doc: Add note on upgrading into release notes and install.md
Closes #1652
Closes #2221
2020-11-24 12:42:26 -05:00
Anmol Sethi
fb63c0cd22 vscode: Show notification when upgrade is available
And link to the release notes.
2020-11-24 12:13:21 -05:00
Anmol Sethi
bb26d2edd3 Merge pull request #2357 from cdr/branding-0570
vscode: Customize welcome page for code-server
2020-11-24 11:58:31 -05:00
Anmol Sethi
303fe2bc4e vscode: Customize welcome page for code-server
- Title/subtitle are now code-server and VS Code version
- Added a list of code-server help links
2020-11-23 21:16:14 -05:00
Anmol Sethi
5a38ab95fe vscode: Disable go home button
See https://github.com/cdr/code-server/issues/2328
2020-11-23 21:16:14 -05:00
Anmol Sethi
19710ab144 vscode: Update product.json
The new fields are from vscodium and make the welcome page
documentation links work correctly.

I also renamed the distribution to "code-server" so that when you're
in a browser, it now says code-server instead of Code OSS.
2020-11-23 19:06:09 -05:00
Anmol Sethi
a018e30d6f Merge pull request #2348 from cdr/userdata
Use file system for user data
2020-11-23 13:57:55 -05:00
Asher
fb835838db Remove semver-umd link
This is included in the bundle now.
2020-11-20 15:35:18 -06:00
Asher
3d7fbec40f Use file system for settings and fix data home path
It's possible that using browser storage makes more sense with settings
sync, so we might want to revisit this once/if we get settings sync
working. As it currently is though, browser storage just causes jank.

The path was also missing a `User` at the end so I added that. This
might affect the Vim extension which would have been writing to the
wrong path previously but I don't believe it should affect anything
else since they would have been writing to browser storage.

- Fixes #2208
- Fixes #2231
- Fixes #2279
- Fixes #2274
2020-11-20 14:03:07 -06:00
Anmol Sethi
96170de191 Merge pull request #2342 from cdr/v3.7.2
v3.7.2
2020-11-19 18:22:45 -05:00
Anmol Sethi
2e2d03371f ci: Fix typo in release template 2020-11-19 18:03:12 -05:00
Anmol Sethi
a0db6723c1 v3.7.2 2020-11-19 17:28:22 -05:00
Asher
23ead21b1d Merge pull request #2340 from cdr/vscode-1.51.1
Update VS Code to 1.51.1
2020-11-19 15:52:40 -06:00
Asher
42390da097 Don't persist terminals for now 2020-11-19 15:51:37 -06:00
Asher
d0f6cbb02d Use resolverEnv to get exec path
This is the last unused variable in the create terminal payload.
2020-11-19 15:51:36 -06:00
Asher
fa59156a2a Implement remaining resolver methods 2020-11-19 15:51:35 -06:00
Asher
8ffe599796 Add notes on unimplemented terminal events 2020-11-19 15:51:34 -06:00
Asher
a6f8840009 Add timeout for disposing detached terminals 2020-11-19 15:51:33 -06:00
Asher
1feb30a7ff Send back workspace ID and name in terminal list
This makes it re-connect automatically.
2020-11-19 15:51:32 -06:00
Asher
182aca6490 Only replay terminals when detached 2020-11-19 15:51:31 -06:00
Asher
8311cf5657 Handle non-persistent terminals 2020-11-19 15:51:30 -06:00
Asher
4de2511162 Implement terminal replay event 2020-11-19 15:51:30 -06:00
Asher
3f7b91e2e2 Implement most of remote terminal service
It works, at least, but there are still some missing parts.
2020-11-19 15:51:29 -06:00
Asher
431137da45 Add new (unimplemented) terminal service 2020-11-19 15:51:28 -06:00
Asher
4d276b88c0 Add new logger service
The telemetry service depends on this now. I had to move it into
invokeFunction and use accessor.get otherwise getLogger on the service
was undefined.

I also had to move some the extension management service because it
depends on the moved telemetry service. I moved a few other services as
well to better match VS Code (sharedProcessMain.ts).

I swapped some this.services.get with accessor.get since that seems to
be the correct method although for these other services either method
seems to work.
2020-11-19 15:51:27 -06:00
Asher
e28c9ab287 Update VS Code to 1.51.1 2020-11-19 15:51:23 -06:00
Anmol Sethi
b540737b10 Merge pull request #2339 from cdr/ios-input-3cf7
login.css: Disable webkit appearance for input elements
2020-11-19 11:31:07 -05:00
Asher
4380356e0c Merge pull request #2334 from cdr/wrappers
Separate process wrappers and pass arguments
2020-11-19 10:28:54 -06:00
Asher
72caafe8b0 Fix service worker not loading (#2335)
I removed this under the impression the default was to allow it anywhere
but that's not the case. Since the service worker was already registered
in my browser I never got the error during testing.
2020-11-19 10:18:15 -06:00
Asher
08b9e9ad1f Merge pull request #2336 from cdr/webview-404
Fix 404 webviews and tar endpoint
2020-11-19 10:14:54 -06:00
Anmol Sethi
2dc7863ec3 login.css: Disable webkit appearance for input elements
Not sure why Safari does these things...

Closes #2247
2020-11-19 10:43:26 -05:00
Anmol Sethi
30100caf0c Revert "login.css: Fix button styling on iOS"
This reverts commit f79bb210ec.
2020-11-19 10:41:37 -05:00
Jacky
f79bb210ec login.css: Fix button styling on iOS 2020-11-19 10:37:51 -05:00
Asher
182791319a Fix tar authentication
It was checking the request path but for tars the path is in the query
variable so the request path is irrelevant.
2020-11-18 17:15:53 -06:00
Asher
624cd9d44f Fix webview 404s
An extra slash caused a 404 (was /webview//vscode-resource).
2020-11-18 17:10:53 -06:00
Asher
95ef6dbf2f Remove unused wrapper options
Also move our memory default to the beginning of NODE_OPTIONS so it can
be overidden. The version of the flag with dashes seems to be the more
correct one now so use that instead of underscores.

Related: #2113.
2020-11-18 13:23:06 -06:00
Asher
016daf2fdd Parse arguments once
Fixes #2316.
2020-11-18 13:01:46 -06:00
Asher
247c4ec776 Move onMessage so it can be used in the wrappers 2020-11-18 12:28:43 -06:00
Asher
d55e06936b Split child and parent wrappers
I think having them combined and relying on if statements was getting
confusing especially if we want to add additional messages with
different payloads (which will soon be the case).
2020-11-18 12:28:42 -06:00
Asher
2a3608df53 Skip heartbeat on /healthz endpoint (#2333)
I managed to lose this in the rewrite.

Fixes #2327.
2020-11-18 12:19:08 -06:00
piousdeer
c6062c3d0a Fix log message (#2331) 2020-11-18 10:41:32 -06:00
Anmol Sethi
9ff535eddc Merge pull request #2312 from cdr/v3.7.1
v3.7.1
2020-11-16 18:14:15 -05:00
Anmol Sethi
2bf91ff6a6 v3.7.1 2020-11-16 17:18:12 -05:00
Anmol Sethi
ccc519ecbd ci: Pin nfpm to v1.9.0
Closes #2310
2020-11-16 16:57:04 -05:00
Anmol Sethi
40e1f066ff ci: Improve release template (#2311) 2020-11-16 16:56:53 -05:00
Anmol Sethi
ac09aa6ea8 doc/ipad.md: Fix TOC 2020-11-16 15:40:28 -05:00
Anmol Sethi
f5e3dca3b9 Merge pull request #2309 from cdr/v3.7.0
v3.7.0
2020-11-16 15:33:17 -05:00
Anmol Sethi
f64599b94d ci: Update standalone build test
ms-toolsai.jupyter is now a dependency of ms-python and is installed
along with it.
2020-11-16 14:40:06 -05:00
Anmol Sethi
9917da068a v3.7.0 2020-11-16 11:11:50 -05:00
Anmol Sethi
8bf1bf2c9f helm: Use upgrade --install everywhere
See @sreya's review
2020-11-13 18:45:13 -05:00
Anmol Sethi
79e8f3dfdb ci: Only use helm kubeval if installed 2020-11-13 18:44:29 -05:00
Anmol Sethi
a37572d92d ci: Disable no-unused-vars for function args
See previous commit for failure introduced.
2020-11-13 18:44:28 -05:00
Anmol Sethi
40a7c11ce3 node/routes: Fix error handling
We should always send HTML if the user agent expects it.

If they do not, they should clearly indicate such via the Accept header.

Closes #2297
2020-11-13 18:44:28 -05:00
Anmol Sethi
7afa689285 Merge pull request #2303 from cdr/helm-db7f
Move helm from root and fix stuff in README
2020-11-13 18:40:03 -05:00
Anmol Sethi
f4d48bc880 ci: Remove helm validation action in favour of helm kubeval directly 2020-11-13 18:38:58 -05:00
Anmol Sethi
9af3671c05 helm: Add link in install.md 2020-11-13 18:38:58 -05:00
Anmol Sethi
248c2adb2e helm: Fix README examples
Not sure where --name came from? Maybe an older version of helm.

Ah, it's from v2.16.7
2020-11-13 18:38:58 -05:00
Anmol Sethi
52ea32f4a7 helm: Move chart into ci/helm-chart 2020-11-13 17:27:52 -05:00
Anmol Sethi
affa64c89c Merge pull request #2048 from Matthew-Beckett/feature/helm3
Update Kubernetes Helm Chart
2020-11-13 16:39:13 -05:00
Asher
5e603056fd Merge pull request #2238 from cdr/code-asher/ch1385 2020-11-12 14:04:04 -06:00
Asher
9889f30224 Remove unused ts-expect-error from VS Code
I'm not sure why other builds are passing with this still in.
2020-11-12 12:30:41 -06:00
Asher
96995b78d1 Update cert flag test 2020-11-12 12:29:41 -06:00
Asher
6f14b8b8dd Add separate handler for error
Feels like it parallels better with the other handlers.
2020-11-12 12:07:45 -06:00
Asher
b73ea2fea2 Unbind message handler itself after getting message
Also switch `once` to `on` since we `off` them later anyway so no point
in making Node do it twice.
2020-11-12 12:03:28 -06:00
Asher
e1702a1d21 Merge branch master into code-asher/ch1385 2020-11-12 11:52:02 -06:00
Asher
5499a3d125 Use baseUrl when redirecting from domain proxy
This will make the route more robust since it'll work under more than
just the root.
2020-11-12 11:23:52 -06:00
Asher
31b67062b0 Remove <type> from onMessage
Turns out that while Typescript can't infer the callback return type
from it, Typescript can do the opposite and infer it from the callback
return type.
2020-11-12 11:17:45 -06:00
Asher
72931edcf0 Fix cleanup after getting message from vscode 2020-11-12 11:16:21 -06:00
Asher
79478eb89f Clarify some points around the cookie domain
Also add a check that the domain has a dot. This covers the localhost
case as well, so remove that.
2020-11-10 18:53:38 -06:00
Asher
4574593664 Refactor vscode init to use async
Hopefully is a bit easier to read.
2020-11-10 18:21:20 -06:00
Asher
71850e312b Avoid setting ?to=/
That's the default so it's extra visual noise.
2020-11-10 18:14:18 -06:00
Asher
b8340a2ae9 Close sockets correctly 2020-11-10 17:55:04 -06:00
Asher
f706039a9d Re-add TLS socket proxy 2020-11-10 17:55:03 -06:00
Asher
de4949571c Document getFirstPath better 2020-11-10 17:02:39 -06:00
Asher
0a01338edd Deduplicate child process message dance 2020-11-10 16:36:46 -06:00
Matthew Beckett
aa7415a479 Update CODEOWNERS file 2020-11-10 20:37:14 +00:00
Matthew Beckett
10799aa1ec Bump chart app version 2020-11-10 20:10:50 +00:00
Matthew Beckett
0e39bb9f2c Fix trailing line breaks 2020-11-10 20:09:48 +00:00
Matthew Beckett
03aa7709ca Add maintainers 2020-11-10 20:09:13 +00:00
Matthew Beckett
77c2a72cf8 Bump version and update README 2020-11-10 20:07:38 +00:00
Matthew Beckett
f3d7d3f616 Merge branch 'master' into feature/helm3 2020-11-10 19:08:53 +00:00
Ben Potter
da6000b96f Add Slack link to issue template (#2282) 2020-11-10 14:00:05 -05:00
Anmol Sethi
d969a5bd6b Merge pull request #2252 from cdr/plugin-5d60
Plugin API to add more applications to code-server
2020-11-06 14:49:00 -05:00
Anmol Sethi
fe399ff0fe Fix formatting 2020-11-06 14:47:08 -05:00
Anmol Sethi
277211c4ce plugin: Make init and applications callbacks optional 2020-11-06 14:47:08 -05:00
Anmol Sethi
9d39c53c99 plugin: Give test-plugin some html to test overlay 2020-11-06 14:47:08 -05:00
Anmol Sethi
197a09f0c1 plugin: Test endpoints via supertest
Unfortunately we can't use node-mocks-http to test a express.Router
that has async routes. See https://github.com/howardabrams/node-mocks-http/issues/225

router will just return undefined if the executing handler is async and
so the test will have no way to wait for it to complete. Thus, we have
to use supertest which starts an actual HTTP server in the background
and uses a HTTP client to send requests.
2020-11-06 10:13:01 -05:00
Anmol Sethi
9453f891df plugin.ts: Fix usage of routerPath in mount 2020-11-06 10:13:01 -05:00
Anmol Sethi
14f408a837 plugin: Plugin modules now export a single top level identifier
Makes typing much easier. Addresse's Will's last comment.
2020-11-06 10:13:01 -05:00
Anmol Sethi
8a8159c683 plugin: More review fixes
Next commit will address Will's comments about the typings being weird.
2020-11-06 10:13:01 -05:00
Anmol Sethi
706bc23f04 plugin: Fixes for CI 2020-11-06 10:13:01 -05:00
Anmol Sethi
af73b96313 routes/apps.ts: Add example output 2020-11-06 10:12:47 -05:00
Anmol Sethi
2a13d003d3 plugin.ts: Add homepageURL to plugin and application 2020-11-06 10:12:47 -05:00
Anmol Sethi
687094802e plugin.ts: Make application endpoint paths absolute 2020-11-06 10:12:46 -05:00
Anmol Sethi
139a28e0ea plugin.ts: Describe private counterpart functions
Addresses Will's comments.
2020-11-06 10:12:46 -05:00
Anmol Sethi
e03bbe3149 routes/apps.ts: Implement /api/applications endpoint 2020-11-06 10:12:46 -05:00
Anmol Sethi
afff86ae9c plugin.ts: Adjust to implement pluginapi.d.ts correctly 2020-11-06 10:12:46 -05:00
Anmol Sethi
fed545e67d plugin.d.ts -> pluginapi.d.ts
More clear.
2020-11-06 10:12:46 -05:00
Anmol Sethi
6638daf6f0 plugin.d.ts: Add explicit path field and adjust types to reflect
See my discussion with Will in the PR.
2020-11-06 10:12:46 -05:00
Anmol Sethi
8d3a7721fe plugin.d.ts: Document plugin priority correctly 2020-11-06 10:12:46 -05:00
Anmol Sethi
75e52a3774 plugin.ts: Fixes for @code-asher 2020-11-06 10:12:46 -05:00
Anmol Sethi
f4d7f00033 plugin.ts: Fixes for @wbobeirne 2020-11-06 10:12:46 -05:00
Anmol Sethi
ef971009d9 plugin.test.ts: Make it clear iconPath is a path 2020-11-06 10:12:46 -05:00
Anmol Sethi
30d2962e21 src/node/plugin.ts: Warn on duplicate plugin and only load first 2020-11-06 10:12:46 -05:00
Anmol Sethi
82e8a00a0d Fix CI 2020-11-06 10:12:46 -05:00
Anmol Sethi
bea185b8b2 plugin: Add basic loading test
Will work on testing overlay next.
2020-11-06 10:12:46 -05:00
Anmol Sethi
e08a55d44a src/node/plugin.ts: Implement new plugin API 2020-11-06 10:12:45 -05:00
Anmol Sethi
481df70622 ci/dev/test.sh: Pass through args 2020-11-06 10:11:57 -05:00
Anmol Sethi
aa2cfa2c17 typings/plugin.d.ts: Create 2020-11-06 10:11:57 -05:00
Asher
959497067c Document HttpError
Also type the status.
2020-11-05 17:07:58 -06:00
Asher
f7076247f9 Move domain proxy to routes
This matches better with the other routes.

Also add a missing authentication check to the path proxy web socket.
2020-11-05 17:07:32 -06:00
Asher
f6c4434191 Tweak proxy fallthrough behavior
It will now redirect all HTML requests. Also it avoids req.accepts since
that's always truthy.
2020-11-05 16:49:30 -06:00
Asher
cb991a9143 Handle errors for JSON requests
Previously it would have just given them the error HTML.
2020-11-05 15:19:56 -06:00
Asher
3f1750cf83 Fix destroying response in update again
I added another reject that doesn't destroy the response.
2020-11-05 15:08:10 -06:00
Asher
7b2752a62c Move websocket routes into a separate app
This is mostly so we don't have to do any wacky patching but it also
makes it so we don't have to keep checking if the request is a web
socket request every time we add middleware.
2020-11-05 15:08:09 -06:00
Asher
9e09c1f92b Upgrade to Express 5
Now async routes are handled!
2020-11-05 15:08:08 -06:00
Asher
8252c372af Provide a way to tell when event handlers are finished
This lets us actually wait for disposal before a graceful exit.
2020-11-05 15:08:07 -06:00
Asher
396af23842 Kill VS Code when process exits
This is to ensure it doesn't hang around.
2020-11-04 17:07:41 -06:00
Asher
34225e2bdf Use ensureAuthenticated as middleware 2020-11-04 17:07:40 -06:00
Asher
476379a77e Fix cookie domain
Had double Domain=
2020-11-04 17:07:39 -06:00
Asher
210fc049c4 Document VS Code endpoints 2020-11-04 17:07:39 -06:00
Asher
e5c8e0aad1 Remove useless || 2020-11-04 17:07:38 -06:00
Asher
c5ce365482 Use query variable to force update check 2020-11-04 17:07:37 -06:00
Asher
a653b93ce2 Include protocol on printed address
This makes it clickable from the terminal.
2020-11-04 17:07:36 -06:00
Asher
e2c35facdb Remove invalid comment on maybeProxy
It no longer handles authentication.
2020-11-04 17:07:35 -06:00
Asher
75b93f9dc5 Fix bind address priority
Broke when converting to a loop.
2020-11-04 17:07:24 -06:00
Jon Ayers
1eebde56ab Specify that Coder Alpha requires v3.6.2 (#2270) 2020-11-03 18:03:28 -06:00
Asher
e27188c2f9 Merge pull request #2268 from cdr/update-alpha
Update README Alpha section to remove reference to typeform
2020-11-03 17:33:02 -06:00
Jon Ayers
ddbac8dd78 Update README Alpha section to remove reference to typeform 2020-11-03 23:31:08 +00:00
Asher
8066da12fe Remove unused Locals interface 2020-11-03 15:37:22 -06:00
Asher
03e0013112 Unbind error/exit events once handshakes resolve 2020-11-03 15:27:21 -06:00
Asher
e243f6e369 Return early when forking to reduce indentation 2020-11-03 15:27:21 -06:00
Asher
c10450c4c5 Move isFile into util
That allows its use in entry.ts as well.
2020-11-03 15:27:20 -06:00
Asher
c72c53f64d Fix not being able to dispose vscode after failed disposal 2020-11-03 14:36:27 -06:00
Asher
f4e5855318 Simplify update request 2020-11-03 14:35:23 -06:00
Asher
3a074fd844 Skip unnecessary auth type check when using --link 2020-11-03 14:30:34 -06:00
Asher
8a9e61defb Use Addr interface everywhere and loop over arg sources 2020-11-03 14:28:49 -06:00
Asher
1067507c41 Proxy to 0.0.0.0 instead of localhost 2020-11-03 14:28:48 -06:00
Anmol Sethi
f9e0990594 Merge pull request #2255 from cdr/self-signed-3b2c
Fix self signed certificate for iPad
2020-11-03 14:04:47 -05:00
Anmol Sethi
c07296cce0 docs: Add known issues to iPad docs and add more links to iPad docs
Closes #1816
2020-11-03 14:04:19 -05:00
Anmol Sethi
31306f7fdd docs: Add iPad self signed certificate documentation
Closes #1816
Closes #1566
2020-11-03 14:04:19 -05:00
Matthew Beckett
7affce5801 Merge branch 'v3.6.2' into feature/helm3 2020-11-03 12:28:29 +00:00
Asher
37b87dd2b8 Merge pull request #2264 from cdr/v3.6.2
v3.6.2
2020-11-02 18:07:53 -06:00
Asher
9bde62fbd6 v3.6.2 2020-11-02 17:17:25 -06:00
Asher
6fbbb1047f fmt 2020-11-02 17:17:09 -06:00
Asher
e07a591745 Catch cloud agent download failure
- See #2251 and #2229.
2020-11-02 16:48:25 -06:00
Asher
676c7bf915 Merge pull request #2250 from cdr/disconnects
Experimental initial connection fix
2020-11-02 16:46:14 -06:00
Asher
9ad7d0b7a3 Fix potential 500 when loading in parallel 2020-10-30 16:16:46 -05:00
Asher
07e7c38ea2 Immediately pause web socket
This will buffer any data sent to it until something is ready to listen
on it.
2020-10-30 16:16:46 -05:00
Asher
0b9af6ef67 Initiate connection handshake from server
This way the connection can be initiated by either side. It looks like
sometimes the initial message from the client is lost (it never makes it
into the onControlMessage callback) but I'm still not sure why or if
that is preventable.

Also added a timeout on the server end to clean things up in case the
client never responds.
2020-10-30 16:16:45 -05:00
Asher
c63dc3a1ea Add more logging around connections 2020-10-30 16:16:44 -05:00
Anmol Sethi
a1b61d1659 src/node/util.ts: Mark generated certificates as CA
Required for access under iPad.
2020-10-30 13:36:53 -04:00
Anmol Sethi
bae28727bd src/node/cli.ts: Add --cert-host to configure generated certificate hostname 2020-10-30 13:36:53 -04:00
Anmol Sethi
8b85006996 src/node/util.ts: Make certificate generation "modern"
Now we add a subject alt name, set extendedKeyUsage and use the
correct certificate extension.

The above allow it to be properly trusted by iOS.

See https://support.apple.com/en-us/HT210176

*.cert isn't a real extension for certificates, *.crt is correct
for it to be recognized by e.g. keychain or when importing as a profile
into iOS.

Updates #1566

I've been able to successfully connect from my iPad Pro now to my
code-server instance with a self signed certificate! Next commit
will be docs.
2020-10-30 13:36:53 -04:00
Anmol Sethi
10b3028196 util: Generate self signed certificate into data directory
Closes #1778
2020-10-30 13:36:53 -04:00
Katie Horne
860c99e3b8 Docs copyedits: README.md + CONTRIBUTING.md (#2242)
* Edit README

* Edit CONTRIBUTING

* Format CONTRIBUTING.MD

* Incorporate feedback

* Revert movement of CONTRIBUTING.MD and format
2020-10-29 17:21:47 -04:00
Asher
f2f1fee6f1 Short-circuit heartbeat when alive 2020-10-27 17:48:37 -05:00
Asher
504d89638b Fix open line being printed when open fails
Opening the URL can fail if the user doesn't have something appropriate
installed to handle it.
2020-10-27 17:43:11 -05:00
Asher
dc177ab505 Unambiguify address replacement
Co-authored-by: Teffen Ellis <TeffenEllis@users.noreply.github.com>
2020-10-27 17:38:54 -05:00
Asher
cde94d5ed4 Remove redundant serverAddress check
We now guarantee there is an address.
2020-10-27 17:35:42 -05:00
Asher
305348f0ac Improve proxy fallthrough logic
- Use accept header.
- Match /login and /login/ exactly.
- Match /static/ (trailing slash).
- Use req.path. Same result but feels more accurate to me.
2020-10-27 17:31:37 -05:00
Asher
6ab6cb4f07 Fix error handler types 2020-10-27 17:20:13 -05:00
Asher
6422a8d74b Fix webview resource path 2020-10-27 17:17:05 -05:00
Asher
257d9a4fa4 Make authentication work with sub-domain proxy 2020-10-26 17:56:14 -05:00
Asher
112eda4605 Convert routes to Express 2020-10-26 17:56:13 -05:00
Asher
4b6cbacbad Add file for global constants 2020-10-26 17:56:12 -05:00
Asher
71dc5c7542 Switch to Express
It doesn't do anything yet.
2020-10-26 17:56:11 -05:00
Asher
7e1e9d1249 Merge pull request #2205 from cdr/v3.6.1
v3.6.1
2020-10-23 17:04:33 -05:00
Asher
62735da694 v3.6.1 2020-10-23 15:21:50 -05:00
Anmol Sethi
6cc1ee1b00 Merge pull request #2220 from cdr/remote-install-5bc0
install.sh: Allow customizing remote shell for remote installation
2020-10-23 12:07:35 -04:00
Anmol Sethi
79443c14ff release-image: Remap UID within the image before handling $DOCKER_USER (#2223)
If do not update the UID within the passwd database to match whatever
uid the container is being ran as, then sudo will not work when renaming
the user to match $DOCKER_USER as it will complain about the current
user being non-existent.
2020-10-23 12:07:08 -04:00
Anmol Sethi
a0b7bf2180 install.sh: Default $RSH to ssh 2020-10-22 02:17:12 -04:00
Anmol Sethi
30f3030530 install.sh: Allow customizing remote shell with --rsh 2020-10-22 02:17:12 -04:00
Anmol Sethi
759a78d9d8 install.sh: Rename SSH_FLAGS to RSH_FLAGS 2020-10-22 02:17:12 -04:00
Anmol Sethi
7093f99a78 Merge pull request #2218 from cdr/whoami-c324
Remove unnecessary whoami
2020-10-22 01:41:17 -04:00
Anmol Sethi
bca1bcfc03 Fix README formatting 2020-10-21 16:45:53 -04:00
Anmol Sethi
4a3d2e5a94 Remove unnecessary whoami
Closes #2213
2020-10-21 16:40:25 -04:00
Asher
14287df655 Merge pull request #2204 from cdr/vscode-1.50.0 2020-10-21 14:14:51 -05:00
Asher
8e93e28162 Strip config file password from debug log 2020-10-20 16:18:28 -05:00
Asher
9f25cc6d5d Move providers from app to routes 2020-10-20 16:18:27 -05:00
Asher
6000e389bc Add Express as a dep and regenerate lockfile
The Express types were throwing errors but regenerating the lockfile
resolved them.
2020-10-20 16:18:26 -05:00
Asher
2928d362fa Move heart and AuthType out of http
This file is going to get blasted in favor of Express.
2020-10-20 16:18:24 -05:00
Asher
dcb303a437 Move argument defaults into setDefaults 2020-10-20 16:15:13 -05:00
Asher
daf204eeda Exclude browser-supported remote extensions
Removing them just for peace of mind even though they seem to get
filtered out later. This line is meant to only add remote extensions
that aren't capable of running in the browser. If they are
browser-capable they don't need to run in our shimmed Node environment.
2020-10-14 17:36:47 -05:00
Asher
f20f7ac166 Move extension fetch to main thread
This makes the fetch work independently of the worker's origin which is
no longer the same as the main thread (the main problem is the inability
to send cookies without setting SameSite to None).
2020-10-14 17:11:25 -05:00
Asher
a7c43a8eb6 Remove CSP tag from VS Code html
This matches with the html in the VS Code repo and also fixes a problem
with the worker which loads HTML using data: and then can't load any
scripts because 'self' doesn't work.
2020-10-14 17:11:24 -05:00
Asher
30d05aeb4b Update require base URL for VS Code loader
It needs to have the scheme otherwise when resolving these modules the
loader will default to the file scheme and fail to fetch.
2020-10-14 17:11:24 -05:00
Asher
07580e1fcb Add path to loader for tas-client-umd
It's a new module used by 1.50.0.
2020-10-14 17:11:23 -05:00
Asher
e3699cf258 Update VS Code to 1.50.0
- The .js build files are no longer committed so they're gone.
- ParsedArgs and EnvironmentService are now NativeParsedArgs and
  NativeEnvironmentService.
- Interface for environment service was moved.
- getPathFromAmdModule was deprecated.
2020-10-14 17:11:22 -05:00
Ammar Bandukwala
2a22676d93 Merge pull request #2202 from ammario/link
Add Coder Cloud alpha sign up link
2020-10-13 18:39:32 -05:00
Ammar Bandukwala
36b3183b75 Add Coder Cloud alpha sign up link 2020-10-13 23:38:27 +00:00
Matthew Beckett
d7cba30c6a Merge branch 'master' into feature/helm3 2020-10-13 14:29:43 +01:00
Matthew Beckett
30fafc8937 Merge pull request #15 from hammady/feature/helm3
Add support for hostPath volumes
2020-10-13 14:28:48 +01:00
Asher
ec564091f1 Fix agent copy during release
If there isn't a lib dir yet it'll copy as lib instead of getting put
inside the directory.
2020-10-12 17:29:39 -05:00
Hossam Hammady
83465a2f4f Simplify data volume mount 2020-10-12 12:50:43 +00:00
Hossam Hammady
b4fd47b5af Add support for hostPath volumes 2020-10-12 11:59:53 +00:00
Matthew Beckett
3570ff796d Merge pull request #14 from hammady/feature/helm3
Merge hammady/code-server/feature/helm3 into Matthew-Beckett/code-server/feature/helm3
2020-10-12 12:02:40 +01:00
Hossam Hammady
fd241d555b Fix indentation for extra mounts 2020-10-12 10:49:21 +00:00
Hossam Hammady
d323f4f75b Add missing existingClaim in values.yaml comments 2020-10-12 10:46:52 +00:00
Hossam Hammady
40b1efa142 Add echo command in NOTES to get password 2020-10-12 10:45:26 +00:00
Anmol Sethi
ea105a9290 Fix release image entrypoint.sh 2020-10-12 04:26:36 -04:00
Anmol Sethi
e453d3107d Merge pull request #2193 from cdr/v3.6.0
v3.6.0
2020-10-12 04:02:44 -04:00
Anmol Sethi
a4a03c1492 Fix CI 2020-10-12 03:08:24 -04:00
Anmol Sethi
d7ba9ae633 v3.6.0 2020-10-12 01:18:55 -04:00
Anmol Sethi
00383b79b9 Merge pull request #2099 from cdr/open-in
Make opening in an existing instance work outside code-server
2020-10-12 01:14:15 -04:00
Asher
c6ba12942c Filter blank plugin directories (#2187)
I neglected to realize that "".split(":") is an array with "" in it.
2020-10-11 02:14:43 -04:00
Asher
d7e3112625 Update standalone test 2020-10-09 18:01:43 -05:00
Asher
26c735b434 Remove tryParse
Now that the exception handling happens further up there doesn't seem to
be an advantage in having this in a separate method.
2020-10-09 17:05:21 -05:00
Asher
466a04f874 Remove pointless use of openInFlagCount
It'll always be zero here.
2020-10-09 16:57:45 -05:00
Asher
e0769dc13a Move config file info log
Otherwise it outputs when trying to open a file in an existing instance
externally. Externally there isn't an environment variable to branch on
to skip this line so instead output it with the other info lines in the
child process.
2020-10-09 16:57:44 -05:00
Asher
fe19391c03 Read most recent socket path from file 2020-10-09 16:57:43 -05:00
Asher
021c084e43 Move log level defaults into setDefaults
This will allow cliArgs to be only the actual arguments the user passed
which will be used for some logic around opening in existing instances.
2020-10-09 16:57:42 -05:00
Asher
1902296702 Remove references to --open-in flag 2020-10-09 16:57:41 -05:00
Asher
bb1bf88439 Fix wrapper.start not actually waiting for anything 2020-10-09 16:57:41 -05:00
Asher
0a8e71c647 Refactor wrapper
- Immediately create ipcMain so it doesn't have to be a function which I
  think feels cleaner.
  - Move exit handling to a separate function to compensate (otherwise
    the VS Code CLI for example won't be able to exit on its own).
- New isChild prop that is clearer than checking for parentPid (IMO).
- Skip all the checks that aren't necessary for the child process (like
  --help, --version, etc).
  - Since we check if we're the child in entry go ahead and move the
    wrap code into entry as well since that's basically what it does.
- Use a single catch at the end of the entry.
- Split out the VS Code CLI and existing instance code into separate
  functions.
2020-10-09 16:57:40 -05:00
Asher
6bdaada689 Move uncaught exception handler to wrapper
Feels more appropriate there to me.
2020-10-09 16:50:24 -05:00
Anmol Sethi
811cf3364a install.sh: Allow installing directly onto a remote host (#2183)
Updates #1729

To fully close that issue see the various TODOs.
2020-10-09 15:33:58 -04:00
Anmol Sethi
64a6a460c8 Adjust npm package postinstall to install extension dependencies (#2180)
Closes #1961
2020-10-09 15:00:49 -04:00
Anmol Sethi
1e4e72aa5b Merge pull request #2184 from nhooyr/link-flag-1547
cloud: Rename --coder-bind to --link
2020-10-09 13:53:55 -04:00
Anmol Sethi
fcfb03382a cloud: Add mention of cloud repo 2020-10-09 12:57:48 -04:00
Anmol Sethi
d67bd3f604 cloud: Rename --coder-bind to --link 2020-10-09 12:57:20 -04:00
Anmol Sethi
2d1de749f4 Unlink socket before using (#2181)
See https://stackoverflow.com/a/34881585/4283659

Closes #1538
2020-10-09 12:34:52 -04:00
Asher
c6c293d53a Merge pull request #2147 from cdr/multi-plugin 2020-10-09 11:02:25 -05:00
Anmol Sethi
daa1c86fe0 Merge pull request #2086 from nhooyr/master
Integrate Coder Cloud Agent
2020-10-09 07:52:09 -04:00
Anmol Sethi
9002f118c3 Remove the extra releases for autoupdating purposes 2020-10-09 07:50:58 -04:00
Anmol Sethi
a5b6d080bd Add CS_BETA and note --coder-bind is in beta 2020-10-09 07:50:51 -04:00
Anmol Sethi
9ff37977a8 Make --coder-bind disable HTTPS 2020-10-09 07:39:10 -04:00
Anmol Sethi
f5489cd3a0 Hide -coder-bind for now 2020-10-09 07:38:38 -04:00
Asher
c86d7398ab Use system data directory for plugins 2020-10-08 16:18:31 -05:00
Asher
9f963c7e66 Update Node to 12.18.4 (#2175) 2020-10-08 16:15:05 -05:00
Anmol Sethi
8063c79e44 Patch VS Code to avoid deleting extension dependencies (#2170)
Closes #1961
2020-10-08 16:55:13 -04:00
Anmol Sethi
febf4ead96 Fix the clean script
🤦
2020-10-07 17:40:19 -04:00
Anmol Sethi
3e28ab85a0 Add debug log for options passed to the agent 2020-10-07 17:40:19 -04:00
Anmol Sethi
85b0804be5 Remove cliArgs from main
No purpose when all the args are in the args parameter.

We only need configArgs for bindAddrFromAllSources.
2020-10-07 17:40:19 -04:00
Anmol Sethi
ebbcb8d6a7 Update yarn.lock 2020-10-07 17:40:19 -04:00
Anmol Sethi
df3089f3ad coder-cloud: Use consolidated bind command 2020-10-07 17:40:19 -04:00
Anmol Sethi
7cc16ceb3a Document KEEP_MODULES 2020-10-07 16:16:01 -04:00
Anmol Sethi
bfe731f4f3 Ensure socket is undefined with --coder-bind 2020-10-07 16:16:01 -04:00
Anmol Sethi
c4f1c053bf Show valid values for --auth in --help
See https://github.com/nhooyr/code-server/pull/1/files#r485847134
2020-10-07 15:58:30 -04:00
Anmol Sethi
4b3c089630 Remove dead code 2020-10-07 15:58:30 -04:00
Anmol Sethi
1c16814a89 Update coder-bind docs 2020-10-07 15:58:30 -04:00
Anmol Sethi
c3c24fe4d2 Fixes for @ammarb 2020-10-07 15:58:30 -04:00
Anmol Sethi
6e8248cf0c Fix zip release creation 2020-10-07 15:58:30 -04:00
Anmol Sethi
dd996d8f60 v3.6.0 2020-10-07 15:58:30 -04:00
Anmol Sethi
fae07e14fb Fix Go inside dev image 2020-10-07 15:58:30 -04:00
Anmol Sethi
c308ae0edd Ignore dirty lib/vscode 2020-10-07 15:58:30 -04:00
Anmol Sethi
9035bfa871 Add coder cloud agent binary to build process 2020-10-07 15:58:30 -04:00
Anmol Sethi
22c4a7e10f Make linking and starting code-server to the cloud a single command 2020-10-07 15:58:30 -04:00
Anmol Sethi
607444c695 Switch off debian:8 to debian:10 for the typescript build image
We only want to use an old version for glibc which the centos:7
image takes care of.

The old version of git used in debian:8 was causing problems
with the uid/gid passthrough with no user in passwd.
2020-10-07 15:58:30 -04:00
Anmol Sethi
b22f3cb72f Add $HOME to ./ci/dev/image/run.sh 2020-10-07 15:58:30 -04:00
Anmol Sethi
eacca7d692 Unrelated fixes for CI 2020-10-07 15:58:30 -04:00
Anmol Sethi
0aa98279d6 Fixes for CI 2020-10-07 15:58:30 -04:00
Anmol Sethi
55a7e8b56f Implement automatic cloud proxying 2020-10-07 15:58:30 -04:00
Anmol Sethi
916e24e109 Add support for multiline descriptions 2020-10-07 15:58:30 -04:00
Anmol Sethi
c7c62daa67 Remove unused code in optionDescriptions 2020-10-07 15:58:30 -04:00
Anmol Sethi
579bb94a6c Add coder cloud expose command 2020-10-07 15:58:30 -04:00
Asher
a44b4455f5 Read plugin name from package.json 2020-10-07 12:54:48 -05:00
Asher
548a35c0ee Merge pull request #2146 from cdr/listen 2020-10-07 12:50:54 -05:00
Asher
402f5ebd77 Update VS code to 1.49.3 (#2081) 2020-10-07 12:37:37 -05:00
Asher
c2ac126a50 Log all plugin errors as errors 2020-10-07 12:25:42 -05:00
Anmol Sethi
b3811a67e0 Add $KEEP_MODULES argument to build-release.sh (#2167) 2020-10-07 13:24:31 -04:00
Asher
ddda280df4 Rename plugin vars and make both colon-separated
Only one was colon separated but now they both are.
2020-10-07 12:18:57 -05:00
Ben Potter
b415b7524f Add social badges (#2142) 2020-10-06 16:29:53 -05:00
Asher
7a982555a8 Add version to plugin load log 2020-09-30 15:52:40 -05:00
Asher
e64b186527 Add variables to better customize plugin directories 2020-09-30 15:52:39 -05:00
Asher
11eaf0b470 Fix being unable to use [::] for the host
Fixes #1582.
2020-09-30 12:49:36 -05:00
Asher
8b5deac92b Fix 80 getting dropped from bind-addr 2020-09-30 11:57:23 -05:00
Asher
9d87c5328c Add robots.txt (#2080)
Closes #1886.
2020-09-14 17:34:48 -05:00
Anmol Sethi
cc5ed1eb57 Allow installing extensions from the CLI while $VSCODE_IPC_HOOK_CLI
Closes #2083
2020-09-11 11:49:22 -04:00
David Harkness
e998dc1e82 Minor readme grammar fixes (#2074) 2020-09-10 18:01:39 -05:00
Asher
ffe6a663aa Add /vscode to nls fetch
A plugin may modify the root endpoint which will make /resource no
longer work so always use /vscode/resource instead.
2020-09-09 12:05:44 -05:00
Asher
938b460685 Add trailing slash to service worker scope
This will ensure it always matches or is underneath the allowed service
worker scope.

Fixes #2076.
2020-09-09 12:05:04 -05:00
Asher
fef619aef8 Fix incorrect login script src path 2020-09-08 14:06:41 -05:00
Asher
0a2328c1f6 Don't require auth for healthz (#2055)
* Don't require authentication for healthz endpoint

* Add FAQ entry for /healthz
2020-09-08 13:59:01 -05:00
Asher
e44e574ce1 Fix language packs (#2058)
* Fix incorrect nls.json fetch

When moving this out of the HTML I didn't remove {{BASE}}.

* Fix language package installation

Updates #2046.
2020-09-04 10:10:40 -05:00
Anmol Sethi
7991e09bbc Skip update tests (#2059)
We don't use auto updating anymore and the tests are randomly failing
so just disabling for now.
2020-09-04 06:30:15 -04:00
Anmol Sethi
9fb318cf15 docker: Fix $DOCKER_USER (#2057)
We do not try renaming $HOME anymore as there is no good way
to do it.

We also only try to convert if the user hasn't been changed.

Finally I added usage to the docker docs in install.md

Closes #2056
2020-09-03 18:38:40 -04:00
Asher
4a250be79a Use --full-index for patch
This should eliminate potential noise in the diffs for the patch since
different versions seem to default to different hash lengths.
2020-09-03 14:32:51 -05:00
Asher
3761f7bd51 Patch VS Code to wait for storage write (#2049)
VS Code has a short delay before writing storage (probably to queue up
rapid changes). In the web version of VS Code this happens on the client
which means if the page is reloaded before the delay expires the write
never happens.

Storage updates are already promises so this simply returns the promise
returned by the delayer so it won't resolve until the write actually
happens.

Fixes #2021.
2020-09-03 13:57:46 -05:00
Anmol Sethi
ceceef1dae Add documentation issue template 2020-09-03 14:56:24 -04:00
Matthew Beckett
e858d11279 Merge branch 'master' into feature/helm3 2020-09-03 15:02:25 +01:00
Anmol Sethi
35a2d71b67 Minor release process fixes (#2042) 2020-09-03 02:16:57 -04:00
Matthew Beckett
96a78c98d1 Add checkout of repo 2020-09-02 22:26:06 +01:00
Matthew Beckett
70b73d7cb9 Add kubernetes version environment variable 2020-09-02 22:24:24 +01:00
Matthew Beckett
8fe7986d0d Add kubeval workflow 2020-09-02 22:19:56 +01:00
Matthew Beckett
559d05bb7b Update readme and service port 2020-09-02 22:02:37 +01:00
Matthew Beckett
341cb342b2 Patch helm chart to stable with v3.5.0 2020-09-02 21:53:52 +01:00
Matthew Beckett
34f8c77a03 Change service default to ClusterIP and add helmignore 2020-09-02 21:05:57 +01:00
Matthew Beckett
d33df75662 Add updated Helm chart 2020-09-02 21:00:12 +01:00
Matthew Beckett
85d5858b1d Remove Kubernetes native manifests 2020-09-02 20:43:57 +01:00
Matthew Beckett
1b6ddb66f0 Re-commit 0f1bbc 2020-09-02 20:41:58 +01:00
Asher
617cd38c71 Fix my bad conflict resolution from the github ui 2020-08-31 11:10:12 -05:00
Jacob Goldman
75c8fdeed2 Added /healthz JSON response for heartbeat data. #1940 (#1984) 2020-08-31 10:29:12 -05:00
Anmol Sethi
de41646fc4 Fix path of systemd system service in nfpm 2020-08-31 05:22:52 -04:00
Anmol Sethi
882a2bfd5a Merge pull request #2024 from cdr/v3.5.0
v3.5.0
2020-08-31 04:55:25 -04:00
Anmol Sethi
b509063e14 v3.5.0 2020-08-29 17:23:20 -04:00
Anmol Sethi
1a82b2138d Revert accidental version update 2020-08-29 17:17:49 -04:00
Anmol Sethi
ada69969ac Link to code-server job listing (#2019) 2020-08-28 18:39:51 -04:00
Siva
3f508e5e12 Escape $ inside the systemctl doc string (#2018) 2020-08-28 12:21:00 -04:00
Asher
ce8577b1c3 Remove open-in flag (#2013) 2020-08-27 15:04:37 -05:00
Anmol Sethi
d8d5908d85 Merge pull request #2001 from cdr/docker-user-1c5d
docker: Allow passing $DOCKER_USER to set the username in the container
2020-08-27 15:51:28 -04:00
Anmol Sethi
1558ff6dac Streamline dev container workflow (#2014) 2020-08-27 15:39:24 -04:00
Anmol Sethi
4b7c2ea322 Use static version of node for all builds, not just darwin
This way, building a standalone release locally and putting it in the
release contianer for testing is less likely to break.
2020-08-27 14:20:56 -04:00
Anmol Sethi
4c4a7413a1 docker: Allow passing $DOCKER_USER to set the username in the container
Needs to be reflected in the documentation and the dockerhub description now.

Closes #881
2020-08-27 14:20:56 -04:00
shayne
ceb2265b14 Allow opening files, folders, and workspaces in existing code-server from CLI (#1994)
Add initial support for opening files / folders in running code-server instance.

Current limitations:

- unable to open a file in a new window, only folders
- unable to use addMode feature
- others...
2020-08-27 13:06:21 -05:00
Anmol Sethi
221e95ee89 Bundle systemd system unit (#1997)
systemd's user units are buggy on certain versions
and do not linger by default.

Closes #1771
Closes #1673
Closes #1882
Closes #1861
2020-08-27 13:20:50 -04:00
Anmol Sethi
255fa37e1d Bundle systemd system unit
systemd's user units are buggy on certain versions
and do not linger by default.

Closes #1771
Closes #1673
Closes #1882
Closes #1861
2020-08-27 13:20:21 -04:00
Anmol Sethi
864a9e7bd6 Merge pull request #1999 from cdr/update
Update dependencies in package.json
2020-08-27 13:17:18 -04:00
Asher
a839da34d7 Remove custom offline text (#2007)
We need the handler to be recognized as a PWA but we can just let the
original offline browser message show instead of our own message.

See #1925 and #1979.
2020-08-27 11:33:34 -05:00
Anmol Sethi
3912e9e333 Downgrade node types to v12 2020-08-27 11:04:43 -04:00
Asher
eebb8bb314 Add proposed API flag (#2002)
Co-authored-by: giddyuptiger <65830808+giddyuptiger@users.noreply.github.com>
2020-08-26 14:18:40 -05:00
Anmol Sethi
ebbb1187da Update remaining dependencies 2020-08-26 14:27:30 -04:00
Anmol Sethi
c8f63b61c4 Fix fmt and lint 2020-08-26 14:21:37 -04:00
Anmol Sethi
c80d093dc4 Update dependencies in package.json
See #1898 and #1905
2020-08-26 13:59:41 -04:00
Anmol Sethi
6cc91869d3 doc: Update npm docs for debian sid
There is no python package anymore, you have to explicitly
pick which version of python to install and we need to inform
npm of the executable name.
2020-08-26 13:54:42 -04:00
Anmol Sethi
bf09c294cc Revert "Upgrade to latest typescript"
This reverts commit 6539dd4dbe.

Breaks linting and wasn't required.
2020-08-26 13:32:50 -04:00
Anmol Sethi
536ccc0f10 doc: Simplify build process docs (#2004)
Much easier for users to use our CI scripts instead of each individual
yarn step.
2020-08-26 13:29:42 -04:00
Anmol Sethi
312a4d584c doc: Improve docker example to mount in $HOME for easy config access
I'm surprised no one has asked any questions about this.
2020-08-26 13:00:10 -04:00
Anmol Sethi
a730bec6f4 Ship with node 12 (#1998)
See #1894
See #1892
See #1810
2020-08-26 11:54:50 -04:00
Asher
ce2eaf2f10 Update to VS Code 1.48.2 (#2000) 2020-08-26 10:18:47 -05:00
Anmol Sethi
5c6cd11836 Fix clean.sh
tsc doesn't check if the output exists when incremental is true.

i.e if I delete the out directory, but keep the tsbuildinfo and
try to rebuild, nothing happens cause it thinks everything is
up to date I guess...

With this change, yarn clean will now remove the tsbuildinfo correctly
so things work as expected.
2020-08-26 10:33:59 -04:00
Anmol Sethi
6539dd4dbe Upgrade to latest typescript
Otherwise the build keeps failing for me as tsc won't compile anymore.

Not sure why things work on CI/for asher but I don't think this will
cause any additional issues.
2020-08-26 07:50:51 -04:00
Anmol Sethi
e8ac0d33f9 Document release branches (#1995)
* Document release branches

* Update doc/CONTRIBUTING.md

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

Co-authored-by: Asher <ash@coder.com>
2020-08-26 07:08:02 -04:00
Asher
e237589f2e Update VS Code to 1.48.0 (#1982) 2020-08-25 13:06:41 -05:00
Anmol Sethi
98d8d848a5 Switch from subreddit to GitHub discussions for support (#1993) 2020-08-25 12:13:11 -04:00
josephrocca
c8ce380f10 instanceIp --> username@instanceIp (#1921)
* instanceIp --> username@instanceIp

* [user]@<instance-ip>

Co-authored-by: Anmol Sethi <hi@nhooyr.io>

Co-authored-by: Anmol Sethi <hi@nhooyr.io>
2020-08-20 10:55:03 -04:00
Asher
c6f054ad6f Fix watch exiting if no plugin 2020-08-18 16:34:59 -05:00
Asher
74910ffcdf Hotswap on SIGUSR1 (#1970) 2020-08-17 14:17:55 -05:00
Asher
3c90b1e327 Merge pull request #1969 from cdr/qol
qol changes
2020-08-17 14:17:29 -05:00
Asher
0dcf469725 Add @version information to --help
This mimics a recent change in VS Code's help. See #1965.
2020-08-13 18:08:35 -05:00
Asher
d8568ebaa9 Enforce import order 2020-08-13 17:11:35 -05:00
Asher
f7790c9719 Remove unused deep merge code 2020-08-13 17:11:34 -05:00
Asher
150d37868a Enforce strict equals 2020-08-13 17:11:33 -05:00
Asher
8590f80c31 Remove unnecessary tsc settings 2020-08-13 17:11:33 -05:00
Asher
d6d24966be Move vscode JS to a separate file
Mostly to match everything else.
2020-08-13 17:10:59 -05:00
Asher
751a5ea3ad Move login JS to a separate file
Mostly so the base URL resolution code can be shared.
2020-08-13 17:10:54 -05:00
Asher
de568d446b Add cookie domain debug logs
To help debug login issues.
2020-08-13 17:06:32 -05:00
Asher
7d02f34f71 Merge pull request #1934 from cdr/plugin
Add plugin system for adding http endpoints
2020-08-13 16:59:44 -05:00
G r e y
2fad8a2a58 Merge pull request #1955 from cdr/callback-type
Add Callback type
2020-08-11 00:41:28 -04:00
G r e y
a0ff2014c3 Add Callback type
Adds a reusable Callback type that is applied to emitter.ts for improved
readability/simplicity.
2020-08-10 21:41:46 -05:00
G r e y
8d03c22cb0 Merge pull request #1956 from cdr/plural
Update common/util::plural
2020-08-10 17:44:06 -04:00
G r e y
6e27869c09 Add str param to plural util
Adds a str param to common/util::plural for pluralizing a string.
Applies plural to entry.ts.
2020-08-09 00:06:18 -05:00
Asher
934c8d4eb6 Clarify exported types and ipc.d.ts 2020-08-05 13:00:37 -05:00
Asher
9b979ac869 Document code-server injection 2020-08-05 13:00:37 -05:00
Asher
3badf6bf7b Use ?? for base default 2020-08-05 13:00:36 -05:00
Asher
10c2b956ac Remove leading slash trim in base resolver
It's not necessary since we return early if the path starts with a
slash.
2020-08-05 13:00:35 -05:00
Asher
543d64268d Simplify valid path check 2020-08-05 13:00:34 -05:00
Asher
fd36f8c168 Use error log level for plugin load failure 2020-08-05 13:00:33 -05:00
G r e y
c78d164948 Fix nfpm typo (#1943) 2020-08-05 12:48:41 -04:00
Anmol Sethi
4dd2c86cca FAQ: Demonstrate how to switch the marketplace 2020-08-04 10:11:55 -04:00
Asher
42467b3e66 Watch plugin and restart when it changes 2020-07-31 17:42:49 -05:00
Asher
361e7103ea Enable loading external plugins 2020-07-31 17:42:48 -05:00
Asher
bac948ea6f Add plugin system 2020-07-31 15:08:02 -05:00
Asher
1c8eede1aa Add missing types to release
code-server exports its types but they weren't complete since it imports
ipc.d.ts and that wasn't being included.
2020-07-31 14:08:00 -05:00
Asher
486652abaf Update standalone test to account for timestamp
The updated logger outputs timestamps now.
2020-07-31 14:06:49 -05:00
Asher
5370f7876d Merge pull request #1927 from cdr/dead-code
Remove dead code
2020-07-31 12:25:56 -05:00
Asher
eccaf8eb50 Merge pull request #1931 from cdr/rimraf
Fix package step
2020-07-31 12:25:18 -05:00
Asher
cbf7c9556c Merge pull request #1920 from fxxjdedd/patch-1
feat: persist route query to local
2020-07-31 11:36:25 -05:00
Asher
b63cf192b5 Remove broken symlinks in extensions node modules
The broken symlinks cause nfpm to fail.
2020-07-31 10:49:45 -05:00
Asher
50ed29e0f0 Move rimraf to prod deps in extensions
The postinstall uses rimraf so it needs to exist in the final build.
2020-07-31 10:49:40 -05:00
futengda
ecb9bb2428 refactor: write lastVisited and query at the same time
In addition, the `settings.write` method now uses shallow merge by default
2020-07-31 12:25:20 +08:00
Asher
e86c066438 Add helper functions to make some code clearer 2020-07-30 12:14:31 -05:00
futengda
b6e791f7d0 refactor: write route.query via settings.write
I added a shallow parameter, because the query should not be extends, but should be replaced directly.
2020-07-30 16:54:02 +08:00
Asher
c581bca29d Force minimist update 2020-07-29 18:48:08 -05:00
Asher
2fa5037859 Log output to disk 2020-07-29 18:48:07 -05:00
Asher
7c2ca7d03e Add the ability to prepend to the proxy path
This is for applications like Jupyter that aren't base path agnostic.
2020-07-29 18:48:06 -05:00
Asher
c67d31580f Include details if any in JSON requests 2020-07-29 18:48:05 -05:00
Asher
58bd7008b4 Make dispose async 2020-07-29 18:48:04 -05:00
Asher
4b6c0a6fc3 Update logger 2020-07-29 18:48:03 -05:00
Asher
554b6d6fcf Remove apply portion of update endpoint
It can still be used to check for updates but will not apply them.

For now also remove the update check loop in VS Code since it's
currently unused (update check is hardcoded off right now) and won't
work anyway since it also applies the update which now won't work. In
the future we should integrate the check into the browser update
service.
2020-07-29 18:48:02 -05:00
jae
8021385ac4 Add enterprise context (#1923) 2020-07-29 13:37:19 -04:00
fxxjdedd
5ba650bb6f feat: persist route query to local
Provide a way for the shell script running in the docker container to get the url query.
2020-07-28 20:14:52 +08:00
Asher
e8f6d30055 Make providers endpoint-agnostic
A provider can now be registered on multiple endpoints (or potentially
moved if needed).
2020-07-27 12:00:48 -05:00
Asher
2819fd51e2 Remove unused endpoints
- dashboard
- app api
2020-07-27 12:00:42 -05:00
Anmol Sethi
638ab7c557 Fix CI 2020-07-22 18:31:24 -04:00
Anmol Sethi
0bd808270d doc/guide: Fix TOC 2020-07-22 17:29:45 -04:00
Anmol Sethi
bc78e16146 doc/guide: Improve nginx docs (#1902)
Made it a full alternative to caddy, just so we don't ever have to explain how to configure Nginx again.
2020-07-22 16:05:39 -04:00
Anmol Sethi
3764d296c6 .github/lock.yml: Formatting 2020-07-22 15:15:30 -04:00
Anmol Sethi
90eec91f9c Add .github/lock.yml
Too many people comment on super old issues.
2020-07-22 14:16:53 -04:00
Asher
d3164fc910 Merge pull request #1867 from Niek/patch-1
Add Nginx instructions to guide
2020-07-21 17:16:57 -05:00
Asher
6c5a9edced Tiny text changes 2020-07-21 17:16:32 -05:00
Asher
4727385a01 Merge pull request #1885 from cdr/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-21 13:56:29 -05:00
Asher
89cfe6876e Merge pull request #1896 from cdr/vscode-1.47.2
Update to VS Code 1.47.2
2020-07-21 13:51:22 -05:00
Asher
de8e9804ad Update to VS Code 1.47.2 2020-07-21 13:16:44 -05:00
Asher
81d25dd048 Add missing bootstrap-node.js to final build
Fixes #1884.
2020-07-21 11:31:27 -05:00
dependabot[bot]
0193516f55 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-17 01:02:31 +00:00
Kyle Carberry
19d14d2414 Add ThirdPartyNotices.txt 2020-07-16 19:01:09 -06:00
Niek van der Maas
739ac468ed Merge branch 'master' into patch-1 2020-07-16 19:25:25 +02:00
Niek van der Maas
6c3e4d2a76 Add trailing / 2020-07-16 19:24:13 +02:00
Asher
fb9ebeb7aa Merge pull request #1874 from cdr/vscode-1.47.0
Update VS Code to 1.47.0
2020-07-10 16:02:34 -05:00
Asher
641b36be6a Update VS Code to 1.47.0 2020-07-09 17:04:11 -05:00
Asher
e858a4f4c7 Merge pull request #1869 from cdr/vscode-1.46.1
Update VS Code to 1.46.1
2020-07-07 18:09:36 -05:00
Asher
a06522f254 Update VS Code to 1.46.1 2020-07-07 17:01:23 -05:00
Niek van der Maas
96af9761b7 Add Nginx instructions to guide
Added Nginx instructions for people who prefer to use this instead of Caddy
2020-07-06 10:45:09 +02:00
Asher
9ff0e455c3 Merge pull request #1853 from cdr/fix-heartbeat
Fix connections sticking around indefinitely
2020-06-30 17:43:36 -05:00
Asher
ebef18d626 Fix connections sticking around indefinitely
For some reason it only affects the extension host socket (something to
do with passing it via IPC?) but I changed both just to be sure.

Fixes #1795.
2020-06-30 16:41:47 -05:00
Ammar Bandukwala
a942531079 Update remote location restrictions in README 2020-06-25 15:33:55 -05:00
Kyle Carberry
cc9c9e9db5 Remove funding statement 2020-06-25 14:01:34 -06:00
Anmol Sethi
a7026cc82c Remove funding figure 2020-06-25 12:18:15 -04:00
Asher
ed285f97fd Merge pull request #1830 from cdr/fix-config
Initialize config and use correct settings path
2020-06-24 12:26:18 -05:00
Asher
1b7d4b5a18 Initialize config and use correct settings path
Fixes #1829.
2020-06-24 11:40:17 -05:00
Anmol Sethi
364f9dd854 Ask for resume/github re hiring 2020-06-23 07:58:28 -04:00
Anmol Sethi
7e1aebe009 Fix formatting 2020-06-22 01:42:46 -04:00
Anmol Sethi
609c7ef4ec Fix bad $PATH when building MacOS
The previous release mistakenly distributed the wrong version
of node...

Very sad.

See https://github.com/cdr/code-server/issues/1710#issuecomment-646472716
2020-06-22 00:57:40 -04:00
Anmol Sethi
5a6411fa49 Make our funding situation clear in Hiring section 2020-06-22 00:57:24 -04:00
Anmol Sethi
3da6c561b8 Fix wording in FAQ.md 2020-06-16 11:14:02 -04:00
Anmol Sethi
bb118eba6e Merge pull request #1808 from SAB-6/typo-fixes
fix typos in doc/FAQ.md
2020-06-16 11:13:07 -04:00
Shereef Bankole
96e57f1e6f fix typos in doc/FAQ.md 2020-06-14 23:46:01 +01:00
Anmol Sethi
2a9b7a4d5f Merge pull request #1806 from cdr/bsd
Add FreeBSD support to install script
2020-06-13 11:16:13 -04:00
Anmol Sethi
3d9e3b8717 Add FreeBSD support to install script 2020-06-13 11:14:32 -04:00
Anmol Sethi
264abed82c Fix typo 2020-06-12 02:32:40 -04:00
Anmol Sethi
19257a8bc2 Fix typo 2020-06-09 18:14:21 -04:00
Anmol Sethi
034266db47 Merge pull request #1790 from cdr/hiring
Mention we're hiring in the README.md
2020-06-09 18:13:57 -04:00
Anmol Sethi
69b8096eb3 Mention we're hiring in the README.md 2020-06-09 18:13:20 -04:00
Anmol Sethi
7b982ae782 Merge pull request #1773 from jeffjose/patch-1
Update --data-dir flag to --user-data-dir
2020-06-05 17:39:30 -04:00
Jeffrey Jose
3a37add48d Update --data-dir flag to --user-data-dir
Update --data-dir flag to --user-data-dir
2020-06-04 23:42:10 -07:00
Anmol Sethi
7958cc7e29 install.sh: Print creation of CACHE_DIR 2020-06-04 18:23:01 -04:00
Anmol Sethi
88c76d4794 Fix typo in guide.md 2020-06-04 16:49:49 -04:00
Anmol Sethi
022a2e0860 Merge branch 'docs' 2020-06-04 16:47:36 -04:00
Anmol Sethi
bd2e55dcf3 Make README more clear 2020-06-04 16:47:27 -04:00
Anmol Sethi
d3773c11f1 Merge pull request #1766 from cdr/v3.4.1
v3.4.1
2020-06-04 12:30:34 -04:00
Anmol Sethi
59694fb72e FAQ: Explain differences compared to Theia
Closes #1756
2020-06-04 07:30:41 -04:00
Anmol Sethi
ac2bf56ebc Explain $SERVICE_URL and $ITEM_URL in more detail
Closes #1762
2020-06-04 07:25:32 -04:00
Anmol Sethi
48f7c27248 v3.4.1 2020-06-04 06:24:24 -04:00
Anmol Sethi
06b387fe98 Merge pull request #1765 from cdr/global-storage
Always create globalStorageHome
2020-06-04 05:52:21 -04:00
Anmol Sethi
4cf81d88a7 Always create globalStorageHome
Closes #1693
2020-06-04 05:33:27 -04:00
Anmol Sethi
79d1e179f8 Merge pull request #1761 from cdr/static
Stop bundling libraries in release
2020-06-04 04:38:57 -04:00
Anmol Sethi
c00f931500 Remove zip library dependency 2020-06-03 18:24:59 -04:00
Anmol Sethi
fd5c5960c2 Fixes for release 2020-06-03 16:22:59 -04:00
Anmol Sethi
ab081cd522 Add warning when using outdated code-server script 2020-06-03 15:45:17 -04:00
Anmol Sethi
e2789608b2 Fix autoupdates for Darwin 2020-06-03 15:45:17 -04:00
Anmol Sethi
85ad7e4fb4 Remove duplicate log
Also confirmed that #1750 is fixed.
2020-06-03 15:45:17 -04:00
Anmol Sethi
cb9c5b2d49 Fix typos 2020-06-03 15:45:16 -04:00
Anmol Sethi
d4ef7c1412 Remove colons from image filenames 2020-06-03 15:45:16 -04:00
Anmol Sethi
5815b4a0c0 Rename dev/container -> dev/image 2020-06-03 15:45:16 -04:00
Anmol Sethi
bdb670e852 Rename container and release-container to images and release-image 2020-06-03 15:45:16 -04:00
Anmol Sethi
11d7932968 Stop bundling libraries in release
- Instead we now use CentOS 7 for the static build to guarantee
  that we only depend on libc v2.17

- For macOS we now pull in a static node binary and bundle that instead.
2020-06-03 15:45:16 -04:00
Anmol Sethi
02a77b528b Support recursive symlinks in release script
See
https://github.com/cdr/code-server/issues/1746#issuecomment-637830396
2020-06-03 15:45:16 -04:00
Anmol Sethi
206f195c1c Minor grammar fixes in FAQ 2020-06-03 15:45:16 -04:00
Anmol Sethi
2c2a6498af Parse config file in entry
This way setting --data-dir and --extension-dir in the config file
will work for --install--extension and whatnot.
2020-06-03 15:45:16 -04:00
Anmol Sethi
7ab47b3d83 Trim LD_LIBRARY_PATH on startup 2020-06-03 15:45:16 -04:00
Anmol Sethi
9a3b9fcac2 Fix install script to trim leading v from version
Updates #1746
2020-06-02 17:22:24 -04:00
Anmol Sethi
b88163392c Merge pull request #1736 from cdr/faq-updates
More questions in the FAQ
2020-05-27 21:39:56 -04:00
Anmol Sethi
c7cad402b4 Cleanup FAQ
Prominently explain how code-server is different from VS Code

Closes #1718
2020-05-27 21:39:19 -04:00
Anmol Sethi
8dfac0fb65 More questions in the FAQ
Closes #1732
2020-05-27 20:45:11 -04:00
Anmol Sethi
90caca3336 Minor fixes 2020-05-27 20:38:29 -04:00
Anmol Sethi
80bcfd918b Merge pull request #1701 from cdr/auto-install
Add auto install script
2020-05-27 20:35:52 -04:00
Anmol Sethi
69ad52907e v3.4.0 2020-05-27 19:21:15 -04:00
Anmol Sethi
fbd85649f9 Fix CI 2020-05-27 17:55:57 -04:00
Anmol Sethi
30e9c516e7 Further improve AUR installation 2020-05-27 17:46:55 -04:00
Anmol Sethi
af398c49fd Workaround lack of builtin in /bin/sh 2020-05-27 17:01:33 -04:00
Anmol Sethi
29e5c4a293 Clarify npm docs in install.md 2020-05-27 16:48:11 -04:00
Anmol Sethi
f71d8875d0 Rename binary release to standalone 2020-05-27 16:39:17 -04:00
Anmol Sethi
06c26a22cd Improve aur installation clarity 2020-05-27 16:01:06 -04:00
Anmol Sethi
fa45fd0e31 Rename static releases to binary releases
More clear as discussed in PR.
2020-05-27 15:57:18 -04:00
Anmol Sethi
665ca017a1 Fixes from @code-asher's godly review 2020-05-27 15:48:22 -04:00
Anmol Sethi
33bca2d141 Adjust nfpm config for bindir removal
See https://github.com/goreleaser/nfpm/pull/142#issuecomment-634427333
2020-05-27 15:48:22 -04:00
Anmol Sethi
eb17a293e5 Document Microsoft's Remote extensions
Closes #1681
2020-05-27 15:48:22 -04:00
Anmol Sethi
c51d94d8a9 Document PWA
Closes #1726
2020-05-27 15:48:22 -04:00
Anmol Sethi
e9101a2421 Improve formatting 2020-05-27 15:48:22 -04:00
Anmol Sethi
7ef82d8422 Improved install.sh flags 2020-05-27 15:48:22 -04:00
Anmol Sethi
42b5152888 Further documentation cleanup 2020-05-27 15:48:22 -04:00
Anmol Sethi
7dcfde7329 Documentation fixes 2020-05-27 15:48:22 -04:00
Anmol Sethi
15cd727b96 Replace gif with screenshot 2020-05-27 15:48:22 -04:00
Anmol Sethi
e55d3e49e1 Bundle in libicu on macOS
Closes #1710

Also reported in #1640
2020-05-27 15:48:22 -04:00
Anmol Sethi
ac9b57c07e Properly bundle in libstdc++ 2020-05-27 15:48:22 -04:00
Anmol Sethi
f117475970 install.md: Add https://github.com/linuxserver/docker-code-server
See https://github.com/cdr/code-server/issues/1337#issuecomment-632131384
2020-05-27 15:48:22 -04:00
Anmol Sethi
a40dabbd22 Add install script to docs 2020-05-27 15:48:22 -04:00
Anmol Sethi
e0172d0953 Minor fixes for install.sh and bundle in libstdc++
Closes #1706
2020-05-27 15:48:22 -04:00
Anmol Sethi
c80b2748e1 install.sh: Fixes from @code-asher's review 2020-05-27 15:48:22 -04:00
Anmol Sethi
510d84898c install.sh: Add our own flag parser
Fully supports long opts!
2020-05-27 15:48:22 -04:00
Anmol Sethi
0129e002e8 Add install.sh into README.md 2020-05-27 15:48:22 -04:00
Anmol Sethi
3b11733bd8 Add auto install script 2020-05-27 15:48:22 -04:00
Anmol Sethi
96eeb9fea0 Fix install instructions for SUSE
Closes #1699
2020-05-27 15:48:22 -04:00
Anmol Sethi
2ba8fee605 Merge pull request #1727 from cdr/ext
Fix extension install path for CLI
2020-05-27 15:48:00 -04:00
Anmol Sethi
9d0dcf3c44 Fix extension install path for CLI
Closes #1713
2020-05-27 14:28:40 -04:00
Anmol Sethi
3140a0cb15 Merge pull request #1719 from cucumberbob123/patch-1
Fixed grammar error
2020-05-24 23:20:07 -04:00
Cucumberbob
9a8c06d09d Fixed grammar error
Removed apostrophe used for pluralization

server's -> servers
2020-05-24 15:08:05 +01:00
Anmol Sethi
c8b58a0f70 CONTRIBUTING.md update 2020-05-21 12:57:29 -04:00
Anmol Sethi
c9afd01b60 Update FAQ for extension request template 2020-05-21 11:59:04 -04:00
Anmol Sethi
81a4dd7d89 Merge pull request #1707 from cdr/issue_templates
Add issue template for extension request
2020-05-21 11:58:03 -04:00
Anmol Sethi
3445a55c2b Add issue template for extension request
Closes #1696
2020-05-21 11:56:41 -04:00
Anmol Sethi
0559d4d870 Merge pull request #1705 from oonqt/patch-2
Update CONTRIBUTING.md
2020-05-21 11:38:01 -04:00
Rechigo
608cefa8cd Update CONTRIBUTING.md
It is not mentioned that the "release" script requires "jq" to be installed on the system to build code-server releases
2020-05-20 15:26:23 -07:00
Anmol Sethi
521ac7d91f Merge pull request #1697 from cdr/aur-docs
Update AUR docs
2020-05-20 11:45:57 -04:00
Anmol Sethi
08f5760718 Merge pull request #1703 from cdr/auto-update
Make automatic updates on v3.2.0 work again
2020-05-20 11:45:24 -04:00
Anmol Sethi
3ddf242c65 Make automatic updates on v3.2.0 work again
Only for linux amd64 users which is the majority of our userbase.
2020-05-20 10:37:31 -04:00
Anmol Sethi
0d207f4f9a Update AUR docs
Closes #1634
2020-05-20 09:21:22 -04:00
Anmol Sethi
2064e88e06 Merge pull request #1694 from cdr/arch-instructions
Document AUR install instructions
2020-05-19 23:46:39 -04:00
Colin Adler
37d287199f Document AUR install instructions 2020-05-19 22:41:28 -05:00
Anmol Sethi
1ee407bf0c Clarify language in issue template 2020-05-19 22:47:34 -04:00
Anmol Sethi
971217c4e6 Add Architecture to issue template 2020-05-19 22:44:45 -04:00
Anmol Sethi
078571d267 Merge pull request #1688 from cdr/fix-typos
Improve clarity in guide and fix typo in FAQ
2020-05-19 18:20:06 -04:00
Anmol Sethi
25ea76ebc9 Improve clarity in guide and fix typo in FAQ 2020-05-19 13:46:19 -04:00
Anmol Sethi
f4c97abe91 Merge pull request #1678 from cdr/faq
Add blank screen problem with iPad to FAQ
2020-05-19 13:08:54 -04:00
Anmol Sethi
073317394b Merge pull request #1679 from cdr/fix-config
Allow user-data-dir and extension-dir in config.yaml
2020-05-19 13:08:47 -04:00
Anmol Sethi
cf887ab10a Merge branch 'master' into faq 2020-05-19 13:08:39 -04:00
Anmol Sethi
6421206732 Merge pull request #1677 from cdr/yarn
Mention yarn as another installation option
2020-05-19 13:08:29 -04:00
Asher
288e7a5fb5 Merge pull request #1684 from SuperSandro2000/typos
Fix typos
2020-05-19 11:47:04 -05:00
Sandro Jäckel
5ec8a6efbd Fix typos 2020-05-19 12:19:09 +02:00
Anmol Sethi
8053ec6872 Allow user-data-dir and extension-dir in config.yaml
Closes #1676
2020-05-19 00:41:27 -04:00
Anmol Sethi
520d8e66a8 Add blank screen problem with iPad to FAQ 2020-05-19 00:24:49 -04:00
Anmol Sethi
9858af9014 Mention yarn as another installation option 2020-05-19 00:17:23 -04:00
Anmol Sethi
aa87270148 Fixes for CI 2020-05-18 22:43:31 -04:00
Anmol Sethi
8b329caf0e Merge pull request #1672 from cdr/v3.3.1
Release v3.3.1
2020-05-18 22:36:46 -04:00
Anmol Sethi
6f1309795e Rebuild all node_modules on npm install
Stuff like ripgrep needs to be refetched so we cannot bundle
node_modules at all.
2020-05-18 21:37:16 -04:00
Anmol Sethi
5f94d5a687 Release v3.3.1
This release fixes bugs introduced with the release of v3.3.0

- We've reverted to VS Code 1.45.1 due to bugs in 1.46 #1667
- Accessing code-server from a web browser on Windows has been fixed #1642
- Search in project has been fixed #1665
- The glibc requirement on static releases has been lowered to v2.19 #1656
2020-05-18 18:11:52 -04:00
Anmol Sethi
d6b1d0c7ff Merge pull request #1671 from cdr/pin-vscode
Pin to vscode 1.45.1
2020-05-18 18:09:44 -04:00
Anmol Sethi
ce9d14d55e Pin to vscode 1.45.1
1.46 isn't released yet and has bugs.

Closes #1667
2020-05-18 17:34:22 -04:00
Anmol Sethi
eccee53142 Merge pull request #1670 from cdr/windows
Fix paths from Windows client to non-Windows server
2020-05-18 16:14:48 -04:00
Asher
f7f11ad6c2 Fix paths from Windows client to non-Windows server
Fixes #1659
Fixes #1642
2020-05-18 15:06:11 -05:00
Anmol Sethi
0c2381f4ff Merge pull request #1668 from cdr/fix-ci
Workaround for GH Actions stripping permissions
2020-05-18 15:32:11 -04:00
Anmol Sethi
e4ddffd0e2 Workaround for GH Actions stripping permissions
Closes #1665
2020-05-18 13:56:53 -04:00
Anmol Sethi
f5ac262a2f Indicat how to get version in issue template 2020-05-18 13:20:13 -04:00
Anmol Sethi
04cd74cad0 Add more info to issue template
Closes #1655
2020-05-18 13:14:29 -04:00
Anmol Sethi
7b1edd5ad4 Merge pull request #1657 from cdr/downgrade-CI
Downgrade CI to Debian 8 for glibc 2.19
2020-05-18 01:54:46 -04:00
Anmol Sethi
47d50c9163 Downgrade CI to Debian 8 for glibc 2.19
Closes #1656
2020-05-18 00:38:55 -04:00
Anmol Sethi
8a3466e86f More grammar fixes for FAQ 2020-05-17 22:47:23 -04:00
Anmol Sethi
59f0128d27 Shorten static release script horizontally 2020-05-17 21:11:52 -04:00
Anmol Sethi
761c2035c7 Fix grammar in README 2020-05-17 20:47:33 -04:00
Anmol Sethi
094ca2ad97 Link to all other docs in guide.md
I expect people will frequently link to it.
2020-05-17 20:39:45 -04:00
Anmol Sethi
c33a4651c9 Improve static install script 2020-05-17 20:36:10 -04:00
Anmol Sethi
783dfe0a14 Fix typo in installation docs 2020-05-17 20:32:04 -04:00
Anmol Sethi
b9f43c3542 Fix grammar in FAQ 2020-05-17 20:29:00 -04:00
Anmol Sethi
65325eef89 Clarify location of config file in FAQ 2020-05-17 20:27:45 -04:00
Anmol Sethi
2421cab479 Fix grammar in README 2020-05-17 20:25:33 -04:00
Anmol Sethi
ec1c74c146 Add release-images to clean.sh 2020-05-17 19:52:59 -04:00
Anmol Sethi
e955da14fa Merge pull request #1628 from cdr/docs
Revamp docs
2020-05-17 19:46:57 -04:00
Anmol Sethi
52eeccaba1 v3.3.0 2020-05-17 18:35:36 -04:00
Anmol Sethi
3a1e3bc596 Final revisions for the docs before release
🚀
2020-05-17 17:55:28 -04:00
Anmol Sethi
e0dbd8f74a Rename self contained release to static release 2020-05-17 16:59:09 -04:00
Anmol Sethi
6a25b3bfa0 Document structure better
Closes #1648
2020-05-17 16:53:08 -04:00
Anmol Sethi
aee2599904 Push docker manifest in CI for multi arch image 2020-05-16 16:59:26 -04:00
Anmol Sethi
d56381666a Use .tar.gz for macOS releases
No good reason to use .zip, was just confusion on my part.
2020-05-16 10:01:26 -04:00
Anmol Sethi
611cde7202 Fix spelling of Multi-tenancy in FAQ 2020-05-14 22:33:13 -04:00
Anmol Sethi
181bad9563 Improve docker install formatting 2020-05-14 22:33:13 -04:00
Anmol Sethi
73b2ff0945 $PORT should always override port in --bind-addr 2020-05-14 22:33:12 -04:00
Anmol Sethi
89c5a4dfea Set --frozen-lockfile with yarn when necessary 2020-05-14 22:33:12 -04:00
Anmol Sethi
d4b3d21dce Require minimum node 12 2020-05-14 22:33:12 -04:00
Anmol Sethi
40778b15ca Add code-server version into VS Code about
Closes #1506
2020-05-14 22:33:12 -04:00
Anmol Sethi
d7234029e6 Use /usr/local instead of /opt in self contained release example 2020-05-14 20:27:36 -04:00
Anmol Sethi
10b06cae10 Minor typo fixes 2020-05-14 20:08:08 -04:00
Anmol Sethi
0bd2602774 3.3.0 2020-05-14 18:43:01 -04:00
Anmol Sethi
c69346a9a7 Add FAQ entry on the config file 2020-05-14 18:35:35 -04:00
Anmol Sethi
5651201643 Copy old macOS data directory if applicable 2020-05-14 06:12:33 -04:00
Anmol Sethi
f475767c2b Rename darwin releases to macos 2020-05-14 05:59:20 -04:00
Anmol Sethi
a0a77e379e Add doc/guide.md 2020-05-14 05:24:23 -04:00
Anmol Sethi
f4a78587b0 Make npm-postinstall.sh more robust 2020-05-13 22:44:43 -04:00
Anmol Sethi
b3ae4d67d3 Hide bundled node_modules to prevent them from being ignored 2020-05-13 04:17:34 -04:00
Anmol Sethi
d30f3dbdf7 Update to rc.10 2020-05-13 02:37:25 -04:00
Anmol Sethi
1739b21600 Bundle VS Code node_modules to avoid yarn dependency
Many random bizarre issues otherwise.

Also includes misc improvements to docs and scripts.
2020-05-13 02:35:11 -04:00
Anmol Sethi
a346c6d565 Document npm module install dependencies 2020-05-12 23:11:31 -04:00
Anmol Sethi
502c262c82 Mention update of versions in README install examples 2020-05-12 21:26:37 -04:00
Anmol Sethi
4aae5eaeca CI fixes
- Splits up test into fmt, lint and test
- Fixes bug in build-packages.sh
- Minor README.md fixes
2020-05-12 21:26:36 -04:00
Anmol Sethi
41d625abb6 Revamp README.md with new installation options 2020-05-12 21:26:36 -04:00
Anmol Sethi
8626bed4ef Merge pull request #1619 from cdr/config
Add support for a YAML config file
2020-05-12 21:25:44 -04:00
Anmol Sethi
dc632ac176 Remove .yarnrc from lib/vscode 2020-05-13 01:11:53 +00:00
Anmol Sethi
c0d6eb4664 Improve password handling
- Error out if auth is enabled but no password is passed in
- Indicate password location on login page
2020-05-12 19:59:55 -04:00
Anmol Sethi
524b0205e9 Workaround for GH Actions ruining file permissions 2020-05-12 19:59:55 -04:00
Anmol Sethi
1e432b25ea Comment on hash(password) 2020-05-12 19:59:54 -04:00
Anmol Sethi
d6ea9d78f6 Configuration file bug fixes based on @code-asher's review 2020-05-12 19:59:54 -04:00
Anmol Sethi
28edf4af2e Add systemd user service to .deb and .rpm 2020-05-12 19:59:54 -04:00
Anmol Sethi
d288131a33 Fix lint errors 2020-05-12 19:59:54 -04:00
Anmol Sethi
e02d94ad2f Allow password authentication in the config file 2020-05-12 19:59:54 -04:00
Anmol Sethi
4f67f4e096 Disable automatic updates 2020-05-12 19:59:54 -04:00
Anmol Sethi
00d164b67f Add default config file and improve config/data directory detection 2020-05-12 19:59:54 -04:00
Anmol Sethi
c5179c2a06 Add support for a YAML config file 2020-05-12 19:59:53 -04:00
Asher
95ac0ddfb7 Fix paths for Windows
- Fix vscode-remote-resource, #1397.
- Fix double slash on webview, was causing images not to load.
- Fix client-side tar paths.
2020-05-12 13:49:37 -05:00
Anmol Sethi
2e31e8f0c9 Merge pull request #1623 from cdr/automate-release
Automate draft release
2020-05-11 21:00:10 -04:00
Anmol Sethi
169f8c67fe Automate draft release 2020-05-11 20:59:56 -04:00
Anmol Sethi
b706e85efb Merge pull request #1611 from cdr/ci
Automate release process
2020-05-08 16:46:23 -04:00
Anmol Sethi
7c7f62d3f3 Fixes for CI from @code-asher's review 2020-05-08 16:45:59 -04:00
Anmol Sethi
231e31656a Automate release process 2020-05-08 03:26:19 -04:00
Anmol Sethi
4590c3a3db Merge pull request #1607 from cdr/ci
Switch to GH Actions
2020-05-08 02:17:16 -04:00
Anmol Sethi
e9fe4c0466 Document release process 2020-05-08 01:43:31 -04:00
Anmol Sethi
6282cd7e7b Simplify packaging and improve scripts
Much better test now as well.
2020-05-08 01:04:24 -04:00
Anmol Sethi
bc453b5f0d Switch to a single job to build the npm package
The architecture specific jobs pull it in and then build releases.

Much faster!
2020-05-08 00:09:24 -04:00
Anmol Sethi
0ec1c69c06 Switch fully to GH Actions 2020-05-07 23:13:28 -04:00
Anmol Sethi
193a45113c Add back ARM with GH Actions 2020-05-07 00:17:06 -04:00
Anmol Sethi
3e7582880e Make CI faster 2020-05-06 23:15:30 -04:00
Anmol Sethi
c63f1ea62a Merge pull request #1601 from cdr/fixes
Add npm package and document/cleanup CI and build process
2020-05-06 20:53:26 -04:00
Anmol Sethi
1a375a44e0 Disable ARM64 releases as ARM on Travis is very unreliable 2020-05-06 20:32:11 -04:00
Anmol Sethi
be032cf735 Add NPM package, debs, rpms and refactor CI/build process
Closes many issues that I'll prune after adding more docs
for users.
2020-05-06 20:25:52 -04:00
Asher
4875f6aa87 Update VS Code to fix infinite refresh
Fixes #1581.
2020-05-05 12:33:09 -05:00
Asher
0a2f06b296 Update diff command in readme 2020-05-05 12:33:08 -05:00
Asher
6a2662eeee Remove node-pty
This was for the ssh server we removed.
2020-05-05 12:33:08 -05:00
Anmol Sethi
a64f80d2d4 Merge pull request #1602 from cdr/unset-pass
Unset $PASSWORD after grabbing it
2020-05-04 22:48:17 -04:00
Anmol Sethi
1898dea314 Unset $PASSWORD after grabbing it
Closes #1583
2020-05-04 22:41:21 -04:00
Asher
81411b2af9 Fix highlighted scmviewlet items in Firefox
Fixes #1549.
2020-05-01 12:54:48 -05:00
Anmol Sethi
c4b620d69e Merge pull request #1592 from saxc/fix-macOS
fix macOS spelling
2020-05-01 12:15:36 -04:00
saxc
c04befac68 fix macOS 2020-05-01 17:55:38 +02:00
Asher
fd36a99a4c Update vscode patch notes and bump version 2020-04-29 15:22:11 -05:00
Asher
4b09746c37 Merge pull request #1574 from cdr/transformer
Remove transformer file
2020-04-29 12:45:07 -05:00
Asher
870cf4f3fe Fix yarn.lock
Things got really out of whack when trying to update dependencies
earlier.
2020-04-29 12:39:42 -05:00
Asher
1ff35f177d Remove transformer file
Also remove some unused imports that were causing build errors (they
were left over from the fix that allowed installing any extension kind).
2020-04-29 12:13:44 -05:00
Asher
f3edb1cc5f Update node to latest lts (12.16.3) and update deps 2020-04-29 11:43:13 -05:00
Asher
86dc38e69f Allow extensions of any kind
This enables vscode-icons among others.
2020-04-28 17:57:56 -05:00
Asher
a2b69c8f3f Fix inconsistencies in log flags and env var
- Fix priority to match the commented behavior.
- Ignore bogus LOG_LEVEL values.
2020-04-28 17:57:55 -05:00
Asher
4cfd7c50ad Remove unused class
I managed to lose this deletion in a merge.
2020-04-28 17:57:54 -05:00
Anmol Sethi
a96606e589 Fix mention of host/port in docs 2020-04-28 18:29:25 -04:00
Anmol Sethi
30aefe19b5 Update issue template to mention check against regular VS Code 2020-04-28 14:50:08 -04:00
Anmol Sethi
37184f456c Merge pull request #1562 from cdr/bindaddr
Deprecate --host and --port in favour of --bind-addr
2020-04-28 14:33:38 -04:00
Anmol Sethi
05456024c4 Merge pull request #1561 from cdr/ratelimit
Add basic rate limiting to login endpoint
2020-04-28 14:33:18 -04:00
Anmol Sethi
5accf3fe5f Add basic rate limiting to login endpoint
Closes #1320
2020-04-28 14:21:08 -04:00
Anmol Sethi
2dd27b4cb8 gitignore release-upload 2020-04-28 14:19:25 -04:00
Anmol Sethi
af28885ea6 Deprecate --host and --port in favour of --bind-addr 2020-04-28 14:19:24 -04:00
Anmol Sethi
f21ba53609 Merge pull request #1563 from cdr/remove-ssh
Remove SSH server
2020-04-28 14:15:54 -04:00
Anmol Sethi
181e0ea6c8 Remove ssh2 dep 2020-04-28 14:04:56 -04:00
Asher
6074ca275b Fill out some missing browser environment values
Pass the user data dir to the browser environment service then derive
all the paths we can based off that path like the global storage path
which the vim extension uses to store history (otherwise it gets stored
in the working directory from when code-server was spawned).

Arguably the better solution is to use the userdata scheme but that
won't work because the vim extension ignores the VS Code API.

Fixes #1551.
2020-04-27 17:15:37 -05:00
Anmol Sethi
d0d5461a67 Remove SSH server
Closes #1502
2020-04-27 09:27:45 -04:00
Anmol Sethi
8608ae2f08 Merge pull request #1546 from cdr/readlink-mac
Fix code-server.sh script on macOS
2020-04-22 18:01:25 -04:00
Anmol Sethi
401f08db63 Fix code-server.sh script on macOS 2020-04-22 17:49:02 -04:00
Asher
caa299b60d Update VS Code to 1.44.2 2020-04-21 14:25:27 -05:00
Asher
dcde596002 Document debugging process
Closes #1465.
2020-04-20 18:55:14 -05:00
Asher
ee14db20f1 Allow data: in CSP for font-src
Closes #1530.
2020-04-20 18:10:07 -05:00
Asher
27ba64c7e4 Improve request error handling
See #1532 for more context.

- Errored JSON requests will get back the error in JSON instead of using
  the status text. This seems better to me because it seems more correct
  to utilize the response body over hijacking the status text. The
  caller is expecting JSON anyway. Worst of all I never actually set the
  status text like I thought I did so it wasn't working to begin with.
- Allow the update error to propagate for JSON update requests. It was
  caught to show the error inline instead of an error page when using
  the update page but for JSON requests it meant there was no error and
  no error code so it looked like it succeeded.
- Make errors for failed requests to GitHub less incomprehensible.
  Previously they would just be the code which is no context at all.
2020-04-17 15:16:10 -05:00
Anmol Sethi
c7753f2cf9 Update docker one liner to forward UID/GID
Closes #1425
2020-04-16 14:57:41 -04:00
Asher
974d4cb8fc Allow specifying a workspace on the command line
Fixes #1535.
2020-04-16 11:56:46 -05:00
Charles Moog
29b6115c77 Adds dev container and docs (#1499) 2020-04-14 17:22:52 -05:00
Asher
28e91ba70c Fix domain issues when setting the cookie
Fixes #1507.
2020-04-13 16:14:40 -05:00
Asher
5aded14b87 Merge pull request #1453 from cdr/proxy
HTTP proxy
2020-04-08 12:44:29 -05:00
Asher
a288351ad4 Respond when proxy errors
Otherwise the request will just hang.
2020-04-08 11:54:18 -05:00
Asher
3b39482420 Document workspace and folder behavior
Also fixed a type issue.
2020-04-07 17:49:50 -05:00
Asher
a5c35af81b Fix encoding issues with folder and workspace params
The raw value is now passed back to VS Code so it can do the parsing
with its own URI class rather than trying to parse using Node's url
module first since that has no guarantee of working the same way. It
also lets us keep the vscode-remote bit internal to VS Code.

Removed the logic that keeps trying paths until it finds a valid one
because it seems confusing to open a path and silently get some other
path instead of an error for the one you tried to open. Now it'll just
use exactly what you specified or fail trying.

Fixes #1488. The problem here was that url.parse was encoding the spaces
then the validation failed looking for a literal %20.
2020-04-07 15:18:19 -05:00
Charles Moog
b78bdaf46e Merge pull request #1496 from cdr/report-issue-url
Send report issues to code-server repo
2020-04-06 17:29:53 -05:00
cmoog
aefef5b0e8 Send report issues to code-server repo 2020-04-06 22:23:14 +00:00
Abin Simon
ca998240a0 Fix typo in FAQ (#1489) 2020-04-03 13:09:32 -05:00
Asher
d2a31477c7 Merge pull request #1486 from cdr/update-backup
Back up old directory when updating
2020-04-02 17:28:27 -05:00
Asher
9c6581273e Show proper error when an update fails 2020-04-02 17:20:25 -05:00
Asher
d1445a8135 Back up code-server directory when updating 2020-04-02 16:21:48 -05:00
Asher
5fc00acc39 Fix incorrect reporting that an update failed 2020-04-02 14:48:15 -05:00
Asher
363cdd02df Improve proxy documentation 2020-04-02 13:40:30 -05:00
Asher
a5d1d3b90e Move proxy logic into main HTTP server
This makes the code much more internally consistent (providers just
return payloads, include the proxy provider).
2020-04-02 13:40:29 -05:00
Asher
aaa6c279a1 Use Set for proxy domains 2020-04-02 13:40:28 -05:00
Asher
498becd11f Use route.fullPath when adding trailing slash
There's no need to specially construct the path.
2020-04-02 13:40:27 -05:00
Asher
411c61fb02 Create helper for determining if route is the root 2020-04-02 13:40:26 -05:00
Asher
74a0bacdcf Rename hxxp to isHttp 2020-04-02 13:40:25 -05:00
Asher
e7e7b0ffb7 Fix redirects through subpath proxy 2020-04-02 13:40:25 -05:00
Asher
fd339a7433 Include query parameters when proxying 2020-04-02 13:40:24 -05:00
Asher
561b6343c8 Ensure a trailing slash on subpath proxy 2020-04-02 13:40:23 -05:00
Asher
e68d72c4d6 Add documentation for proxying 2020-04-02 13:40:22 -05:00
Asher
737a8f5965 Catch proxy errors
Otherwise they'll crash code-server.
2020-04-02 13:40:21 -05:00
Asher
c0dd29c591 Fix domains with ports & localhost subdomains 2020-04-02 13:40:20 -05:00
Asher
8aa5675ba2 Implement the actual proxy 2020-04-02 13:40:19 -05:00
Asher
2086648c87 Only handle exact domain matches
This simplifies the logic a bit.
2020-04-02 13:40:18 -05:00
Asher
3a98d856a5 Handle authentication with proxy
The cookie will be set for the proxy domain so it'll work for all of its
subdomains.
2020-04-02 13:40:17 -05:00
Asher
90fd1f7dd1 Add proxy provider
It'll be able to handle /proxy requests as well as subdomains.
2020-04-02 13:40:16 -05:00
Asher
77ad73d579 Set domain on cookie
This allows it to be used in subdomains.
2020-04-02 13:40:15 -05:00
Asher
13534fa0c0 Add proxy-domain flag
This will be used for proxying ports.
2020-04-02 13:40:14 -05:00
Asher
37299abcc9 Minor startup code improvements
- Add type to HTTP options.
- Fix certificate message always saying it was generated.
- Dedent output not directly related to the HTTP server.
- Remove unnecessary comma.
2020-04-02 13:40:13 -05:00
Asher
e480f6527e Update VS Code to 1.43.2 2020-04-01 15:27:28 -05:00
Asher
26584f2060 Strip protocol from remote authority
In Google cloud shell the host header is 127.0.0.1:8080 instead of the
actual URL. This is what we write out to the HTML so VS Code can pick it
up. However cloud shell rewrites this string when found in the HTML
before serving it so it becomes https://8080-[...].appspot.com,
resulting in an extra unexpected https:// in the
URI (vscode-remote://https://8080[...]). The resulting malformed URI
causes the extension host to exit.

- Fixes #1471
- Fixes #1468
- Fixes #1440 (most likely).
2020-04-01 13:41:05 -05:00
Asher
a4c0fd1fdc Run ssh server listen after http
That way if they happen to conflict code-server doesn't crash.
2020-03-30 17:43:11 -05:00
Asher
6c104c016e Prevent exiting when an exception is uncaught 2020-03-30 17:43:10 -05:00
Asher
599670136d Output commit along with the version 2020-03-30 17:43:09 -05:00
Asher
ce637d318d Add descriptions to SSH flags 2020-03-30 17:43:08 -05:00
Anmol Sethi
d8654b5a19 Merge pull request #1460 from mjgallag/peg-yarn-version
Peg yarn version to ensure deterministic builds
2020-03-30 01:52:14 -04:00
Michael Gallagher
12c3ccd6c7 Peg yarn version to ensure deterministic builds
"Yarn is fully deterministic as long as all your teammates are using the same Yarn version." (https://classic.yarnpkg.com/blog/2017/05/31/determinism/)
2020-03-28 14:29:04 -07:00
Asher
7954656610 Set background color using VS Code theme 2020-03-27 16:58:50 -05:00
Asher
87ebf03eb7 Skip vscode dependencies for test phase
They aren't used so we can skip them.
2020-03-27 13:40:42 -05:00
Asher
df1c34e291 Overwrite GitHub releases again
I was under the impression this was causing existing releases to become
drafts again but that happens without this flag.
2020-03-27 12:03:01 -05:00
Asher
4a65b58772 Fix arm builds 2020-03-27 12:02:56 -05:00
Asher
11fdb8854b Skip unused dependencies 2020-03-26 15:12:17 -05:00
Asher
0a92bb1607 Fix node version mismatch 2020-03-26 13:54:41 -05:00
Asher
5bac2cbdb8 Add build test 2020-03-26 13:54:40 -05:00
Asher
511c3e95b2 Remove npm rebuild 2020-03-25 17:07:26 -05:00
Asher
0a5687bacf Fix crash when unable to request an update 2020-03-25 15:00:35 -05:00
Asher
27320465b7 Merge pull request #1443 from maksimr/fix-duplication
Remove duplication in dependencies
2020-03-25 14:13:34 -05:00
Asher
6df454e006 Merge pull request #1445 from maksimr/fix-doc
Fix documentation for build process
2020-03-25 14:13:15 -05:00
Asher
216652fb31 Merge pull request #1446 from maksimr/fix-apple-touch-icon
Returns back apple touch icon
2020-03-25 14:12:44 -05:00
Asher
0f066d30b4 Add data-cfasync="false" to script tags
This prevents Cloudflare's Rocket Loader from acting on them.

Fixes #1451.
2020-03-25 14:04:36 -05:00
Asher
d1687c1533 Catch error when SSH server fails to start 2020-03-24 17:38:46 -05:00
Asher
f5f29c0120 Set GitHub token when installing VS Code deps
Should help with the ripgrep ratelimit issues.
2020-03-24 16:05:07 -05:00
Maksim Ryzhikov
8a6faa39c9 Remove duplication in dependencies 2020-03-24 09:43:14 +03:00
Maksim Ryzhikov
5887c1d339 Returns back apple touch icon 2020-03-23 14:44:31 +03:00
Maksim Ryzhikov
664ef17af8 Fix documentation for build process 2020-03-23 12:26:54 +03:00
Anmol Sethi
004004c047 Merge pull request #1432 from onilton/patch-1
Add link to contributing
2020-03-19 20:47:10 -04:00
Onilton Maciel
09db0ffad5 Add link to contributing 2020-03-19 18:53:31 -03:00
Asher
a349ea8ff9 Merge pull request #1421 from cdr/dependabot/npm_and_yarn/acorn-5.7.4
Bump acorn from 5.7.3 to 5.7.4
2020-03-19 13:17:37 -05:00
Asher
cfebf2c67f Removed unused CSS 2020-03-17 10:36:19 -05:00
dependabot[bot]
ddd44999c6 Bump acorn from 5.7.3 to 5.7.4
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-16 22:34:51 +00:00
Asher
89d78a5921 Encode query params from open dialog
Fixes #1424.
2020-03-16 15:19:06 -05:00
Asher
99dd2db97c Remove open in desktop button 2020-03-16 15:14:55 -05:00
Asher
b52fbb4cb9 Catch error when openssl isn't installed 2020-03-16 15:14:54 -05:00
Will O'Beirne
3463d56114 SSH server & endpoint 2020-03-16 15:14:53 -05:00
Asher
5f63d2b822 Fix custom socket path 2020-03-16 15:14:52 -05:00
Asher
db4a4f0f50 Don't ignore scripts for code-server prod yarn 2020-03-16 15:14:51 -05:00
Asher
d192726e80 Simplify dashboard 2020-03-16 15:14:50 -05:00
Asher
d832f61d5b Make client-side extensions work at any base 2020-03-16 12:04:09 -05:00
Asher
88f4b986c5 Remove our env vars from the shell
This enables developing code-server in code-server.
2020-03-16 11:01:46 -05:00
Asher
aeb6261189 Update VS Code to 1.43.0 2020-03-13 17:42:10 -05:00
Asher
6cb228037b Add base path to update endpoint from VS Code
This will make it work regardless of what the current URL happens to be.

Also move the telemetry setting into the options since we might as well
make use of it seeing as how we have to parse it for the base path
anyway.
2020-03-13 16:44:56 -05:00
Asher
a00fa85d77 Qualify extensions in help output as VS Code extensions
Also add a description for uninstall-extension and force.
2020-03-13 13:23:30 -05:00
Asher
57de78e12a Add show-versions flag and add help for list-extensions
Closes #1417.
2020-03-13 13:17:59 -05:00
Asher
2342443368 Set telemetry setting based on disable-telemetry flag
By design the disable-telemetry flag does not affect extension
telemetry, only the setting does, so disabling the setting when the flag
is set should cause extensions to also stop sending telemetry.

Fixes #1116.
2020-03-13 12:36:57 -05:00
Asher
26647c54c9 Restore old folder query parameter behavior
Fixes #1351.
2020-03-11 16:06:32 -05:00
Asher
253cf1c438 Remove unnecessary return types 2020-03-11 16:06:32 -05:00
Anmol Sethi
f6a5eaa965 Merge pull request #1406 from allanbowe/patch-1
chore: update README link (as no longer redirects)
2020-03-09 22:04:23 -04:00
Allan Bowe
f83a57a010 chore: update README link (as no longer redirects) 2020-03-09 20:40:41 +01:00
Anmol Sethi
92cec80b0e Merge pull request #1400 from zuchka/patch-1
verb agreement typo in FAQ
2020-03-07 22:10:21 -05:00
Anmol Sethi
1f601f27a2 Merge pull request #1399 from SuperSandro2000/docker
Optimize release Docker Image
2020-03-07 21:04:30 -05:00
Matt Abrams
71f1291623 verb agreement typo in FAQ
dear owners,

this is a simple copy-editing pull request. The issue regards verb-agreement. Thank you for your time,
best,

Dr. Matthew Jeffrey Abrams
2020-03-06 20:29:09 -05:00
Sandro Jäckel
9b07078b47 Combine two RUNs 2020-03-07 00:06:42 +01:00
Sandro Jäckel
8433a3d081 Combine all apt-get commands to really delete the cache from all layers 2020-03-07 00:00:58 +01:00
Asher
c8269fb54d Add exec to startup script
Removes an extra process. See #1388.
2020-03-06 10:31:16 -06:00
Asher
0b9a478289 Add connection type to websocket query parameters
This allows external services to distinguish between them.
2020-03-05 15:49:37 -06:00
Asher
c7e6e58387 Output newlines in CI immediately
Perhaps this is causing the output buffering issue with the arm builds.
2020-03-05 11:39:08 -06:00
Asher
8c515029fd Don't overwrite releases
This makes them drafts again which is not what I wanted.
2020-03-05 11:18:05 -06:00
Asher
1f6ff2f763 Show --install-extension in help menu
Also add --force so extensions can be updated without prompts.

Closes #1392.
2020-03-05 10:42:49 -06:00
Asher
04542c99fd Resolve passed-in directory
Makes relative paths work correctly.
2020-03-05 10:38:13 -06:00
Asher
8c47ba255a Preserve current working directory
Fixes #1388.
2020-03-05 10:26:14 -06:00
Asher
4e6f6bc2cc Fix .zip uploading to gcs as .tar.gz 2020-03-04 16:52:28 -06:00
Asher
7c65a54fcf Overwrite releases 2020-03-04 16:41:05 -06:00
Asher
1f43a673df Always build extensions on CI 2020-03-04 16:07:26 -06:00
Asher
744327ffd4 Update release dockerfile to use a symlink 2020-03-04 16:02:25 -06:00
Asher
a442d3e3f9 Make symlinking the entry script work 2020-03-04 15:22:32 -06:00
Asher
3e8a6f93a4 Build arm64 without travis_wait 2020-03-04 14:18:05 -06:00
Asher
308a84e6ec Fix centos image for arm64 2020-03-04 13:12:03 -06:00
Asher
cc139acfd1 Cache built-in extensions 2020-03-03 17:04:42 -06:00
Asher
32f8f481b6 Use Centos 7 for building
This will bring the libc requirements back down.
2020-03-03 16:19:51 -06:00
Asher
ec55ed39ee Fix json key decoding on Mac
It seems the short flag in MacOS is -D, not -d. The long flag is the
same. There are no other options with -d so I'm not sure why.
2020-03-03 16:01:22 -06:00
Asher
ee4b939efa Fix zip step for Darwin 2020-03-03 15:07:58 -06:00
Asher
538e8d8085 Store gcs key in Travis settings
Instead of encrypted in the repository.
2020-03-03 15:06:36 -06:00
Asher
2c4ca14d53 Merge pull request #1338 from cdr/restructure 2020-03-03 13:25:08 -06:00
Asher
8d934be6dc Elaborate what won't work over an insecure domain
Closes #997.
2020-03-03 13:10:32 -06:00
Kyle Carberry
c54450941c Update favicon 2020-03-03 02:25:53 +00:00
Asher
e0e019fbd5 Fix mime type for compressed client-side extensions
In Firefox using the gzip mime type will (probably correctly) cause it
not to decompress while in Chromium it still will (incorrectly).
2020-03-02 18:24:35 -06:00
Asher
77af2a5b0e Fix worker require paths when behind proxy 2020-03-02 18:04:27 -06:00
Asher
ecac0dd751 Handle unexpected string errors
Looks like sometimes VS Code throws strings. For example if ifconfig is
missing.
2020-03-02 17:22:23 -06:00
Asher
79b4c64a03 Add example gif 2020-03-02 15:13:39 -06:00
Asher
ccd01c49b9 Integrate update notifications into VS Code 2020-03-02 15:01:24 -06:00
Asher
069c5230cd Move VS Code to the root 2020-03-02 12:55:34 -06:00
Asher
c146457de4 Add recents section 2020-03-02 11:52:39 -06:00
Asher
88cab27165 Compress when sending client-side extension tars 2020-02-28 14:25:28 -06:00
Asher
a8914b025f Output code-server version on startup 2020-02-28 13:30:21 -06:00
Asher
0f87798ed6 Don't write bad password back out to input
Closes #1379.
2020-02-28 10:49:43 -06:00
Asher
963ebaca5b Register a service worker
To make installing as a PWA possible. Fixes #1181.
2020-02-27 16:37:00 -06:00
Kyle Carberry
eef2ed0e78 Update PWA icons 2020-02-27 20:43:31 +00:00
Asher
0e3720169f Add spacing between items
Also fix padding not being respected when blocks exceed container
height.
2020-02-27 12:58:40 -06:00
Asher
21cfeb9da0 Add the ability to kill running VS Code instance 2020-02-27 12:04:23 -06:00
Asher
fd65cadaea Upload into releases directory 2020-02-27 11:21:40 -06:00
Asher
70ad2354bb Remove gif link for now 2020-02-27 10:57:39 -06:00
Asher
01710cf6ff Update download instructions
We aren't providing binaries any longer.
2020-02-26 15:42:31 -06:00
Asher
b5c425b3a6 Major version -> 3.0.0 2020-02-26 15:09:56 -06:00
Asher
b00f6bf078 Improve error display when VS Code fails to load
Was looking a bit janky with the style changes.
2020-02-26 14:57:07 -06:00
Asher
a2639ac617 Add yarn vscode step to build instructions 2020-02-26 14:48:08 -06:00
Asher
07fcf1be7a Merge branch 'master' into restructure 2020-02-26 14:42:33 -06:00
Asher
75ca5b2b0b Add gcs upload to CI 2020-02-26 14:25:14 -06:00
Asher
082f25faf1 Add a note about external authentication
Closes #1369.
2020-02-26 14:25:13 -06:00
Asher
595ce6f5e3 Update styling
Just sort of winging it.
2020-02-26 14:25:12 -06:00
Anmol Sethi
b1760c8d29 Fix clean.sh 2020-02-25 21:30:58 -05:00
Asher
c870398c86 Switch to loose files
For #1306.
2020-02-25 18:23:35 -06:00
Asher
f76c809f7d Fix workspace storage creation
Fixes #1308.
2020-02-25 12:47:22 -06:00
Asher
4c6e4bedeb Fix port being randomized
Also make it a number.
2020-02-24 16:49:10 -06:00
Asher
04e449c546 Require cert-key with cert
Fixes #1312.
2020-02-24 15:01:59 -06:00
Anmol Sethi
c147711ade Remind user that generated password is in logs
Closes #446
2020-02-21 15:22:13 -05:00
Anmol Sethi
bd7583a254 Obey process.env.PORT 2020-02-21 14:49:58 -05:00
Asher
33b3523bf4 Prefer command-line directory to last visited directory
If you want to use the last visited directory you should omit the
directory from the command line.

Fixes #1132.
2020-02-21 12:45:57 -06:00
Asher
cf0f11105b Handle upgrade from binary to loose files
As best we can, anyway.
2020-02-21 12:32:58 -06:00
Anmol Sethi
9b7a203fe5 Make login page pretty 2020-02-20 20:08:25 -05:00
Asher
e44ac0a30e Use last positional argument as working directory
Instead of the first.
2020-02-20 18:48:17 -06:00
Asher
319cd3f7ab Make updating work for both binary and loose releases 2020-02-20 18:48:16 -06:00
Anmol Sethi
815dc06118 Use npm rebuild instead of yarn --no-scripts in vscode.sh 2020-02-20 19:11:01 -05:00
Anmol Sethi
3a2644a2bc Fix vscode.sh 2020-02-20 18:36:38 -05:00
Anmol Sethi
65690fca65 Fix CSP for Safari 2020-02-20 18:24:32 -05:00
Anmol Sethi
25288b1afd Cleanup FAQ and mention GPG/SSH forwarding 2020-02-20 17:45:04 -05:00
Asher
288e794c99 Update locale file location
Should make language packs work again.
2020-02-20 12:52:23 -06:00
Asher
c567a06ff5 Fix HTTPS redirects and TLS sockets
It still won't work behind a base path, but if you're using a reverse
proxy you can just redirect to HTTPS yourself. And should probably
handle TLS termination there too.

For sockets I just needed to add back the proxy call.
2020-02-19 17:59:12 -06:00
Asher
e5b68a8f4c Switch to new extensions API 2020-02-19 14:36:48 -06:00
Asher
51a5c77cb8 Add binary extraction
I temporarily removed this during the refactor so it needed to be added
back. This time I bundled it with the nbin loader code since it's all
related (will also make it easier to remove).
2020-02-19 14:15:01 -06:00
Anmol Sethi
b9e7a3daa7 Add back .editorconfig 2020-02-19 14:22:14 -05:00
Asher
80b2d9481f Don't display stack trace for cli parse failures
Just display the error message and exit. The stack trace isn't necessary
(since it's likely user error) and is potentially confusing.
2020-02-19 11:15:39 -06:00
Asher
0e2eaa9b34 Add valid values for --log 2020-02-19 11:11:29 -06:00
Asher
0263188431 Handle --long=value format in the cli parser 2020-02-19 10:54:23 -06:00
Anmol Sethi
fa30639784 Update issue template 2020-02-19 00:58:28 -05:00
Anmol Sethi
015b8dcf13 Merge branch 'ensure-release' into restructure 2020-02-19 00:28:21 -05:00
Anmol Sethi
9f3240346c Doc fixes 2020-02-19 00:27:02 -05:00
Anmol Sethi
b76364db31 Flesh out FAQ 2020-02-18 23:31:48 -05:00
Anmol Sethi
a065c12e83 CI Fixes 2020-02-18 23:31:40 -05:00
Anmol Sethi
76831f11fc Merge branch 'fix-ci' into restructure 2020-02-18 19:07:34 -05:00
Anmol Sethi
b6aa0cbcba Fix docs 2020-02-18 19:07:01 -05:00
Anmol Sethi
5681c87e33 Fix bugs in CI 2020-02-18 19:06:35 -05:00
Asher
46d6e17508 Prepare for release
- Add VS Code icon
- Trim dashboard to just display dedicated VS Code section
- Version was getting unset during build
- Add back nbin shim which I temporarily took out earlier
- Update tests for log level env var changes
2020-02-18 17:31:23 -06:00
Anmol Sethi
1aaa53622d Pass through travis tag in run.sh 2020-02-18 16:34:28 -05:00
Asher
bdb189a9bb Allow https images
Fixes extension icons not loading.
2020-02-18 14:57:12 -06:00
Asher
8793110941 Implement endpoint for getting recent directories 2020-02-18 14:13:22 -06:00
Asher
16bcf59cb0 Merge pull request #1357 2020-02-18 13:33:06 -06:00
Asher
f6b092b12d Merge branch 'restructure' 2020-02-18 13:30:37 -06:00
Asher
d47591e253 Inject base path into manifest
Might fix #1181, although not for the reasons I initially
thought (because the URLs are resolved from the manifest path, not the
path of the current page). This should ensure that the URLs used by the
manifest are always correct regardless of the manifest's path.
2020-02-18 13:01:18 -06:00
Anmol Sethi
1a91588c42 Add docker image pushing 2020-02-18 13:28:13 -05:00
Asher
39a57700bc Enable access to vscode cli 2020-02-18 12:24:12 -06:00
Anmol Sethi
1a54f6b7ef Merge remote-tracking branch 'origin/restructure' into anmol-restructure 2020-02-18 12:52:29 -05:00
Anmol Sethi
eb3cf303ad Add back travis since github actions is trash 2020-02-18 11:32:57 -05:00
Anmol Sethi
0d31a51eeb Add github release creation 2020-02-15 16:20:41 -05:00
Anmol Sethi
61d1af0413 Add macOS release step 2020-02-14 21:16:23 -05:00
Anmol Sethi
4aa15401c3 Format and lint 2020-02-14 20:00:19 -05:00
Anmol Sethi
80b1b1b672 Shake CI and docs up 2020-02-14 19:46:17 -05:00
Asher
0ec83f8736 Check updates daily instead of every time
Also add a way to force a check.
2020-02-14 16:46:22 -06:00
Asher
db54f78e8e Implement automatic updates 2020-02-14 15:58:39 -06:00
Asher
b8fa7da972 Simplify frontend
Just a login form and a list of applications. No modals or anything like
that.
2020-02-13 20:10:14 -06:00
Asher
bf1be16d11 Fix base path
Now it should work whether you have a trailing slash or not.
2020-02-13 12:41:58 -06:00
Asher
cc79edb312 Fix duplicate files opening with folder parameter
Reworked from d574012871 to fit in the
new structure.
2020-02-13 12:04:22 -06:00
Asher
ac4f2b8215 Update VS Code to 1.42.0 2020-02-13 11:55:15 -06:00
Asher
c8fc54bfb1 Update VS Code version for CI 2020-02-12 18:03:53 -06:00
Asher
d574012871 Fix duplicate files opening with folder parameter
When using a query parameter without a scheme, the scheme defaults to
`file`. This results in the files in the explorer being technically
different from the file picker files because they are file:// instead of
vscode-remote://, causing the same file to open twice and causing
numerous issues.

Normally the file explorer wouldn't even load at all in this case but we
provide a file service for file:// URLs as a failsafe for certain files
that wouldn't load correctly in the past. These files load fine now
using the vscode-remote scheme, so I'm also removing that service.

Related: #1351.
Fixes #1294.
2020-02-12 16:57:44 -06:00
Asher
250a54220c Update VS Code to 1.42.0 2020-02-12 14:31:34 -06:00
Asher
5baf16622f Fix VS Code product configuration not loading 2020-02-07 16:47:51 -06:00
Asher
256419004d Implement cli parser 2020-02-07 14:43:08 -06:00
Anmol Sethi
6a693e7181 Merge pull request #1346 from SuperSandro2000/patch-1
Dockerfile: Combine two runs
2020-02-06 16:10:50 -06:00
Sandro
b38cfa473e Dockerfile: Combine two runs 2020-02-06 23:05:40 +01:00
Asher
26f8216ec8 Un-nest a switch 2020-02-06 14:00:38 -06:00
Asher
63f3c04c57 Move user data directory logic out of patch 2020-02-06 13:12:00 -06:00
Asher
8a0f1d846e Move start path logic out of patch and fix it 2020-02-06 12:29:38 -06:00
Asher
efaeb3b110 Add hidden username field for accessibility 2020-02-06 10:26:53 -06:00
Asher
6cebfa469d Generalize initial app logic 2020-02-05 18:47:00 -06:00
Asher
205775ac97 Only serve HTML on specific index.html requests
Otherwise there is risk of an infinite loop through the iframe where the
fallback keeps loading the root HTML which itself has an iframe...
2020-02-05 17:45:24 -06:00
Asher
4cc181cedc Make routing base path agnostic 2020-02-05 17:38:21 -06:00
Asher
a149c5fc60 Pass arguments to code-server during watch 2020-02-05 14:48:15 -06:00
Asher
6e809b6a31 Handle when VS Code fails to load
This is mostly for development where VS Code might not have finished
compiling yet.
2020-02-05 14:23:42 -06:00
Asher
7c6fe56043 Add logo to background 2020-02-05 13:30:29 -06:00
Asher
8cc11d1688 Improve routing 2020-02-05 13:07:07 -06:00
Asher
dbc5c065f8 Improve HTTP provider registration 2020-02-04 16:55:27 -06:00
Asher
4a54e914fc Remove 32 bit arm builds from CI 2020-02-04 16:01:00 -06:00
Asher
b30aefcfb1 Add linting steps and improve testing steps 2020-02-04 15:42:55 -06:00
Asher
b29346ecdf Implement new structure 2020-02-04 14:31:44 -06:00
Anmol Sethi
ef8da3864f Merge pull request #1336 from cdr/revert-1334-patch-1
Revert "Decomission Travis"
2020-02-04 11:35:37 -06:00
Anmol Sethi
108eb297d8 Revert "Decomission Travis" 2020-02-04 11:35:19 -06:00
Anmol Sethi
19f3acd9f0 Merge pull request #1334 from sr229/patch-1
Decomission Travis
2020-02-04 11:35:12 -06:00
Dean Sheather
3ee6b0ff0b Automatically push releases to GCS (#1318) 2020-02-04 11:32:45 -06:00
Anmol Sethi
e270f7da1b Merge pull request #1335 from cdr/revert-1225-master
Revert "Updates manifest.json"
2020-02-04 11:30:14 -06:00
Anmol Sethi
e6117decd0 Revert "Set display property in manifest to fullscreen"
This reverts commit c7127cb248.
2020-02-04 11:30:00 -06:00
TheHllm
c7127cb248 Set display property in manifest to fullscreen 2020-02-04 11:23:21 -06:00
Ben Potter
50234e5f04 Reflects new location of vscodeVersion (#1327) 2020-02-04 11:10:32 -06:00
Ayane Satomi
5f562dc113 Decomission Travis
We won't need Travis from now on since it's only purpose is to do Mac builds, which no one uses anymore.
2020-02-04 20:43:54 +08:00
Anmol Sethi
bb8bad49dc Remvoe question issue template
Closes #1331
2020-02-03 11:35:18 -06:00
Anmol Sethi
a674d882bf Remove buggy -v flag from README.md docker run
Closes #1270

Will describe in FAQ how to keep state.
2020-01-27 12:17:59 -06:00
Asher
f51e045cd5 Use the nbin centos container to build again
This will put the glibc requirement back down to what it used to be.
2020-01-17 16:27:36 -06:00
Asher
8122b7f69e Remove unused upload service
No longer needed since VS Code has their own now.
2020-01-17 12:23:36 -06:00
Asher
25f18beda4 Fix version test 2020-01-16 18:09:19 -06:00
Asher
7e7923706f Fix version generated from Git tag 2020-01-16 17:59:11 -06:00
Asher
ae35673489 Use custom Yarn cache directory
Makes it easier to upload and restore.
2020-01-16 15:39:44 -06:00
Asher
23f142fdc6 Cache Yarn cache 2020-01-16 15:23:25 -06:00
Asher
101139fabf Fix Drone CI releases
Also skip the 32 bit arm releases since they don't currently build
anyway.
2020-01-16 14:53:59 -06:00
Asher
e2d354c8f2 Move manifest icon to the root as well 2020-01-16 12:11:56 -06:00
Asher
7c178805ea Add comment about the manifest's served location
Also for #1278.
2020-01-16 11:44:17 -06:00
Asher
45f70e741f Move manifest to the root
Fixes #1278.
2020-01-16 11:36:17 -06:00
Asher
1474a82c7d Add insecure access notification 2020-01-16 11:15:22 -06:00
Asher
d97feca3ba Add code-server version to the about dialog 2020-01-15 18:02:19 -06:00
Asher
b2669e78bf Implement ExtHostStoragePaths for the browser
This appears to make vscodevim work again.
2020-01-15 17:13:06 -06:00
Asher
66ee6e8201 Ignore 32 bit arm failures for now
Seems we are running out of memory.
2020-01-15 13:48:27 -06:00
Asher
62f050fda7 Add a simple test 2020-01-15 13:22:45 -06:00
Asher
57425377e5 Use CI dockerfile for pushing Docker image 2020-01-15 13:22:45 -06:00
Asher
174cb2f8a9 Remove unused Docker step from CI script 2020-01-15 13:22:42 -06:00
Asher
42bddce21f Add defaults for environment variables
So we don't have to keep setting them for each CI and every single step
since there doesn't seem to be a way to share them between steps in
Drone.
2020-01-15 13:21:58 -06:00
Asher
f2a15795a1 Use draft releases for Drone
This gives us a chance to review it and add notes.
2020-01-15 13:21:58 -06:00
Asher
6dd5e515c5 Travis release on tags only and remove Docker push
The manual tagging is necessary to sync up the releases of the two
different CIs.
2020-01-15 13:21:55 -06:00
Asher
92da02ef3e Add Drone CI caching 2020-01-15 13:20:58 -06:00
Ayane Satomi
3ce7129492 Drone CI migration (#1261) 2020-01-15 13:14:05 -06:00
Asher
336ee28888 Update Node to 12.14.0 2020-01-08 16:30:44 -06:00
Asher
3f2240ab65 Update logger 2020-01-08 16:30:34 -06:00
Asher
1087037728 Don't push latest and v2 Docker tags automatically
We should only push those when the version is confirmed to work.
2020-01-08 15:05:12 -06:00
Asher
1959d82912 Increase cache timeout
The Mac build seems to be terminated due to a timeout during the caching
stage.
2020-01-08 13:20:50 -06:00
Asher
8024144381 Update VS Code to 1.41.1 2020-01-07 18:27:41 -06:00
Asher
6a1dcab7a6 Update nbin
Should finally be able to build with Node v12 now.
2020-01-07 18:27:28 -06:00
Asher
e6d1f2a7c8 Update VS Code to 1.41.0 2019-12-16 16:52:29 -06:00
Asher
44c4722edf Fix data directory path in Dockerfile 2019-12-10 12:06:52 -06:00
Asher
e5fc63f2c8 Fix accessing manifest behind basic auth
Apparently the manifest spec doesn't include sending credentials in an
attempt to be secure by default.

Fixes #1212.
2019-12-09 11:25:59 -06:00
Asher
015a99e87d Always install VS Code dependencies
This fixes the case where the script is killed before all the
dependencies were fully installed.
2019-12-09 10:55:24 -06:00
Simen Eriksen
884491d72b Update Dockerfile to fix EACCES issue on mount (#1191)
https://github.com/cdr/code-server/issues/1188 
Fixes issue with permissions mounting in directories in the container. Folders are generated by root causing issues when the container user "coder" wants to create sub-folders. This fix solves it, at least on Crostini (ChromeOS)
2019-12-05 13:38:03 -06:00
Asher
e14362f322 Pass along Node options 2019-11-14 17:20:23 -06:00
Asher
917aa48072 Update enterprise link
Fixes #1172.
2019-11-14 11:16:08 -06:00
Asher
938c6ef829 Update fail2ban configuration
Fixes #1177.
2019-11-14 11:14:27 -06:00
Sandro
0add01d383 Delete apt lists from final image (#1174) 2019-11-14 11:12:21 -06:00
Asher
2018024810 Hash password
Fixes issues with unexpected characters breaking things when setting the
cookie (like semicolons).

This change as-is does not affect the security of code-server
itself (we've just replaced the static password with a static hash) but
if we were to add a salt in the future it would let us invalidate keys
by rehashing with a new salt which could be handy.
2019-11-07 15:57:57 -06:00
Asher
a1d6bcb8e5 Handle cookies more robustly
If you visit /login/ instead of /login the cookie will be set at /login
instead of / which means the cookie can't be read at the root. It will
redirect to the login page which *can* read the cookie at /login and
redirect back resulting in an infinite loop.

The previous solution relied on setting the cookie at / (any invalid
value works) which then overrode the login page cookie since
parseCookies only kept a single value. So the login page would see the
same cookie the root was seeing and not redirect back. However, that
behavior depends on the cookies being in the right order which I'm not
sure is guaranteed.

This new method tests all available cookies and always sets the cookie
so the root path will be able to read it in case the login page is
seeing a cookie the root can't.

It also goes a step further and explicitly sets the path on the cookie
which fixes the case where there is a permanent misconfiguration
redirecting /login to /login/. Otherwise the cookie would continually be
set on /login only and you'd have another loop. It also means you only
need to delete one cookie to log out.

Lastly add some properties to make the cookies a bit more secure.
2019-11-07 13:36:18 -06:00
ecrode
727ac6483b Clear password when redirecting to login
Should prevent endless redirects when the cookie is set on a different path or domain (like with a dot prefix).
2019-11-07 11:38:10 -06:00
Asher
2c15c09fc0 Add missing telemetry option 2019-11-06 15:47:34 -06:00
Asher
2ad2582cc0 Minor readme updates and fixes 2019-11-05 13:49:18 -06:00
Asher
cee0ac213c Fix error activating extensions on insecure domains
Doesn't affect Firefox but it does affect other browsers.

Fixes #1136.
2019-11-04 17:10:00 -06:00
Asher
780a673017 Add meta tag to allow full screen app on iOS
Fixes #933.
2019-11-04 16:01:01 -06:00
Asher
af71203955 Fix relaunching during an update 2019-11-01 10:51:23 -05:00
Asher
fc3acfabb2 Fix update check 2019-10-30 17:35:50 -05:00
Asher
3d5db8313a Add secure domain to requirements 2019-10-30 10:33:07 -05:00
Asher
73cf8f34e3 Fix outgoing scheme transformation
Accidentally used local instead of remote.

Fixes #1127.
2019-10-30 10:32:57 -05:00
dependabot[bot]
766efd6079 Bump mixin-deep from 1.3.1 to 1.3.2 (#1126)
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-10-29 15:20:12 -05:00
Asher
87485948ad Kill inner process if parent process dies
Fixes #1076.
2019-10-29 14:43:27 -05:00
Asher
7e4a73ce2d Fix schema matching against vscode-remote
Fixes #1104.
2019-10-29 11:42:28 -05:00
Asher
2f0878d9b7 Revert remote scheme change
It doesn't show in the explorer anymore so there's no point. Also remove
the local scheme transform which is no longer required with the latest
client-side extension implementation.
2019-10-29 11:26:50 -05:00
Marc-André Daigneault
f65c9b23fc Add docker-compose file (#680) 2019-10-29 11:08:01 -05:00
Asher
cd859d117f Start pushing to latest Docker tag 2019-10-29 11:04:38 -05:00
Asher
e22964915a Support opening workspaces from command line
Partly addresses #1121.
2019-10-28 16:25:51 -05:00
Asher
197d0b6ca9 Strip internal env vars when spawning the shell
This should fix all those reports of code-server dropping straight to
Node and things like #1121.
2019-10-28 16:08:32 -05:00
Asher
422503ef98 Proxy child exit code when exiting parent process
This fixes code-server exiting with zero on errors.
2019-10-28 14:57:01 -05:00
Asher
ea36345d2c Allow fetching any resource
Fixes #1118.
2019-10-28 14:29:51 -05:00
Asher
a89d83cbba Fix other incorrect usages of split 2019-10-28 14:03:13 -05:00
Asher
83ff31b620 Fix passwords that contain =
Fixes #1119.

Apparently `split` does not work the way I'd expect.
2019-10-28 13:47:31 -05:00
Asher
3a9b032c72 Add heartbeat file (#1115)
Fixes #1050.
2019-10-28 09:59:34 -05:00
Asher
f73e9225b4 Remove directory restrictions for /webview/vscode-resource
This makes viewing images work. Fixes #1111.
2019-10-25 15:52:39 -05:00
Asher
168ccb0dfc Prevent cache changes when patch updates 2019-10-25 13:12:04 -05:00
Asher
58f7f5b769 Properly fix blank --cert flag
See #1109.
2019-10-25 12:04:43 -05:00
Asher
b8e6369fbe Fix empty --cert not generating self-signed certificate
Fixes #1101.
2019-10-25 11:01:42 -05:00
Asher
d81d5f499f Remove Cloud Run button
Unfortunately it doesn't allow websockets so it's not working.
2019-10-24 16:45:22 -05:00
Asher
4be178d234 Move Google Cloud button to match Digital Ocean 2019-10-24 16:09:02 -05:00
Ayane Satomi
9c40466b4b Add Google Cloud quick-launch button (#1069) 2019-10-24 16:07:44 -05:00
Asher
95693fb58e Handle /webview/vscode-resource/file urls
See #1103.
2019-10-24 14:35:25 -05:00
Asher
e7945bea94 Enable password authentication by default
Fixes #1062.
2019-10-24 12:35:26 -05:00
Asher
91f49e1efd Set SHELL to /bin/bash in Docker
Fixes #1081, fixes #918.
2019-10-23 13:34:00 -05:00
Asher
eea9c1618c Move client-side extension code out of patch 2019-10-23 13:12:11 -05:00
Asher
f1b38e4e48 Fix out-of-order readme section 2019-10-23 11:54:47 -05:00
Asher
ff99a1d768 Add security section to readme
See #1062.
2019-10-23 11:49:17 -05:00
Asher
7f07b8f66c Push Docker using Linux build
Instead of doing a separate redundant build. The main problem was that
the files weren't being cached. There is probably a better way of
solving this but this seems to be the simplest for now.
2019-10-22 18:43:21 -05:00
Asher
faae03da6b Add prerequisites for building 2019-10-22 17:49:43 -05:00
Asher
a6e4f96737 Fix webview html being excluded
Also skip the workbench html since we have our own.
2019-10-22 16:09:27 -05:00
Asher
cc7585bbc2 Port onigasm fix for PHP 2019-10-22 11:39:00 -05:00
Asher
14a0cd3ffd Remove build files in source
They aren't used in subsequent files and just slow down CI since it has
to extract from the cache and then package the changes.
2019-10-22 11:26:46 -05:00
Asher
3ff83eda45 Ensure VS Code dependencies and built-in extensions exist
Fixes #1087.
2019-10-22 10:49:00 -05:00
Asher
f133b00851 Fix darwin detection 2019-10-21 16:51:01 -05:00
Asher
ece840834d Move login page to browser directory
Fixes it not being included in the optimized build as well as making it
more consistent.
2019-10-21 15:02:41 -05:00
Asher
76f6ff4145 Fix alpine check 2019-10-21 14:09:04 -05:00
Asher
2458cde498 Update source & build paths in Dockerfile 2019-10-21 12:25:18 -05:00
Asher
82e2b8a169 Move source to its own directory
This matches how the rest of the build is organized but also hopefully
solves an issue where the VS Code directory is empty because we try to
cache it directly and Travis might be creating it.
2019-10-21 11:16:47 -05:00
Asher
5aa2abaf9f Cache VS Code in CI 2019-10-21 11:06:09 -05:00
Asher
fdb2308c62 Update path to built binary in Dockerfile 2019-10-21 10:56:27 -05:00
Asher
4cd2f2cd52 Simplify build and development steps 2019-10-18 19:10:55 -05:00
Asher
88cef85f62 Add dependencies required for running build script
They were getting pulled from VS Code which doesn't work if you are
running a build in a clean repo.
2019-10-18 18:40:10 -05:00
Asher
bdd11f741b Update to 1.39.2
Also too the opportunity to rewrite the build script since there was a
change in the build steps (mainly how the product JSON is inserted) and
to get the build changes out of the patch. It also no longer relies on
external caching (we'll want to do this within CI instead).
2019-10-18 18:20:02 -05:00
Asher
56ce780522 Prevent process.exit() 2019-10-11 17:00:17 -05:00
Asher
567010e163 Cache extension tar requests 2019-10-11 14:28:02 -05:00
Asher
4ae2c81157 Remember last workspace or directory 2019-10-11 14:26:20 -05:00
Asher
ae43e2016f Handle up/down on server 2019-10-10 17:05:30 -05:00
Asher
3f6cbfa4dd Handle up/down/close on client 2019-10-10 16:12:38 -05:00
Asher
1c50b5285e Resolve bundling issues with node-browser 2019-10-10 15:36:56 -05:00
Asher
ea9c511db8 Check major version when getting latest version 2019-10-08 16:23:39 -05:00
Adam Vernon
e1e3f32643 Add missing PWA icon (#1060)
- Copy old icon back into repository
- Update path to icon from manifest file
- Add link metadata tag for iOS PWA icon to workbench.html
- Add link metadata tag for iOS PWA icon to login page
2019-10-07 12:55:02 -05:00
Asher
4290cffe3b Update packages for in-browser extensions 2019-10-07 11:59:09 -05:00
Asher
548d095611 Add support for running extensions in the browser 2019-10-04 18:14:19 -05:00
Ayane Satomi
846dcbb947 [doc/quickstart] use version from GH-379 (#1012)
This is the same PR but with some fixes for v2.

Co-Authored-by: nwtnsqrd <30381446+nwtnsqrd@users.noreply.github.com>
Signed-off-by: Ayane Satomi <chinodesuuu@gmail.com>
2019-09-30 11:19:46 -05:00
yeya24
d7d3368cc2 update yaml tag to v2 (#1034)
Signed-off-by: yeya24 <yb532204897@gmail.com>
2019-09-30 10:30:33 -05:00
Kyle Carberry
134040fea3 Update extensions section of readme 2019-09-27 09:39:29 -05:00
Asher
65caa26d40 Pass log level to extension host 2019-09-23 16:57:48 -05:00
Asher
7812f6b75a Fix uncaught errors when extracting zips
Fixes #966.
2019-09-23 16:57:48 -05:00
Asher
637e58f255 Prevent opening invalid paths 2019-09-23 16:57:47 -05:00
Asher
6135630fc0 Fix not being able to change language while code-server is running
See #948. Only applies if code-server already tried to load a
language.
2019-09-23 16:57:46 -05:00
Ayane Satomi
22058c5f86 [README] add Requirements section (#1000)
* [README] add Requirements section

This is based user feedback and testing. This may expand if need be

Signed-off-by: Ayane Satomi <chinodesuuu@gmail.com>

* [README] raised the bar a bit more

Apparently we were targeting GLIBC 2.17

Signed-off-by: Ayane Satomi <chinodesuuu@gmail.com>
2019-09-18 13:21:38 -05:00
Asher
616bdb35f3 Fix using port zero 2019-09-18 11:39:16 -05:00
Asher
42f7b5d12b Still using the wrong tag for Docker 2019-09-17 15:25:17 -05:00
Asher
53818b0e36 Use conditional instead of inline if 2019-09-17 15:12:58 -05:00
Asher
6f08b13540 Fix 404 when logging into Docker 2019-09-17 14:59:01 -05:00
Asher
d36526b1c8 Move DOCKER_BUILD check into deploy script 2019-09-17 14:45:03 -05:00
Asher
1252eb6a8a Don't use a sequence for Docker deploy
Travis deploy scripts can't be sequences yet.
2019-09-17 14:39:21 -05:00
Asher
4733c31a2f Fix incorrect Docker tag 2019-09-17 14:21:23 -05:00
Asher
17c5173d8b Use --build-arg for GitHub token 2019-09-17 14:00:51 -05:00
Asher
d0a08f6dd7 Pass GITHUB_TOKEN through to Docker build
Also, back to drafts.
2019-09-17 13:42:14 -05:00
Asher
7b5d6d186b Fix some CI issues
- Don't error if trying to tag and the tag already exists.
- Add the build arguments to the Docker build.
- Set an environment variable for the Docker build rather than using
- the username because the username always exists (on master anyway).
2019-09-17 13:17:38 -05:00
Asher
3851927396 Push latest v2 Docker image as well 2019-09-17 12:31:40 -05:00
Asher
7eececead6 Use v2 tag for Docker example 2019-09-17 12:27:32 -05:00
Luca Casonato
b8c3d96fcd Auto docker building and deploy in travis CI (#521)
* made spacing for travis yaml consistent in file

* cleaned up .travis.yml and moved some code into a script

* checking if i can get travis to build this

* travis

* fixed an if statement

* fixed travis.yml file

* replaced my name with codercom
2019-09-17 11:55:05 -05:00
Asher
a2ee6c8e73 Don't build on tags 2019-09-17 11:26:59 -05:00
Asher
ef069d9b0e Update nbin
The latest version contains a fix for passing null options when reading
a file. Fixes #544.
2019-09-16 18:04:41 -05:00
Asher
6a864f9f47 Make websocket upgrade check case-insensitive
Fixes #925.
2019-09-16 15:05:45 -05:00
Asher
5c16399810 Fix accessing versioned resource using file service
Fixes #986.
2019-09-16 15:05:44 -05:00
Ayane Satomi
0141ded35d [doc/quickstart] add init docs (#981)
Add init docs so people have an idea what to do when starting up a service.

Resolves GH-947
2019-09-16 15:05:25 -05:00
Asher
bb46e80d44 Fix extensions that try to load from node_modules.asar
Should allow manual installation of bracket pair colorizer 2: #544.
2019-09-13 13:07:50 -05:00
Asher
1bd5eca73d Don't terminate extension host on a timeout
We will clean it up on our end if necessary. This allows reconnections
after any length of time.
2019-09-13 11:24:15 -05:00
Asher
48a97abe1d Fix Firefox scrolling
Fixes #976.
2019-09-13 10:42:59 -05:00
Asher
0ff8a11c7f Vsix upload should work 2019-09-13 10:22:07 -05:00
Asher
8b1cdaa4a1 Nbin is no longer a global dependency 2019-09-13 10:20:35 -05:00
Asher
0bbaa9763b Add back Digital Ocean button 2019-09-13 10:17:27 -05:00
Asher
dbe5f23e21 Fix Docker image not building
It seems to copy the entire directory to the second container for some
reason and runs out of space.
2019-09-12 17:24:59 -05:00
Asher
7353be413c Add missing VS Code version to git tag 2019-09-12 16:17:18 -05:00
Asher
398bc2ff41 Try travis_wait to fix long minify task in MacOS 2019-09-12 15:38:53 -05:00
Asher
ae1126d43f Target VS Code 1.38.1 2019-09-12 12:49:28 -05:00
Asher
46d16811b9 Add missing VS Code version to release tag & name 2019-09-12 12:18:20 -05:00
Asher
f8635a124f Add tar endpoint
This will be used to load extensions into the browser using requirefs.
2019-09-12 12:17:16 -05:00
Asher
c3c50e9a6a Merge pull request #857 from cdr/web
[v2] Rewrite code-server to use new web stuff
2019-09-12 11:59:19 -05:00
Ayane Satomi
cb0f9c58d2 re-add GH-969
I somehow deleted it during the conflict resolution

Signed-off-by: Ayane Satomi <chinodesuuu@gmail.com>
2019-09-13 00:51:29 +08:00
Ayane Satomi
8643bdc9d7 fix further conflicts in README.md
Signed-off-by: Ayane Satomi <chinodesuuu@gmail.com>
2019-09-13 00:48:09 +08:00
Ayane Satomi
5b51999df7 resolve tree conflicts with master
Signed-off-by: Ayane Satomi <chinodesuuu@gmail.com>
2019-09-13 00:46:29 +08:00
Ayane Satomi
64cc2895f3 [doc/self-hosted] make XFO same origin in docs (#970)
As reported in GH-962, this breaks VSCode's extension details view. Might need further triage if its also a v2 internal issue.
2019-09-12 10:27:22 -05:00
Ayane Satomi
51a82655a9 [README] Add volume flag for persisting configs (#969)
Fixes GH-965
2019-09-12 10:12:39 -05:00
Asher
0e1fed3c24 Make CI script work independently from your cwd 2019-09-10 11:29:48 -05:00
Asher
e9fce801a0 Make extension host reconnect 2019-09-09 18:44:17 -05:00
Asher
1164801376 Keep a maximum number of connections instead of a timeout
There's no way to actually know if those clients have gone away, so it
seems it might be better to base it on whether the user has connected
again with new clients to determine if the old clients are now invalid.
2019-09-09 16:41:04 -05:00
Asher
12e608468b Add caching 2019-09-06 17:46:32 -05:00
Dean Sheather
ed3e9d31f4 Merge pull request #916 from cdr/doc-rewrite
Rewrite and update documentation
2019-09-07 02:56:38 +10:00
Asher
44000459da Add environment variable for telemetry endpoint 2019-09-05 15:26:35 -05:00
Asher
9d8906d250 Add version format flag 2019-09-04 17:01:06 -05:00
Asher
a26844ea45 Add package.json for publishing API types 2019-09-04 11:47:50 -05:00
Asher
da7d8b04a8 Update VS Code 2019-09-03 17:24:14 -05:00
Asher
12bc26b6b4 Implement status bar API 2019-09-03 16:38:53 -05:00
Asher
976a326f47 Update nbin 2019-08-30 17:45:11 -05:00
Asher
b901043bfc Target a recent commit for VS Code
This is so we can try out the web worker extension host.
2019-08-29 19:11:11 -05:00
Asher
624a4c08b9 Minify Docker build 2019-08-28 17:04:58 -05:00
Asher
c9ce9ebb2e Fix spawns against Node
For example some code tries to run -e against the binary but that fails
since we inject our entry file every time the binary is invoked.

Fixes #932.
2019-08-28 16:40:29 -05:00
Asher
a3ee7c96a0 Don't open cwd by default
Fixes #889. Previous it would use the cwd. In some cases that's the
path of where the binary is located which is a weird place to open.
2019-08-27 14:26:54 -05:00
Asher
d33b2d2af9 Fix web view sometimes not loading correctly
Fixes #929.
2019-08-27 14:03:27 -05:00
Asher
830ccfe245 Fix toggling and hiding the menu bar 2019-08-23 14:54:39 -05:00
Asher
78b6b3afdf Add check for missing reconnection token
This means something is misconfigured.
2019-08-23 13:44:14 -05:00
Asher
c4fd725875 Fix built-in Typescript when bundled
Fixes #641.
2019-08-22 16:30:22 -05:00
Asher
4800ec6392 Fix playground when behind a proxy with a sub-path
It gets the web URL for the file yet uses the file service to load it,
so having a sub-path causes it not to be found on disk (the sub-path
obviously only means anything for the web server and isn't on disk).
2019-08-22 12:15:23 -05:00
Asher
3e2d12a224 Fix scrolling on Firefox 2019-08-22 11:33:58 -05:00
Asher
ddd5a9ae79 Update data and extension paths to match version one
To ensure users don't lose their extensions when updating.
2019-08-21 17:02:31 -05:00
Asher
950dad9489 Simplify getting the absolute path during build 2019-08-21 14:13:26 -05:00
Asher
c19223b7fe Fix error when building without first running yarn 2019-08-21 12:45:10 -05:00
Asher
80050d0d9d Detect target automatically
This removes the potential for a bad build because the native Node
modules currently can only be built on the target system, so specifying
a target for something other than the system your are building on will
not work.
2019-08-21 12:45:09 -05:00
Asher
c2be0ec71b Fix Firefox when using extensions that insert styles 2019-08-21 10:29:37 -05:00
Asher
ccc4f87ada Don't package for release if we don't need to 2019-08-20 19:46:39 -05:00
Asher
534600c1ff Don't error when scanning nonexistent extension dir 2019-08-20 19:16:44 -05:00
Dean Sheather
0f1bbc3161 Merge pull request #917 from paolomainardi/master
#914 - New helm chart for v1
2019-08-21 05:08:30 +10:00
Paolo Mainardi
615948c73f refs #914: Fix identation for args and vars 2019-08-20 15:00:59 +02:00
Asher
b9fc40409a Forward minify environment variable to Docker build 2019-08-19 17:17:38 -05:00
Asher
e53d6bce68 Forward GitHub token to docker build if it exists 2019-08-19 17:02:02 -05:00
Asher
ce3b7dfb1e Use readlink -f if realpath isn't available 2019-08-19 16:59:36 -05:00
Paolo Mainardi
19541c27ff refs #914: Helm chart 2019-08-19 22:18:17 +02:00
Dean Sheather
c94761f312 Documentation changes 2019-08-19 21:12:04 +10:00
Asher
b4e1a62cb4 Fix tasks
Fixes #898.
2019-08-16 15:06:59 -05:00
Dean Sheather
7caef7f49c Rewrite and update documentation 2019-08-17 05:46:37 +10:00
Asher
6737384d27 Handle existing query when opening folder 2019-08-15 17:28:02 -05:00
Asher
f61a0ae78a Set unexpected error handler on startup
Fixes #911.
2019-08-15 16:02:14 -05:00
Asher
d1662d7658 Ensure service workers are supported before use
Fixes #909.
2019-08-15 15:41:04 -05:00
Asher
72fe124e30 Fix loading resources in webviews
Fixes #901.
2019-08-15 15:40:02 -05:00
Asher
a48c2fb119 Handle webview service worker resource requests 2019-08-15 14:30:41 -05:00
Asher
07ec4ca63e Fix PHP syntax highlighting 2019-08-14 16:20:17 -05:00
Asher
83f86a45b6 Load language bundles on the client 2019-08-14 10:25:31 -05:00
Asher
45ad7f020a Update logger 2019-08-13 12:03:08 -05:00
Asher
2470081789 Exit when pipe closes
This allows piping to things like `head` without SIGPIPE errors.
2019-08-12 15:39:04 -05:00
Asher
c11d5fe9e6 Fix error when passing empty extra extension dir flag 2019-08-12 14:27:11 -05:00
Asher
90e8714e71 Preserve query variables when redirecting 2019-08-12 11:55:33 -05:00
Asher
5539519691 Remove extra slash when opening folder 2019-08-12 11:36:47 -05:00
Asher
b566b66590 Fix service worker scope when there is a base path 2019-08-12 11:24:05 -05:00
Asher
7389d9e2cb Use current URL for webview 2019-08-12 10:23:08 -05:00
Asher
1d61cbe536 Make release directory 2019-08-09 19:27:30 -05:00
Asher
2807ce495e Add tar-stream dependency
It's no longer included by the remote dependencies.
2019-08-09 19:23:44 -05:00
Asher
ba7285192c Update VS Code to 1.37.0 2019-08-09 19:23:41 -05:00
Asher
8c39e085f4 Use generic releases link for v2 message 2019-08-08 13:40:01 -05:00
Asher
b257c60636 Fix websocket defaulting to port 80 when authority has no port 2019-08-08 11:59:07 -05:00
Asher
6b579d65ef Fix webview address when using a proxy 2019-08-08 11:39:06 -05:00
Asher
d4ed2efa71 Change default port to 8080 2019-08-08 11:21:45 -05:00
Asher
3667b16cba Add link to v2 preview 2019-08-07 18:18:01 -05:00
Asher
2b3e8e1a89 Don't exclude .git for Docker
The build requires it to get the commit hash.
2019-08-07 16:39:31 -05:00
Asher
f5a6f14ade Implement update service 2019-08-07 16:18:17 -05:00
Asher
01a9ab332e Set commit based on code-server instead of VS Code
This ensures it'll be different for each build, otherwise it would also
be the same as long as the VS Code version is the same.
2019-08-07 15:13:39 -05:00
Dean Sheather
9d688e0894 Merge pull request #883 from cdr/digitalocean-button
Add DigitalOcean button to README
2019-08-06 12:41:43 +10:00
Dean Sheather
7d35144952 Add GitHub fonts to DigitalOcean button 2019-08-06 12:39:39 +10:00
Asher
7e794bd134 Fix favicon not being included in final build 2019-08-05 13:34:32 -05:00
Asher
dc333d4321 Fix extensions not being bundled into prebuilt 2019-08-05 13:05:09 -05:00
Asher
590f699687 Allow specifying the target
You still must build on the target system though because of the native
Node modules.
2019-08-05 11:03:47 -05:00
Asher
dde683d911 Fix login submission when using a base path 2019-08-05 10:38:55 -05:00
Asher
950bfce420 Add commit, date, and checksums to product.json 2019-08-02 20:29:48 -05:00
Asher
5b64cb3400 Fix login page 2019-08-02 19:54:56 -05:00
Asher
712274d912 Groundwork for language support
- Implement the localization service.
- Use the proper build process which generates the require JSON files.
- Implement getting the locale and language configuration.
2019-08-02 19:29:00 -05:00
Dean Sheather
bdd9d65146 Add DigitalOcean button to README 2019-08-02 14:08:33 +10:00
Asher
60ed0653bc Reformat readme intro 2019-07-31 17:22:19 -05:00
Asher
bce0cac48f Document recent VS Code patch changes 2019-07-31 17:22:18 -05:00
Asher
bd0f1d024b Support vscode-resource requests in webview 2019-07-31 17:22:18 -05:00
Asher
5944b842de Make it clearer what the tar code does 2019-07-31 17:22:17 -05:00
Asher
12af311ce7 Use our logger instead of raw console.log 2019-07-31 17:22:16 -05:00
Asher
62719ab544 Clean up client API
- Don't use "any" for the API type.
- Remove everything from the Coder API that can eventually be done
  through the VS Code API.
- Move the event emission to our own client to minimize patching.
2019-07-31 17:22:15 -05:00
Asher
0315b004a7 Add comment for the nbin shim 2019-07-31 17:22:14 -05:00
Asher
87be3ac235 Add comment explaining use of merge 2019-07-31 17:22:11 -05:00
Asher
011530e11b Proxy TLS sockets 2019-07-30 18:16:08 -05:00
Dean Sheather
4bfa686433 Merge pull request #876 from jhalek90/patch-1
update README.md
2019-07-29 09:00:39 +10:00
jhalek90
c67844d356 update README.md
Removed linked to coder.com/enterprise,(404)
replaced with link to coder.com
2019-07-28 10:35:52 -05:00
Asher
8ded89e8d4 Firefox fixes 2019-07-26 17:33:26 -05:00
Asher
4c4a179bce TLS socket still doesn't work 2019-07-26 17:26:45 -05:00
Asher
a4f21fb0d4 Install git during build 2019-07-24 11:23:00 -05:00
Asher
329acbb251 Combine main and webview servers 2019-07-23 19:22:10 -05:00
Asher
fd55139c82 Make flags additive and clean up docs
This means that you have to turn on features now instead of disabling
them like auth and https.

In addition:
- Allow multiple options for auth (only password for now).
- Combine the install docs since they had many commonalities and
- generally simplified them (hopefully not too much).
- Move all example configs into docs/examples.
2019-07-23 18:59:39 -05:00
Asher
7b7f5b542e Add base path argument
It's only used for the login redirect.
2019-07-23 15:17:25 -05:00
Asher
92daabc75c Open folder at base URL 2019-07-23 14:55:48 -05:00
Asher
068e07bd5d Clean up the patch 2019-07-23 13:27:30 -05:00
Asher
436ef7bd5c Fix VS Code version in readme and describe our changes 2019-07-22 18:01:46 -05:00
Asher
09cd1e8540 Make sub-paths work 2019-07-22 18:01:03 -05:00
Asher
cd54aec2f9 Fix login redirect when not using https 2019-07-22 11:09:26 -05:00
Kyle Carberry
078af59fd8 Replace demo image with GIF (#863) 2019-07-22 10:21:15 -05:00
Asher
36b8731cfe Add some missing development steps 2019-07-19 18:45:13 -05:00
Asher
9fdfacb314 Quality check 2019-07-19 17:43:54 -05:00
Asher
e8cb6ffaa0 Implement file uploads 2019-07-19 15:45:12 -05:00
Asher
2be452d83e Fix rg extraction in Docker build 2019-07-18 18:09:24 -05:00
Asher
b0e6c1cc4e Fix favicon 2019-07-18 18:09:23 -05:00
Asher
45d348b03d Expose API on the client 2019-07-18 18:09:22 -05:00
Asher
4b0cceb91a Extract ripgrep when inside binary 2019-07-18 18:09:21 -05:00
Asher
db41f106bc Fix open flag when using 0.0.0.0 2019-07-18 18:09:20 -05:00
Asher
b6fdb7d0e7 Telemetry 2019-07-18 18:09:20 -05:00
Asher
1a3fc86894 Reconnection works 2019-07-18 18:09:19 -05:00
Asher
83819cb3f9 Fix vscode-ripgrep rebuild error 2019-07-18 18:09:18 -05:00
Asher
feabfc86fa Fix different node binary warning 2019-07-18 18:09:17 -05:00
Asher
9b0b337dc0 Implement open flag 2019-07-18 18:09:16 -05:00
Asher
9446cc8245 Update Dockerfile 2019-07-18 18:09:15 -05:00
Asher
68c62087dc Fix opening snippets 2019-07-18 18:09:14 -05:00
Asher
8dcc1e3567 Accept argument to change initial working directory 2019-07-18 18:09:13 -05:00
Asher
e22791ec88 Fix interactive playground 2019-07-18 18:09:12 -05:00
Asher
286f9a8978 Implement multiple extension directories 2019-07-18 18:09:12 -05:00
Asher
97167e75ff Add authentication 2019-07-18 18:09:11 -05:00
Asher
2b2aa9a211 Add https server 2019-07-18 18:09:09 -05:00
Asher
81862d4fa1 Add back (most of) our old arguments
Also remove VS Code ones that don't work.
2019-07-18 18:08:38 -05:00
Asher
2fdf09e6e7 Include version when building 2019-07-18 18:08:37 -05:00
Asher
09e3cfd881 Create extension directory on startup 2019-07-18 18:08:37 -05:00
Asher
54ffd1d351 Make extension sidebar work 2019-07-18 18:08:36 -05:00
Asher
86e8ba12e7 Add gallery channel 2019-07-18 18:08:35 -05:00
Asher
f482087475 Implement webview server 2019-07-18 18:08:34 -05:00
Asher
fe1d609d1a Make it possible to request absolute paths 2019-07-18 18:08:33 -05:00
Asher
a20fa4a97a Implement extensions channel 2019-07-18 18:08:32 -05:00
Asher
f51751ad21 Replace jq with some JavaScript 2019-07-18 18:08:31 -05:00
Asher
197d8dba93 Need to run yarn compile once
To build the extensions for development.
2019-07-18 18:08:30 -05:00
Asher
3ca90a5f89 Use nbin in forked processes 2019-07-18 18:08:30 -05:00
Asher
6156eb9ff4 Don't wait to start main server 2019-07-18 18:08:29 -05:00
Asher
f8f4bfd76f Customize JSON files with code-server name 2019-07-18 18:08:28 -05:00
Asher
5677ff2edf Add build scripts 2019-07-18 18:08:27 -05:00
Asher
61c281ec6b Add arguments for ports 2019-07-18 18:08:26 -05:00
Asher
770e0db7b8 Add cli arguments 2019-07-18 18:08:25 -05:00
Asher
6a35ab1dc0 Add (unimplemented) webview server 2019-07-18 18:08:24 -05:00
Asher
3a78c0964f Run log cleaner 2019-07-18 18:08:24 -05:00
Asher
4685f6793d Pass product configuration 2019-07-18 18:08:23 -05:00
Asher
2e77c9d449 Scan extensions 2019-07-18 18:08:22 -05:00
Asher
a6703ecb98 Prevent sending disconnect if disposed 2019-07-18 18:08:21 -05:00
Asher
57a8186e88 Add development steps 2019-07-18 18:08:20 -05:00
Asher
d808bfaec6 Set workspace and folder URIs
This makes the file tree work.
2019-07-18 18:08:19 -05:00
Asher
7072bf1e83 Use new URI transformer everywhere 2019-07-18 18:08:18 -05:00
Asher
4e0a6d2941 Partial extension host, some restructuring
I didn't like how the inner objects accessed parent objects, so I
restructured all that.
2019-07-18 18:08:17 -05:00
Asher
0d618bb1ef Use spdlog for log service 2019-07-18 18:08:17 -05:00
Asher
a0121f2f0c Implement file provider
Reading, watching, saving, etc all seem to work now.
2019-07-18 18:08:16 -05:00
Asher
98f001395c Add content types 2019-07-18 18:08:15 -05:00
Asher
68fe085aa3 Add channels 2019-07-18 18:08:14 -05:00
Asher
4861405683 Initial connection handling 2019-07-18 18:08:13 -05:00
Asher
310bfe509e Delete all the things 2019-07-18 18:08:11 -05:00
Dean Sheather
f25a614333 Merge pull request #835 from cdr/log-failed-logins
Add failed authentication attempt logger
2019-07-11 02:42:55 +00:00
Dean Sheather
0ae8c1820a Merge branch 'log-failed-logins' of github.com:cdr/code-server into log-failed-logins 2019-07-11 12:31:52 +10:00
Dean Sheather
e776f18192 update docs to mention --trust-proxy 2019-07-11 12:30:42 +10:00
Dean Sheather
72d71664b3 Merge pull request #823 from FrankPetrilli/patch-1
Add `use-credentials` to fetch manifest with cookies
2019-07-10 09:46:17 +00:00
Dean Sheather
1046fc192e Merge branch 'master' into log-failed-logins 2019-07-09 01:01:20 +00:00
Dean Sheather
c48a275d33 add timestamp to auth log, add fail2ban conf+docs 2019-07-09 10:57:09 +10:00
Dean Sheather
79e08c74ed Merge pull request #834 from cdr/fix-sw-path
Fix service worker path
2019-07-08 22:36:27 +00:00
Dean Sheather
3f2ad7b719 Fix self-hosted documentation screenshot URL (#836) 2019-07-08 08:55:37 -06:00
Dean Sheather
5e8c3f8ff3 Merge pull request #698 from 8sd/patch-1
Fix formatting issue
2019-07-08 10:06:09 +00:00
Dean Sheather
ddab1a0626 Merge pull request #730 from T45K/fix-typos
Fix typos in wget url
2019-07-08 09:51:26 +00:00
Sebastian Duda
d950e3c9de Fix missing comma in cli-help 2019-07-08 09:20:29 +02:00
tsk-nkgw
46298c7675 fix typos in wget url 2019-07-07 18:30:27 +09:00
Dean Sheather
14d917179c update code-server usage in documentation 2019-07-07 17:03:47 +10:00
Dean Sheather
a65773338c add failed authentication attempt logger
When `isAuthed()` is called and the password cookie is not what we
expected, the failed login attempt is logged with the provided password,
remote address and user agent.

To allow for logging failed attempts with a reverse proxy, the
`--trust-proxy` argument has been added to trust the `X-Forwarded-For`
header. This implementation of an `X-Forwarded-For` parser uses the last
value in the list, therefore only trusting the nearest proxy.
2019-07-07 16:50:43 +10:00
Dean Sheather
9b5a43e4bd use local workbox to simplify csp
Co-Authored-By: Ian Reinhart Geiser <geiseri@geekcentral.pub>
2019-07-07 15:13:16 +10:00
Dean Sheather
46207cfe10 register service worker at relative scope
Co-Authored-By: Ian Reinhart Geiser <geiseri@geekcentral.pub>
2019-07-07 15:12:45 +10:00
Dean Sheather
242bb6ffa2 Merge pull request #821 from morningspace/master
Update READE to add know issue for golang debug
2019-07-07 03:39:01 +00:00
morningspace
e6713db677 Update READE to add know issue for golang debug 2019-07-02 06:37:34 +08:00
Frank Petrilli
11784e55b2 Change quote style to match existing work 2019-07-01 14:10:32 -07:00
Frank Petrilli
a72e8a698d Add use-credentials to fetch manifest with cookies
I run code-server behind an authenticating Kubernetes Ingress which sets a cookie after a successful login is performed. Since this cookie is not set when fetching the manifest, the fetch fails and gets redirected to the authentication page, breaking code-server completely.

See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
2019-07-01 14:05:35 -07:00
Asher
28c93612e6 Move address output to the listen callback
Since listening is asynchronous, this guarantees the address will be
filled out.
2019-06-17 13:44:24 -05:00
Dean Sheather
a9d17882e7 use port from server.address() when printing URL (#780)
This allows the use of port 0, which is interpretted automatically to
mean "random port".

Additional logging consistency fixes.
2019-06-17 12:20:20 -05:00
Asher
cf63bbd003 Fix "no authentication" message with custom password
Fixes #757.
2019-06-11 12:08:02 -05:00
Anmol Sethi
02f62882b8 Propagate full env to browser (#756)
* Propogate full env to browser

* Add support for setting $ITEM_URL

* Add serviceURL getter
2019-06-11 11:54:49 -05:00
Asher
362715bbeb Fix dialog items getting cut off
Fixes #336.
2019-06-07 14:30:45 -05:00
Dean Sheather
ec70ea6994 Change documentation to use port 8443 (#740) 2019-06-07 14:22:33 -05:00
Asher
04adf14146 Move OSX package task into build script
This is to match how the other binaries are built. Also made some
changes to make the Docker containers clean up for when you are running
this locally.
2019-06-06 13:43:37 -05:00
Liudas Sodonis aka lfx aka lso
406ec0ba71 Updated google_cloud to have proper link to ssl.md (#745) 2019-06-05 15:28:10 -05:00
Sebastian Duda
e2eaa0aa4e Align intend of description
Co-Authored-By: Sergio Moura <sergio@moura.ca>
2019-05-28 07:10:20 +00:00
Asher
a2ad3d4ff4 Show hidden files by default
Since there is no other way to enable hidden files, it seems better to
enable it by default otherwise there are some folders/files you simply
can never open from the dialog.
2019-05-20 16:08:54 -05:00
Asher
4a29cd1664 Fix human readable byte size when zero 2019-05-20 15:53:06 -05:00
Anmol Sethi
0462a93f11 Expose actions registry (#701) 2019-05-20 14:35:58 -05:00
Asher
db39eacfa1 Set NODE_ENV and VERSION when building (#700)
* Set NODE_ENV and VERSION when building

Should fix the version flag not reporting correctly as well as enable
the service worker and prevent the 404 hmr requests again.

* Log env vars

To help make sure it's built correctly when looking at the Travis logs.
2019-05-20 11:02:36 -05:00
Sebastian Duda
91bcbe496b Fix formatting issue 2019-05-20 08:29:27 +00:00
Asher
c020cd2f2c Don't try to create builtin extensions directory
Since this will be a path in the binary that we don't want to create on
the user's system. I also removed the option to override it; it doesn't
seem like a great idea since you'd always want those builtin extensions.
This way we also don't have to check if the option was passed and only
create it if that was the case.
2019-05-19 19:49:05 -05:00
Asher
81bbfa7fbe Suppress "disconnected" notification on extension host
This isn't a real error event; we artificially emit it just in case
something waiting to start is listening to the error event in order to
clean up and/or restart.
2019-05-19 19:21:25 -05:00
Asher
aa1474b675 Extra extensions directories (#694)
* Allow setting paths for builtin exts and extra dirs

The extra directories aren't used yet, just available from the
environment service and to the shared process.

* Utilize extra builtin extensions path

* Utilize extra extensions directory

* Fix cached mtimes for extra extension dirs

* Simplify extension cache equality check
2019-05-19 17:58:47 -05:00
bastigw
8256252967 Updated Data Directory Flag (#664)
Old Version contained a deprecated flag
2019-05-19 17:26:09 -05:00
Ram
07342bbee7 Remove broken links (#671) 2019-05-19 17:24:57 -05:00
Anmol Sethi
72152f74ab Fix docker oneliner in README.md 2019-05-02 13:32:05 -04:00
Anmol Sethi
420ca76f54 Merge pull request #635 from cdr/rename
Fix macOS release
2019-05-02 12:23:42 -04:00
Anmol Sethi
31503fc853 Fix macOS release 2019-05-02 12:23:17 -04:00
Anmol Sethi
cf399ef6ac Merge pull request #634 from cdr/rename
Rename codercom/code-server to cdr/code-server
2019-05-02 12:07:48 -04:00
Anmol Sethi
bb5836ec61 Rename codercom/code-server to cdr/code-server 2019-05-02 11:25:50 -04:00
Anmol Sethi
f36235e03f Merge pull request #633 from cdr/show-terminal-api
expose terminal service in IDE API
2019-05-02 11:08:23 -04:00
Anmol Sethi
6ef1628acb Expose Terminal Service in API
Will need in sail.
2019-05-02 10:27:28 -04:00
Anmol Sethi
ab8f8a0a22 Merge pull request #520 from nhooyr/volume
Remove chmod on project dir
2019-04-29 19:06:07 -04:00
Asher
cdb900aca8 Make preserveEnv return a new object
Modifying the object didn't feel quite right, plus this makes the code a
bit more compact.
2019-04-29 11:49:59 -05:00
Fedor Kalugin
1622fd4152 Preserve environment when forking shared process (#545) 2019-04-29 10:47:45 -05:00
Kyle Carberry
6c972e855f codercom -> cdr 2019-04-27 16:57:10 -04:00
Kyle Carberry
e332882a88 Package only on darwin 2019-04-26 10:51:38 -05:00
Kyle Carberry
d0142e2536 Include version with target env 2019-04-26 10:29:12 -04:00
Kyle Carberry
e8c8fba91d Add docker service 2019-04-26 10:00:15 -04:00
Kyle Carberry
01a63a7241 Merge branch 'master' of github.com:codercom/code-server 2019-04-26 09:57:16 -04:00
Kyle Carberry
a2e0638c6a Add support for musl and centos 2019-04-26 09:56:14 -04:00
John McCambridge
4e62f938a9 Remove reveal in finder/explorer option from the context menu (#586) 2019-04-25 15:23:03 -05:00
Asher
4c5bb83fc1 Fix open dialog crash when there is a broken link
Fixes #579.
2019-04-25 15:17:22 -05:00
Asher
a3ac4567e3 Only output password if it was generated 2019-04-25 14:08:46 -05:00
Asher
58cf109a83 Fix full screen detection for Chromium 2019-04-25 13:29:11 -05:00
Asher
fab45dedcd Fix toggling full screen 2019-04-25 13:22:30 -05:00
Asher
446573809c Improve size column in dialogs
- Remove size from directories (often always 4K and not very useful).
- Format file sizes to be more human-readable.
2019-04-25 12:07:35 -05:00
Nick Wade
5ad9398b01 Fix typo DigitalOcean (#595) 2019-04-25 07:57:12 -07:00
Kyle Carberry
bcdbd90197 Fix #587 (#588) 2019-04-24 18:34:57 -05:00
Asher
0de7247868 Fix protocol fs test 2019-04-24 18:15:56 -05:00
Asher
c9f91e77cd Fix coping and moving files around using the file tree (#568)
* Implement write/read buffers in electron fill

This makes cutting and copy files from the file tree work.

* Implement fs.createReadStream

This is used by the file tree to copy files.

* Allow passing proxies back from client to server

This makes things like piping streams possible.

* Synchronously bind to proxy events

This eliminates any chance whatsoever of missing events due to binding
too late.

* Make it possible to bind some events on demand

* Add some protocol documentation
2019-04-24 10:38:21 -05:00
John McCambridge
30b8565e2d Fix markdown preview focus (#546)
* Fix hash

* Remove whitespace
2019-04-23 19:14:52 -05:00
John McCambridge
6b887dcc9c Fix no-auth to still use HTTPS, set default for no-auth to false (#573) 2019-04-23 16:38:49 -05:00
John McCambridge
41c7d98b7b Offer https/http url based on schema (#572)
* Let people know when telemetry is disabled, change url to https if secure connection

* Remove --no-auth as a http candidate

* Rename variable, change let to const
2019-04-23 16:38:34 -05:00
Kyle Carberry
b055a26dc3 Remove log statement from copy 2019-04-23 11:33:42 -04:00
Kyle Carberry
2bc6e1a457 Fix clipboard pasting 2019-04-22 20:20:48 -04:00
Kyle Carberry
e61ea796c6 Bundle grammars (#563) 2019-04-22 12:51:05 -05:00
Kyle Carberry
d073622629 Add --socket flag (#564)
* Add --socket flag

* Add msg for already bound socket
2019-04-22 12:47:27 -05:00
Kyle Carberry
5f40ebb845 Update wording for sshcode 2019-04-19 21:22:00 -04:00
Kyle Carberry
c56e2797cc Add sshcode to the readme 2019-04-19 21:20:31 -04:00
Kyle Carberry
166efcb17e Hide titlebar controls and fix menubar toggle (#550) 2019-04-19 19:54:50 -05:00
Kyle Carberry
206e107a9a Merge branch 'master' of github.com:codercom/code-server 2019-04-19 20:03:54 -04:00
Kyle Carberry
12c8b5d337 Closes #466 2019-04-19 20:03:52 -04:00
Asher
4aa20fd864 Fix require.toUrl on the Node side
- Fixes #542
2019-04-19 13:32:10 -05:00
Illia Poplawski
0cd4e46055 Fix self hosted flags (#523)
* Remove -h flag for help information

* Add tab after removing -h option

* Remove spaces after --user-data-dir option to line up with other menu items
2019-04-18 13:02:29 -05:00
Asher
f51823b51f Fix open dialog
- Fixes #508
2019-04-18 12:08:44 -05:00
Asher
55bfeab208 Deprecate password flag in favor of an environment variable 2019-04-18 11:10:55 -05:00
Asher
309d15cefd Use file/folder open commands for all operating systems
Mac was using its own thing.

- Fixes #535
- Fixes #501
2019-04-18 10:50:23 -05:00
Kyle Carberry
95006a435a Merge branch 'master' of github.com:codercom/code-server 2019-04-17 21:01:25 -04:00
Kyle Carberry
4d576ab4d4 Trigger configuration update when loaded 2019-04-17 21:01:23 -04:00
Asher
d5b03ef60e Remove version from Docker command 2019-04-17 17:38:22 -05:00
Anmol Sethi
cdc5b55a9d Remove chmod on project dir
See #471
2019-04-17 18:36:33 -04:00
Kyle Carberry
c3a38e3fea Add telemetry and option to disable (#519)
* Add telemetry and option to disable

* Update readme and getting-started guide

* Update lockfile

* Update getting started guide
2019-04-17 17:18:35 -05:00
Asher
cc8c7e2cee Make assets unique (#518)
* Make all assets unique

All CSS and JavaScript files have unique names now. I also moved the
login to the /login path in order to ensure the HTML for each page is
also unique.

* Explicitly include assets to cache
2019-04-17 17:18:20 -05:00
Kyle Carberry
e0f1787ce6 Update logger 2019-04-17 17:47:02 -04:00
John McCambridge
50e6108012 Add confirmation for closing window (#463)
* Add confirmation for closing window

* Make function an event listener for consistency

* Change let to const

* Refactor for compatability
2019-04-17 16:42:36 -05:00
Asher
630ccfcacc Add flag to install an extension from the command line (#504) 2019-04-17 16:30:50 -05:00
Patrick Smith
c4c26058ef Use port from PORT env variable if available (#502) 2019-04-17 16:30:39 -05:00
Kyle Carberry
8a4da542ae Add GCP logging extender (#503)
* Add GCP logging extender

* Minor version bump for new API

* Update packages/logger/src/logger.ts

Co-Authored-By: kylecarbs <kyle@kwc.io>
2019-04-17 13:41:10 -05:00
Luca Casonato
e907dbe7e6 fixe password signin with service-worker (#511) 2019-04-17 10:27:24 -05:00
Luca Casonato
22b485acd9 Added serviceworker and web-manifest (#154)
* Added serviceworker and manifest.json

* added deps in package.json

* fixed image link

* actually fixed images i think

* added assets to individual module folders

* added caching

* Serviceworker now properly loads

* Changed single to double quotes

* Update lock

* moved the service worker back into prod only

* removed sw from general

* changed background color of splash screen

* added logo to server

* centralized logo into single assets folder
2019-04-16 15:44:57 -05:00
Asher
b8f222acf2 Ensure all environment paths are created
This normally happens in electron-main/main.ts but we don't run anything
from there.

Fixes #499.
2019-04-16 10:58:13 -05:00
Asher
aabb2ecda7 Update node to 10.15.1 (#472)
* Update Node to 10.15.1

* Remove string replace that was used for oclif

* Update nbin

* Package node-pty and spdlog with nbin

* Label stderr/stdout from shared process

* Remove fork override

* Prevent "already disposed" errors when trying to kill disposed proxies

* Include spdlog dependencies

* Shim /node_modules

* Add node_modules to Docker ignore

It keeps using my already-built .node files which results in a
mismatching GLIBC version error.

* Update nbin
2019-04-15 19:48:12 -05:00
Kibo Hikari
dfabc070b9 fix(dockerfile): explicitly create a volume and set permission for project dir (#471)
Signed-off-by: Kibo Hikari <enra@sayonika.moe>
2019-04-13 23:34:25 -05:00
Kyle Carberry
da420cdda9 Merge branch 'master' of github.com:codercom/code-server 2019-04-14 00:32:06 -04:00
Kyle Carberry
c6a46e4753 Fix reading text from clipboard via electron fill 2019-04-14 00:32:03 -04:00
Asher
742dd6f597 Upgrade VS Code to 1.33.1 2019-04-12 16:10:45 -05:00
Yen-Chi Chen
6c3ff1d6f0 Fix typo: doc/self-hosted/index.md (#477) 2019-04-12 10:35:54 -05:00
John McCambridge
db57aa229f Allow use of the enter key for password input for code-server (#479)
* Allow use of the enter key for password input for code-server

* Remove function, make html form

* Remove function and create html form

* Handle form submit action

* Remove button listener

* Check if form exists
2019-04-12 10:35:30 -05:00
David Pinezich
f7342ede69 Update digitalocean.md (#486)
Seems that   sudo ./code-server-linux -p 80 is outdated. The "linux" is not anymore given.
2019-04-11 16:18:13 -05:00
Anmol Sethi
b781ccde9c Add common utilities to Dockerfile (#488) 2019-04-11 15:30:21 -05:00
Asher
8f62b2bff2 Decrease max retry time to three seconds 2019-04-11 14:58:29 -05:00
Asher
7047be859c Fix some open file/folder issues
- "Open folder" now says "open folder" instead of "open file"
- "Open folder" won't allow you to open files
- "Open file" won't allow you to open directories

Fixes #249.
2019-04-11 14:55:06 -05:00
Kyle Carberry
2785e2219a Remove hosted from the readme 2019-04-11 02:11:51 +00:00
majik
4b217fba00 Feature/relative url (#307)
* resrouce relative url

* add url pathname for require.toUrl (fix webview url)

* rest resrouce relative url

* fix resource url

* ignore .vscode
2019-04-10 20:07:53 -05:00
Kyle Carberry
3fae68bbab Add storage save to ide-api 2019-04-09 12:24:53 -04:00
Asher
a2f20aa25c Update window service fill 2019-04-08 18:04:41 -05:00
Asher
94b8b9a5cf Fix window.open infinite loop 2019-04-08 17:44:10 -05:00
Asher
bbd8b27fc7 Explicitly mention if netstat isn't installed; downgrade to warning 2019-04-08 11:15:25 -05:00
Asher
6361635b55 Move backup service init to the shared process
Since this is where it attempts to read it, this should solve the JSON
errors for good.
2019-04-08 11:03:33 -05:00
Kyle Carberry
d2da4cfc43 Fix errors appearing 2019-04-07 17:04:49 -04:00
Asher
a1136b3a02 Update VS Code to 1.33.0 (#445)
* Update VS Code to 1.33.0

* Fix slow file tree

* Fix WindowsService fill

* Provide `off` on event listeners

* Fix webview

* Fix double title bar and missing preferences on Mac

* Bump VS Code version in Travis config

* Fix black dialog text (again)

* Fix shared process not starting
2019-04-05 18:49:29 -05:00
Anmol Sethi
4dd74b31b9 Merge pull request #435 from codercom/docker-fixes
Reduce layers in Dockerfile
2019-04-05 10:18:50 -05:00
Anmol Sethi
bc0f6eb65d Reduce layers in Dockerfile 2019-04-04 20:00:42 -05:00
Anmol Sethi
6737d3da18 Merge pull request #433 from codercom/docker-fixes
Significantly improve the Dockerfile
2019-04-04 18:42:14 -05:00
Anmol Sethi
eb0f773146 Update README.md 2019-04-04 18:41:45 -05:00
Anmol Sethi
ebac84899e Significantly improve the Dockerfile
- Adds dumb-init so closes #403, closes #361, closes #383
- User mode docker so closes #192, closes #65
- Uses latest docker ubuntu instead of 18.10 which is the rolling tag so closes #404

Thanks to @RichardMcSorley and @sr229
2019-04-04 18:41:45 -05:00
Richard McSorley
0b7a090a73 Use an init system 2019-04-04 18:41:45 -05:00
Hikari Kibo
a95019f38d fix: slap adduser into another RUN
im abusing the word slap today please help me
2019-04-04 18:41:45 -05:00
Hikari
15948c1af6 feat: user-mode docker
Signed-off-by: Hikari <enra@sayonika.moe>
2019-04-04 18:41:45 -05:00
Asher
e73eb74208 Fix sending dates through the protocol
Fixes #253.
2019-04-04 18:24:53 -05:00
Kyle Carberry
278c59b920 Remove non-working menu items 2019-04-04 18:04:34 -04:00
Kyle Carberry
5a1eb858a9 Merge branch 'master' of github.com:codercom/code-server 2019-04-04 17:13:58 -04:00
Kyle Carberry
3c1dfb1170 Update @coder/nbin. Fixes UI state saves 2019-04-04 17:13:54 -04:00
Asher
09a02eb9e9 Build for production in Docker 2019-04-04 13:33:49 -05:00
Kyle Carberry
2bd7281fa0 Update @coder/nbin 2019-04-04 09:59:50 -04:00
Asher
e12fcd3a0d Fix error when shared process exits with null 2019-04-03 17:32:20 -05:00
Kyle Carberry
4af84fcaf6 Add flags for customizing user data dir and extensions dir (#420)
* Add flags for customizing extensions directory

* Update @coder/nbin
2019-04-03 17:07:47 -05:00
Asher
c607015a26 Initialize backup service (#419)
- Fixes #399
- Fixes #332
2019-04-03 16:08:15 -05:00
John McCambridge
217515344e Add port in use message (#418)
* Add clear error message if port is in use

* Add bold function for text/numbers

* remove unused dependency:

* remove unused line break

* Change logger message

* Use NodeJS.ErrnoException type

* Add back check for error code
2019-04-03 15:50:52 -05:00
Kyle Carberry
dcf409aecb Improve CI caching (#416)
* Adjust linux distro to ubuntu 14.04

* Cache lib directory for speedy builds

* Fix path linking for default extensions

* Update reset

* Reset to head

* Improve caching

* Still run yarn in CI

* Update yarn before install

* Increase cache timeout

* Install vscode from vstar

* Undo data-dir changes to CLI, add back clean, remove unused CI func

* Remove additional flags added

* Remove unused dependency

* Reset vscode install dir so patching always works
2019-04-03 14:24:00 -05:00
Kyle Carberry
2683b7c734 Update notes title 2019-04-03 11:23:32 -04:00
Asher
3a672d725a Convert fully to protobuf (was partially JSON) (#402)
* Convert fully to protobuf (was partially JSON)

* Handle all floating promises

* Remove stringified proto from trace logging

It wasn't proving to be very useful.
2019-04-02 17:44:28 -05:00
Kyle Carberry
f484781693 Minor update in notes 2019-04-02 11:41:44 -04:00
Anmol Sethi
97f5b07003 Fix icons on safari when using cookie authentication (#398)
Cookie's are not sent with url's in -webkit-mask so we
embed the svg's directly in the css.
2019-04-01 15:20:39 -05:00
MOZGIII
7481395353 Changed "lib" to "/lib" at .gitignore (#395) 2019-04-01 14:15:43 -05:00
Asher
033ef151ca Improve retry
Registering returns an instance that lets you retry and recover without
needing to keep passing the name everywhere.

Also refactored the shared process a little to make better use of the
retry and downgraded stderr messages to warnings because they aren't
critical.
2019-04-01 13:31:34 -05:00
Jeff Delaney
3fec7f432c doc: fixed name of binary to match latest release (#386) 2019-03-31 13:15:33 -05:00
Asher
4887078423 Fix typescript tslint plugin
tslint-language-service is the deprecated version which we don't
actually even have listed in the package.json. typescript-tslint-plugin
is the new version.
2019-03-29 18:44:04 -05:00
Asher
91deaece47 Reduce frequency of port scanning 2019-03-29 16:14:28 -05:00
Asher
03ad2a17b2 Handle disconnects (#363)
* Make proxies decide how to handle disconnects

* Connect to a new terminal instance on disconnect

* Use our retry for the watcher

* Specify method when proxy doesn't exist

* Don't error when closing/killing disconnected proxy

* Specify proxy ID when a method doesn't exist

* Use our retry for the searcher

Also dispose some things for the watcher because it doesn't seem that
was done properly.

The searcher also now starts immediately so there won't be lag when you
perform your first search.

* Use our retry for the extension host

* Emit error in parent proxy class

Reduces duplicate code. Not all items are "supposed" to have an error
event according to the original implementation we are filling, but there
is no reason why we can't emit our own events (and are already doing so
for the "disconnected" event anyway).

* Reconnect spdlog

* Add error message when shared process disconnects

* Pass method resolve to parse

* Don't pass method to getProxy

It doesn't tell you anything that trace logging wouldn't and has
no relation to what the function actually does.

* Fix infinite recursion when disposing protocol client in tests
2019-03-28 17:59:49 -05:00
John McCambridge
a4cca6b759 Add information about release notifications/gif (#355)
* Add information about release notifications/gif

* Remove unecessary space

* Add smaller gif

* Add even smaller gif

* Trim time in new gif

* Cropped a tad more

* Fix weird aligning
2019-03-27 17:05:44 -05:00
NGTmeaty
6105bba0a4 Add higher quality Discord badge and add a link to the license badge. (#364)
* Add higher quality Discord badge and add link 

to license.

* Use @grant's much better version :)
2019-03-27 17:05:23 -05:00
Asher
259095eae2 Watcher and initial load performance improvements (#357)
* Set low CPU priority on watcher

Fixes #247.

* Batch stat and readdir calls

* Fix fs.exists

callbackify seems to always adds an error as the first argument. Opted
to just use the promise for this one.

* Batch lstat

* Add maximum time for flushing batches
2019-03-27 17:04:19 -05:00
Carlos Azaustre
38a0706b18 Add example with letsencrypt certificates
* updated the download link

* added example with letsencrypt certificates
2019-03-27 10:36:03 -05:00
Ryo Ochiai
c7ae12c2ed Add .node-version file (#272) 2019-03-27 10:35:00 -05:00
James Peters
3331f9b28d Update Dockerfile (#327) 2019-03-27 10:34:34 -05:00
Reda Aissaoui
def4104c53 Changed executable name (#353)
code-server-luni should be only code-server
2019-03-27 10:23:23 -05:00
Kyle Carberry
4eb5331ddc Fixes #121 2019-03-27 10:36:32 -04:00
Kyle Carberry
3bb5c0bbe5 Fixes #351 2019-03-27 09:56:05 -04:00
Kyle Carberry
83aa952de2 Update nbin version. Fixes extensions 2019-03-26 22:07:36 -04:00
Kyle Carberry
e0d33f2399 Update nbin to 1.0.3 2019-03-26 17:57:35 -04:00
Kyle Carberry
194cbca0f2 Update nbin 2019-03-26 17:53:36 -04:00
Kyle Carberry
1697cc32a3 Use commander instead of oclif 2019-03-26 16:21:03 -04:00
Kyle Carberry
f058f90340 Place all envs in one line 2019-03-26 14:52:33 -04:00
Kyle Carberry
ca4b0346cb Update versioning format 2019-03-26 14:38:38 -04:00
Kyle Carberry
8d692ded4a Remove tslib external 2019-03-26 14:25:12 -04:00
Asher
dc2253e718 Refactor evaluations (#285)
* Replace evaluations with proxies and messages

* Return proxies synchronously

Otherwise events can be lost.

* Ensure events cannot be missed

* Refactor remaining fills

* Use more up-to-date version of util

For callbackify.

* Wait for dispose to come back before removing

This prevents issues with the "done" event not always being the last
event fired. For example a socket might close and then end, but only
if the caller called end.

* Remove old node-pty tests

* Fix emitting events twice on duplex streams

* Preserve environment when spawning processes

* Throw a better error if the proxy doesn't exist

* Remove rimraf dependency from ide

* Update net.Server.listening

* Use exit event instead of killed

Doesn't look like killed is even a thing.

* Add response timeout to server

* Fix trash

* Require node-pty & spdlog after they get unpackaged

This fixes an error when running in the binary.

* Fix errors in down emitter preventing reconnecting

* Fix disposing proxies when nothing listens to "error" event

* Refactor event tests to use jest.fn()

* Reject proxy call when disconnected

Otherwise it'll wait for the timeout which is a waste of time since we
already know the connection is dead.

* Use nbin for binary packaging

* Remove additional module requires

* Attempt to remove require for local bootstrap-fork

* Externalize fsevents
2019-03-26 13:01:25 -05:00
Asher
d16c6aeb30 Fix port scanner when netstat isn't available
- It logs the error now.
- For some reason when there is an error node-netstat runs the callback
  twice. That resulted in us scheduling an exponentially growing number
	of calls which ate up all the CPU (and probably memory eventually).
  For now, opted to dispose when there is an error.
2019-03-25 18:31:43 -05:00
Forest Hoffman
cdc40d36ff Ensure workspace configPath is a valid URI object (#317) 2019-03-22 16:58:37 -05:00
Hayden Young
80c19878e0 Add note about extensions needing to be OSS (#113)
* Add note about extensions needing to be OSS

* Update README.md

* Update README.md
2019-03-22 14:58:13 -05:00
Forest Hoffman
18f395b853 Fix install from VSIX for TAR and ZIP formats (#245)
* Fix install from VSIX for TAR and ZIP formats

* Parse TAR before ZIP, when installing from VSIX
2019-03-21 14:04:09 -05:00
Dominik Schenner
75435be949 Update index.md (#297)
Added Apache reverse proxy example configuration
2019-03-21 13:49:27 -05:00
Mike Hatch
ce73bc58e5 Capitalized first letters to be consistent (#304)
In addition to capitalizing, I also reworded a sentence for improved grammar.
2019-03-21 09:39:34 -05:00
Hikari Kibo
70219d1071 doc: add CrOS install guide (#225)
* doc: add CrOS install guide

Signed-off-by: Hikari <enra@sayonika.moe>

* doc: change occurences of index to install guide

Signed-off-by: Hikari <enra@sayonika.moe>

* doc: add penguin.linux.test as alternative endpoint

Signed-off-by: Hikari <enra@sayonika.moe>

* doc: link Crostini and crouton info pages and describe install guide

Signed-off-by: Hikari <enra@sayonika.moe>

* doc: remove citations for dev mode requirement

Signed-off-by: Hikari <enra@sayonika.moe>

* doc: clarify more wording

Signed-off-by: Hikari <enra@sayonika.moe>

* doc: fix typo in Crostini section

Signed-off-by: Hikari <enra@sayonika.moe>
2019-03-20 09:24:07 -05:00
Kyle Carberry
e9e0bf7d84 Fixes #275 2019-03-20 09:58:56 -04:00
Kyle Carberry
3da1dccf73 Merge branch 'master' of github.com:codercom/code-server 2019-03-19 14:00:27 -04:00
Kyle Carberry
e02101c676 Update codeowners 2019-03-19 14:00:25 -04:00
Easy
ffc47054dd update nginx config (#288)
should add one line `proxy_set_header Accept-Encoding gzip; `  or you may get a  `Cannot GET /` error.
2019-03-19 12:59:50 -05:00
Kyle Carberry
2169045377 Fix debugging 2019-03-19 12:53:05 -04:00
Kyle Carberry
277c6cb690 Fix failure to resolve arrays error 2019-03-18 21:05:21 -04:00
Moien Tajik
91a98b8082 Fixed documentation download links based on latest version (#130)
* Fixed documentation based on latest release

* Fixed google-cloud documentation steps order

* Edited docs based on the latest release versions

* Make docs more dynamic based on Releases

* Changed ordered list to unordered list
2019-03-18 10:45:20 -05:00
Steve Sloka
6028a8b1a8 Add support for Kubernetes by deploying code-server. Also includes AWS (#146)
example which persists data to a Persistent Volume / Claim.

Signed-off-by: Steve Sloka <slokas@vmware.com>
2019-03-18 10:44:08 -05:00
Jim Tittsler
6749f25bbf Doc: fix typo (#277) 2019-03-17 22:35:29 -05:00
Sean Smith
f6b96e3778 Fix security links in cloud setup guides (#260) 2019-03-15 15:32:24 -04:00
Kyle Carberry
3b8cd0a3cd Fix docker cmd in readme 2019-03-15 01:24:44 -04:00
Kyle Carberry
2f27b5df8c Fix #251 2019-03-15 00:51:05 -04:00
Kyle Carberry
400fba7f6f Fix type import not resolving properly 2019-03-15 00:48:39 -04:00
Kyle Carberry
bfaadd4e51 Merge branch 'master' of github.com:codercom/code-server 2019-03-14 22:58:21 +00:00
Kyle Carberry
d16b35ed0b Remove sourcemaps for production 2019-03-14 22:58:12 +00:00
Dafydd
633f8dcd72 Fixing broken syntax in the run command (#238) 2019-03-14 18:32:40 -04:00
Mike Hatch
98cad8ae69 Fixed a couple of typos (#243) 2019-03-14 18:32:18 -04:00
Kyle Carberry
2e53bb6690 Automatically target production for client-side builds 2019-03-14 22:29:19 +00:00
Anmol Sethi
e3d9716607 Merge pull request #231 from nhooyr/docker
Dockerfile: include git
2019-03-13 15:38:55 -04:00
Anmol Sethi
862c94401a Dockerfile: include git
Closes #221
Closes #230
Closes #203
2019-03-13 15:19:38 -04:00
Sandro Jäckel
3a6e27bc87 Combine apt-get in final docker image and remove cache 2019-03-13 15:13:24 -04:00
pokemonlover1234
ec2d01ab40 Add git to docker container
Install git in the docker container, proposed by #203. While it is possible that issue requires further discussion, this is just a proposal pull request. If that proposal is accepted, here's the pull request.
2019-03-13 15:12:18 -04:00
Asher
e4ff723895 Fix race with watcher & stat
There is a window between when the stat is made and the result makes it
back to the client where a file is created or deleted and it won't be a
part of that stat.

To fix it, I added a new property signaling that we got some changes
since starting the stat and should run the stat again because we have no
way of knowing whether the currently running stat will include the new
changes or not.
2019-03-13 14:04:40 -05:00
Sandro Jäckel
f9448c6cd4 [ImgBot] Optimize images (#222)
*Total -- 1,393.88kb -> 908.68kb (34.81%)

/doc/assets/chrome_confirm.png -- 34.10kb -> 18.95kb (44.43%)
/doc/assets/server-password-modal.png -- 96.67kb -> 58.14kb (39.86%)
/doc/assets/ide.png -- 984.53kb -> 603.38kb (38.71%)
/doc/assets/chrome_warning.png -- 44.25kb -> 30.03kb (32.14%)
/doc/assets/logo-horizontal.png -- 22.00kb -> 17.48kb (20.55%)
/doc/assets/aws_ubuntu.png -- 51.62kb -> 43.93kb (14.91%)
/doc/assets/cli.png -- 160.70kb -> 136.78kb (14.89%)
2019-03-13 14:45:52 -04:00
Michael Desantis
0efae1fcb6 Add error message for incorrect password. Fix issue #55 (#201) 2019-03-12 19:19:32 -04:00
Kyle Carberry
7cc7aa51aa Add additional ide-api events 2019-03-12 17:43:53 -04:00
Asher
6c8e513e71 Fill remainder of graceful-fs
It's just fs. Used by fs-extra.
2019-03-12 15:50:41 -05:00
Asher
f7c1ebf667 Fix moving data directory across devices 2019-03-12 15:45:44 -05:00
Asher
ba37a34fa2 Create data directory path before moving old directory there 2019-03-12 15:05:47 -05:00
Asher
e1dc6967ed Fix trash 2019-03-12 14:04:17 -05:00
Asher
3155eb76f5 Allow webview iframe to load styles 2019-03-12 12:55:43 -05:00
Asher
e597d49912 Fix issues with configuration directories
- Move the old data directory if possible.
- Fix extension path to not use a hard-coded path and instead use the
  data directory.
- Create every part of the path during startup.
- Create each path when a connection is made as well in case they are
  deleted while the server is running.
- Create every part of the path before saving settings or writing a file
  using the resource endpoint.
2019-03-12 11:44:56 -05:00
Asher
0a9f5d8eee Pass env as actual env instead of as a flag 2019-03-11 17:50:35 -05:00
Asher
736feaba51 Add proper version to --version 2019-03-11 17:38:11 -05:00
Asher
307aa4ae7f Fix READMEs not loading 2019-03-11 16:20:13 -05:00
Andrey Esin
1df352fe26 Adding minus to flag '-i' (#198) 2019-03-11 13:59:07 -05:00
Asher
8aff206538 Fix some dialog styling issues
- Fix black text caused by 1.32.0 upgrade.
- Fix various alignment and padding issues (a few elements with more
  space below than above).
2019-03-11 11:29:24 -05:00
Anmol Sethi
03c0bde3a9 Another fix for the Dockerfile and build (#188)
* Dockerfile: fix

ENTRYPOINT must be provided in exec form for args
from docker run to be passed correctly.

See https://docs.docker.com/engine/reference/builder/#cmd

* build: fix reuse of vscode repository regression

See #167
2019-03-11 09:47:41 -05:00
Anmol Sethi
a36476df21 Merge pull request #193 from netchampfaris/patch-1
fix: missing word
2019-03-11 01:29:07 -04:00
Faris Ansari
25c46bea32 fix: missing word 2019-03-11 10:27:42 +05:30
Anmol Sethi
60937c604e Merge pull request #179 from codercom/anmol
Update docker oneliner and fix clone task
2019-03-10 11:39:27 -04:00
Anmol Sethi
449d51d24d Dockerfile: use relative path instead of $PWD for CMD
Thanks @ay-b
2019-03-10 11:39:18 -04:00
Anmol Sethi
26edea5098 Update docker oneliner and fix clone task 2019-03-10 11:39:17 -04:00
Anmol Sethi
8527d10033 Merge pull request #172 from korzq/patch-1
Add nginx reverse proxy guide for selfhosted
2019-03-10 11:36:56 -04:00
赵吉彤
4387fdfb9e Clone exact vscode release branch when build task (#167)
* chore: clone exactly release branch when build

* fix: clone params
2019-03-10 10:02:08 -05:00
Khải
41d1be9205 Add -t flag to docker example (#181)
It is quite annoying when Ctrl-C does not stop the container
2019-03-10 08:28:25 -05:00
Anmol Sethi
76e0338d7f Reverts parts of my last PR (#177)
Cannot mount data directory at the moment, we need to make code-server
override all binaries in there instead of reusing and will wait
until the new Dockerfile is pushed before removing the default
entrypoint from README.md
2019-03-09 16:01:53 -07:00
Anmol Sethi
f37533579d Fix build and Dockerfile issues (#176)
* build: fix yarn corruption issues

Closes #100

Thanks @zerdos

* Dockerfile: add default Entrypoint and mount data dir

Closes #170
Closes #78

Thanks @ay-b
2019-03-09 14:51:51 -08:00
Eric Zhu
438808573d Add nginx reverse proxy guide for selfhosted
#80
2019-03-09 14:17:21 -05:00
Michael
c471babc69 Use a timing-safe equality check for passwords (#133) 2019-03-09 09:24:36 -08:00
David Bushong
d7a66e4f15 Open websocket on same path as page (#149)
This is the critical piece to let you serve code-server proxied under a
path.  Otherwise if you proxy e.g. `/editor/` thru to
`http://localhost:8000`, everything works fine except the websocket
connection is still opened to `/`
2019-03-09 09:23:51 -08:00
Forest Hoffman
30d14eeab4 Adhere to XDG base directory spec for dataDir and logDir (#156) 2019-03-09 09:11:30 -08:00
Avelino
e22e2c8b67 Improve github issue template (#162)
- Simplify the user by opening an issue (giving direction)
- Mark issue label
- Markdown lint

Signed-off-by: Avelino <t@avelino.xxx>
2019-03-09 09:07:43 -08:00
Aidan Fitzgerald
ffb75b6801 Fix typo: environemnt -> environment (#159)
Signed-off-by: Aidan Fitzgerald <acf67@cornell.edu>
2019-03-09 09:06:47 -08:00
Asher
cded51f650 Add back web class
Forgot to move this to the new file when upgrading to 1.32.0.
2019-03-08 12:45:20 -06:00
Asher
8bab787804 Move upx compression behind an env flag 2019-03-08 12:01:27 -06:00
Anmol Sethi
3e9d86ee91 ci: enable travis npm cache (#110)
* ci: enable travis npm cache

* ci: upgrade travis version

Thanks @zerdos

* ci: switch to using yarn cache
2019-03-08 09:21:11 -08:00
Philipp Molitor
e418ecf653 Improve .dockerignore (#111)
* impove .dockerignore

* impove .dockerignore
2019-03-08 09:13:25 -08:00
Asher
36c05ed335 Feature/1.32.0 update (#117)
* Update VS Code to 1.32.0

* Update patch

Most changes are moved files, most notably shell.contribution.ts which
is now main.contribution.ts.

Also:
- repl.ts no longer uses isMacintosh
- shell.ts doesn't exist
- added back the commented-out CSP headers

* Use es6 target for bootstrap-fork

* Directly reference cross-env binary

yarn and npm find the binary just fine when running the tasks from the
root but it doesn't work if you run one of those tasks directly from
within those directories.

* Update import paths and bootstrap-fork ignores

* Increase memory limit for building default extensions

* Fix invalid regex in Firefox

* Update startup function

* Fix global.require error

* Update zip extract arguments

* Update travis to minimum required Node version

* Always chmod executable dependencies

Fixes EACCESS errors for users that had the files unpacked before we
added the chmod call.

* Remove unused var declaration
2019-03-08 08:37:03 -08:00
Jeremy Pinnix
5c435a3b6c Update grammar on README (#139) 2019-03-08 08:34:31 -08:00
Semen Zhydenko
9f4212eace inital -> initial (#135) 2019-03-08 08:10:50 -08:00
Anmol Sethi
96175d36ea Handle arch in dockerfile and add PR template (#109)
* repo: add a pull request template

* Dockerfile: include arch when copying

Thanks @yush1ga and @zerdos
2019-03-07 13:48:11 -08:00
Kyle Carberry
c8afb7908e Merge branch 'master' of github.com:codercom/code-server 2019-03-07 21:23:25 +00:00
Kyle Carberry
231cdec7fb Update known issues in readme with better wording 2019-03-07 21:23:16 +00:00
Elizabeth
8e5f288459 Updated current args available for passing in docs (#105) 2019-03-07 13:19:00 -08:00
Anmol Sethi
14f1230bed Merge pull request #98 from nhooyr/docker
Dockerfile: cleanup and add en_US.UTF-8 locale
2019-03-07 14:08:09 -05:00
Anmol Sethi
fba3fe5609 Dockerfile: cleanup and add en_US.UTF-8 locale
Closes #84
Closes #83

Thanks @xMrWhite, @frol and @sr229.
2019-03-07 13:55:13 -05:00
Elizabeth
8e68411174 Update example docker command port bind options (#88)
must use 127.0.0.1 and not `localhost`
2019-03-07 09:31:01 -08:00
Asher
3d654a8df7 Resolve paths
Fixes #19.
2019-03-07 11:25:26 -06:00
Takayosi Amagi
87d2e22a6b Open localhost URL with --open (#28)
* Open localhost URL with --open

* Catch errors on opn

Co-Authored-By: fand <fand@users.noreply.github.com>
2019-03-07 09:23:54 -08:00
Anmol Sethi
17267bd801 Add Dockerfile and some cleanup (#57) 2019-03-06 18:59:43 -08:00
Michael Desantis
ac56fcaafc Remove unused markup from password page (#49) 2019-03-06 18:47:05 -08:00
Michael Desantis
e20b79b5cc Generate secure passwords, fixes issue #26 (#51) 2019-03-06 16:25:44 -08:00
Philipp Gillé
e99f8abc3c Fix spelling error (#46) 2019-03-06 16:21:33 -08:00
Asher
994531d8bb Add task for packaging release (#6)
* Add task for packaging release

* Modify package task to package a single binary

This is so it can be used as part of the build/release script.

* Package release as part of Travis deploy

* Set platform env var

* Add arch env var

* Make version available to the code

* Use tar for Linux and zip for Mac & Windows
2019-03-06 18:15:52 -06:00
Kyle Carberry
8916cb9bb2 Update to vscode 1.31.1 (#45) 2019-03-06 11:10:23 -08:00
Ammar Bandukwala
d4867ca430 Cleanup English in README (#21) 2019-03-06 10:11:27 -08:00
Icebob
3fbdb2e46c Implement #4 - fix password via CLI (#5) 2019-03-06 00:08:43 -08:00
Ammar Bandukwala
1d8da2161f Add value props to readme (#20) 2019-03-05 17:45:21 -08:00
Kyle Carberry
414eb7076f Update element fill to replace file URIs in image tags 2019-03-06 00:06:44 +00:00
Asher
2b3d2933eb Updated binary name in issue templates 2019-03-05 17:23:13 -06:00
Andrew Grekov
14ead1a62f Fixes calculating number of threads for HappyPack (#10) 2019-03-05 15:02:49 -08:00
John McCambridge
3b48c57861 Fix port number in docs (#12) 2019-03-05 13:53:35 -08:00
Colin
c772e920cd Add Discord widget to README (#16) 2019-03-05 13:53:05 -08:00
Ammar Bandukwala
e6aa74c412 Merge pull request #7 from codercom/fix-doc
Clarify that cloud offering is seperate from the open source
2019-03-05 10:52:43 -08:00
Ammar Bandukwala
838c8a6f2c Clarify that the cloud offering is seperate from the open source 2019-03-05 12:51:34 -06:00
Kyle Carberry
4028e33529 Update travis.yml with new credentials 2019-03-05 05:20:57 +00:00
Kyle Carberry
ec94a92a5f Merge branch 'master' of github.com:codercom/code-server 2019-03-05 04:54:53 +00:00
Kyle Carberry
379a5243fe Update api key secret 2019-03-05 04:54:37 +00:00
Asher
47765dde23 Add ping/pong to the protocol (#2) 2019-03-04 19:26:17 -08:00
Kyle Carberry
d48d72cb79 Filter out secrets in CI 2019-03-05 01:20:25 +00:00
Kyle Carberry
31518e9754 Make ripgrep executable on extract 2019-03-05 00:42:02 +00:00
Kyle Carberry
1e0d330778 Directly point to the logger src 2019-03-05 00:29:19 +00:00
Kyle Carberry
ef6369d62f Add prerelease 2019-03-05 00:21:29 +00:00
Asher
5b0d11e470 Use localhost for code-server domain 2019-03-04 16:11:48 -06:00
5111 changed files with 1366230 additions and 31677 deletions

3
.dockerignore Normal file
View File

@@ -0,0 +1,3 @@
**
!release-packages
!ci

6
.editorconfig Normal file
View File

@@ -0,0 +1,6 @@
root = true
[*]
indent_style = space
trim_trailing_whitespace = true
indent_size = 2

44
.eslintrc.yaml Normal file
View File

@@ -0,0 +1,44 @@
parser: "@typescript-eslint/parser"
env:
browser: true
es6: true # Map, etc.
jest: true
node: true
parserOptions:
ecmaVersion: 2018
sourceType: module
extends:
- eslint:recommended
- plugin:@typescript-eslint/recommended
- plugin:import/recommended
- plugin:import/typescript
- plugin:prettier/recommended
- prettier # Removes eslint rules that conflict with prettier.
- prettier/@typescript-eslint # Remove conflicts again.
rules:
# Sometimes you need to add args to implement a function signature even
# if they are unused.
"@typescript-eslint/no-unused-vars": ["error", { "args": "none" }]
# For overloads.
no-dupe-class-members: off
"@typescript-eslint/no-use-before-define": off
"@typescript-eslint/no-non-null-assertion": off
"@typescript-eslint/ban-types": off
"@typescript-eslint/no-var-requires": off
"@typescript-eslint/explicit-module-boundary-types": off
"@typescript-eslint/no-explicit-any": off
eqeqeq: error
import/order:
[error, { alphabetize: { order: "asc" }, groups: [["builtin", "external", "internal"], "parent", "sibling"] }]
no-async-promise-executor: off
# This isn't a real module, just types, which apparently doesn't resolve.
import/no-unresolved: [error, { ignore: ["express-serve-static-core"] }]
settings:
# Does not work with CommonJS unfortunately.
import/ignore:
- env-paths
- xdg-basedir

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.afdesign filter=lfs diff=lfs merge=lfs -text

2
.github/CODEOWNERS vendored
View File

@@ -1 +1 @@
* @coderasher @kylecarbs
ci/helm-chart @Matthew-Beckett @alexgorbatchev

28
.github/ISSUE_TEMPLATE/bug-report.md vendored Normal file
View File

@@ -0,0 +1,28 @@
---
name: Bug report
about: Report a bug and help us improve
title: ""
labels: ""
assignees: ""
---
<!--
Please see https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-debug-issues-with-code-server
and include any logging information relevant to the issue.
Please search for existing issues before filing.
If you can reproduce the issue on vanilla VS Code,
please file the issue at the VS Code repository instead.
Provide screenshots if applicable.
Please fill in the issue template and try to be as detailed
and clear as possible!
-->
- Web Browser:
- Local OS:
- Remote OS:
- Remote Architecture:
- `code-server --version`:

View File

@@ -1,18 +0,0 @@
---
name: Bug Report
about: Report problems and unexpected behavior.
title: ''
labels: ''
assignees: ''
---
<!-- Please search existing issues to avoid creating duplicates. -->
<!-- All extension-specific issues should be created with the `Extension Bug` template. -->
- `vscode-remote` version: <!-- The version of vscode-remote -->
- OS Version: <!-- OS version, cloud provider, -->
#### Steps to Reproduce
1.
2.

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Question
url: https://github.com/cdr/code-server/discussions/new?category_id=22503114
about: Ask the community for help on our GitHub Discussions board
- name: Chat
about: Need immediate help or just want to talk? Hop in our Slack
url: https://cdr.co/join-community

7
.github/ISSUE_TEMPLATE/doc.md vendored Normal file
View File

@@ -0,0 +1,7 @@
---
name: Documentation improvement
about: Suggest a documentation improvement
title: ""
labels: "docs"
assignees: ""
---

View File

@@ -0,0 +1,18 @@
---
name: Extension request
about: Request an extension missing from the code-server marketplace
title: ""
labels: extension-request
assignees: ""
---
<!--
Details on the code-server extension marketplace are at
https://github.com/cdr/code-server/blob/master/docs/FAQ.md#whats-the-deal-with-extensions
Please fill in the issue template!
-->
- [ ] Extension name:
- [ ] Extension GitHub or homepage:

View File

@@ -1,18 +0,0 @@
---
name: Extension Bug
about: Report problems and unexpected behavior with extensions.
title: ''
labels: 'extension-specific'
assignees: ''
---
<!-- Please search existing issues to avoid creating duplicates. -->
- `vscode-remote` version: <!-- The version of vscode-remote -->
- OS Version: <!-- OS version, cloud provider, -->
- Extension: <!-- Link to extension -->
#### Steps to Reproduce
1.
2.

View File

@@ -0,0 +1,13 @@
---
name: Feature request
about: Suggest an idea
title: ""
labels: feature
assignees: ""
---
<!--
Please search for existing issues before filing.
Please describe the feature as clearly as possible!
-->

View File

@@ -1,11 +0,0 @@
---
name: Feature Request
about: Suggest an idea for this project.
title: ''
labels: ''
assignees: ''
---
<!-- Please search existing issues to avoid creating duplicates. -->
<!-- Describe the feature you'd like. -->

View File

@@ -1,17 +0,0 @@
---
name: Question
about: Ask a question.
title: ''
labels: ''
assignees: ''
---
<!-- Please search existing issues to avoid creating duplicates. -->
#### Description
<!-- A description of the the question. -->
#### Related Issues
<!-- Any issues related to your question. -->

37
.github/lock.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
# Configuration for Lock Threads - https://github.com/dessant/lock-threads-app
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 90
# Skip issues and pull requests created before a given timestamp. Timestamp must
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
skipCreatedBefore: false
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
exemptLabels: []
# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false
# Comment to post before locking. Set to `false` to disable
lockComment: >
This thread has been automatically locked since there has not been
any recent activity after it was closed. Please open a new issue for
related bugs.
# Assign `resolved` as the reason for locking. Set to `false` to disable
setLockReason: true
# Limit to only `issues` or `pulls`
# only: issues
# Optionally, specify configuration settings just for `issues` or `pulls`
# issues:
# exemptLabels:
# - help-wanted
# lockLabel: outdated
# pulls:
# daysUntilLock: 30
# Repository to extend settings from
# _extends: repo

6
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,6 @@
<!--
Please link to the issue this PR solves.
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 master branch!
-->

157
.github/workflows/ci.yaml vendored Normal file
View File

@@ -0,0 +1,157 @@
name: ci
on: [push]
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run ./ci/steps/fmt.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/fmt.sh
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run ./ci/steps/lint.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/lint.sh
test:
needs: linux-amd64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Download release packages
uses: actions/download-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Untar code-server file
run: |
cd release-packages && tar -xzf code-server*-linux-amd64.tar.gz
- uses: microsoft/playwright-github-action@v1
- name: Install dependencies and run tests
run: |
node ./release-packages/code-server*-linux-amd64 &
yarn --frozen-lockfile
yarn test
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run ./ci/steps/release.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/release.sh
- name: Upload npm package artifact
uses: actions/upload-artifact@v2
with:
name: npm-package
path: ./release-npm-package
linux-amd64:
needs: release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Download npm package
uses: actions/download-artifact@v2
with:
name: npm-package
path: ./release-npm-package
- name: Run ./ci/steps/release-packages.sh
uses: ./ci/images/centos7
with:
args: ./ci/steps/release-packages.sh
- name: Upload release artifacts
uses: actions/upload-artifact@v2
with:
name: release-packages
path: ./release-packages
linux-arm64:
needs: release
runs-on: ubuntu-arm64-latest
steps:
- uses: actions/checkout@v1
- name: Download npm package
uses: actions/download-artifact@v2
with:
name: npm-package
path: ./release-npm-package
- name: Run ./ci/steps/release-packages.sh
uses: ./ci/images/centos7
with:
args: ./ci/steps/release-packages.sh
- name: Upload release artifacts
uses: actions/upload-artifact@v2
with:
name: release-packages
path: ./release-packages
macos-amd64:
needs: release
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- name: Download npm package
uses: actions/download-artifact@v2
with:
name: npm-package
path: ./release-npm-package
- run: ./ci/steps/release-packages.sh
env:
# Otherwise we get rate limited when fetching the ripgrep binary.
# For whatever reason only MacOS needs it.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload release artifacts
uses: actions/upload-artifact@v2
with:
name: release-packages
path: ./release-packages
docker-amd64:
runs-on: ubuntu-latest
needs: linux-amd64
steps:
- uses: actions/checkout@v1
- name: Download release package
uses: actions/download-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Run ./ci/steps/build-docker-image.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/build-docker-image.sh
- name: Upload release image
uses: actions/upload-artifact@v2
with:
name: release-images
path: ./release-images
docker-arm64:
runs-on: ubuntu-arm64-latest
needs: linux-arm64
steps:
- uses: actions/checkout@v1
- name: Download release package
uses: actions/download-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Run ./ci/steps/build-docker-image.sh
uses: ./ci/images/centos7
with:
args: ./ci/steps/build-docker-image.sh
- name: Upload release image
uses: actions/upload-artifact@v2
with:
name: release-images
path: ./release-images

31
.github/workflows/publish.yaml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: publish
on:
release:
types: [published]
jobs:
npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run ./ci/steps/publish-npm.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/publish-npm.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run ./ci/steps/push-docker-manifest.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/push-docker-manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

21
.gitignore vendored
View File

@@ -1,5 +1,18 @@
lib
.tsbuildinfo
.cache
dist*
out*
release/
release-npm-package/
release-standalone/
release-packages/
release-gcp/
release-images/
node_modules
dist
out
.DS_Store
/lib/vscode/node_modules.asar
node-*
/plugins
/lib/coder-cloud-agent
.home
coverage
**/.DS_Store

1
.ignore Normal file
View File

@@ -0,0 +1 @@
lib

4
.prettierrc.yaml Normal file
View File

@@ -0,0 +1,4 @@
printWidth: 120
semi: false
trailingComma: all
arrowParens: always

2
.stylelintrc.yaml Normal file
View File

@@ -0,0 +1,2 @@
extends:
- stylelint-config-recommended

151
.tours/contributing.tour Normal file
View File

@@ -0,0 +1,151 @@
{
"$schema": "https://aka.ms/codetour-schema",
"title": "Contributing",
"steps": [
{
"directory": "src",
"line": 1,
"description": "Hello world! code-server's source code lives here in `src` (see the explorer). It's broadly arranged into browser code, Node code, and code shared between both."
},
{
"file": "src/node/entry.ts",
"line": 157,
"description": "code-server begins execution here. CLI arguments are parsed, special flags like --help are handled, then the HTTP server is started."
},
{
"file": "src/node/cli.ts",
"line": 28,
"description": "This describes all of the code-server CLI options and how they will be parsed."
},
{
"file": "src/node/cli.ts",
"line": 233,
"description": "Here's the actual CLI parser."
},
{
"file": "src/node/settings.ts",
"line": 1,
"description": "code-server maintains a settings file that is read and written here."
},
{
"file": "src/node/app.ts",
"line": 11,
"description": "The core of code-server are HTTP and web socket servers which are created here. They provide authentication, file access, an API, and serve web-based applications like VS Code."
},
{
"file": "src/node/wsRouter.ts",
"line": 38,
"description": "This is an analog to Express's Router that handles web socket routes."
},
{
"file": "src/node/http.ts",
"line": 1,
"description": "This file provides various HTTP utility functions."
},
{
"file": "src/node/coder_cloud.ts",
"line": 9,
"description": "The cloud agent spawned here provides the --link functionality."
},
{
"file": "src/node/heart.ts",
"line": 7,
"description": "code-server's heart beats to indicate recent activity.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#heartbeat-file](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#heartbeat-file)"
},
{
"file": "src/node/socket.ts",
"line": 13,
"description": "We pass sockets to child processes, however we can't pass TLS sockets so when code-server is handling TLS (via --cert) we use this to create a proxy that can be passed to the child."
},
{
"directory": "src/node/routes",
"line": 1,
"description": "code-server's routes live here in `src/node/routes` (see the explorer)."
},
{
"file": "src/node/routes/index.ts",
"line": 123,
"description": "The architecture of code-server allows it to be extended with applications via plugins. Each application is registered at its own route and handles requests at and below that route. Currently we have only VS Code (although it is not yet actually split out into a plugin)."
},
{
"file": "src/node/plugin.ts",
"line": 103,
"description": "The previously mentioned plugins are loaded here."
},
{
"file": "src/node/routes/apps.ts",
"line": 12,
"description": "This provides a list of the applications registered with code-server."
},
{
"file": "src/node/routes/domainProxy.ts",
"line": 18,
"description": "code-server provides a built-in proxy to help in developing web-based applications. This is the code for the domain-based proxy.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services)"
},
{
"file": "src/node/routes/pathProxy.ts",
"line": 19,
"description": "Here is the path-based version of the proxy.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services)"
},
{
"file": "src/node/proxy.ts",
"line": 4,
"description": "Both the domain and path proxy use the single proxy instance created here."
},
{
"file": "src/node/routes/health.ts",
"line": 5,
"description": "A simple endpoint that lets you see if code-server is up.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#healthz-endpoint](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#healthz-endpoint)"
},
{
"file": "src/node/routes/login.ts",
"line": 46,
"description": "code-server supports a password-based login here."
},
{
"file": "src/node/routes/static.ts",
"line": 16,
"description": "This serves static assets. Anything under the code-server directory can be fetched. Anything outside requires authentication."
},
{
"file": "src/node/routes/update.ts",
"line": 10,
"description": "This endpoint lets you query for the latest code-server version. It's used to power the update popup you see in VS Code."
},
{
"file": "src/node/routes/vscode.ts",
"line": 15,
"description": "This is the endpoint that serves VS Code's HTML, handles VS Code's websockets, and handles a few VS Code-specific endpoints for fetching static files."
},
{
"file": "src/node/vscode.ts",
"line": 13,
"description": "The actual VS Code spawn and initialization is handled here. VS Code runs in a separate child process. We communicate via IPC and by passing it web sockets."
},
{
"file": "src/browser/serviceWorker.ts",
"line": 1,
"description": "The service worker only exists to provide PWA functionality."
},
{
"directory": "src/browser/pages",
"line": 1,
"description": "HTML, CSS, and JavaScript for each page lives in here `src/browser/pages` (see the explorer). Currently our HTML uses a simple search and replace template system with variables that {{LOOK_LIKE_THIS}}."
},
{
"file": "src/browser/pages/vscode.html",
"line": 1,
"description": "The VS Code HTML is based off VS Code's own `workbench.html`."
},
{
"directory": "src/browser/media",
"line": 1,
"description": "Static images and the manifest live here in `src/browser/media` (see the explorer)."
},
{
"directory": "lib/vscode",
"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

@@ -0,0 +1,26 @@
{
"$schema": "https://aka.ms/codetour-schema",
"title": "Start Development",
"steps": [
{
"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"
},
{
"file": "src/node/app.ts",
"line": 68,
"description": "## Visit the web server\n\nIf all goes well, you should see something like this in your terminal. code-server should be live in development mode.\n\n---\n```bash\n[2020-12-09T21:03:37.156Z] info code-server 3.7.4 development\n[2020-12-09T21:03:37.157Z] info Using user-data-dir ~/.local/share/code-server\n[2020-12-09T21:03:37.165Z] info Using config file ~/.config/code-server/config.yaml\n[2020-12-09T21:03:37.165Z] info HTTP server listening on http://127.0.0.1:8080 \n[2020-12-09T21:03:37.165Z] info - Authentication is enabled\n[2020-12-09T21:03:37.165Z] info - Using password from ~/.config/code-server/config.yaml\n[2020-12-09T21:03:37.165Z] info - Not serving HTTPS\n```\n\n---\n\nIf you have the default configuration, you can access it at [http://localhost:8080](http://localhost:8080)."
},
{
"file": "src/browser/pages/login.html",
"line": 26,
"description": "## Make a change\n\nThis is the login page, let's make a change and see it update on our web server! Perhaps change the text :)\n\n```html\n<div class=\"sub\">Modifying the login page 👨🏼‍💻</div>\n```\n\nReminder, you can likely preview at [http://localhost:8080](http://localhost:8080)"
},
{
"file": "src/node/app.ts",
"line": 62,
"description": "## That's it!\n\n\nThat's all there is to it! When this tour ends, your terminal session may stop, but just use `yarn watch` to start developing from here on out!\n\n\nIf you haven't already, be sure to check out these resources:\n- [Tour: Contributing](command:codetour.startTourByTitle?[\"Contributing\")\n- [Docs: FAQ.md](https://github.com/cdr/code-server/blob/master/docs/FAQ.md)\n- [Docs: CONTRIBUTING.md](https://github.com/cdr/code-server/blob/master/docs/CONTRIBUTING.md)\n- [Community: GitHub Discussions](https://github.com/cdr/code-server/discussions)\n- [Community: Slack](https://community.coder.com)"
}
]
}

View File

@@ -1,33 +0,0 @@
language: node_js
node_js:
- 8.9.3
filter_secrets: false
matrix:
include:
- os: linux
dist: ubuntu
- os: osx
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libxkbfile-dev libsecret-1-dev;
fi
script:
- scripts/build.sh
# before_deploy:
# - export TRAVIS_TAG="1.0.$TRAVIS_BUILD_NUMBER"
# - echo "$TRAVIS_TAG" "$TRAVIS_COMMIT"
# - git config --local user.name "$USER_NAME"
# - git config --local user.email "$USER_EMAIL"
# - git tag "$TRAVIS_TAG" "$TRAVIS_COMMIT"
# deploy:
# provider: releases
# tag_name: $TRAVIS_TAG
# target_commitish: $TRAVIS_COMMIT
# name: $TRAVIS_TAG
# skip_cleanup: true
# api_key:
# secure: T/yqCIeqLifteriv8D3CnehNFzSBP309GZqeUfyx8Q+xSQEttA9Enxl+Qw9GkdedYTN4J56iucHIac6CwcvKSKIXqk80CeSEW0BNxZs5wIgv4rRMMy/GAX0NBWKNOkoGlH8M6VyQcM7eY2iGAn1EX755PHalk6rWwfsauRANOQyb2DXQBan5C0YUnogq2qcW1xkIwlXH7l0Ekbtego0f6QPv0rSyOcL1LKm6xk0Aq+xLNKJkT6TSL6xYpkPlZLjnql09Nspkqs6NehWlft2n09bHqAtjNnWw9OYCvxp8mdHeTE5uShuEqYPzdYU5LVFoE7wElI8uqS66noaA18ytZYGw2IrY6GZcn+wtR6WyM2+YXl2HclL1/Fs6Vn8+zwq2IBZchBNv3KJSn1dxiqLlD/s6YQyni17x/9FhtFoNUvsbY5zSC1xrnNQBQWFg0TRnoC9rPR+7hQtT1+5+CvRxpvcNWnPuA22919PFE79ejJulPmsnyF+YLs9c6APJgOpOO1f6fKt5Mcb02dubPqGcQ9NbqUUNTl4IUvEtjG0LnFAgEGerxAcsdnUTxzBVf0LJLlhRKW1BigUTbRwfUJL1DN0mWg9cg7fL5VqrogvNq3uRguxOsYr+bcHDbimQSAY3No3fAkTTqQSJh56Dx57/Un18KxuOTiRB9de1RtiudsI=
# file_glob: true
# file: packages/server/cli-*
# on:
# repo: codercom/code-server
# branch: master

View File

@@ -1,58 +1,81 @@
# code-server
# 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)
[!["Open Issues"](https://img.shields.io/github/issues-raw/codercom/code-server.svg)](https://github.com/codercom/code-server/issues)
[!["Latest Release"](https://img.shields.io/github/release/codercom/code-server.svg)](https://github.com/codercom/code-server/releases/latest)
[![MIT license](https://img.shields.io/badge/license-MIT-green.svg)](#)
![Lines](https://img.shields.io/badge/Coverage-50.08%25-green.svg)
`code-server` is VS Code running on a remote server, accessible through the browser.
Run [VS Code](https://github.com/Microsoft/vscode) on any machine anywhere and access it in the browser.
![Screenshot](/doc/assets/ide.png)
![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
[Try `code-server` now](https://coder.com/signup) for free at coder.com.
There are two ways to get started:
1. [Download a binary](https://github.com/codercom/code-server/releases) (Linux and OSX supported. Windows coming soon)
2. Start the binary with the project directory as the first argument
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
```
code-server <inital directory to open>
```
> You will be prompted to enter the password shown in the CLI
`code-server` should now be running at https://<IP>:8443.
If you choose to use the install script, you can preview what occurs during the install process:
> code-server uses a self-signed SSL certificate that may prompt your browser to ask you some additional questions before you proceed. Please [read here](doc/self-hosted/index.md) for more information.
```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
```
For detailed instructions and troubleshooting, see the [self-hosted quick start guide](doc/self-hosted/index.md).
To install, run:
Quickstart guides for [Google Cloud](doc/admin/install/google_cloud.md), [AWS](doc/admin/install/aws.md), and [Digital Ocean](doc/admin/install/digitalocean.md).
```bash
curl -fsSL https://code-server.dev/install.sh | sh
```
How to [secure your setup](/doc/security/ssl.md).
When done, the install script prints out instructions for running and starting code-server.
## Development
We also have an in-depth [setup and configuration](./docs/guide.md) guide.
### Known Issues
### Cloud Program ☁️
- Debugging extensions doesnt work.
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
### Future
- TLS
- Authentication
- Port Forwarding
- Windows support.
- Electron and ChromeOS applications to bridge the gap between local<->remote.
- Run VS Code unit tests against our builds to ensure features work as expected.
```bash
$ code-server --link
Proxying code-server to Coder Cloud, you can access your IDE at https://valmar-jon.cdr.co
```
## Contributing
## FAQ
Guides on setup for development will be coming soon. :)
See [./docs/FAQ.md](./docs/FAQ.md).
## License
## Want to help?
[MIT](LICENSE)
See [CONTRIBUTING](./docs/CONTRIBUTING.md) for details.
## Enterprise
## Hiring
Visit [our enterprise page](https://coder.com/enterprise) for more information on our enterprise offering.
We ([@cdr](https://github.com/cdr)) are looking for engineers to help [maintain
code-server](https://jobs.lever.co/coder/e40becde-2cbd-4885-9029-e5c7b0a734b8), innovate on open source, and streamline dev workflows.
## Commercialization
Our main office is in Austin, Texas. Remote is ok as long as
you're in North America or Europe.
If you would like to commercialize code-server, please contact contact@coder.com.
Please get in [touch](mailto:jobs@coder.com) with your resume/GitHub if interested.
## For Organizations
Visit [our website](https://coder.com) for more information about remote development for your organization or enterprise.

22
ThirdPartyNotices.txt Normal file
View File

@@ -0,0 +1,22 @@
code-server
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
Do Not Translate or Localize
1. Microsoft/vscode version 1.47.0 (https://github.com/Microsoft/vscode)
%% Microsoft/vscode NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright (c) 2015 - present Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,263 +0,0 @@
import { register, run } from "@coder/runner";
import * as fs from "fs";
import * as fse from "fs-extra";
import * as os from "os";
import * as path from "path";
import * as zlib from "zlib";
const isWin = os.platform() === "win32";
const libPath = path.join(__dirname, "../lib");
const vscodePath = path.join(libPath, "vscode");
const pkgsPath = path.join(__dirname, "../packages");
const defaultExtensionsPath = path.join(libPath, "VSCode-linux-x64/resources/app/extensions");
const buildServerBinary = register("build:server:binary", async (runner) => {
await ensureInstalled();
await copyForDefaultExtensions();
await Promise.all([
buildBootstrapFork(),
buildWeb(),
buildDefaultExtensions(),
buildServerBundle(),
buildAppBrowser(),
]);
await buildServerBinaryPackage();
});
const buildServerBinaryPackage = register("build:server:binary:package", async (runner) => {
const cliPath = path.join(pkgsPath, "server");
runner.cwd = cliPath;
if (!fs.existsSync(path.join(cliPath, "out"))) {
throw new Error("Cannot build binary without server bundle built");
}
await buildServerBinaryCopy();
await dependencyNexeBinary();
const resp = await runner.execute(isWin ? "npm.cmd" : "npm", ["run", "build:nexe"]);
if (resp.exitCode !== 0) {
throw new Error(`Failed to package binary: ${resp.stderr}`);
}
});
const dependencyNexeBinary = register("dependency:nexe", async (runner) => {
if (os.platform() === "linux") {
const nexeDir = path.join(os.homedir(), ".nexe");
const targetBinaryName = `${os.platform()}-${os.arch()}-${process.version.substr(1)}`;
const targetBinaryPath = path.join(nexeDir, targetBinaryName);
if (!fs.existsSync(targetBinaryPath)) {
/**
* We create a binary with nexe
* so we can compress it
*/
fse.mkdirpSync(nexeDir);
runner.cwd = nexeDir;
await runner.execute("wget", [`https://github.com/nexe/nexe/releases/download/v3.0.0-beta.15/${targetBinaryName}`]);
await runner.execute("chmod", ["+x", targetBinaryPath]);
}
if (fs.statSync(targetBinaryPath).size >= 20000000) {
// Compress w/ upx
const upxFolder = path.join(os.tmpdir(), "upx");
const upxBinary = path.join(upxFolder, "upx");
if (!fs.existsSync(upxBinary)) {
fse.mkdirpSync(upxFolder);
runner.cwd = upxFolder;
const upxExtract = await runner.execute("bash", ["-c", "curl -L https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz | tar xJ --strip-components=1"]);
if (upxExtract.exitCode !== 0) {
throw new Error(`Failed to extract upx: ${upxExtract.stderr}`);
}
}
if (!fs.existsSync(upxBinary)) {
throw new Error("Not sure how, but the UPX binary does not exist");
}
await runner.execute(upxBinary, [targetBinaryPath]);
}
}
});
const buildServerBinaryCopy = register("build:server:binary:copy", async (runner) => {
const cliPath = path.join(pkgsPath, "server");
const cliBuildPath = path.join(cliPath, "build");
fse.removeSync(cliBuildPath);
fse.mkdirpSync(path.join(cliBuildPath, "extensions"));
const bootstrapForkPath = path.join(pkgsPath, "vscode", "out", "bootstrap-fork.js");
const webOutputPath = path.join(pkgsPath, "web", "out");
const browserAppOutputPath = path.join(pkgsPath, "app", "browser", "out");
const nodePtyModule = path.join(pkgsPath, "protocol", "node_modules", "node-pty-prebuilt", "build", "Release", "pty.node");
const spdlogModule = path.join(pkgsPath, "protocol", "node_modules", "spdlog", "build", "Release", "spdlog.node");
let ripgrepPath = path.join(pkgsPath, "..", "lib", "vscode", "node_modules", "vscode-ripgrep", "bin", "rg");
if (isWin) {
ripgrepPath += ".exe";
}
if (!fs.existsSync(nodePtyModule)) {
throw new Error("Could not find pty.node. Ensure all packages have been installed");
}
if (!fs.existsSync(spdlogModule)) {
throw new Error("Could not find spdlog.node. Ensure all packages have been installed");
}
if (!fs.existsSync(webOutputPath)) {
throw new Error("Web bundle must be built");
}
if (!fs.existsSync(defaultExtensionsPath)) {
throw new Error("Default extensions must be built");
}
if (!fs.existsSync(bootstrapForkPath)) {
throw new Error("Bootstrap fork must exist");
}
if (!fs.existsSync(ripgrepPath)) {
throw new Error("Ripgrep must exist");
}
fse.copySync(defaultExtensionsPath, path.join(cliBuildPath, "extensions"));
fs.writeFileSync(path.join(cliBuildPath, "bootstrap-fork.js.gz"), zlib.gzipSync(fs.readFileSync(bootstrapForkPath)));
const cpDir = (dir: string, subdir: "auth" | "unauth", rootPath: string): void => {
const stat = fs.statSync(dir);
if (stat.isDirectory()) {
const paths = fs.readdirSync(dir);
paths.forEach((p) => cpDir(path.join(dir, p), subdir, rootPath));
} else if (stat.isFile()) {
const newPath = path.join(cliBuildPath, "web", subdir, path.relative(rootPath, dir));
fse.mkdirpSync(path.dirname(newPath));
fs.writeFileSync(newPath + ".gz", zlib.gzipSync(fs.readFileSync(dir)));
} else {
// Nothing
}
};
cpDir(webOutputPath, "auth", webOutputPath);
cpDir(browserAppOutputPath, "unauth", browserAppOutputPath);
fse.mkdirpSync(path.join(cliBuildPath, "dependencies"));
fse.copySync(nodePtyModule, path.join(cliBuildPath, "dependencies", "pty.node"));
fse.copySync(spdlogModule, path.join(cliBuildPath, "dependencies", "spdlog.node"));
fse.copySync(ripgrepPath, path.join(cliBuildPath, "dependencies", "rg"));
});
const buildServerBundle = register("build:server:bundle", async (runner) => {
const cliPath = path.join(pkgsPath, "server");
runner.cwd = cliPath;
await runner.execute(isWin ? "npm.cmd" : "npm", ["run", "build"]);
});
const buildBootstrapFork = register("build:bootstrap-fork", async (runner) => {
await ensureInstalled();
await ensurePatched();
const vscodePkgPath = path.join(pkgsPath, "vscode");
runner.cwd = vscodePkgPath;
await runner.execute(isWin ? "npm.cmd" : "npm", ["run", "build:bootstrap-fork"]);
});
const buildAppBrowser = register("build:app:browser", async (runner) => {
await ensureInstalled();
const appPath = path.join(pkgsPath, "app/browser");
runner.cwd = appPath;
fse.removeSync(path.join(appPath, "out"));
await runner.execute(isWin ? "npm.cmd" : "npm", ["run", "build"]);
});
const buildWeb = register("build:web", async (runner) => {
await ensureInstalled();
await ensurePatched();
const webPath = path.join(pkgsPath, "web");
runner.cwd = webPath;
fse.removeSync(path.join(webPath, "out"));
await runner.execute(isWin ? "npm.cmd" : "npm", ["run", "build"]);
});
const extDirPath = path.join("lib", "vscode-default-extensions");
const copyForDefaultExtensions = register("build:copy-vscode", async (runner) => {
if (!fs.existsSync(defaultExtensionsPath)) {
await ensureClean();
await ensureInstalled();
await new Promise((resolve, reject): void => {
fse.remove(extDirPath, (err) => {
if (err) {
return reject(err);
}
resolve();
});
});
await new Promise((resolve, reject): void => {
fse.copy(vscodePath, extDirPath, (err) => {
if (err) {
return reject(err);
}
resolve();
});
});
}
});
const buildDefaultExtensions = register("build:default-extensions", async (runner) => {
if (!fs.existsSync(defaultExtensionsPath)) {
await copyForDefaultExtensions();
runner.cwd = extDirPath;
const resp = await runner.execute(isWin ? "npx.cmd" : "npx", [isWin ? "gulp.cmd" : "gulp", "vscode-linux-x64"]);
if (resp.exitCode !== 0) {
throw new Error(`Failed to build default extensions: ${resp.stderr}`);
}
}
});
const ensureInstalled = register("vscode:install", async (runner) => {
await ensureCloned();
runner.cwd = vscodePath;
const install = await runner.execute(isWin ? "yarn.cmd" : "yarn", []);
if (install.exitCode !== 0) {
throw new Error(`Failed to install vscode dependencies: ${install.stderr}`);
}
});
const ensureCloned = register("vscode:clone", async (runner) => {
if (fs.existsSync(vscodePath)) {
await ensureClean();
} else {
fse.mkdirpSync(libPath);
runner.cwd = libPath;
const clone = await runner.execute("git", ["clone", "https://github.com/microsoft/vscode"]);
if (clone.exitCode !== 0) {
throw new Error(`Failed to clone: ${clone.exitCode}`);
}
}
runner.cwd = vscodePath;
const checkout = await runner.execute("git", ["checkout", "tags/1.31.0"]);
if (checkout.exitCode !== 0) {
throw new Error(`Failed to checkout: ${checkout.stderr}`);
}
});
const ensureClean = register("vscode:clean", async (runner) => {
runner.cwd = vscodePath;
const status = await runner.execute("git", ["status", "--porcelain"]);
if (status.stdout.trim() !== "") {
const clean = await runner.execute("git", ["clean", "-f", "-d", "-X"]);
if (clean.exitCode !== 0) {
throw new Error(`Failed to clean git repository: ${clean.stderr}`);
}
const removeUnstaged = await runner.execute("git", ["checkout", "--", "."]);
if (removeUnstaged.exitCode !== 0) {
throw new Error(`Failed to remove unstaged files: ${removeUnstaged.stderr}`);
}
}
});
const ensurePatched = register("vscode:patch", async (runner) => {
if (!fs.existsSync(vscodePath)) {
throw new Error("vscode must be cloned to patch");
}
await ensureClean();
runner.cwd = vscodePath;
const patchPath = path.join(__dirname, "../scripts/vscode.patch");
const apply = await runner.execute("git", ["apply", "--unidiff-zero", patchPath]);
if (apply.exitCode !== 0) {
throw new Error(`Failed to apply patches: ${apply.stderr}`);
}
});
run();

161
ci/README.md Normal file
View File

@@ -0,0 +1,161 @@
# ci
This directory contains scripts used for code-server's continuous integration infrastructure.
Some of these scripts contain more detailed documentation and options
in header comments.
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
Make sure you have `$GITHUB_TOKEN` set and [hub](https://github.com/github/hub) installed.
1. Update the version of code-server and make a PR.
1. Update in `package.json`
2. Update in [./docs/install.md](../docs/install.md)
3. Update in [./ci/helm-chart/README.md](../ci/helm-chart/README.md)
- Remember to update the chart version as well on top of appVersion in `Chart.yaml`.
- Run `rg -g '!yarn.lock' -g '!*.svg' '3\.7\.5'` to ensure all values have been
changed. Replace the numbers as needed.
- You can install `rg` or `ripgrep` on macOS [here](https://formulae.brew.sh/formula/ripgrep).
4. Update the code coverage badge (see [here](#updating-code-coverage-in-readme) for instructions)
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. Make sure the github release tag is the commit with the artifacts. This is a bug in
`hub` where uploading assets in step 5 will break the tag.
8. 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`.
9. Update the AUR package.
- Instructions on updating the AUR package are at [cdr/code-server-aur](https://github.com/cdr/code-server-aur).
10. Wait for the npm package to be published.
11. Update the homebrew package.
- Send a pull request to [homebrew-core](https://github.com/Homebrew/homebrew-core) with the URL in the [formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/code-server.rb) updated.
## Updating Code Coverage in README
Currently, we run a command to manually generate the code coverage shield. Follow these steps:
1. Run `yarn test` and make sure all the tests are passing
2. Run `yarn badges`
3. Go into the README and change the color from `red` to `green` in this line:
```
![Lines](https://img.shields.io/badge/Coverage-46.71%25-red.svg)
```
NOTE: we have to manually change the color because the default is red if coverage is less than 80. See code [here](https://github.com/olavoparno/istanbul-badges-readme/blob/develop/src/editor.ts#L24-L33).
## dev
This directory contains scripts used for the development of code-server.
- [./ci/dev/image](./dev/image)
- See [./docs/CONTRIBUTING.md](../docs/CONTRIBUTING.md) for docs on the development container.
- [./ci/dev/fmt.sh](./dev/fmt.sh) (`yarn fmt`)
- Runs formatters.
- [./ci/dev/lint.sh](./dev/lint.sh) (`yarn lint`)
- Runs linters.
- [./ci/dev/test.sh](./dev/test.sh) (`yarn test`)
- Runs tests.
- [./ci/dev/ci.sh](./dev/ci.sh) (`yarn ci`)
- Runs `yarn fmt`, `yarn lint` and `yarn test`.
- [./ci/dev/watch.ts](./dev/watch.ts) (`yarn watch`)
- Starts a process to build and launch code-server and restart on any code changes.
- Example usage in [./docs/CONTRIBUTING.md](../docs/CONTRIBUTING.md).
- [./ci/dev/gen_icons.sh](./ci/dev/gen_icons.sh) (`yarn icons`)
- Generates the various icons from a single `.svg` favicon in
`src/browser/media/favicon.svg`.
- Requires [imagemagick](https://imagemagick.org/index.php)
## build
This directory contains the scripts used to build and release code-server.
You can disable minification by setting `MINIFY=`.
- [./ci/build/build-code-server.sh](./build/build-code-server.sh) (`yarn build`)
- Builds code-server into `./out` and bundles the frontend into `./dist`.
- [./ci/build/build-vscode.sh](./build/build-vscode.sh) (`yarn build:vscode`)
- Builds vscode into `./lib/vscode/out-vscode`.
- [./ci/build/build-release.sh](./build/build-release.sh) (`yarn release`)
- Bundles the output of the above two scripts into a single node module at `./release`.
- [./ci/build/build-standalone-release.sh](./build/build-standalone-release.sh) (`yarn release:standalone`)
- Requires a node module already built into `./release` with the above script.
- Will build a standalone release with node and node_modules bundled into `./release-standalone`.
- [./ci/build/clean.sh](./build/clean.sh) (`yarn clean`)
- Removes all build artifacts.
- Useful to do a clean build.
- [./ci/build/code-server.sh](./build/code-server.sh)
- Copied into standalone releases to run code-server with the bundled node binary.
- [./ci/build/test-standalone-release.sh](./build/test-standalone-release.sh) (`yarn test:standalone-release`)
- Ensures code-server in the `./release-standalone` directory works by installing an extension.
- [./ci/build/build-packages.sh](./build/build-packages.sh) (`yarn package`)
- Packages `./release-standalone` into a `.tar.gz` archive in `./release-packages`.
- If on linux, [nfpm](https://github.com/goreleaser/nfpm) is used to generate `.deb` and `.rpm`.
- [./ci/build/nfpm.yaml](./build/nfpm.yaml)
- Used to configure [nfpm](https://github.com/goreleaser/nfpm) to generate `.deb` and `.rpm`.
- [./ci/build/code-server-nfpm.sh](./build/code-server-nfpm.sh)
- Entrypoint script for code-server for `.deb` and `.rpm`.
- [./ci/build/code-server.service](./build/code-server.service)
- systemd user service packaged into the `.deb` and `.rpm`.
- [./ci/build/release-github-draft.sh](./build/release-github-draft.sh) (`yarn release:github-draft`)
- Uses [hub](https://github.com/github/hub) to create a draft release with a template description.
- [./ci/build/release-github-assets.sh](./build/release-github-assets.sh) (`yarn release:github-assets`)
- Downloads the release-package artifacts for the current commit from CI.
- Uses [hub](https://github.com/github/hub) to upload the artifacts to the release
specified in `package.json`.
- [./ci/build/npm-postinstall.sh](./build/npm-postinstall.sh)
- Post install script for the npm package.
- Bundled by`yarn release`.
## release-image
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`.
- Assumes debian releases are ready in `./release-packages`.
## images
This directory contains the images for CI.
## steps
This directory contains the scripts used in CI.
Helps avoid clobbering the CI configuration.
- [./steps/fmt.sh](./steps/fmt.sh)
- Runs `yarn fmt` after ensuring VS Code is patched.
- [./steps/lint.sh](./steps/lint.sh)
- Runs `yarn lint` after ensuring VS Code is patched.
- [./steps/test.sh](./steps/test.sh)
- Runs `yarn test` after ensuring VS Code is patched.
- [./steps/release.sh](./steps/release.sh)
- Runs the release process.
- Generates the npm package at `./release`.
- [./steps/release-packages.sh](./steps/release-packages.sh)
- Takes the output of the previous script and generates a standalone release and
release packages into `./release-packages`.
- [./steps/publish-npm.sh](./steps/publish-npm.sh)
- Grabs the `npm-package` release artifact for the current commit and publishes it on npm.
- [./steps/build-docker-image.sh](./steps/build-docker-image.sh)
- Builds the docker image and then saves it into `./release-images/code-server-$ARCH-$VERSION.tar`.
- [./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
`codercom/code-server:latest`.

39
ci/build/build-code-server.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
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}")/../.."
tsc
# If out/node/entry.js does not already have the shebang,
# we make sure to add it and make it executable.
if ! grep -q -m1 "^#!/usr/bin/env node" out/node/entry.js; then
sed -i.bak "1s;^;#!/usr/bin/env node\n;" out/node/entry.js && rm out/node/entry.js.bak
chmod +x out/node/entry.js
fi
if ! [ -f ./lib/coder-cloud-agent ]; then
OS="$(uname | tr '[:upper:]' '[:lower:]')"
set +e
curl -fsSL "https://storage.googleapis.com/coder-cloud-releases/agent/latest/$OS/cloud-agent" -o ./lib/coder-cloud-agent
chmod +x ./lib/coder-cloud-agent
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
}
main "$@"

50
ci/build/build-packages.sh Executable file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
set -euo pipefail
# Packages code-server for the current OS and architecture into ./release-packages.
# This script assumes that a standalone release is built already into ./release-standalone
main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
mkdir -p release-packages
release_archive
if [[ $OS == "linux" ]]; then
release_nfpm
fi
}
release_archive() {
local release_name="code-server-$VERSION-$OS-$ARCH"
if [[ $OS == "linux" ]]; then
tar -czf "release-packages/$release_name.tar.gz" --transform "s/^\.\/release-standalone/$release_name/" ./release-standalone
else
tar -czf "release-packages/$release_name.tar.gz" -s "/^release-standalone/$release_name/" release-standalone
fi
echo "done (release-packages/$release_name)"
release_gcp
}
release_gcp() {
mkdir -p "release-gcp/$VERSION"
cp "release-packages/$release_name.tar.gz" "./release-gcp/$VERSION/$OS-$ARCH.tar.gz"
mkdir -p "release-gcp/latest"
cp "./release-packages/$release_name.tar.gz" "./release-gcp/latest/$OS-$ARCH.tar.gz"
}
# 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"
}
main "$@"

110
ci/build/build-release.sh Executable file
View File

@@ -0,0 +1,110 @@
#!/usr/bin/env bash
set -euo pipefail
# This script requires vscode to be built with matching MINIFY.
# MINIFY controls whether minified vscode is bundled.
MINIFY="${MINIFY-true}"
# KEEP_MODULES controls whether the script cleans all node_modules requiring a yarn install
# to run first.
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"
mkdir -p "$RELEASE_PATH"
bundle_code_server
bundle_vscode
rsync README.md "$RELEASE_PATH"
rsync LICENSE.txt "$RELEASE_PATH"
rsync ./lib/vscode/ThirdPartyNotices.txt "$RELEASE_PATH"
# code-server exports types which can be imported and used by plugins. Those
# types import ipc.d.ts but it isn't included in the final vscode build so
# we'll copy it ourselves here.
mkdir -p "$RELEASE_PATH/lib/vscode/src/vs/server"
rsync ./lib/vscode/src/vs/server/ipc.d.ts "$RELEASE_PATH/lib/vscode/src/vs/server"
}
bundle_code_server() {
rsync out dist "$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/robots.txt "$RELEASE_PATH/src/browser"
# Add typings for plugins
mkdir -p "$RELEASE_PATH/typings"
rsync typings/pluginapi.d.ts "$RELEASE_PATH/typings"
# Adds the commit to package.json
jq --slurp '.[0] * .[1]' package.json <(
cat << EOF
{
"commit": "$(git rev-parse HEAD)",
"scripts": {
"postinstall": "./postinstall.sh"
}
}
EOF
) > "$RELEASE_PATH/package.json"
rsync yarn.lock "$RELEASE_PATH"
rsync ci/build/npm-postinstall.sh "$RELEASE_PATH/postinstall.sh"
if [ "$KEEP_MODULES" = 1 ]; then
rsync node_modules/ "$RELEASE_PATH/node_modules"
mkdir -p "$RELEASE_PATH/lib"
rsync ./lib/coder-cloud-agent "$RELEASE_PATH/lib"
fi
}
bundle_vscode() {
mkdir -p "$VSCODE_OUT_PATH"
rsync "$VSCODE_SRC_PATH/yarn.lock" "$VSCODE_OUT_PATH"
rsync "$VSCODE_SRC_PATH/out-vscode${MINIFY:+-min}/" "$VSCODE_OUT_PATH/out"
rsync "$VSCODE_SRC_PATH/.build/extensions/" "$VSCODE_OUT_PATH/extensions"
if [ "$KEEP_MODULES" = 0 ]; then
rm -Rf "$VSCODE_OUT_PATH/extensions/node_modules"
else
rsync "$VSCODE_SRC_PATH/node_modules/" "$VSCODE_OUT_PATH/node_modules"
fi
rsync "$VSCODE_SRC_PATH/extensions/package.json" "$VSCODE_OUT_PATH/extensions"
rsync "$VSCODE_SRC_PATH/extensions/yarn.lock" "$VSCODE_OUT_PATH/extensions"
rsync "$VSCODE_SRC_PATH/extensions/postinstall.js" "$VSCODE_OUT_PATH/extensions"
mkdir -p "$VSCODE_OUT_PATH/resources/"{linux,web}
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
jq --slurp '.[0] * .[1]' "$VSCODE_SRC_PATH/product.json" <(
cat << EOF
{
"commit": "$(git rev-parse HEAD)",
"date": $(jq -n 'now | todate')
}
EOF
) > "$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"
pushd "$VSCODE_OUT_PATH"
symlink_asar
popd
}
main "$@"

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
rsync "$RELEASE_PATH/" "$RELEASE_PATH-standalone"
RELEASE_PATH+=-standalone
# We cannot find the path to node from $PATH because yarn shims a script to ensure
# we use the same version it's using so we instead run a script with yarn that
# will print the path to node.
local node_path
node_path="$(yarn -s node <<< 'console.info(process.execPath)')"
mkdir -p "$RELEASE_PATH/bin"
rsync ./ci/build/code-server.sh "$RELEASE_PATH/bin/code-server"
rsync "$node_path" "$RELEASE_PATH/lib/node"
ln -s "./bin/code-server" "$RELEASE_PATH/code-server"
ln -s "./lib/node" "$RELEASE_PATH/node"
cd "$RELEASE_PATH"
yarn --production --frozen-lockfile
}
main "$@"

21
ci/build/build-vscode.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
# Builds vscode into lib/vscode/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
yarn gulp compile-extensions-build
yarn gulp optimize --gulpfile ./coder.js
if [[ $MINIFY ]]; then
yarn gulp minify --gulpfile ./coder.js
fi
}
main "$@"

15
ci/build/clean.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
git clean -Xffd
pushd lib/vscode
git clean -xffd
popd
}
main "$@"

3
ci/build/code-server-nfpm.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env sh
exec /usr/lib/code-server/bin/code-server "$@"

View File

@@ -0,0 +1,11 @@
[Unit]
Description=code-server
After=network.target
[Service]
Type=exec
ExecStart=/usr/bin/code-server
Restart=always
[Install]
WantedBy=default.target

36
ci/build/code-server.sh Executable file
View File

@@ -0,0 +1,36 @@
#!/bin/sh
set -eu
# This script is intended to be bundled into the standalone releases.
# Runs code-server with the bundled node binary.
_realpath() {
# See https://github.com/cdr/code-server/issues/1537 on why no realpath or readlink -f.
script="$1"
cd "$(dirname "$script")"
while [ -L "$(basename "$script")" ]; do
if [ -L "./node" ] && [ -L "./code-server" ] &&
[ -f "package.json" ] &&
cat package.json | grep -q '^ "name": "code-server",$'; then
echo "***** Please use the script in bin/code-server instead!" >&2
echo "***** This script will soon be removed!" >&2
echo "***** See the release notes at https://github.com/cdr/code-server/releases/tag/v3.4.0" >&2
fi
script="$(readlink "$(basename "$script")")"
cd "$(dirname "$script")"
done
echo "$PWD/$(basename "$script")"
}
root() {
script="$(_realpath "$0")"
bin_dir="$(dirname "$script")"
dirname "$bin_dir"
}
ROOT="$(root)"
exec "$ROOT/lib/node" "$ROOT" "$@"

View File

@@ -0,0 +1,12 @@
[Unit]
Description=code-server
After=network.target
[Service]
Type=exec
ExecStart=/usr/bin/code-server
Restart=always
User=%i
[Install]
WantedBy=default.target

19
ci/build/nfpm.yaml Normal file
View File

@@ -0,0 +1,19 @@
name: "code-server"
arch: "${ARCH}"
platform: "linux"
version: "v${VERSION}"
section: "devel"
priority: "optional"
maintainer: "Anmol Sethi <hi@nhooyr.io>"
description: |
Run VS Code in the browser.
vendor: "Coder"
homepage: "https://github.com/cdr/code-server"
license: "MIT"
files:
./ci/build/code-server-nfpm.sh: /usr/bin/code-server
./ci/build/code-server@.service: /usr/lib/systemd/system/code-server@.service
# Only included for backwards compat with previous releases that shipped
# the user service. See #1997
./ci/build/code-server-user.service: /usr/lib/systemd/user/code-server.service
./release-standalone/**/*: "/usr/lib/code-server/"

65
ci/build/npm-postinstall.sh Executable file
View File

@@ -0,0 +1,65 @@
#!/usr/bin/env sh
set -eu
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"
echo "We have detected that you are on node v$major_node_version"
echo "See https://github.com/cdr/code-server/issues/1633"
exit 1
fi
case "${npm_config_user_agent-}" in npm*)
# We are running under npm.
if [ "${npm_config_unsafe_perm-}" != "true" ]; then
echo "Please pass --unsafe-perm to npm to install code-server"
echo "Otherwise the postinstall script does not have permissions to run"
echo "See https://docs.npmjs.com/misc/config#unsafe-perm"
echo "See https://stackoverflow.com/questions/49084929/npm-sudo-global-installation-unsafe-perm"
exit 1
fi
;;
esac
OS="$(uname | tr '[:upper:]' '[:lower:]')"
if curl -fsSL "https://storage.googleapis.com/coder-cloud-releases/agent/latest/$OS/cloud-agent" -o ./lib/coder-cloud-agent; then
chmod +x ./lib/coder-cloud-agent
else
echo "Failed to download cloud agent; --link will not work"
fi
if ! vscode_yarn; then
echo "You may not have the required dependencies to build the native modules."
echo "Please see https://github.com/cdr/code-server/blob/master/docs/npm.md"
exit 1
fi
}
vscode_yarn() {
cd lib/vscode
yarn --production --frozen-lockfile
# This is a copy of symlink_asar in ../lib.sh. Look there for details.
if [ ! -e node_modules.asar ]; then
if [ "${WINDIR-}" ]; then
mklink /J node_modules.asar node_modules
else
ln -s node_modules node_modules.asar
fi
fi
cd extensions
yarn --production --frozen-lockfile
for ext in */; do
ext="${ext%/}"
echo "extensions/$ext: installing dependencies"
cd "$ext"
yarn --production --frozen-lockfile
cd "$OLDPWD"
done
}
main "$@"

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
# Downloads the release artifacts from CI for the current
# commit and then uploads them to the release with the version
# in package.json.
# You will need $GITHUB_TOKEN set.
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
download_artifact release-packages ./release-packages
local assets=(./release-packages/code-server*"$VERSION"*{.tar.gz,.deb,.rpm})
for i in "${!assets[@]}"; do
assets[$i]="--attach=${assets[$i]}"
done
EDITOR=true hub release edit --draft "${assets[@]}" "v$VERSION"
}
main "$@"

View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -euo pipefail
# Creates a draft release with the template for the version in package.json
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
hub release create \
--file - \
-t "$(git rev-parse HEAD)" \
--draft "v$VERSION" << EOF
v$VERSION
VS Code v$(vscode_version)
Upgrading is as easy as installing 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.
## New Features
- ⭐ Summarize new features here with references to issues
## Bug Fixes
- ⭐ Summarize bug fixes here with references to issues
## Documentation
- ⭐ Summarize doc changes here with references to issues
## Development
- ⭐ Summarize development/testing changes here with references to issues
Cheers! 🍻
EOF
}
main "$@"

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
# Makes sure the release works.
# This is to make sure we don't have Node version errors or any other
# compilation-related errors.
main() {
cd "$(dirname "${0}")/../.."
local EXTENSIONS_DIR
EXTENSIONS_DIR="$(mktemp -d)"
echo "Testing standalone release."
./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --install-extension ms-python.python
local installed_extensions
installed_extensions="$(./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)"
# We use grep as ms-python.python may have dependency extensions that change.
if ! echo "$installed_extensions" | grep -q "ms-python.python"; then
echo "Unexpected output from listing extensions:"
echo "$installed_extensions"
exit 1
fi
echo "Standalone release works correctly."
}
main "$@"

12
ci/dev/ci.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
yarn fmt
yarn lint
yarn test
}
main "$@"

43
ci/dev/fmt.sh Executable file
View File

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
shfmt -i 2 -w -sr $(git ls-files "*.sh" | grep -v "lib/vscode")
local prettierExts
prettierExts=(
"*.js"
"*.ts"
"*.tsx"
"*.html"
"*.json"
"*.css"
"*.md"
"*.toml"
"*.yaml"
"*.yml"
)
prettier --write --loglevel=warn $(
git ls-files "${prettierExts[@]}" | grep -v "lib/vscode" | 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 '# Contributor Covenant Code of Conduct' docs/CODE_OF_CONDUCT.md > /dev/null
doctoc --title '# iPad' docs/ipad.md > /dev/null
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'
echo "Please run the following locally:"
echo " yarn fmt"
exit 1
fi
}
main "$@"

44
ci/dev/gen_icons.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/bin/sh
set -eu
main() {
cd src/browser/media
# We need .ico for backwards compatibility.
# The other two are the only icon sizes required by Chrome and
# we use them for stuff like apple-touch-icon as well.
# https://web.dev/add-manifest/
#
# This should be enough and we can always add more if there are problems.
# -background defaults to white but we want it transparent.
# https://imagemagick.org/script/command-line-options.php#background
convert -quiet -background transparent -resize 256x256 favicon.svg favicon.ico
# We do not generate the pwa-icon from the favicon as they are slightly different
# designs and sizes.
# See favicon.afdesign and #2401 for details on the differences.
convert -quiet -background transparent -resize 192x192 pwa-icon.png pwa-icon-192.png
convert -quiet -background transparent -resize 512x512 pwa-icon.png pwa-icon-512.png
# We use -quiet above to avoid https://github.com/ImageMagick/ImageMagick/issues/884
# The following adds dark mode support for the favicon as favicon-dark-support.svg
# There is no similar capability for pwas or .ico so we can only add support to the svg.
favicon_dark_style="<style>
@media (prefers-color-scheme: dark) {
* {
fill: white;
}
}
</style>"
# See https://stackoverflow.com/a/22901380/4283659
# 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
s%<rect id="favicon"%$favicon_dark_style<rect id="favicon"%
EOF
)" favicon.svg > favicon-dark-support.svg
}
main "$@"

31
ci/dev/image/run.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../../.."
source ./ci/lib.sh
mkdir -p .home
docker run \
-it \
--rm \
-v "$PWD:/src" \
-e HOME="/src/.home" \
-e USER="coder" \
-e GITHUB_TOKEN \
-e KEEP_MODULES \
-e MINIFY \
-w /src \
-p 127.0.0.1:8080:8080 \
-u "$(id -u):$(id -g)" \
-e CI \
"$(docker_build ./ci/images/"${IMAGE-debian10}")" \
"$@"
}
docker_build() {
docker build "$@" >&2
docker build -q "$@"
}
main "$@"

21
ci/dev/lint.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
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")
tsc --noEmit
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
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"
}
main "$@"

19
ci/dev/postinstall.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
# This installs the dependencies needed for testing
cd test
yarn
cd ..
cd lib/vscode
yarn ${CI+--frozen-lockfile}
symlink_asar
}
main "$@"

12
ci/dev/reset-vscode.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
cd ./lib/vscode
git add -A
git reset --hard
}
main "$@"

15
ci/dev/test.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
cd test/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
# include our source files.
cd "$OLDPWD"
CS_DISABLE_PLUGINS=true ./test/node_modules/.bin/jest "$@"
}
main "$@"

194
ci/dev/watch.ts Normal file
View File

@@ -0,0 +1,194 @@
import * as cp from "child_process"
import Bundler from "parcel-bundler"
import * as path from "path"
async function main(): Promise<void> {
try {
const watcher = new Watcher()
await watcher.watch()
} catch (error) {
console.error(error.message)
process.exit(1)
}
}
class Watcher {
private readonly rootPath = path.resolve(__dirname, "../..")
private readonly vscodeSourcePath = path.join(this.rootPath, "lib/vscode")
private static log(message: string, skipNewline = false): void {
process.stdout.write(message)
if (!skipNewline) {
process.stdout.write("\n")
}
}
public async watch(): Promise<void> {
let server: cp.ChildProcess | undefined
const restartServer = (): void => {
if (server) {
server.kill()
}
const s = cp.fork(path.join(this.rootPath, "out/node/entry.js"), process.argv.slice(2))
console.log(`[server] spawned process ${s.pid}`)
s.on("exit", () => console.log(`[server] process ${s.pid} exited`))
server = s
}
const vscode = cp.spawn("yarn", ["watch"], { cwd: this.vscodeSourcePath })
const tsc = cp.spawn("tsc", ["--watch", "--pretty", "--preserveWatchOutput"], { cwd: this.rootPath })
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")
vscode.removeAllListeners()
vscode.kill()
Watcher.log("killing tsc")
tsc.removeAllListeners()
tsc.kill()
if (plugin) {
Watcher.log("killing plugin")
plugin.removeAllListeners()
plugin.kill()
}
if (server) {
Watcher.log("killing server")
server.removeAllListeners()
server.kill()
}
Watcher.log("killing bundler")
process.exit(code || 0)
}
process.on("SIGINT", () => cleanup())
process.on("SIGTERM", () => cleanup())
vscode.on("exit", (code) => {
Watcher.log("vs code watcher terminated unexpectedly")
cleanup(code)
})
tsc.on("exit", (code) => {
Watcher.log("tsc terminated unexpectedly")
cleanup(code)
})
if (plugin) {
plugin.on("exit", (code) => {
Watcher.log("plugin terminated unexpectedly")
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))
if (plugin) {
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]
})
}
let startingVscode = false
let startedVscode = false
onLine(vscode, (line, original) => {
console.log("[vscode]", original)
// Wait for watch-client since "Finished compilation" will appear multiple
// times before the client starts building.
if (!startingVscode && line.includes("Starting watch-client")) {
startingVscode = true
} else if (startingVscode && line.includes("Finished compilation")) {
if (startedVscode) {
bundle.then(restartServer)
}
startedVscode = true
}
})
onLine(tsc, (line, original) => {
// tsc outputs blank lines; skip them.
if (line !== "") {
console.log("[tsc]", original)
}
if (line.includes("Watching for file changes")) {
bundle.then(restartServer)
}
})
if (plugin) {
onLine(plugin, (line, original) => {
// tsc outputs blank lines; skip them.
if (line !== "") {
console.log("[plugin]", original)
}
if (line.includes("Watching for file changes")) {
bundle.then(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: ".",
},
)
}
}
main()

23
ci/helm-chart/.helmignore Normal file
View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

23
ci/helm-chart/Chart.yaml Normal file
View File

@@ -0,0 +1,23 @@
apiVersion: v2
name: code-server
description: A Helm chart for cdr/code-server
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
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.9.0

117
ci/helm-chart/README.md Normal file
View File

@@ -0,0 +1,117 @@
# 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.9.0](https://img.shields.io/badge/AppVersion-3.9.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)
## 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 | `""` | |
| extraSecretMounts | list | `[]` | |
| extraVars | list | `[]` | |
| extraVolumeMounts | list | `[]` | |
| fullnameOverride | string | `""` | |
| hostnameOverride | string | `""` | |
| image.pullPolicy | string | `"Always"` | |
| image.repository | string | `"codercom/code-server"` | |
| image.tag | string | `"3.9.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)

View File

@@ -0,0 +1,25 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "code-server.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "code-server.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "code-server.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "code-server.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:80
{{- end }}
Administrator credentials:
Password: echo $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "code-server.fullname" . }} -o jsonpath="{.data.password}" | base64 --decode)

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "code-server.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "code-server.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "code-server.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "code-server.labels" -}}
helm.sh/chart: {{ include "code-server.chart" . }}
{{ include "code-server.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "code-server.selectorLabels" -}}
app.kubernetes.io/name: {{ include "code-server.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "code-server.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "code-server.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,152 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "code-server.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
helm.sh/chart: {{ include "code-server.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
{{- if .Values.hostnameOverride }}
hostname: {{ .Values.hostnameOverride }}
{{- end }}
{{- if .Values.securityContext.enabled }}
securityContext:
fsGroup: {{ .Values.securityContext.fsGroup }}
{{- end }}
{{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
initContainers:
- name: init-chmod-data
image: busybox:latest
imagePullPolicy: IfNotPresent
command:
- sh
- -c
- |
chown -R {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} /home/coder
securityContext:
runAsUser: {{ .Values.volumePermissions.securityContext.runAsUser }}
volumeMounts:
- name: data
mountPath: /home/coder
{{- end }}
containers:
{{- if .Values.extraContainers }}
{{ toYaml .Values.extraContainers | indent 8}}
{{- end }}
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.securityContext.enabled }}
securityContext:
runAsUser: {{ .Values.securityContext.runAsUser }}
{{- end }}
env:
{{- if .Values.extraVars }}
{{ toYaml .Values.extraVars | indent 10 }}
{{- end }}
- name: PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.existingSecret }}
name: {{ .Values.existingSecret }}
{{- else }}
name: {{ template "code-server.fullname" . }}
{{- end }}
key: password
{{- if .Values.extraArgs }}
args:
{{ toYaml .Values.extraArgs | indent 10 }}
{{- end }}
volumeMounts:
- name: data
mountPath: /home/coder
{{- range .Values.extraConfigmapMounts }}
- name: {{ .name }}
mountPath: {{ .mountPath }}
subPath: {{ .subPath | default "" }}
readOnly: {{ .readOnly }}
{{- end }}
{{- range .Values.extraSecretMounts }}
- name: {{ .name }}
mountPath: {{ .mountPath }}
readOnly: {{ .readOnly }}
{{- end }}
{{- range .Values.extraVolumeMounts }}
- name: {{ .name }}
mountPath: {{ .mountPath }}
subPath: {{ .subPath | default "" }}
readOnly: {{ .readOnly }}
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "code-server.serviceAccountName" . }}
volumes:
- name: data
{{- if .Values.persistence.enabled }}
{{- if not .Values.persistence.hostPath }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.existingClaim | default (include "code-server.fullname" .) }}
{{- else }}
hostPath:
path: {{ .Values.persistence.hostPath }}
type: Directory
{{- end -}}
{{- else }}
emptyDir: {}
{{- end -}}
{{- range .Values.extraSecretMounts }}
- name: {{ .name }}
secret:
secretName: {{ .secretName }}
defaultMode: {{ .defaultMode }}
{{- end }}
{{- range .Values.extraVolumeMounts }}
- name: {{ .name }}
{{- if .existingClaim }}
persistentVolumeClaim:
claimName: {{ .existingClaim }}
{{- else }}
hostPath:
path: {{ .hostPath }}
type: Directory
{{- end }}
{{- end }}

View File

@@ -0,0 +1,41 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "code-server.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "code-server.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,29 @@
{{- if and (and .Values.persistence.enabled (not .Values.persistence.existingClaim)) (not .Values.persistence.hostPath) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ include "code-server.fullname" . }}
namespace: {{ .Release.Namespace }}
{{- with .Values.persistence.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
helm.sh/chart: {{ include "code-server.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,18 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "code-server.fullname" . }}
annotations:
"helm.sh/hook": "pre-install"
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
helm.sh/chart: {{ include "code-server.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
type: Opaque
data:
{{ if .Values.password }}
password: "{{ .Values.password | b64enc }}"
{{ else }}
password: "{{ randAlphaNum 24 | b64enc }}"
{{ end }}

View File

@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "code-server.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
helm.sh/chart: {{ include "code-server.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ include "code-server.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -0,0 +1,11 @@
{{- if or .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
helm.sh/chart: {{ include "code-server.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
name: {{ template "code-server.serviceAccountName" . }}
{{- end -}}

View File

@@ -0,0 +1,18 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "code-server.fullname" . }}-test-connection"
labels:
app.kubernetes.io/name: {{ include "code-server.name" . }}
helm.sh/chart: {{ include "code-server.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "code-server.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

163
ci/helm-chart/values.yaml Normal file
View File

@@ -0,0 +1,163 @@
# Default values for code-server.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: codercom/code-server
tag: '3.9.0'
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
hostnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 8080
ingress:
enabled: false
#annotations:
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
#hosts:
# - host: code-server.example.loc
# paths:
# - /
#tls:
# - secretName: code-server
# hosts:
# - code-server.example.loc
# Optional additional arguments
extraArgs: []
# - --allow-http
# - --no-auth
# Optional additional environment variables
extraVars: []
# - name: DISABLE_TELEMETRY
# value: true
##
## Init containers parameters:
## volumePermissions: Change the owner of the persist volume mountpoint to RunAsUser:fsGroup
##
volumePermissions:
enabled: true
securityContext:
runAsUser: 0
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext:
enabled: true
fsGroup: 1000
runAsUser: 1000
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 1000Mi
nodeSelector: {}
tolerations: []
affinity: {}
## Persist data to a persistent volume
persistence:
enabled: true
## code-server data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
accessMode: ReadWriteOnce
size: 10Gi
annotations: {}
# existingClaim: ""
# hostPath: /data
serviceAccount:
create: true
name:
## Enable an Specify container in extraContainers.
## This is meant to allow adding code-server dependencies, like docker-dind.
extraContainers: |
#- name: docker-dind
# image: docker:19.03-dind
# imagePullPolicy: IfNotPresent
# resources:
# requests:
# cpu: 250m
# memory: 256M
# securityContext:
# privileged: true
# procMount: Default
# env:
# - name: DOCKER_TLS_CERTDIR
# value: ""
# - name: DOCKER_DRIVER
# value: "overlay2"
## Additional code-server secret mounts
extraSecretMounts: []
# - name: secret-files
# mountPath: /etc/secrets
# secretName: code-server-secret-files
# readOnly: true
## Additional code-server volume mounts
extraVolumeMounts: []
# - name: extra-volume
# mountPath: /mnt/volume
# readOnly: true
# existingClaim: volume-claim
# hostPath: ""
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /etc/code-server/ssl/
# subPath: certificates.crt # (optional)
# configMap: certs-configmap
# readOnly: true

View File

@@ -0,0 +1,32 @@
FROM centos:7
ARG NODE_VERSION=v12.18.4
RUN ARCH="$(uname -m | sed 's/86_64/64/; s/aarch64/arm64/')" && \
curl -fsSL "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-linux-$ARCH.tar.xz" | tar -C /usr/local -xJ && \
mv "/usr/local/node-$NODE_VERSION-linux-$ARCH" "/usr/local/node-$NODE_VERSION"
ENV PATH=/usr/local/node-$NODE_VERSION/bin:$PATH
RUN npm install -g yarn
RUN yum groupinstall -y 'Development Tools'
RUN yum install -y python2 libsecret-devel libX11-devel libxkbfile-devel
RUN npm config set python python2
RUN yum install -y epel-release && yum install -y jq
RUN yum install -y rsync
# Copied from ../debian10/Dockerfile
# Install Go.
RUN ARCH="$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')" && \
curl -fsSL "https://dl.google.com/go/go1.14.3.linux-$ARCH.tar.gz" | tar -C /usr/local -xz
ENV GOPATH=/gopath
# Ensures running this image as another user works.
RUN mkdir -p $GOPATH && chmod -R 777 $GOPATH
ENV PATH=/usr/local/go/bin:$GOPATH/bin:$PATH
# Install Go dependencies
ENV GO111MODULE=on
RUN go get mvdan.cc/sh/v3/cmd/shfmt
RUN go get github.com/goreleaser/nfpm/cmd/nfpm@v1.9.0
RUN curl -fsSL https://get.docker.com | sh

View File

@@ -0,0 +1,54 @@
FROM debian:10
RUN apt-get update
# Needed for debian repositories added below.
RUN apt-get install -y curl gnupg
# Installs node.
RUN curl -fsSL https://deb.nodesource.com/setup_12.x | bash - && \
apt-get install -y nodejs
# Installs yarn.
RUN curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && apt-get install -y yarn
# Installs VS Code build deps.
RUN apt-get install -y build-essential \
libsecret-1-dev \
libx11-dev \
libxkbfile-dev
# Installs envsubst.
RUN apt-get install -y gettext-base
# Misc build dependencies.
RUN apt-get install -y git rsync unzip jq
# Installs shellcheck.
RUN curl -fsSL https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.$(uname -m).tar.xz | \
tar -xJ && \
mv shellcheck*/shellcheck /usr/local/bin && \
rm -R shellcheck*
# Install Go.
RUN ARCH="$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')" && \
curl -fsSL "https://dl.google.com/go/go1.14.3.linux-$ARCH.tar.gz" | tar -C /usr/local -xz
ENV GOPATH=/gopath
# Ensures running this image as another user works.
RUN mkdir -p $GOPATH && chmod -R 777 $GOPATH
ENV PATH=/usr/local/go/bin:$GOPATH/bin:$PATH
# Install Go dependencies
ENV GO111MODULE=on
RUN go get mvdan.cc/sh/v3/cmd/shfmt
RUN go get github.com/goreleaser/nfpm/cmd/nfpm@v1.9.0
RUN VERSION="$(curl -fsSL https://storage.googleapis.com/kubernetes-release/release/stable.txt)" && \
curl -fsSL "https://storage.googleapis.com/kubernetes-release/release/$VERSION/bin/linux/amd64/kubectl" > /usr/local/bin/kubectl \
&& chmod +x /usr/local/bin/kubectl
RUN curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
RUN helm plugin install https://github.com/instrumenta/helm-kubeval
RUN curl -fsSL https://get.docker.com | sh

115
ci/lib.sh Executable file
View File

@@ -0,0 +1,115 @@
#!/usr/bin/env bash
set -euo pipefail
pushd() {
builtin pushd "$@" > /dev/null
}
popd() {
builtin popd > /dev/null
}
pkg_json_version() {
jq -r .version package.json
}
vscode_version() {
jq -r .version lib/vscode/package.json
}
os() {
local os
os=$(uname | tr '[:upper:]' '[:lower:]')
if [[ $os == "linux" ]]; then
# Alpine's ldd doesn't have a version flag but if you use an invalid flag
# (like --version) it outputs the version to stderr and exits with 1.
local ldd_output
ldd_output=$(ldd --version 2>&1 || true)
if echo "$ldd_output" | grep -iq musl; then
os="alpine"
fi
elif [[ $os == "darwin" ]]; then
os="macos"
fi
echo "$os"
}
arch() {
case "$(uname -m)" in
aarch64)
echo arm64
;;
x86_64 | amd64)
echo amd64
;;
*)
echo "unknown architecture $(uname -a)"
exit 1
;;
esac
}
curl() {
command curl -H "Authorization: token $GITHUB_TOKEN" "$@"
}
# Grabs the most recent ci.yaml github workflow run that was successful and triggered from the same commit being pushd.
# This will contain the artifacts we want.
# https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs
get_artifacts_url() {
curl -fsSL 'https://api.github.com/repos/cdr/code-server/actions/workflows/ci.yaml/runs?status=success&event=push' | jq -r ".workflow_runs[] | select(.head_sha == \"$(git rev-parse HEAD)\") | .artifacts_url" | head -n 1
}
# Grabs the artifact's download url.
# https://developer.github.com/v3/actions/artifacts/#list-workflow-run-artifacts
get_artifact_url() {
local artifact_name="$1"
curl -fsSL "$(get_artifacts_url)" | jq -r ".artifacts[] | select(.name == \"$artifact_name\") | .archive_download_url" | head -n 1
}
# Uses the above two functions to download a artifact into a directory.
download_artifact() {
local artifact_name="$1"
local dst="$2"
local tmp_file
tmp_file="$(mktemp)"
curl -fsSL "$(get_artifact_url "$artifact_name")" > "$tmp_file"
unzip -q -o "$tmp_file" -d "$dst"
rm "$tmp_file"
}
rsync() {
command rsync -a --del "$@"
}
VERSION="$(pkg_json_version)"
export VERSION
ARCH="$(arch)"
export ARCH
OS=$(os)
export OS
# RELEASE_PATH is the destination directory for the release from the root.
# Defaults to release
RELEASE_PATH="${RELEASE_PATH-release}"
# VS Code bundles some modules into an asar which is an archive format that
# works like tar. It then seems to get unpacked into node_modules.asar.
#
# I don't know why they do this but all the dependencies they bundle already
# exist in node_modules so just symlink it. We have to do this since not only VS
# Code itself but also extensions will look specifically in this directory for
# files (like the ripgrep binary or the oniguruma wasm).
symlink_asar() {
if [ ! -L node_modules.asar ]; then
if [ "${WINDIR-}" ]; then
# mklink takes the link name first.
mklink /J node_modules.asar node_modules
else
# ln takes the link name second.
ln -s node_modules node_modules.asar
fi
fi
}

View File

@@ -0,0 +1,45 @@
FROM debian:10
RUN apt-get update \
&& apt-get install -y \
curl \
dumb-init \
htop \
locales \
man \
nano \
git \
procps \
openssh-client \
sudo \
vim.tiny \
lsb-release \
&& rm -rf /var/lib/apt/lists/*
# https://wiki.debian.org/Locale#Manually
RUN sed -i "s/# en_US.UTF-8/en_US.UTF-8/" /etc/locale.gen \
&& locale-gen
ENV LANG=en_US.UTF-8
RUN adduser --gecos '' --disabled-password coder && \
echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/nopasswd
RUN ARCH="$(dpkg --print-architecture)" && \
curl -fsSL "https://github.com/boxboat/fixuid/releases/download/v0.4.1/fixuid-0.4.1-linux-$ARCH.tar.gz" | tar -C /usr/local/bin -xzf - && \
chown root:root /usr/local/bin/fixuid && \
chmod 4755 /usr/local/bin/fixuid && \
mkdir -p /etc/fixuid && \
printf "user: coder\ngroup: coder\n" > /etc/fixuid/config.yml
COPY release-packages/code-server*.deb /tmp/
COPY ci/release-image/entrypoint.sh /usr/bin/entrypoint.sh
RUN dpkg -i /tmp/code-server*$(dpkg --print-architecture).deb && rm /tmp/code-server*.deb
EXPOSE 8080
# This way, if someone sets $DOCKER_USER, docker-exec will still work as
# the uid will remain the same. note: only relevant if -u isn't passed to
# docker-run.
USER 1000
ENV USER=coder
WORKDIR /home/coder
ENTRYPOINT ["/usr/bin/entrypoint.sh", "--bind-addr", "0.0.0.0:8080", "."]

11
ci/release-image/build.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/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 "$@"

20
ci/release-image/entrypoint.sh Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/sh
set -eu
# We do this first to ensure sudo works below when renaming the user.
# Otherwise the current container UID may not exist in the passwd database.
eval "$(fixuid -q)"
if [ "${DOCKER_USER-}" ] && [ "$DOCKER_USER" != "$USER" ]; then
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
sudo groupmod -n "$DOCKER_USER" coder
USER="$DOCKER_USER"
sudo sed -i "/coder/d" /etc/sudoers.d/nopasswd
fi
dumb-init /usr/bin/code-server "$@"

14
ci/steps/build-docker-image.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/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 "$@"

12
ci/steps/fmt.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
yarn --frozen-lockfile
yarn fmt
}
main "$@"

12
ci/steps/lint.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
yarn --frozen-lockfile
yarn lint
}
main "$@"

18
ci/steps/publish-npm.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
if [[ ${CI-} ]]; then
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
yarn publish --non-interactive release
}
main "$@"

View File

@@ -0,0 +1,37 @@
#!/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 "$@"

26
ci/steps/release-packages.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
NODE_VERSION=v12.18.4
NODE_OS="$(uname | tr '[:upper:]' '[:lower:]')"
NODE_ARCH="$(uname -m | sed 's/86_64/64/; s/aarch64/arm64/')"
if [ "$NODE_OS" = "freebsd" ]; then
mkdir -p "$PWD/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH/bin"
cp "$(which node)" "$PWD/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH/bin"
else
curl -L "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH.tar.gz" | tar -xz
fi
PATH="$PWD/node-$NODE_VERSION-$NODE_OS-$NODE_ARCH/bin:$PATH"
# https://github.com/actions/upload-artifact/issues/38
tar -xzf release-npm-package/package.tar.gz
yarn release:standalone
yarn test:standalone-release
yarn package
}
main "$@"

17
ci/steps/release.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
yarn --frozen-lockfile
yarn build
yarn build:vscode
yarn release
# https://github.com/actions/upload-artifact/issues/38
mkdir -p release-npm-package
tar -czf release-npm-package/package.tar.gz release
}
main "$@"

12
ci/steps/test.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
yarn --frozen-lockfile
yarn test
}
main "$@"

View File

@@ -1,57 +0,0 @@
# Deploy on AWS
This tutorial shows you how to deploy `code-server` on an EC2 AWS instance.
If you're just starting out, we recommend [installing code-server locally](../../self-hosted/index.md). It takes only a few minutes and lets you try out all of the features. You can also try out the IDE on a container hosted [by Coder](http://coder.com/signup)
---
## Deploy to EC2
### Use the AWS wizard
- Click **Launch Instance** from your [EC2 dashboard](https://console.aws.amazon.com/ec2/v2/home).
- Select the Ubuntu Server 16.04 LTS (HVM), SSD Volume Type (`ami-0f9cf087c1f27d9b1)` at this time of writing)
- Select an appropriate instance size (we recommend t2.medium/large, depending on team size and number of repositories/languages enabled), then **Next: Configure Instance Details**
- Select **Next: ...** until you get to the **Configure Security Group** page, then add the default **HTTP** rule (port range "80", source "0.0.0.0/0, ::/0")
> Rules with source of 0.0.0.0/0 allow all IP addresses to access your instance. We recommend setting [security group rules](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html?icmpid=docs_ec2_console) to allow access from known IP addresses only.
- Click **Launch**
- You will be prompted to create a key pair
> A key pair consists of a public key that AWS stores, and a private key file that you store. Together, they allow you to connect to your instance securely. For Windows AMIs, the private key file is required to obtain the password used to log into your instance. For Linux AMIs, the private key file allows you to securely SSH into your instance.
- From the dropdown choose "create a new pair", give the key pair a name
- Click **Download Key Pair**
> This is necessary before you proceed. A `.pem` file will be downloaded. make sure you store is in a safe location because it can't be retrieved once we move on.
- Finally, click **Launch Instances**
---
### SSH Into EC2 Instance
- First head to your [EC2 dashboard](https://console.aws.amazon.com/ec2/v2/home) and choose instances from the left panel
- In the description of your EC2 instance copy the public DNS (iPv4) address using the copy to clipboard button
- Open a terminal on your computer and use the following command to SSH into your EC2 instance
```
ssh i "path/to/your/keypair.pem" ubuntu@(paste the public DNS here)
```
>example: `ssh -i "/Users/John/Downloads/TestInstance.pem" ubuntu@ec2-3-45-678-910.compute-1.amazonaws.co`
- You should see a prompt for your EC2 instance like so<img src="../../assets/aws_ubuntu.png">
- At this point it is time to download the `code-server` binary. We will of course want the linux version. Make sure you copy the link for the latest linux version on our [releases page](https://github.com/codercom/code-server/releases)
- With the URL in the clipboard, run:
```
wget https://github.com/codercom/code-server/releases/download/0.1.4/code-server-linux
```
- If you run into any permission errors, make the binary executable by running:
```
chmod +x code-server-linux
```
> To ensure the connection between you and your server is encrypted view our guide on [securing your setup](../security/ssl.md)
- Finally, run
```
sudo ./code-server-linux -p 80
```
- When you visit the public IP for your AWS instance, you will be greeted with this page. Code-server is using a self-signed SSL certificate for easy setup. To proceed to the IDE, click **"Advanced"**<img src ="../../assets/chrome_warning.png">
- Then click **"proceed anyway"**<img src="../../assets/chrome_confirm.png">
> For instructions on how to keep the server running after you end your SSH session please checkout [how to use systemd](https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/) to start linux based services if they are killed
> The `-p 80` flag is necessary in order to make the IDE accessible from the public IP of your instance (also available from the description in the instances page.
---
> NOTE: If you get stuck or need help, [file an issue](https://github.com/codercom/code-server/issues/new?&title=Improve+self-hosted+quickstart+guide), [tweet (@coderhq)](https://twitter.com/coderhq) or [email](mailto:support@coder.com?subject=Self-hosted%20quickstart%20guide).

View File

@@ -1,37 +0,0 @@
# Deploy on DigitalOcean
This tutorial shows you how to deploy `code-server` to a single node running on DigitalOcean.
If you're just starting out, we recommend [installing code-server locally](../../self-hosted/index.md). It takes only a few minutes and lets you try out all of the features. You can also try out the IDE on a container hosted [by Coder](http://coder.com/signup)
---
## Use the "Create Droplets" wizard
[Open your DigitalOcean dashboard](https://cloud.digitalocean.com/droplets/new) to create a new droplet
- **Choose an image -** Select the **Distributions** tab and then choose Ubuntu
- **Choose a size -** We recommend at least 4GB RAM and 2 CPU, more depending on team size and number of repositories/languages enabled.
- Launch your instance
- Open a terminal on your computer and SSH into your instance
> example: ssh root@203.0.113.0
- Once in the SSH session, visit code-server [releases page](https://github.com/codercom/code-server/releases/) and copy the link to the download for the latest linux release
- In the shell run the below command with the URL from your clipboard
```
wget https://github.com/codercom/code-server/releases/download/0.1.4/code-server-linux
```
- If you run into any permission errors when attempting to run the binary:
```
chmod +x code-server-linux
```
> To ensure the connection between you and your server is encrypted view our guide on [securing your setup](../security/ssl.md)
- Finally start the code-server
```
sudo ./code-server-linux -p80
```
> For instructions on how to keep the server running after you end your SSH session please checkout [how to use systemd](https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/) to start linux based services if they are killed
- When you visit the public IP for your Digital Ocean instance, you will be greeted with this page. Code-server is using a self-signed SSL certificate for easy setup. To proceed to the IDE, click **"Advanced"**<img src ="../../assets/chrome_warning.png">
- Then click **"proceed anyway"**<img src="../../assets/chrome_confirm.png">
---
> NOTE: If you get stuck or need help, [file an issue](https://github.com/codercom/code-server/issues/new?&title=Improve+self-hosted+quickstart+guide), [tweet (@coderhq)](https://twitter.com/coderhq) or [email](mailto:support@coder.com?subject=Self-hosted%20quickstart%20guide).

View File

@@ -1,46 +0,0 @@
# Deploy on Google Cloud
This tutorial shows you how to deploy `code-server` to a single node running on Google Cloud.
If you're just starting out, we recommend [installing code-server locally](../../self-hosted/index.md). It takes only a few minutes and lets you try out all of the features. You can also try out the IDE on a container hosted [by Coder](http://coder.com/signup)
---
## Deploy to Google Cloud VM
> Pre-requisite: Please [set up Google Cloud SDK](https://cloud.google.com/sdk/docs/) on your local machine
- [Open your Google Cloud console](https://console.cloud.google.com/compute/instances) to create a new VM instance and click **Create Instance**
- Choose an appropriate machine type (we recommend 2 vCPU and 7.5 GB RAM, more depending on team size and number of repositories/languages enabled)
- Choose Ubuntu 16.04 LTS as your boot disk
- Check the boxes for **Allow HTTP traffic** and **Allow HTTPS traffic** in the **Firewall** section
- Create your VM, and **take note** of it's public IP address.
- Copy the link to download the latest Linux binary from our [releases page](https://github.com/codercom/code-server/releases)
---
## Final Steps
1. SSH into your Google Cloud VM
```
gcloud compute ssh --zone [region] [instance name]
```
2. Download the binary using the link we copied to clipboard
```
wget https://github.com/codercom/code-server/releases/download/0.1.4/code-server-linux
```
3. Make the binary executable if you run into any errors regarding permission:
```
chmod +x code-server-linux
```
> To ensure the connection between you and your server is encrypted view our guide on [securing your setup](../security/ssl.md)
4. Start the code-server
```
sudo ./code-server-linux -p 80
```
> For instructions on how to keep the server running after you end your SSH session please checkout [how to use systemd](https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/) to start linux based services if they are killed
5. Access code-server from the public IP of your Google Cloud instance we noted earlier in your browser.
> example: 32.32.32.234
6. You will be greeted with this page. Code-server is using a self-signed SSL certificate for easy setup. To proceed to the IDE, click **"Advanced"**<img src ="../../assets/chrome_warning.png">
7. Then click **"proceed anyway"**<img src="../../assets/chrome_confirm.png">
---
> NOTE: If you get stuck or need help, [file an issue](https://github.com/codercom/code-server/issues/new?&title=Improve+self-hosted+quickstart+guide), [tweet (@coderhq)](https://twitter.com/coderhq) or [email](mailto:support@coder.com?subject=Self-hosted%20quickstart%20guide).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

View File

@@ -1,53 +0,0 @@
# Generate a self-signed certificate 🔒
code-server has the ability to secure your connection between client and server using SSL/TSL certificates. By default, the server will start with an unencrypted connection. We recommend Self-signed TLS/SSL certificates for personal of code-server or within an organization.
This guide will show you how to create a self-signed certificate and start code-server using your certificate/key.
## TLS / HTTPS
You can specify any location that you want to save the certificate and key. In this example, we will navigate to the root directory, create a folder called `certs` and cd into it.
```shell
mkdir ~/certs && cd ~/certs
```
If you don't already have a TLS certificate and key, you can generate them with the command below. They will be placed in `~/certs`
```shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/certs/MyKey.key -out ~/certs/MyCertificate.crt
```
You will be prompted to add some identifying information about your organization
```shell
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:TX
Locality Name (eg, city) []:Austin
Organization Name (eg, company) [Coder Technologies]:Coder
Organizational Unit Name (eg, section) []:Docs
Common Name (e.g. server FQDN or YOUR name) []:hostname.example.com
Email Address []:admin@example.com
```
>If you already have a TLS certificate and key, you can simply reference them in the `--cert` and `--cert-key` flags when launching code-server
## Starting code-server with certificate and key
1. At the end of the path to your binary, add the following flags followed by the path to your certificate and key like so. Then press enter to run code-server.
```shell
./code-server --cert=~/certs/MyCertificate.crt --cert-key=~/certs/MyKey.key
```
2. After that you will be running a secure code-server.
> You will know your connection is secure if the lines `WARN No certificate specified. This could be insecure. WARN Documentation on securing your setup: https://coder.com/docs` no longer appear.
## Other options
For larger organizations you may wish to rely on a Certificate Authority as opposed to a self-signed certificate. For more information on generating free and open certificates for your site, please check out EFF's [certbot](https://certbot.eff.org/). Certbot is a cli to generate certificates using [LetsEncrypt](https://letsencrypt.org/).

View File

@@ -1,75 +0,0 @@
# Getting Started
[code-server](https://coder.com) is used by developers at Azure, Google, Reddit, and more to give them access to VS Code in the browser.
## Quickstart guide
> NOTE: If you get stuck or need help, [file an issue](https://github.com/codercom/code-server/issues/new?&title=Improve+self-hosted+quickstart+guide), [tweet (@coderhq)](https://twitter.com/coderhq) or [email](mailto:support@coder.com?subject=Self-hosted%20quickstart%20guide).
This document pertains to Coder specific implementations of VS Code. For documentation on how to use VS Code itself, please refer to the official [documentation for VS Code](https://code.visualstudio.com/docs)
It takes just a few minutes to get your own self-hosted server running. If you've got a machine running macOS, Windows, or Linux, you're ready to start the binary which listens on port `8080` by default.
<!--
DO NOT CHANGE THIS TO A CODEBLOCK.
We want line breaks for readability, but backslashes to escape them do not work cross-platform.
This uses line breaks that are rendered but not copy-pasted to the clipboard.
-->
1. Visit [the releases](https://github.com/codercom/code-server/releases) page and download the latest cli for your operating system
2. Double click the executable to run in the current directory
3. Copy the password that appears in the cli<img src="../assets/cli.png">
4. In your browser navigate to `localhost:8080`
5. Paste the password from the cli into the login window<img src="../assets/server-password-modal.png">
> NOTE: Be careful with your password as sharing it will grant those users access to your server's file system
### Things to know
- When you visit the IP for your code-server, you will be greeted with this page. Code-server is using a self-signed SSL certificate for easy setup. To proceed to the IDE, click **"Advanced"**<img src ="../assets/chrome_warning.png">
- Then click **"proceed anyway"**<img src="../assets/chrome_confirm.png">
## Usage
<pre class="pre-wrap"><code>code-server<span class="virtual-br"></span> --help</code></pre>
code-server can be ran with a number of arguments to customize your working directory, host, port, and SSL certificate.
```
USAGE
$ code-server [WORKDIR]
ARGUMENTS
WORKDIR [default: (directory to binary)] Specify working dir
OPTIONS
-d, --data-dir=data-dir
-h, --host=host [default: 0.0.0.0]
-o, --open Open in browser on startup
-p, --port=port [default: 8080] Port to bind on
-v, --version show CLI version
--cert=cert
--cert-key=cert-key
--help show CLI help
```
### Data directory
Use `code-server -d (path/to/directory)` or `code-server --data-dir=(path/to/directory)`, excluding the parentheses to specify the root folder that VS Code will start in
### Host
By default, code-server will use `0.0.0.0` as it's address. This can be changed by using `code-server -h` or `code-server --host=` followed by the address you want to use.
> Example: `code-server -h 127.0.0.1`
### Open
You can have the server automatically open the VS Code in your browser on startup by using the `code server -o` or `code-server --open` flags
### Port
By default, code-server will use `8080` as it's port. This can be changed by using `code-server -p` or `code-server --port=` followed by the port you want to use.
> Example: `code-server -p 9000`
### Cert and Cert Key
To encrypt the traffic between the browser and server use `code-server --cert=` followed by the path to your `.cer` file. Additionally, you can use certificate keys with `code-server --cert-key` followed by the path to your `.key` file.
> Example (certificate and key): `code-server --cert /etc/letsencrypt/live/example.com/fullchain.cer --cert-key /etc/letsencrypt/live/example.com/fullchain.key`
> To ensure the connection between you and your server is encrypted view our guide on [securing your setup](../security/ssl.md)
### Help
Use `code-server -h` or `code-server --help` to view the usage for the cli. This is also shown at the beginning of this section.

79
docs/CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,79 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at opensource@coder.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

165
docs/CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,165 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Contributing
- [Pull Requests](#pull-requests)
- [Requirements](#requirements)
- [Development Workflow](#development-workflow)
- [Updating VS Code](#updating-vs-code)
- [Build](#build)
- [Structure](#structure)
- [Modifications to VS Code](#modifications-to-vs-code)
- [Currently Known Issues](#currently-known-issues)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
- [Detailed CI and build process docs](../ci)
## Pull Requests
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.
In your Pull Requests (PR), link to the issue that the PR solves.
Please ensure that the base of your PR is the **master** branch. (Note: The default
GitHub branch is the latest release branch, though you should point all of your changes to be merged into
master).
## 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. You must:
- Use Node.js version 12.x (or greater)
- Have [yarn](https://classic.yarnpkg.com/en/) installed (which is used to install JS packages and run development scripts)
- Have [nfpm](https://github.com/goreleaser/nfpm) (which is used to build `.deb` and `.rpm` packages and [jq](https://stedolan.github.io/jq/) (used to build code-server releases) installed
The [CI container](../ci/images/debian8/Dockerfile) is a useful reference for all
of the dependencies code-server uses.
## Development Workflow
```shell
yarn
yarn watch
# Visit http://localhost:8080 once the build is completed.
```
To develop inside an isolated Docker container:
```shell
./ci/dev/image/run.sh yarn
./ci/dev/image/run.sh yarn watch
```
`yarn watch` will live reload changes to the source.
### Updating VS Code
If you need to update VS Code, you can update the subtree with one line. Here's an example using the version 1.52:
```shell
# Add vscode as a new remote if you haven't already and fetch
git remote add -f vscode https://github.com/microsoft/vscode.git
git subtree pull --prefix lib/vscode vscode release/1.52 --squash --message "Update VS Code to 1.52"
```
## Build
You can build using:
```shell
./ci/dev/image/run.sh ./ci/steps/release.sh
```
Run your build with:
```shell
cd release
yarn --production
# Runs the built JavaScript with Node.
node .
```
Build the release packages (make sure that you run `./ci/steps/release.sh` first):
```shell
IMAGE=centos7 ./ci/dev/image/run.sh ./ci/steps/release-packages.sh
# The standalone release is in ./release-standalone
# .deb, .rpm and the standalone archive are in ./release-packages
```
The `release.sh` script is equal to running:
```shell
yarn
yarn build
yarn build:vscode
yarn release
```
And `release-packages.sh` is equal to:
```shell
yarn release:standalone
yarn test:standalone-release
yarn package
```
For a faster release build, you can run instead:
```shell
KEEP_MODULES=1 ./ci/steps/release.sh
node ./release
```
## Structure
The `code-server` script serves 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/app](./src/node/app).
Most of the meaty parts are in the VS Code portion of the codebase under [./lib/vscode](./lib/vscode), which we described 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.
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).
Some noteworthy changes in our version of VS Code:
- 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
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
us to ensure that our changes are still applied and work as intended. In the future,
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.
If the functionality you're working on does NOT depend on code from VS Code, please
move it out and into code-server.
### Currently Known Issues
- Creating custom VS Code extensions and debugging them doesn't work
- Extension profiling and tips are currently disabled

419
docs/FAQ.md Normal file
View File

@@ -0,0 +1,419 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# FAQ
- [Questions?](#questions)
- [iPad Status?](#ipad-status)
- [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)
- [How can I request a missing extension?](#how-can-i-request-a-missing-extension)
- [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)
- [How does the config file work?](#how-does-the-config-file-work)
- [How do I customize the "Go Home" button?](#how-do-i-customize-the-go-home-button)
- [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)
- [Differences compared to Theia?](#differences-compared-to-theia)
- [`$HTTP_PROXY`, `$HTTPS_PROXY`, `$NO_PROXY`](#http_proxy-https_proxy-no_proxy)
- [Enterprise](#enterprise)
<!-- 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.
## iPad Status?
Please see [./ipad.md](./ipad.md).
## How can I reuse my VS Code configuration?
The very popular [Settings Sync](https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync) extension works.
You can also pass `--user-data-dir ~/.vscode` to reuse your existing VS Code extensions and configuration.
Or copy `~/.vscode` into `~/.local/share/code-server`.
## Differences compared to VS Code?
`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.
While the core of VS Code is open source, the marketplace and many published Microsoft extensions are not.
Furthermore, Microsoft prohibits the use of any non-Microsoft VS Code from accessing their marketplace.
See the [TOS](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.
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.
These are the closed source extensions 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 reimplement these at some point, see [#1315](https://github.com/cdr/code-server/issues/1315)
For more about the closed source parts of VS Code, see [vscodium/vscodium](https://github.com/VSCodium/vscodium#why-does-this-exist).
## How can I request a missing extension?
Please open a new issue and select the `Extension request` template.
If an extension is not available or does not work, you can grab its VSIX from its Github releases or
build it yourself. Then run the `Extensions: Install from VSIX` command in the Command Palette and
point to the .vsix file.
See below for installing an extension from the cli.
## 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
# From a downloaded VSIX on the file system
code-server --install-extension downloaded-ms-python.python.vsix
```
## How is this different from VS Code Codespaces?
VS Code Codespaces is a closed source and paid service by Microsoft. It also allows you to access
VS Code via the browser.
However, code-server is free, open source and can be run on any machine without any limitations.
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.
## How should I expose code-server to the internet?
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
```
Of course replace `thisismypassword` with your actual password.
Example:
```yaml
auth: password
hashed-password: 1da9133ab9dbd11d2937ec8d312e1e2569857059e73cc72df92e670928983ab5 # You got this from the command above
```
## How do I securely access web services?
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.
### Sub-paths
Just browse to `/proxy/<port>/`.
### Sub-domains
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).
You should also set up TLS certificates for these subdomains, either using a
wildcard certificate for `*.<domain>` or individual certificates for each port.
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) to give each
user a virtual machine 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.
## How does code-server decide what workspace or folder to open?
code-server tries the following in 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.
## How do I debug issues with code-server?
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`.
```
code-server --log debug
```
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 most recently created directory in the `~/.local/share/code-server/logs` directory.
3. The browser console and network tabs.
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`.
## How do I customize the "Go Home" button?
You can pass a URL to the `--home` flag like this:
```
code-server --home=https://my-website.com
```
Or you can define it in the config file with `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.
## Differences compared to Theia?
[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).
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.
```sh
export HTTP_PROXY=https://134.8.5.4
export HTTPS_PROXY=https://134.8.5.4
# Now all of code-server's server side requests will go through
# https://134.8.5.4 first.
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.
**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.
## Enterprise
Visit [our enterprise page](https://coder.com) for more information about our
enterprise offerings.

BIN
docs/assets/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 KiB

308
docs/guide.md Normal file
View File

@@ -0,0 +1,308 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Setup Guide
- [1. Acquire a remote machine](#1-acquire-a-remote-machine)
- [Requirements](#requirements)
- [Google Cloud](#google-cloud)
- [2. Install code-server](#2-install-code-server)
- [3. Expose code-server](#3-expose-code-server)
- [SSH forwarding](#ssh-forwarding)
- [Let's Encrypt](#lets-encrypt)
- [NGINX](#nginx)
- [Self Signed Certificate](#self-signed-certificate)
- [Change the password?](#change-the-password)
- [How do I securely access development web services?](#how-do-i-securely-access-development-web-services)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
This guide demonstrates how to setup and use `code-server`.
To reiterate, `code-server` lets you run VS Code on a remote server and then access it via a browser.
Further docs are at:
- [README](../README.md) for a general overview
- [INSTALL](../docs/install.md) for installation
- [FAQ](./FAQ.md) for common questions.
- [CONTRIBUTING](../docs/CONTRIBUTING.md) for development docs
We highly recommend reading the [FAQ](./FAQ.md) on the [Differences compared to VS Code](./FAQ.md#differences-compared-to-vs-code) before beginning.
We'll walk you through acquiring a remote machine to run `code-server` on
and then exposing `code-server` so you can securely access it.
## 1. Acquire a remote machine
First, you need a machine to run `code-server` on. You can use a physical
machine you have lying around or use a VM on GCP/AWS.
### 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 this guide we assume Debian on Google Cloud.
### Google Cloud
For demonstration purposes, this guide assumes you're using a VM on GCP but you should be
able to easily use any machine or VM provider.
You can sign up at https://console.cloud.google.com/getting-started. You'll get a 12 month \$300
free trial.
Once you've signed up and created a GCP project, create a new Compute Engine VM Instance.
1. Navigate to `Compute Engine -> VM Instances` on the sidebar.
2. Now click `Create Instance` to create a new instance.
3. Name it whatever you want.
4. Choose the region closest to you based on [gcping.com](http://www.gcping.com).
5. Any zone is fine.
6. We'd recommend a `E2` series instance from the General-purpose family.
- Change the type to custom and set at least 2 cores and 2 GB of ram.
- Add more vCPUs and memory as you prefer, you can edit after creating the instance as well.
- https://cloud.google.com/compute/docs/machine-types#general_purpose
7. We highly recommend switching the persistent disk to an SSD of at least 32 GB.
- Click `Change` under `Boot Disk` and change the type to `SSD Persistent Disk` and the size
to `32`.
- You can always grow your disk later.
8. Navigate to `Networking -> Network interfaces` and edit the existing interface
to use a static external IP.
- Click done to save network interface changes.
9. If you do not have a [project wide SSH key](https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#project-wide), navigate to `Security -> SSH Keys` and add your public key there.
10. Click create!
Remember, you can shutdown your server when not in use to lower costs.
We highly recommend learning to use the [`gcloud`](https://cloud.google.com/sdk/gcloud) cli
to avoid the slow dashboard.
## 2. Install code-server
We have a [script](../install.sh) to install `code-server` for Linux, macOS and FreeBSD.
It tries to use the system package manager if possible.
First run to print out the install process:
```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
```
Now to actually install:
```bash
curl -fsSL https://code-server.dev/install.sh | sh
```
The install script will print out how to run and start using `code-server`.
Docs on the install script, manual installation and docker image are at [./install.md](./install.md).
## 3. Expose code-server
**Never**, **ever** expose `code-server` directly to the internet without some form of authentication
and encryption as someone can completely takeover your machine with the terminal.
By default, `code-server` will enable password authentication which will require you to copy the
password from the`code-server`config file to login. It will listen on`localhost` to avoid exposing
itself to the world. This is fine for testing but will not work if you want to access `code-server`
from a different machine.
There are several approaches to securely operating and exposing `code-server`.
**tip**: You can list the full set of `code-server` options with `code-server --help`
### SSH forwarding
We highly recommend this approach for not requiring any additional setup, you just need an
SSH server on your remote machine. The downside is you won't be able to access `code-server`
on any machine without an SSH client like on iPad. If that's important to you, skip to [Let's Encrypt](#lets-encrypt).
First, ssh into your instance and edit your `code-server` config file to disable password authentication.
```bash
# Replaces "auth: password" with "auth: none" in the code-server config.
sed -i.bak 's/auth: password/auth: none/' ~/.config/code-server/config.yaml
```
Restart `code-server` with (assuming you followed the guide):
```bash
sudo systemctl restart code-server@$USER
```
Now forward local port 8080 to `127.0.0.1:8080` on the remote instance by running the following command on your local machine.
Recommended reading: https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding.
```bash
# -N disables executing a remote shell
ssh -N -L 8080:127.0.0.1:8080 [user]@<instance-ip>
```
Now if you access http://127.0.0.1:8080 locally, you should see `code-server`!
If you want to make the SSH port forwarding persistent we recommend using
[mutagen](https://mutagen.io/documentation/introduction/installation).
```
# Same as the above SSH command but runs in the background continuously.
# Add `mutagen daemon start` to your ~/.bashrc to start the mutagen daemon when you open a shell.
mutagen forward create --name=code-server tcp:127.0.0.1:8080 <instance-ip>:tcp:127.0.0.1:8080
```
We also recommend adding the following lines to your `~/.ssh/config` to quickly detect bricked SSH connections:
```bash
Host *
ServerAliveInterval 5
ExitOnForwardFailure yes
```
You can also forward your SSH and GPG agent to the instance to securely access GitHub
and sign commits without copying your keys.
1. https://developer.github.com/v3/guides/using-ssh-agent-forwarding/
2. https://wiki.gnupg.org/AgentForwarding
### Let's Encrypt
[Let's Encrypt](https://letsencrypt.org) is a great option if you want to access `code-server` on an iPad
or do not want to use SSH forwarding. This does require that the remote machine be exposed to the internet.
Assuming you have been following the guide, edit your instance and checkmark the allow HTTP/HTTPS traffic options.
1. You'll need to buy a domain name. We recommend [Google Domains](https://domains.google.com).
2. Add an A record to your domain with your instance's IP.
3. Install caddy https://caddyserver.com/docs/download#debian-ubuntu-raspbian.
```bash
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/gpg/gpg.155B6D79CA56EA34.key' | sudo apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/setup/config.deb.txt?distro=debian&version=any-version' | sudo tee -a /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
```
4. Replace `/etc/caddy/Caddyfile` with sudo to look like this:
```
mydomain.com
reverse_proxy 127.0.0.1:8080
```
Remember to replace `mydomain.com` with your domain name!
5. Reload caddy with:
```bash
sudo systemctl reload caddy
```
Visit `https://<your-domain-name>` to access `code-server`. Congratulations!
In a future release we plan to integrate Let's Encrypt directly with `code-server` to avoid
the dependency on caddy.
#### NGINX
If you prefer to use NGINX instead of Caddy then please follow steps 1-2 above and then:
3. Install `nginx`:
```bash
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
```
4. Put the following config into `/etc/nginx/sites-available/code-server` with sudo:
```nginx
server {
listen 80;
listen [::]:80;
server_name mydomain.com;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
```
Remember to replace `mydomain.com` with your domain name!
5. Enable the config:
```bash
sudo ln -s ../sites-available/code-server /etc/nginx/sites-enabled/code-server
sudo certbot --non-interactive --redirect --agree-tos --nginx -d mydomain.com -m me@example.com
```
Make sure to substitute `me@example.com` with your actual email.
Visit `https://<your-domain-name>` to access `code-server`. Congratulations!
### Self Signed Certificate
**note:** Self signed certificates do not work with iPad normally. See [./ipad.md](./ipad.md) for details.
Recommended reading: https://security.stackexchange.com/a/8112.
We recommend this as a last resort because self signed certificates do not work with iPads and can
cause other bizarre issues. Not to mention all the warnings when you access `code-server`.
Only use this if:
1. You do not want to buy a domain or you cannot expose the remote machine to the internet.
2. You do not want to use SSH forwarding.
ssh into your instance and edit your code-server config file to use a randomly generated self signed certificate:
```bash
# Replaces "cert: false" with "cert: true" in the code-server config.
sed -i.bak 's/cert: false/cert: true/' ~/.config/code-server/config.yaml
# Replaces "bind-addr: 127.0.0.1:8080" with "bind-addr: 0.0.0.0:443" in the code-server config.
sed -i.bak 's/bind-addr: 127.0.0.1:8080/bind-addr: 0.0.0.0:443/' ~/.config/code-server/config.yaml
# Allows code-server to listen on port 443.
sudo setcap cap_net_bind_service=+ep /usr/lib/code-server/lib/node
```
Assuming you have been following the guide, restart `code-server` with:
```bash
sudo systemctl restart code-server@$USER
```
Edit your instance and checkmark the allow HTTPS traffic option.
Visit `https://<your-instance-ip>` to access `code-server`.
You'll get a warning when accessing but if you click through you should be good.
To avoid the warnings, you can use [mkcert](https://mkcert.dev) to create a self signed certificate
trusted by your OS and then pass it into `code-server` via the `cert` and `cert-key` config
fields.
### Change the password?
Edit the `password` field in the `code-server` config file at `~/.config/code-server/config.yaml`
and then restart `code-server` with:
```bash
sudo systemctl restart code-server@$USER
```
Alternatively, you can specify the SHA-256 of your password at the `hashed-password` field in the config file.
The `hashed-password` field takes precedence over `password`.
### How do I securely access development web services?
If you're working on a web service and want to access it locally, `code-server` can proxy it for you.
See the [FAQ](./FAQ.md#how-do-i-securely-access-web-services).

207
docs/install.md Normal file
View File

@@ -0,0 +1,207 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
# Install
- [Upgrading](#upgrading)
- [install.sh](#installsh)
- [Flags](#flags)
- [Detection Reference](#detection-reference)
- [Debian, Ubuntu](#debian-ubuntu)
- [Fedora, CentOS, RHEL, SUSE](#fedora-centos-rhel-suse)
- [Arch Linux](#arch-linux)
- [yarn, npm](#yarn-npm)
- [macOS](#macos)
- [Standalone Releases](#standalone-releases)
- [Docker](#docker)
- [helm](#helm)
<!-- 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.
## install.sh
We have a [script](../install.sh) to install code-server for Linux, macOS and FreeBSD.
It tries to use the system package manager if possible.
First run to print out the install process:
```bash
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
```
Now to actually install:
```bash
curl -fsSL https://code-server.dev/install.sh | sh
```
The script will print out how to run and start using code-server.
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.
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.
### Flags
- `--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.
### Detection Reference
- 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`.
- Add `~/.local/bin` to your `$PATH` to run code-server.
- For macOS it will install the Homebrew package.
- If Homebrew is not installed it will install the latest standalone release into `~/.local`.
- Add `~/.local/bin` to your `$PATH` to run code-server.
- For FreeBSD, it 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.
## Debian, Ubuntu
```bash
curl -fOL https://github.com/cdr/code-server/releases/download/v3.9.0/code-server_3.9.0_amd64.deb
sudo dpkg -i code-server_3.9.0_amd64.deb
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## Fedora, CentOS, RHEL, SUSE
```bash
curl -fOL https://github.com/cdr/code-server/releases/download/v3.9.0/code-server-3.9.0-amd64.rpm
sudo rpm -i code-server-3.9.0-amd64.rpm
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## Arch Linux
```bash
# Installs 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.
git clone https://aur.archlinux.org/code-server.git
cd code-server
makepkg -si
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
```
## 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
3. You're running Alpine Linux. 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
brew install code-server
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/v3.9.0/code-server-3.9.0-linux-amd64.tar.gz \
| tar -C ~/.local/lib -xz
mv ~/.local/lib/code-server-3.9.0-linux-amd64 ~/.local/lib/code-server-3.9.0
ln -s ~/.local/lib/code-server-3.9.0/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
# This will start a code-server container and expose it at http://127.0.0.1:8080.
# It will also mount your current directory into the container as `/home/coder/project`
# and forward your UID/GID so that all file system operations occur as your user outside
# the container.
#
# Your $HOME/.config is mounted at $HOME/.config within the container to ensure you can
# easily access/modify your code-server config in $HOME/.config/code-server/config.json
# outside the container.
mkdir -p ~/.config
docker run -it --name code-server -p 127.0.0.1:8080:8080 \
-v "$HOME/.config:/home/coder/.config" \
-v "$PWD:/home/coder/project" \
-u "$(id -u):$(id -g)" \
-e "DOCKER_USER=$USER" \
codercom/code-server:latest
```
Our official image supports `amd64` and `arm64`.
For `arm32` support there is a popular community maintained alternative:
https://hub.docker.com/r/linuxserver/code-server
## helm
See [the chart](../ci/helm-chart).

163
docs/ipad.md Normal file
View File

@@ -0,0 +1,163 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- 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)
- [Recommendations](#recommendations)
- [By 2022 iPad coding more desirable on Arm Macs](#by-2022-ipad-coding-more-desirable-on-arm-macs)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Known Issues
- 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)
## How to install 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"
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:
1. Open up code-serer
2. `Command Palette > Open Keyboard Shortcuts (JSON)`
3. Add the following to your `keybindings.json`
```json
{
"key": "cmd+w",
"command": "workbench.action.closeActiveEditor"
}
```
Test out command by hitting `cmd+w` to close an active file
## How to access code-server with a self signed certificate on 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.
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
**note**: Another undocumented requirement we noticed is that the certificate has to have `basicConstraints=CA:true`.
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)!
**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.
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.
```
[2020-10-30T08:55:45.139Z] info - Using generated certificate and key for HTTPS: ~/.local/share/code-server/mymbp_local.crt
```
- You can mail it to yourself or if you have a Mac, it's easiest to just Airdrop to the iPad.
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! 🍻
### Servediter iPad App
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!
**note**: This is not an officially supported app by the code-server team!
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".
## 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)
- [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/)
> 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>
## 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)
## Recommendations
Once you have code-server accessible to your iPad a few things could help save you time:
- 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
## By 2022 iPad coding more desirable on Arm Macs
> This section is generalized opinions intended to inform fellow Apple product consumers of perceived over time changes coming down the line
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.
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.
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.

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