Let's have a look at the release notes

Eclipse Che 5.0 is out

JAX Editorial Team

Eclipse Che 5.0 comes bearing gifts: new CLI, Docker Compose Runtimes, Workspace Snapshots, Language Server Protocol, Stack Editor, new Debuggers and more. Let’s see what’s under the hood of version 5.0.

Eclipse Che 5.0 is out and about! The release includes new CLI, CLI Assemblies, Docker Compose Runtimes, Workspace Snapshots, Workspace Agents, Docker Exec Agent, Stack Editor, Language Server Protocol, New Debuggers, SSH, Desktop Sync, Split & Resize, Docker Store Certification, PHP, Chedir, Contributor-Friendly Docs, More Responsive, Bitnami Stacks, and CentOS.

# Start Che with help:
docker run eclipse/che

# Start Che:
docker run -it -v /var/run/docker.sock:/var/run/docker.sock \
               -v <LOCAL-PATH>:/data \
                  eclipse/che start


Before diving into details one should pay attention to the following changes:

  • the eclipse/che-launcher Docker image (precursor to the new CLI) is being deprecated
  • the team is also deprecating the OS-specific CLI wrappers, and che.bat (these would help with invoking certain Docker command lines)
  • Docker 1.11+ is now required to run Eclipse Che
  • if you are using version 4.x of Eclipse Che, you need to export your workspace from the dashboard (Workspaces > Workspace Details) and recreate the workspace into the new Eclipse Che 5.0


The CLI has been rewritten “to make starting, stopping, configuring, and managing Eclipse Che fun.” The CLI includes features such as proxy inheritance (Proxy configuration is derived from your Docker daemon), Offline installation (install Che and your stack images disconnected from the Internet), debugging mode  (run with —debug to start the Che server with a debugger port), Docker Compose (The CLI generates OS-specific compose syntax to run Che) and others.

CLI Assemblies

The new Che CLI has been built as a Docker container which can be inherited by users’ custom Che assembly to create a new, customized CLI that is Che-like but customized with their own logic and additional commands. They inherit the same syntax as the Che CLI, as well as the ability to expose new commands that users provide.

Docker Compose Runtimes

According to the announcement, users can now have a single workspace where their database and application are in different containers, connected together into a single network.

Example Compose Recipe:

  image: codenvy/mysql               // Base image
   MYSQL_USER: petclinic
   MYSQL_PASSWORD: password
  mem_limit: 2147483648              // Memory used by the machine
  command: [service, mysql, start]   // Execute “service mysql start”
  volumes_from: dev-machine          // Share a volume mount from ‘dev-machine’

  image: codenvy/ubuntu_jdk8
  mem_limit: 2147483648             
  expose: 3000                       // Expose port 3000
    - db

Workspace Snapshots

Users can now save their workspace runtime state and their project state with a single snapshot; when a workspace is stopped, the project code is saved to long-term storage through a volume mount. The default configuration is that any workspace stop event will automatically snapshot the workspace runtime (and all of its images); previously end users had to request a snapshot for their runtime to save the state.

Language Server Protocol

Eclipse Che currently supports the language server protocol that Codenvy, Red Hat and Microsoft announced last year. Today, Che supports JSON, C#, Java, PHP and TypeScript language servers. Language servers for Go, Python and JavaScript are planned for contribution in the first quarter of 2017 by Sourcegraph.

According to the Medium post, support for additional language servers will be “aggressively” added as they get released and the team will be working with other projects on a dynamic registry so that they can identify and add new language servers without having to do a new release of Che every time.

In Che 5.0, the team added the following features of the language server protocol into the editor: show errors and warnings inside the editor, auto-completion, find Definitions: searches for symbol definition and jump-navigation, find Reference: search project-wide references for the symbol in the given text, document Symbol: view and navigate document symbols, workspace Symbol: view and navigate symbols across a workspace, formatting Capabilities: document formatting, document range formatting, on type formatting, and hover feature.

New Debuggers

Gdb, Node.JS, and Zend PHP debuggers have been added. Users can launch debugging servers within their workspaces for each of these services, and then configure the IDE to automatically connect to the debugger over their specialized debugging port.

Desktop Sync

Users can now use any IDE with their Eclipse Che workspaces (there’s a fast, Fuse-based mount and sync utility for users’ workspaces). The sync utility connects to a workspace and synchronizes the project files to a local file system. The utility works on all operating systems including Linux, Mac, and Windows with the same syntax (no need to install crazy tools like Windows Putty to do SSH). Docker is built into the new CLI.

To synchronize your local IDE:

# Get list of workspaces
$ docker run <DOCKER_PARAMETERS>
             eclipse/che action list-workspaces

# It will give you following output
# NAME       ID                   STATUS
# wkps-java  workspace93kd748390  STOPPED
# mysql      workspacewia89343k4  RUNNING

# Create folder where workspace file will be copied with the sync
mkdir sync
cd sync

# Sync a workspace to local directory, <local-sync-point>
           -v <local-sync-point>:/sync
           eclipse/che sync <workspace-name>

This will make a secure connection to the workspace and unison sync the contents to the local host directory.

Check out the entire list of changes here.

comments powered by Disqus