streamlining contributions with eclipsetheia · [email protected] eclipsecon germany 2018...

40
[email protected] EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

Upload: others

Post on 26-May-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

[email protected] Germany 2018

Streamlining Contributions With

EclipseTheia

Page 2: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

2/40

Talk● Developing today● Cloud Development

– Eclipse Theia

● Theia Development● Deployement

– Workspace managers

Page 3: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

3/40

Developing Today

Page 4: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

4/40

Developing Today● Checkout the project● Install the tools / Configure the tools● Install dependencies● Start contributing● Rinse and repeat ( projects machines/users)⨉ ⨉

Page 5: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

5/40

Developing Today - More● Use the correct Operating System● Dependency collisions between projects?● Not your habitual workstation? Have fun

recreating something of an environment.

Page 6: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

6/40

What we would like to do● Checkout the project● Start contributing

Page 7: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

7/40

What we would like to do● Removing contribution overhead● It is about changing habits and the ways of

working– Develop anywhere

– No compromises

Page 8: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

8/40

Cloud Development

Page 9: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

9/40

Not a new concept● vi over ssh (remote development)● Cloud9 (proprietary)● GitLab IDE (minimalist)● JDT/CDT over remote desktop (lag)● ...

Page 10: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

10/40

Theia

Page 11: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

11/40

Theia Framework● Written in TypeScript● Runs in the browser● Server-side

– Node.js● Runs on your desktop

– Electron

Page 12: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

12/40

Theia Features● Code navigation

– Code completion, go to definition, ...

– LSP based

● Debugging– Breakpoints, step over/in/out

– DAP based

Page 13: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

13/40

LSP/DAP?● Language Server Protocol

– Deep language understanding factorization

● Debug Adapter Protocol– Generic protocol to drive a debug session

Page 14: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia
Page 15: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia
Page 16: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

16/40

Theia Features● Git support● Terminal● Tasks● ...

Page 17: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

17/40

Theia Framework● Extensibility

– Extensions

– Plugins

Page 18: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

18/40

Theia Application● Composition of extensions

– $ npm install <theia-extension>

● Two targets– “browser” (browser + Node.js server application)

– “electron” (desktop application)

Page 19: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

19/40

Theia Development

Page 20: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

20/40

Theia Development● Extensions (application build time)

– Total control, rebinding of components, ...

● Plugins (runtime)– More rigid API via specific contribution points

Page 21: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

21/40

Theia Extensions● Published as npm packages

– $ npm search @theia/*

● Dependency injection– Add/Override any Theia component

– InversifyJs

Page 22: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia
Page 23: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

23

Page 24: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

24/40

Theia Extensions● Various contribution points for extenders

– Menus/Commands/Openers

– Views/Widgets

– Language Clients

– TextMate Grammars

– And more...

● Everything in the framework can be made as an extension

Page 25: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

25/40

Theia Plugins● Self-contained (no dependency resolution)● Runtime isolation● Simple API

Page 26: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

26/40

Theia Plugins● API can be extended by Extensions● VS Code extensions compatibility underway

Page 27: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

27/40

Deployment

Page 28: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

28/40

Cloud?● Cloud development requires infrastructure

– Networked machines

– Administration (docker/kubernetes, ...)

– Teams to operate

Page 29: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

29/40

Docker● Basic docker images available

– github.com/theia-ide/theia-apps

Page 30: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

30/40

Gitpod● TypeFox cloud development platform● Checkout PR branch and review it● Theia-based

gitpod.io

Page 31: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

31/40

Eclipse Che● RedHat cloud workspace manager● Heavy-duty● Theia-able

www.eclipse.org/che

Page 32: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

32/40

Personal Use● Remote

– Workspace manager

– Vanilla Theia application instance

● Local– Electron application

Page 33: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

33/40

Conclusion

Page 34: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

34/40

What does Theia change?● Allows anyone to have its own IDE

accessible from a browser● Workspace managers can expose the IDE to

work in the space

Page 35: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

35/40

Contributing now● Contribute from (almost) anywhere● Avoid setup overhead● Focus on task at hand

Page 36: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

36/40

Page 37: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

37/40

Contacts● Presenter

– Paul Maréchal: [email protected]

● Social– gitter.im/theia-ide/theia

– github.com/theia-ide/theia/issues

Page 38: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

38/40

References● github.com/theia-ide/theia● eclipse.org/che● gitpod.io

Page 39: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia

EclipseTheia

39/40

Cue and Hay(Q&A)

Page 40: Streamlining Contributions With EclipseTheia · paul.marechal@ericsson.com EclipseCon Germany 2018 Streamlining Contributions With EclipseTheia