Eclipse Che 7 is already here
Eclipse Che's online development platform has had a great year. At the beginning of 2018, Eclipse Che 6.0 was released, which received a number of new features for development teams interested in creating cloud-native applications, and at the CheConf 18.1 conference, the beginning of the next development stage was announced - Eclipse Che 7.
With each new release, the platform becomes more and more interesting thanks to the efforts of the community and the active participation of users. Let's see how the available opportunities have changed and expanded, and how you can try them right now.
Eclipse Che is an open source project with the following objectives:
The project roadmap outlines four main areas:
And in more detail?
Instead of the GWT-based IDE, the new version of Che now uses Eclipse Theia , expanding the possibilities for further development of the Eclipse Che project.
See how the new IDE works:
And now available:
As you know, Eclipse Theia is a platform for creating online IDEs. The project is based on TypeScript and offers developers a more convenient and flexible programming model, which speeds up the creation of plugins.
However, there is a serious functional gap between the Eclipse Theia and the IDE that is currently used in the Che project. Therefore, for most of the past year, Theia added missing features so that it can completely replace the current IDE. Eclipse Che project contributors have spent more than five years creating a cloud-based IDE, and it’s important to keep this groundwork and experience to make the new IDE truly useful.
Here are examples of useful features:
Another important detail. As before, by default Che will provide its default web IDE for workspaces. However, now you can connect other IDEs to them, because there are cases when the IDE-environment of Che does not cover the necessary use cases, or for some reason someone should use some special tools. In the old IDE, RCP applications were used for this.
In Eclipse Che 7, you can connect any tools to the workspaces (Che workspace), including:
Take a look at an example of using Jupyter with a Che workspace:
By the way, the Eclipse Dirigible team is also working on integrating its online IDE with Che workspaces.
Eclipse Dirigible integrated into the Eclipse Che workspace. More at this link .
Eclipse Che is a platform for building cloud-based tools, and for this it needs a well-thought-out and convenient extensibility model.
Eclipse Che's extensibility used to boil down to white-labeling: third-party developers helped create their own customized versions of Eclipse Che and distribute them to their audience. And although this suited many partners, the method was always considered complex and led to the emergence of technology stacks (especially GWT in the IDE), which were not particularly convenient for developers. Due to the lack of dynamic extensibility, Che Plugin components had to be packaged into so-called “assembly assemblies” to make them available to end users. In addition, without rebuilding the entire Che environment, it was basically impossible to quickly create a plug-in, package it for installation in an existing Che environment, and make this plug-in available. That is why we left GWT in favor of the Eclipse Theia IDE project.
All these manipulations were needed to create a dynamic plug-in model. In short, in Che, the user does not have to worry about the dependencies of the tools working in his workspace, they should become available as needed. This means that the Che-plugin itself provides its dependencies, its backend services (which can work in an auxiliary container connected to the user's workspace) and its UI extension for the IDE. As a result, users get the impression that Che magically provides the language services and development tools they need in the workspace.
The new plugin model has another important aspect: the desire to streamline the efforts of developers creating plugins and distributing them as part of various tools or within communities. Therefore, Theia plugins have been supplemented with their APIs to ensure compatibility with VS Code extension points. As a result, porting existing plugins from VS Code to Eclipse Che is greatly simplified. The main difference is the packaging method: in Eclipse Che, plugins along with dependencies are packaged in their own container.
Like this:
To simplify publishing and distribution, a plugin marketplace will be launched. Moreover, it will be implemented both in the form of a public service available to the community, and in the form of a separate functionality that allows you to create such stores as part of private Che-environments with tight content control over firewalls. Now you can find the plugins in the corresponding github repository registry.
Creating Che-plugins should be easy and take as little time as possible in the internal development cycle (we are now talking about the gap between making changes to the code and viewing and debugging the results of these changes). And since it needs major improvements over the GWT-based IDE, a new Hosted Mode has been implemented. This mode allows participants in the Che project to build Che directly from Che itself, and with full lifecycle support, from creating and coding a new plug-in to debugging it.
Here's what it looks like:
Eclipse Che 7 is the first ever Kubernetes-oriented IDE. That is, you can use containers directly in your work areas. In Che, these areas have a special logic level “dev mode”, which is implemented on top of the containers used in the production environment, and provides autocompletion tools when entering IntelliSense and other auxiliary IDE tools.
As for Workspace.Next, thanks to them, you can immediately use “clean” application definitions (Docker image, Composefile or Kubernetes resource list) in Che without any modification to implement IDE services. In Workspace.Next, IDE tools are implemented as microservices that are packaged in their own auxiliary containers along with dependencies and do not affect application containers in any way. At run time, IDE tools are isolated from each other and from application containers. As a result, each IDE tool has its own life cycle, which simplifies their updating and replacement, and soon they will receive their own scaling mechanisms.
Eclipse Che 7 is available and you can try it out now by simply selecting the Che 7 stack when creating a new workspace.
Go to the factory URL: https://che.openshift.io/f?id=factoryvbwekkducozn3jsn
Create an account on che.openshift.io, create a new workspace and select the Che 7 stack.
Want to test? Install the latest version of Eclipse Che: Quick Start with Eclipse Che
If you are ready to share your thoughts and observations, join the community!
Support: questions, bug reports, feature request via GitHub issues
General chat: eclipse-che Mattermost channel
Virtual meetings: Che community meeting takes place every second Monday
Mailing list: che-dev@eclipse.org
Red Hat CodeReady Workspaces can be downloaded by developer subscription here : https://developers.redhat.com/crw-hw/
With each new release, the platform becomes more and more interesting thanks to the efforts of the community and the active participation of users. Let's see how the available opportunities have changed and expanded, and how you can try them right now.
Eclipse Che is an open source project with the following objectives:
- Accelerate the connection of new participants to the projects.
Eclipse Che only needs a browser to work. Installing other software on the developer's machine is not required, which means that new people can immediately get involved in the work. - Fix the problem of mismatch of working environments.
"Well I do not know! Everything works on my machine! ” - sounds familiar? This will not happen again: now the code works the same on all workstations. - Provide built-in enterprise-level security.
Since Eclipse Che is positioned as a replacement for VDI solutions, it must comply with corporate security requirements, in particular, have a role-based access model and exclude the very possibility of storing source texts on development machines.
The project roadmap outlines four main areas:
- IDE.next - Updated Code Editor - For More Fun
- Plugins are the key to further development of the Che ecosystem.
- Workspace.next - IDE tools that work in the form of containerized microservices and increase the consistency of development and production environments.
- Enterprise functionality for full Che.
And in more detail?
IDE.Next
Instead of the GWT-based IDE, the new version of Che now uses Eclipse Theia , expanding the possibilities for further development of the Eclipse Che project.
See how the new IDE works:
And now available:
- Monaco - based editor - super fast and super responsive interface, codelens functionality and much more.
- The Command Palette , which allows you to do almost anything from the keyboard.
- Task support , including tasks from VS Code and the Che team.
- Built-in preview of applications directly from the IDE, including Markdown mode.
- Customizable interface , works on the principle of drag-and-drop.
- And much more, including Outline View, Search, Git.
Eclipse theia
As you know, Eclipse Theia is a platform for creating online IDEs. The project is based on TypeScript and offers developers a more convenient and flexible programming model, which speeds up the creation of plugins.
However, there is a serious functional gap between the Eclipse Theia and the IDE that is currently used in the Che project. Therefore, for most of the past year, Theia added missing features so that it can completely replace the current IDE. Eclipse Che project contributors have spent more than five years creating a cloud-based IDE, and it’s important to keep this groundwork and experience to make the new IDE truly useful.
Here are examples of useful features:
- Debug Adapter Protocol.
- Language Server Protocol.
- Commands
- Settings
- Keyboard shortcuts.
- Textmate support.
- Security features.
Different IDEs for different use cases
Another important detail. As before, by default Che will provide its default web IDE for workspaces. However, now you can connect other IDEs to them, because there are cases when the IDE-environment of Che does not cover the necessary use cases, or for some reason someone should use some special tools. In the old IDE, RCP applications were used for this.
In Eclipse Che 7, you can connect any tools to the workspaces (Che workspace), including:
- Tools based on Eclipse Theia (as it is only a platform for building online IDEs), for example, the popular Sirius tool .
- Absolutely other solutions like Jupyter or Eclipse Dirigible.
Take a look at an example of using Jupyter with a Che workspace:
By the way, the Eclipse Dirigible team is also working on integrating its online IDE with Che workspaces.
Eclipse Dirigible integrated into the Eclipse Che workspace. More at this link .
New Che-Plug Model
Eclipse Che is a platform for building cloud-based tools, and for this it needs a well-thought-out and convenient extensibility model.
Eclipse Che's extensibility used to boil down to white-labeling: third-party developers helped create their own customized versions of Eclipse Che and distribute them to their audience. And although this suited many partners, the method was always considered complex and led to the emergence of technology stacks (especially GWT in the IDE), which were not particularly convenient for developers. Due to the lack of dynamic extensibility, Che Plugin components had to be packaged into so-called “assembly assemblies” to make them available to end users. In addition, without rebuilding the entire Che environment, it was basically impossible to quickly create a plug-in, package it for installation in an existing Che environment, and make this plug-in available. That is why we left GWT in favor of the Eclipse Theia IDE project.
All these manipulations were needed to create a dynamic plug-in model. In short, in Che, the user does not have to worry about the dependencies of the tools working in his workspace, they should become available as needed. This means that the Che-plugin itself provides its dependencies, its backend services (which can work in an auxiliary container connected to the user's workspace) and its UI extension for the IDE. As a result, users get the impression that Che magically provides the language services and development tools they need in the workspace.
VSCode compatible
The new plugin model has another important aspect: the desire to streamline the efforts of developers creating plugins and distributing them as part of various tools or within communities. Therefore, Theia plugins have been supplemented with their APIs to ensure compatibility with VS Code extension points. As a result, porting existing plugins from VS Code to Eclipse Che is greatly simplified. The main difference is the packaging method: in Eclipse Che, plugins along with dependencies are packaged in their own container.
Like this:
To simplify publishing and distribution, a plugin marketplace will be launched. Moreover, it will be implemented both in the form of a public service available to the community, and in the form of a separate functionality that allows you to create such stores as part of private Che-environments with tight content control over firewalls. Now you can find the plugins in the corresponding github repository registry.
Hosted mode
Creating Che-plugins should be easy and take as little time as possible in the internal development cycle (we are now talking about the gap between making changes to the code and viewing and debugging the results of these changes). And since it needs major improvements over the GWT-based IDE, a new Hosted Mode has been implemented. This mode allows participants in the Che project to build Che directly from Che itself, and with full lifecycle support, from creating and coding a new plug-in to debugging it.
Here's what it looks like:
Kubernetes Oriented IDE
Eclipse Che 7 is the first ever Kubernetes-oriented IDE. That is, you can use containers directly in your work areas. In Che, these areas have a special logic level “dev mode”, which is implemented on top of the containers used in the production environment, and provides autocompletion tools when entering IntelliSense and other auxiliary IDE tools.
As for Workspace.Next, thanks to them, you can immediately use “clean” application definitions (Docker image, Composefile or Kubernetes resource list) in Che without any modification to implement IDE services. In Workspace.Next, IDE tools are implemented as microservices that are packaged in their own auxiliary containers along with dependencies and do not affect application containers in any way. At run time, IDE tools are isolated from each other and from application containers. As a result, each IDE tool has its own life cycle, which simplifies their updating and replacement, and soon they will receive their own scaling mechanisms.
How to try?
Eclipse Che 7 is available and you can try it out now by simply selecting the Che 7 stack when creating a new workspace.
Go to the factory URL: https://che.openshift.io/f?id=factoryvbwekkducozn3jsn
Create an account on che.openshift.io, create a new workspace and select the Che 7 stack.
Want to test? Install the latest version of Eclipse Che: Quick Start with Eclipse Che
If you are ready to share your thoughts and observations, join the community!
Support: questions, bug reports, feature request via GitHub issues
General chat: eclipse-che Mattermost channel
Virtual meetings: Che community meeting takes place every second Monday
Mailing list: che-dev@eclipse.org
Red Hat CodeReady Workspaces can be downloaded by developer subscription here : https://developers.redhat.com/crw-hw/