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 [email protected], you can still un-publish [email protected]. 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 <[email protected]> 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