I think we have unintentionally shot ourselves in the foot.

While trying to "npm publish" the updated 3.6.0 rc snapshots of 
android/amazon-fireos/windows/wp8, npm is rejecting it with:

    npm ERR! Error: forbidden cannot modify pre-existing version: 3.6.0

When I do an "npm info cordova-android", it already knows the 3.6.0 version 
(because it parsed it from first rc's package.json), even though the "latest" 
tag points at 3.5.1 and the "rc" tag points at 3.6.0.

I found the following items:

https://github.com/npm/npm-registry-couchapp/issues/148

...if you publish foo@1.2.3, you can still un-publish foo@1.2.3. But then, you 
will not be able to publish something else to that same package identifier. Not 
now, not never. Deleting documents entirely will be forbidden... 
If the bits are gone, ok, it's an error, you notice and deal with it. But if 
the bits are changed, then this can be really hazardous.

https://www.npmjs.org/doc/cli/npm-publish.html

Fails if the package name and version combination already exists in the 
registry. Once a package is published with a given name and version, that 
specific name and version combination can never be used again, even if it is 
removed with npm-unpublish(1).

So we can not publish to npm the updates for android/amazon-fireos/windows/wp8 
as they currently exist.

One idea would be to bump the version of android/amazon-fireos/windows/wp8 to 
3.6.1, both in dist.a.o and in npm. And we could leave all the other 
platforms/tools at 3.6.0. Except that we would also need to bump those 
references in cordova-lib/cordova-lib/src/platforms.js, and then bump the 
reference in cordova-cli to use this newer cordova-lib. Not pretty, but it 
should work technically. Sigh.

Other ideas?

On Sep 2, 2014, at 1:26 PM, Steven Gill <stevengil...@gmail.com> wrote:

> Actually, I like Carlos suggestion.
> 
> We have already been publishing to npm under the RC tag for testing (not
> releasing to public but just for dev testing).
> 
> The last few releases you could go npm install cordova@rc and that would
> download the RC version of cordova that we were voting on.
> 
> I went ahead and published all of the platforms + lib + plugman + js
> (everything we are voting on) to npm under an rc tag. So npm install
> cordova-android@rc would grab version 3.6.0.
> 
> The easiest way to test is to now go npm install cordova@rc. No need to
> --usegit anymore.
> 
> The --usegit method would require you to checkout the tags in cordova-lib,
> cordova-js, npm link them, go to cli, npm link them, etc.
> 
> -Steve

Reply via email to