Release Notes: Eclipse Che 5.3

Release Overview

Stevan Le Meur
Eclipse Che Blog
6 min readFeb 22, 2017

--

This release includes changes in 5.3.0 and 5.3:

  • xTerm.js-Based Web Terminal Implementation: More features and stability.
  • Git History Window: Review and diff commits easily.
  • Custom DNS Resolver: Configure Che to use any DNS resolver.
  • Graceful Stop Workspaces During Server Shutdown: Additional errors catched and more options.
  • Desktop IDE Sync Utility: FAT file system support and verbose option to track syncs.
  • Vert.x Stack: Build vert.x applications using the default Vert.x stack.
  • MAVEN_OPTS and JAVA_OPTS for Workspaces: Inject Maven and Java environment variables into workspaces.

Quick Start

Advisories

Update Workspace Key format: The format of the workspace key has been changed to to:

1- {workspaceId}

2- {namespace}/{workspaceName}

Note that namespace can contain ‘/’ symbol so the workspace key can look like {namespace_part1}/{namespace_part2}/…/{namespace_partN}/{workspaceName}.

The previous format is deprecated and will be removed in version 5.5.

Learn more in #4073.

Removal of CLI Native Scripts: In 5.x a new CLI based on Docker has been introduced. It allows starting / stopping / upgrading Che in a standard way across all platforms. As a result, the native scripts were deprecated in 5.0 and have been removed in this 5.3. This includes removal of che.sh, che.bat, cli.sh, and the Che Vagrantfile.

To get started with Che please use the universal container: docker run eclipse/che

Upgrading to 5.3

To upgrade to Eclipse Che 5.3 from any previous 5.x version:

docker run eclipse/che:5.3.1 upgrade

Release Feature Details

