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
[email protected] (note the @), does that resolve the issue?  Clever.

-Michal


On Thu, Apr 10, 2014 at 2:00 PM, Michael Brooks <[email protected]>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
> ---
>
> [email protected]
>
> ---
> 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)
> ---
>
> [email protected] - first release
> [email protected] - minor node api fix
> [email protected] - what!? Why did the node version reset to 0.1.0?
> [email protected] - minor node api fix
> [email protected] - what!? Node API users must manually discover what
> changed
>
> ---
> GOOD EXAMPLE
> ---
>
> [email protected]@0.1.0 - first release
> [email protected]@0.1.1 - patch to node package (no node api change)
> [email protected]@0.2.0 - minor to node package (backwards compatible api
> change)
> [email protected]@0.2.0 - new cordova release; no node package changes
> [email protected]@0.2.1 - patch to node package
> [email protected]@0.2.2 - new cordova release; patch to node package
> [email protected]@0.3.0 - minor to node package
> [email protected]@1.0.0 - major to node package (non-backwards compatible api
> change)
> [email protected]@1.1.0 - new cordova release; minor to node package
> [email protected]@1.1.1 - patch to node package
>
> I hope this helps to improve the cordova-cli versioning habit.
>
> Cheers!
> Michael
>

Reply via email to