Eclipse Che 5.0 is out
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:
eclipse/che-launcherDocker image (precursor to the new CLI) is being deprecated
- the team is also deprecating the OS-specific CLI wrappers,
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.
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:
services: db: image: codenvy/mysql // Base image environment: 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’ dev-machine: image: codenvy/ubuntu_jdk8 mem_limit: 2147483648 expose: 3000 // Expose port 3000 depends_on: - db
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
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.
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.
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> docker run <DOCKER_PARAMETERS> -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.