Difference between revisions of "DTP Plug-in Versioning Policy"

From Eclipsepedia

Jump to: navigation, search
Line 9: Line 9:
 
*A '''service''' change indicates bug fixes.
 
*A '''service''' change indicates bug fixes.
 
*A '''qualifier''' change indicates the plug-in has changed.
 
*A '''qualifier''' change indicates the plug-in has changed.
 +
==Fundamental Constraint==
 +
Whatever is done to plug-in version numbers following this policy, each update '''must''' result in a number that is monotonically increasing. Otherwise, the Eclipse Update Manager will not detect the newer version of the plug-in, and users' DTP installations will be rendered inconsistent. If you believe that the policy expressed herein requires breaking this fundamental constraint, immediately notify the [mailto:dtp-pmc@eclipse.org DTP PMC] for direction.
 
==Policy==
 
==Policy==
 
* The major, minor, and service fields respectively are to be ''incremented'' only once per DTP stream release cycle, depending on the type of change as described above. For example, "1.5.0" can go to "1.5.1" during a release cycle, but not "1.5.2" or higher.  
 
* The major, minor, and service fields respectively are to be ''incremented'' only once per DTP stream release cycle, depending on the type of change as described above. For example, "1.5.0" can go to "1.5.1" during a release cycle, but not "1.5.2" or higher.  

Revision as of 12:24, 29 October 2007

Contents

Status

[10/29/07]: This document is a draft. It has not been approved by the DTP PMC and should not be taken as DTP policy.

Introduction

This document specifies plug-in versioning rules for DTP. That is, a policy for changing plug-in version numbers based on the types of changes made to the plug-in is specified below. We follow generally accepted Eclipse rules in this area, for example the versioning policy for the Eclipse platform. It is important that all DTP committers adhere to this policy so tools (such as Eclipse Update Manager) and DTP users can determine the types of changes present between two versions of a given plug-in.

Definitions

  • A DTP plug-in version number has four fields, separated by a ".": Major.Minor.Service.Qualifier
  • A major change indicates breakage in API or significant new/reorganization of functionality.
  • A minor change indicates changes visible to users or extenders of DTP.
  • A service change indicates bug fixes.
  • A qualifier change indicates the plug-in has changed.

Fundamental Constraint

Whatever is done to plug-in version numbers following this policy, each update must result in a number that is monotonically increasing. Otherwise, the Eclipse Update Manager will not detect the newer version of the plug-in, and users' DTP installations will be rendered inconsistent. If you believe that the policy expressed herein requires breaking this fundamental constraint, immediately notify the DTP PMC for direction.

Policy

  • The major, minor, and service fields respectively are to be incremented only once per DTP stream release cycle, depending on the type of change as described above. For example, "1.5.0" can go to "1.5.1" during a release cycle, but not "1.5.2" or higher.
  • The qualifier field is to be updated whenever anything in CVS for the plug-in is changed.
  • The precendence of the fields is major > minor > service. When a higher precedece field is updated, fields of lower precendence should be reset to 0 ("zero"). (Note: Precedence rules mean that the major field can not be reset to 0.)
  • If a field is reset to 0, then it may be incremented again during a release cycle.