Eclipse Marketplace Client™ 1.5.0 Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Release

1.5.0

Description

This release introduces the possibility for users to manage their Marketplace favorites directly in MPC, facilitating the new Eclipse User Storage Service (USS). For this purpose, a new Favorites tab is added, listing the logged in user's favorites. The existing "star" button will show the current favorite status per entry and will allow togging the favorite without leaving MPC.

Automated discovery for better editor support of unknown file types has been added to the Eclipse Platform in this release and is backed by MPC to find matching editors on the Marketplace. Users will be informed if editors are found on the Marketplace when opening a file with a currently unbound file extension.

Furthermore, the installation workflow gets some simplifications, like skipping the feature selection wizard page if there are no optional parts to be (de-)selected.

Under the covers, this release begins a process of modernizing and cleaning up its code base, starting with its REST implementation and HTTP communication. This process is expected to continue through the coming service releases and extend to the UI codebase in the next minor release for Oxygen.

 

API Certification

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Architectural Issues

There are no major architectural changes in this release. 

The public API introduced in 1.3.0 for Luna has proven stable throughout this and the last release cycle. The API has seen some extensions to its REST interface in this release related to the new favorites and editor discovery features. The changes were non-breaking with respect to existing API.

A new dependency to the Eclipse User Storage API (USS) has been introduced, which is used to provide management of user favorites in MPC. User registration and login happen through USS, as does all account-specific communication with storage servers.

MPC introduced a new Apache HTTPClient based transport strategy in this release. This solves the architectural issue of having to use different communication libraries for requests to the REST service and POST requests to the Marketplace install and error report services, previously required due to limited access to the HTTP layer through the existing transport API. The new transport also proved more stable in unreliable network environments and give more control to configure e.g. for different proxy setups.

Security Issues

No known security issues for the final release.

Between M7 and RC4, MPC included a UUID for the current user and machine in requests to eclipse.org (bug 492916), corresponding to similar features introduced in Equinox and the Eclipse Platform (bug 490112). This behavior has been removed completely again in RC4 due to privacy concerns and other issues (see bug 495484 and committer discussion). No security concerns regarding this behavior exist from RC4 onward.

The new Favorites management interacts with remote services requiring user accounts (registration and login). All interaction with user accounts and resources tied to user accounts is handled through API provided by the Eclipse USS project. USS uses the Eclipse Secure Storage to store user credentials safely and communicates with eclipse.org servers via HTTPS. There are no known security issues arising from MPC's usage of these services.

Non-Code Aspects
Documentation

User and contributor documentation is available on the wiki and in Eclipse help. The wiki has been updated with changes to the REST API.

Localization and Externalization
  • The code base is fully externalized
  • Localization is available through Babel
Usability Details

This release introduced management of Marketplace favorites directly in MPC, allowing users to see and change their favorites without leaving MPC. Shared favorites lists from the Marketplace can be imported to help spread high quality solutions on the Marketplace.

 

This release removed some unnecessary obstacles in MPC's workflows, specifically by skipping the "Select features" page if there are no meaningful choices to be made, and by cleaning up the state of install/update/change buttons for entries shown in MPC.

 

User support to install better editors for currently unbound file extensions has been implementes, improving user experience and exposing helpful solutions on the Marketplace by proactively suggesting editor plugins from the Marketplace when opening files with an unknown/unbound type. The workflow has been designed to not get in the user's way. This is achieved by first opening the current default (plain text or external system) editor and querying the Marketplace for a better solution in the background. Only if the search is successful is the user informed and can choose between installing any match or associating the default editor with the file type.

 

Finally, the navigation of free-form tags on Marketplace entries shown in MPC has been improved. MPC searches for these tags will now only return results containing the exact tag requested instead of fuzzy search results.

 

MPC conforms to the Eclipse User Interface Guidelines. Minor issues with screen readers resulting from MPC's use of StyledText elements as its labels have been removed in this release (bug 488747)

 

End of Life

No features are retired in this release.

However, with the new Apache HTTPClient-based transport strategy introduced in this release, we will be deprecating and removing older transport strategies in upcoming service- and minor releases. With those strategies being internal API only, this is not expected to be a breaking change.

Standards

No standards are used or implemented by the Marketplace Client project.

Communities

Input for this release cycle was based on direct feedback from the user and plug-in provider communities from Eclipse events (EclipseCon Europe, NA, France, DemoCamps ...) as well as from personal contact throughout the year. The communities were engaged in the release planning process through the mpc-dev mailing list and bugzilla as well.

This release is part of Neon