xTerm.js-Based Web Terminal Implementation (#3943)

The terminal is a key part of a joyous developer experience and for the past couple of months the team has been working hard to replace our previous terminal (which fell short in a number of ways) with the popular xterm.js implementation — a web terminal that is well-supported by Microsoft and Sourcelair. This update resolves a number of outstanding bugs and brings new capabilities:

  1. Text-based application support: Use the terminal to work with applications like bash and git.
  2. Curses-based application support: Use the terminal to work with applications like vim and tmux.
  3. Hot keys for copying: “Ctrl/Insert” and “Shift/Insert”
  4. Horizontal scroll bar: Finally!
  5. Mouse events support: Extension developers can capture and act on click and scroll events.
  6. International characters: Insert using IME input with your keyboard.
  7. Asian character support: For Chinese, Japanese, and Korean character sets.

The xTerm project and its various collaborators keep a rich set of terminal documentation. We are really pleased with the breadth of features, stability of the terminal, and the ecosystem commitment. We have and will continue to give contributions back as we make additional improvements.

New terminal with Xterm.js.

Git History Window (#3799)

We’ve replaced the git history panel with a new window. This allows you to see the changes from each commit visually and use a built-in diff viewer. You can get to the panel from the git menu, or you can right-click on a file in the project explorer and select git history from the context menu.

The git history window will show you all the commits:

Git history.

Double clicking on a revision item, or clicking the ‘Compare’ button will open the visual diff viewer:

Git history and compare revisions.

Custom DNS Resolver (#4129)

We now let you override the default DNS resolvers used by Che and your workspace runtimes. The default behavior is for Che and workspaces to inherit DNS resolution from the host. You can add CHE_DNS_RESOLVERS=<ip-list> to che.env to customize how DNS resolution will occur within the Che server and workspace containers. Services such as agents and servers running within Che workspaces will usually require custom DNS resolution when there are internal providers behind a proxy or firewall.

Learn more in the docs.

Graceful Stop Workspaces During Server Shutdown (#4064, #4023)

Version 5.2 introduced a way to perform a graceful stop of Che, which stops all workspaces and services then stops and removes containers. You can learn more in the following issue: #3862.

We have made improvements to the CLI graceful shutdown behavior to catch additional errors, communicate more clearly when authentication is required for stop, and skip the graceful mode when a repo is mounted.

We have also added new tracking events, which improve the outputs displayed during the stop. System events set is extended with 3 new events: STOPPING_SERVICE, SERVICE_ITEM_STOPPED, SERVICE_STOPPED. These events provide their own useful information about services being stopped during graceful system shutdown. Learn more in the following issue: #4023.

Graceful stop.

Desktop IDE Sync Utility (#4001)

The --unison-verbose flag in docker run eclipse/che sync command will now also display logs of the background sync task which allows the user to see sync tasks that are being done and track if there are any issues.

Sync syntax.

Vert.x Stack in Che (#3843)

We’ve added a new stack to Che for the Eclipse Vert.x project. This is a very popular toolkit for building reactive applications on the JVM. You can now build vert.x applications by simply creating a workspace from the vert.x stack — no configuration necessary!

MAVEN_OPTS and JAVA_OPTS for workspaces (#4119)

MAVEN_OPTS and JAVA_OPTS environment variables are injected into workspace dev machines by setting CHE_WORKSPACE_JAVA_OPTIONS and CHE_WORKSPACE_MAVEN_OPTIONS in the che.env file.

You can configure the JVM’s that run agents within workspaces.

Configure in che.env Java and Maven Options

Other Notable Enhancements

  • Automatic updates of workspace configs when changes applied from multiple tabs in a workspace’s details screen in the dashboard (#3750)
  • Docker command-line environment variables CHE_HOST or CHE_PORT override che.env values (#4114)
  • Allowed to start exec-agent/terminal agent on alpine image (base image without glibc) (#4027)
  • Added -- help as global option for all CLI commands and provide faster boot options (#4006)
  • Updated documentation on volume mount (#134)
  • Added documentation on required external ports (#135)
  • Added networking requirements to getting started (#137)

Notable Bug Fixes

  • Fixed sync command to handle Windows FAT file systems (#4182)
  • Fixed references to old documentation (#4166)
  • Fixed workspace update attribute action before workspace stop action (#4158)
  • Fixed default debug port in cli when users do not specify it (#4157)
  • Prevent external event for another widgets on key DELETE for terminal UI (#4156)
  • Fixed machine stop in case docker container was stopped or killed not by Che (#4154)
  • Fixed terminal slave command by exec-agent (#4148)
  • Fixed page crashes in dashboard when choosing stack types and during project deletion (#4140)
  • Fixed CLI to cleanup volumes after container stopped (#4134)
  • Fixed a bug where workspace folder was still present after deleted (#4122)
  • Fixed position of the Quick documentation popover (#4088)
  • Fixed CLI loading behavior (#4083)
  • Fixed bad locale in CentOS based image (#4056)
  • Fixed wrong request URL to SSH service (#4053)
  • Fixed double notification displayed in IDE when starting the workspace failed (#4045)
  • Fixed CLI to check that -it option is provided by user (#4037)
  • Fixed bug with environment variables parsing in dockerfile in UD (#4016)

API Changes

  • Implement new format for workspace keys (#4073)
  • Decoupled testing framework API from Java test specific frameworks (#3999)
  • Upgraded to GWT 2.8 (#3984)
  • Moved all JS files of Orion from plugin-orion to the che-lib repository (#3979)
  • Moved SSH machine types to a separate plugin to decouple them from other types (#3946)
  • Deprecated org.eclipse.che.ide.api.keybinding.KeyBindingAgent#getEclipse (#3857)
  • JSON RPC client-side to server-side port (#3627)

Community Thank You!

We’d like to say a big thank you to everyone who helped to make Che 5.3 even better:

We hope that you enjoy using Eclipse Che. You can connect with us through:

--

--

Stevan Le Meur
Eclipse Che Blog

Product Manager at Red Hat. Eclipse Che commiter. Geek, Design, Architecture and Kite surfing.