cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michal Mocny <mmo...@chromium.org>
Subject Re: [cordova-cli] Versioning Confusion
Date Thu, 10 Apr 2014 18:45:58 GMT
We've mumbled about this before here, so +1 to your proposal.

However, Andrew previously pointed out that even if we stop doing a.b.c
reset with releases, the form x.y.z-a.b.c is not valid semver and so isn't
generally useful anyway.  At least not for package.json fuzzy dependency
versioning.

I notice that your list of good examples, you change the scheme to
x.y.z@a.b.c (note the @), does that resolve the issue?  Clever.

-Michal


On Thu, Apr 10, 2014 at 2:00 PM, Michael Brooks <michael@michaelbrooks.ca>wrote:

> Hi all,
>
> Recently, I've noticed that the cordova-cli is misusing the versioning
> scheme
> that is used by the phonegap-cli. It's a little confusing, but effective,
> so let
> me run through it.
>
> ---
> VERSION BREAKDOWN
> ---
>
> cordova@x.y.z-a.b.c
>
> ---
> X.Y.Z
> ---
>
> x.y.z is the version of Cordova that is bundled with the CLI. We all know
> this.
>
> ---
> A.B.C
> ---
>
> a.b.c is the package (semver) version of the cordova-cli node library.
> Imagine
> that the cordova-cli could support any version of Cordova, then a.b.c would
> be
> the sole version used by the npm package; similar to any other npm package.
>
> This version should always go up.
>
> ---
> PROBLEM
> ---
>
> The problem is that the cordova-cli is resetting a.b.c each time it
> increments
> x.y.z. For projects that use the node interface of the cordova-cli, this is
> a
> problem.
>
> a.b.c describes changes to the node programmatic interface, just like
> any other good node project published to npm. By resetting it, we confuse
> and hurt developers who depend on the API because they don't know what
> has changed in the node API.
>
> ---
> BAD EXAMPLE (HOW IT IS TODAY)
> ---
>
> cordova@3.1.0-0.1.0 - first release
> cordova@3.1.0-0.2.0 - minor node api fix
> cordova@3.2.0-0.1.0 - what!? Why did the node version reset to 0.1.0?
> cordova@3.2.0-0.2.0 - minor node api fix
> cordova@3.3.0-0.1.0 - what!? Node API users must manually discover what
> changed
>
> ---
> GOOD EXAMPLE
> ---
>
> cordova@3.1.0@0.1.0 - first release
> cordova@3.1.0@0.1.1 - patch to node package (no node api change)
> cordova@3.1.0@0.2.0 - minor to node package (backwards compatible api
> change)
> cordova@3.2.0@0.2.0 - new cordova release; no node package changes
> cordova@3.2.0@0.2.1 - patch to node package
> cordova@3.3.0@0.2.2 - new cordova release; patch to node package
> cordova@3.3.0@0.3.0 - minor to node package
> cordova@3.3.0@1.0.0 - major to node package (non-backwards compatible api
> change)
> cordova@3.4.0@1.1.0 - new cordova release; minor to node package
> cordova@3.4.0@1.1.1 - patch to node package
>
> I hope this helps to improve the cordova-cli versioning habit.
>
> Cheers!
> Michael
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message