Differences between revisions 3 and 4
Revision 3 as of 2013-09-04 18:55:57
Size: 2550
Editor: AndrewGrieve
Revision 4 as of 2013-09-04 19:10:53
Size: 2522
Editor: AndrewGrieve
Deletions are marked like this. Additions are marked like this.
Line 38: Line 38:
   * These releases include: platform repos, cordova-js, mobile-spec, cordova-docs, cordova-cli, cordova-plugman    * The `SemVer` is increased only if there are changes since the previous release.

Versioning and Release Strategy

Versioning Strategies

  1. "SemVer" (Semantic Version)

    • Used by platforms, plugman, CLI, core plugins
    • Is important when describing dependencies in a sane way (e.g. within plugin.xml files)
    • Referenced sparingly by docs / blogs (e.g. only by release notes)
  2. "CadVer" (Cadence Version)

    • Used by CLI, mobile-spec, cordova-js
    • Also referred to as the "Cordova Version".

    • Referenced by our website, blogs & docs

    • Used by JIRA for the "Fix Version" field

    • Each CadVer maps to a set of repo SemVers.

      • E.g. 3.0.0 uses cordova-blackberry@3.0.0, cordova-ios@3.0.0, cordova-android@3.0.0

      • E.g. 3.1.0 uses cordova-blackberry@3.1.0, cordova-ios@3.0.1, cordova-android@4.0.0

      • E.g. 3.2.0 uses cordova-blackberry@3.1.1, cordova-ios@3.1.0, cordova-android@4.0.1

      • E.g. 3.2.1 uses cordova-blackberry@3.1.2, cordova-ios@3.1.0, cordova-android@4.0.1

CLI exists in both lists because its version has the format: CadVer-SemVer

  • E.g.: 3.0.0-0.5.1

Release Strategies

  1. On-Demand Releases

    • Any repository can do an on-demand release at any time.
    • These happen only when the team decides that a release cannot wait for the next regular release to happen
    • These releases contain critical bug fixes that can't wait for the next scheduled release.
  2. Weekly Releases

    • These occur at most once a week (if there are no commits worth releasing, then skip the release).
      • Rationale: Reduces the number of releases to at most one per week so that users are not annoyed by having to update too frequently.
      • Rationale: Reduces the number of blog posts and release notes to write
    • These releases apply to: CLI, Plugman, Core Plugins

    • These releases contain non-critical bug fixes as well as new features.
    • Releases generally happen on Thursdays, but can be done on any day so long as it's been a week since the previous release.
  3. Cadence Releases

    • These follow the 10 releases per year, as enumerated on RoadmapProjects

    • The CadVer is increased (either MAJOR or MINOR) on each release.

    • The SemVer is increased only if there are changes since the previous release.

How version numbers are stored is described by StoringRepoVersionsDesign

How version releases are done is described by CuttingReleases

How to commit code is described by CommitterWorkflow

VersioningAndReleaseStrategy (last edited 2014-03-05 21:03:02 by AndrewGrieve)