Differences between revisions 4 and 5
Revision 4 as of 2013-09-04 19:10:53
Size: 2522
Editor: AndrewGrieve
Comment:
Revision 5 as of 2013-11-07 23:05:55
Size: 2531
Editor: JoshSoref
Comment: punctuation
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
   * Also referred to as the "''Cordova Version''".    * Also referred to as the "''Cordova Version''"
Line 13: Line 13:
   * Each ''CadVer'' maps to a set of repo ''SemVer''s.    * Each ''CadVer'' maps to a set of repo ''SemVer''s
Line 26: Line 26:
   * These happen only when the team decides that a release cannot wait for the next regular release to happen    * These happen only when the team decides that a release cannot wait for the next regular release to happen.
Line 31: Line 31:
     * Rationale: Reduces the number of blog posts and release notes to write
   * These releases apply to: `CLI`, `Plugman`, Core Plugins
     * Rationale: Reduces the number of blog posts and release notes to write.
   * These releases apply to: `CLI`, `Plugman`, and Core Plugins.
Line 36: Line 36:
   * These follow the 10 releases per year, as enumerated on RoadmapProjects    * These follow the 10 releases per year, as enumerated on RoadmapProjects.
Line 40: Line 40:
How version numbers are stored is described by StoringRepoVersionsDesign How version numbers are stored is described by StoringRepoVersionsDesign.
Line 42: Line 42:
How version releases are done is described by CuttingReleases How version releases are done is described by CuttingReleases.
Line 44: Line 44:
How to commit code is described by CommitterWorkflow How to commit code is described by CommitterWorkflow.

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, and 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)