Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace cloud9 with coder? #831

Open
fnoop opened this issue Apr 25, 2019 · 21 comments
Open

Replace cloud9 with coder? #831

fnoop opened this issue Apr 25, 2019 · 21 comments
Assignees
Milestone

Comments

@fnoop
Copy link
Member

fnoop commented Apr 25, 2019

https://github.com/codercom/code-server

fnoop added a commit that referenced this issue Apr 29, 2019
@fnoop
Copy link
Member Author

fnoop commented Apr 29, 2019

Basic visual studio code support in place, some extensions installed automatically.

fnoop added a commit that referenced this issue Apr 29, 2019
fnoop added a commit that referenced this issue Apr 29, 2019
fnoop added a commit that referenced this issue Apr 29, 2019
@fnoop
Copy link
Member Author

fnoop commented Apr 29, 2019

Screenshot 2019-04-29 at 17 14 26

Increasing the kernel limit hugely increases memory usage but still doesn't have enough to cover the entire maverick filetree:

    # Increase kernel inotify watcher limits
    base::sysctl::conf { 
        "fs.inotify.max_user_watches": 	value => $filewatchers;
    }

Probably just suppressing the warning is ok - and document that changes on the filesystem may not be picked up through codeserver.

@fnoop
Copy link
Member Author

fnoop commented Apr 29, 2019

Extensions don't work:
Screenshot 2019-04-29 at 17 16 23

@fnoop
Copy link
Member Author

fnoop commented Apr 29, 2019

Startup errors:
Screenshot 2019-04-29 at 17 17 46

@fnoop
Copy link
Member Author

fnoop commented Apr 29, 2019

No terminal:
Screenshot 2019-04-29 at 17 19 43

@fnoop
Copy link
Member Author

fnoop commented Apr 30, 2019

Updated node.js from 8.x to 10.x (latest LTS).

Memory note: coder/code-server#232
We shouldn't make this the default unfortunately, probably still stick with cloud9 as default. Install both, but make cloud9 active and codeserver inactive.

@fnoop
Copy link
Member Author

fnoop commented Apr 30, 2019

Ah, updating node.js to 10.x fixes most of the above problems. Terminal works, extensions work, python now linting etc.

fnoop added a commit that referenced this issue Apr 30, 2019
@fnoop
Copy link
Member Author

fnoop commented Apr 30, 2019

Need to suppress load warnings/errors, as they show up every time it's loaded in a browser.
Screenshot 2019-04-30 at 09 06 08

@fnoop
Copy link
Member Author

fnoop commented Apr 30, 2019

Python setup:

  • Select custom maverick python install interpreter
  • Use black formatter?
  • Which linter? pylint?

goodrobots/maverick-api#42

@fnoop fnoop added this to the 2.0 milestone May 1, 2019
@fnoop fnoop self-assigned this May 1, 2019
@SamuelDudley
Copy link
Member

Great work!
+1 for black formatter. Re linter I'm not too fussed.

@fnoop
Copy link
Member Author

fnoop commented May 8, 2019

@fnoop
Copy link
Member Author

fnoop commented Aug 10, 2019

code v2 complete rewrite, much more efficient:
https://github.com/cdr/code-server/releases

Also, vscode native remote extensions now work with raspberry, as an additional option.

@SamuelDudley
Copy link
Member

Having the dev environment accessible by the browser is quite useful IMO as it lowers the barrier of entry to having a web browser installed on the machine. So +1 for code-server if it is infact reliable.

We can document the use of vscode remote if that is the user preference.

My 2c

@fnoop
Copy link
Member Author

fnoop commented Oct 8, 2019

maverick_web::codeserver manifests updated with code-server v2 build steps. v2 uses a lot more memory to build, but packages into a single binary and has much reduced memory usage at runtime. Good enough I think to make it the default and deprecate cloud9.

Memory usage for codeserver v2 is still 200mb+ resident which is too much for a pi zero with 512mb ram. resident memory usage of cloud9 is only about half that - 120mb+, but I don't think worth keeping around and supporting it, particularly as it's license is distinctly non-opensource friendly. For smaller systems like rpizero, just install but disable codeserver by default and allow the user to quickly start when they need it.

fnoop added a commit that referenced this issue Oct 8, 2019
fnoop added a commit that referenced this issue Oct 8, 2019
@fnoop
Copy link
Member Author

fnoop commented Dec 17, 2019

@fnoop
Copy link
Member Author

fnoop commented Dec 17, 2019

c9 dead, should be removed asap:
c9/core#536

@fnoop
Copy link
Member Author

fnoop commented Dec 19, 2019

Nothing is likely to replace c9 anytime soon on smaller boards, due to the memory limitation. Fork c9/core and reference that, just incase amazon pull the upstream repo.

@fnoop
Copy link
Member Author

fnoop commented Dec 19, 2019

Need to do a memory review of all current options:
c9
codeserver
theia

@cglusky
Copy link
Member

cglusky commented Jan 12, 2020

Not an IDE, just the editor functions of VS Code in browser
https://microsoft.github.io/monaco-editor/index.html

Likely much more light weight and would also likely require a bunch of work to make useful in context. But still worth noting IMO.

@fnoop fnoop modified the milestones: 2.0, 1.2 Jan 21, 2020
@fnoop
Copy link
Member Author

fnoop commented Jan 21, 2020

Forked cloud9 to github.com/fnoop in case amazon pull the now-dead c9 repo.
Adding theia manifest as well - looks like a very interesting alternative, as well as being properly open-source project.

fnoop added a commit that referenced this issue Jan 21, 2020
fnoop added a commit that referenced this issue Jan 21, 2020
fnoop added a commit that referenced this issue Jan 23, 2020
fnoop added a commit that referenced this issue Jan 24, 2020
@fnoop
Copy link
Member Author

fnoop commented Feb 2, 2020

There are lots of problems with cloud9 alternatives, the two biggest are currently:

  • Massive resources needed to build codeserver - impossible on 2gb, struggles on 4gb ram. Theia needs a lot of resources but less - it builds on 4gb.
  • Big resources needed to run codeserver and theia - RAM usage isn't too bad (although more than cloud9) but they both seem to mandate inotify file watchers to construct the file tree. This either fails (theia) and/or requires a huge increase in kernel file watcher limits with corresponding RAM increase.

Suggest that this is shelved until 2.0 - for now we'll stick with cloud9, which is a known quantity and stable. I've forked the repo and repointed, just in case amazon pull the upstream repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants