streamlining contributions with eclipsetheia · paul.marechal@ericsson.com eclipsecon germany 2018...

Post on 26-May-2020

12 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

paul.marechal@ericsson.comEclipseCon Germany 2018

Streamlining Contributions With

EclipseTheia

EclipseTheia

2/40

Talk● Developing today● Cloud Development

– Eclipse Theia

● Theia Development● Deployement

– Workspace managers

EclipseTheia

3/40

Developing Today

EclipseTheia

4/40

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

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.

EclipseTheia

6/40

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

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

EclipseTheia

8/40

Cloud Development

EclipseTheia

9/40

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

EclipseTheia

10/40

Theia

EclipseTheia

11/40

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

– Node.js● Runs on your desktop

– Electron

EclipseTheia

12/40

Theia Features● Code navigation

– Code completion, go to definition, ...

– LSP based

● Debugging– Breakpoints, step over/in/out

– DAP based

EclipseTheia

13/40

LSP/DAP?● Language Server Protocol

– Deep language understanding factorization

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

EclipseTheia

16/40

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

EclipseTheia

17/40

Theia Framework● Extensibility

– Extensions

– Plugins

EclipseTheia

18/40

Theia Application● Composition of extensions

– $ npm install <theia-extension>

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

– “electron” (desktop application)

EclipseTheia

19/40

Theia Development

EclipseTheia

20/40

Theia Development● Extensions (application build time)

– Total control, rebinding of components, ...

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

EclipseTheia

21/40

Theia Extensions● Published as npm packages

– $ npm search @theia/*

● Dependency injection– Add/Override any Theia component

– InversifyJs

23

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

EclipseTheia

25/40

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

EclipseTheia

26/40

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

EclipseTheia

27/40

Deployment

EclipseTheia

28/40

Cloud?● Cloud development requires infrastructure

– Networked machines

– Administration (docker/kubernetes, ...)

– Teams to operate

EclipseTheia

29/40

Docker● Basic docker images available

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

EclipseTheia

30/40

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

gitpod.io

EclipseTheia

31/40

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

www.eclipse.org/che

EclipseTheia

32/40

Personal Use● Remote

– Workspace manager

– Vanilla Theia application instance

● Local– Electron application

EclipseTheia

33/40

Conclusion

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

EclipseTheia

35/40

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

EclipseTheia

36/40

EclipseTheia

37/40

Contacts● Presenter

– Paul Maréchal: paul.marechal@ericsson.com

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

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

EclipseTheia

38/40

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

EclipseTheia

39/40

Cue and Hay(Q&A)

top related