If I would try the following command in master branch of
cordova-common (just an experiment):

    npm install cordova-common@^3.0.0-nightly

I would see the following change in package.json:

   "dependencies": {
-    "cordova-common": "^2.2.0",
+    "cordova-common": "^3.0.0-nightly.2018.9.13.9c6cda3d",

Next experiment (again just an experiment): remove generated
node_modules and package-lock.json artifacts (package-lock.json is not
yet committed in cordova-common and update package.json as follows:

diff --git a/package.json b/package.json
index 9f3bdc23..e488c149 100644
--- a/package.json
+++ b/package.json
@@ -19,3 +19,3 @@
   "dependencies": {
-    "cordova-common": "^2.2.0",
+    "cordova-common": "^3.0.0-nightly",
     "cordova-create": "^1.1.0",

then after npm install I get the following result from grep version
node_modules/cordova-common/package.json:

  "version": "3.0.0-nightly.2018.9.13.9c6cda3d"

One more experiment: if I would try the following change to package.json:

diff --git a/package.json b/package.json
index 9f3bdc23..01c549dc 100644
--- a/package.json
+++ b/package.json
@@ -19,3 +19,3 @@
   "dependencies": {
-    "cordova-common": "^2.2.0",
+    "cordova-common": "^2.2.1-nightly",
     "cordova-create": "^1.1.0",

then do clean npm install (node_modules and package-lock.json
artifacts removed) I get the following result from grep version
node_modules/cordova-common/package.json:

  "version": "2.2.5"

These results indicate to me that depending on "-rc" version with
caret (^) should do what we want: use latest "-rc" version available
until we publish the major release, and then use the major release.

FYI this seems to be documented in
https://github.com/npm/node-semver#prerelease-tags which is linked by
https://semver.npmjs.com/.

On Thu, Sep 13, 2018 at 9:48 AM Oliver Salzburg
<oliver.salzb...@gmail.com> wrote:
>
> To my understanding, any suffixed version is never matched by a range.
> They have to be targeted explicitly.
>
> This can be easily observed at https://semver.npmjs.com/ by entering no
> range or *
>
> On 2018-09-13 12:53, Chris Brody wrote:
> > I would really favor the idea of publishing -rc suffixed versions to
> > resolve the dilemma discussed here. I would favor starting with something
> > like -rc.01 which could gracefully handle up to 99 rc versions.
> >
> > Assuming that -rc suffixed versions should be considered stable enough for
> > master then using caret (^) in dependencies means that we should be able to
> > do this just once per Cordova package in a major release.
> >
> > On Thu, Sep 13, 2018, 6:08 AM Oliver Salzburg <oliver.salzb...@gmail.com>
> > wrote:
> >
> >> Alright, as long as we're talking about a manual process to resolve this
> >> conflict temporarily, I see it as a valid suggestion.
> >> However, I would still prefer if a -rc.0 suffixed version was published
> >> and then depended upon, for clarity.
> >>
> >> On 2018-09-13 11:49, Jan Piotrowski wrote:
> >>> Chris didn't really mention the actual problem he tried to solve with
> >>> this PR in his initial email, and half the discussion here was about
> >>> something totally different.
> >>>
> >>> My understanding of what he did was that he tried to find a way to
> >>> test a new version of corova-create that requires new versions of
> >>> cordova-fetch and cordova-common, which have necessary updates in
> >>> master but that have not been released to npm yet. Setting the
> >>> dependencies to nightly releases theoretically makes this possible.
> >>>
> >>> An alternative solution of course is to create releases for
> >>> cordova-fetch and cordova-common first, then update cordova-create to
> >>> use those.
> >>>
> >>> Stumbling block here is that Cordova package releases seem to be a big
> >>> deal, historically, and quite some process to follow.
> >>> If we find a way to make cutting a release of a library a quick and
> >>> simple thing, this should be much less of an issue. Correct?
> >>>
> >>> -J
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
> >> For additional commands, e-mail: dev-h...@cordova.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
> For additional commands, e-mail: dev-h...@cordova.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org

Reply via email to