Eclipse Plug-in Versioning Proposal

Summary
The Eclipse team currently changes their plug-in version numbers to match each major release of Eclipse (e.g., 2.1, 3.0). This is a convenient way of understanding the origin of plug-ins but do not capture the actual semantics of the changes which occurred. For example, the change from 2.1 to 3.0 indicates a major and incompatible change. Of course, this is generally not what was intended as most 3.0 plug-ins are in fact compatible with their 2.1 versions. Here we outline the current use of version numbers and propose a new process for using plug-in version numbering to better indicate levels of compatibility.
Last Modified: 1200 February 17, 2004

Problem Definition

Current Eclipse practice calls for the teams to increment plugin version numbers to match the upcoming release of Eclipse. For example, about 6 months ago we changed our plugin version numbers from 2.1 to 3.0.0. In June 2004 we will ship Eclipse 3.0.0 and all plugins (save a few third party ones) will be version 3.0.0. This is convenient because it allows people to look at the plugin version number and immediatly understand what version of Eclipse that plugin is from.

This approach has several drawbacks however

Proposal

To address these concerns, we propose that the Eclipse SDK team start using the version number semantics defined by Eclipse for all their plugins. The numbering process works as follows:- new plugins start as 0.0.0 and go through various version numbers (<1.0.0) until they are ready for their first release. At that time, developers may choose to set the version number to 1.0.0. This is mostly cosmetic and is not required. Prior to first release the numbering process depends mostly on how widely availability and use of the early versions. For example, a beta at 0.9 sets a good tone and might encourage release at 1.0.0.

Action

The only action required is to decide we want to do this and refine/document the details of the structure and process. There are no technological hurdles. Just as teams are responsible updating their copyright dates, they would be responsible for incrementing their plugin versions. These changes are done very infrequently so will not be a particular burden.

If we decide to follow this new policy we can retrofit the 3.0 plugins with "correct" version numbers or start the new approach immediately following the release of Eclipes 3.0. Starting now avoids situations where Eclipse 2.1 based plugins do not work on the released 3.0 because of resolution problems (rather than because of actual incompatibilities). However, it may adversely affect people in the community who have already come to know, like and use the 3.0.0 version numbers.