Closed nylen closed 5 years ago
That was a first PoC; now updated:
Step 1
======
1.0.0-alpha1+build.20181021
1.0.0-alpha1
Step 2
======
1.0.0-alpha1+build.20181021
1.0.0-alpha2
1.0.0-alpha1 => 1.0.0-alpha2
Step 3
======
1.0.0-alpha1+build.20181021
1.0.0-beta1
1.0.0-alpha2 => 1.0.0-beta1
1.0.0-alpha1 => 1.0.0-beta1
Step 4
======
1.0.0-beta1
1.0.0-beta2+build.20181028
1.0.0-alpha2 => 1.0.0-beta1
1.0.0-alpha1 => 1.0.0-beta1
1.0.0-alpha1+build.20181021 => 1.0.0-beta2+build.20181028
1.0.0-alpha1+build.20181020 => 1.0.0-beta2+build.20181028
Step 5
======
1.0.0-beta2+build.20181030
1.0.0-beta2
1.0.0-beta1 => 1.0.0-beta2
1.0.0-alpha2 => 1.0.0-beta2
1.0.0-alpha1 => 1.0.0-beta2
1.0.0-alpha1+build.20181021 => 1.0.0-beta2+build.20181030
1.0.0-alpha1+build.20181020 => 1.0.0-beta2+build.20181030
Step 6
======
1.0.0+build.20181031
1.0.0
1.0.0-beta2 => 1.0.0
1.0.0-beta1 => 1.0.0
1.0.0-alpha2 => 1.0.0
1.0.0-alpha1 => 1.0.0
1.0.0-beta2+build.20181030 => 1.0.0+build.20181031
1.0.0-beta2+build.20181028 => 1.0.0+build.20181031
1.0.0-alpha1+build.20181021 => 1.0.0+build.20181031
1.0.0-alpha1+build.20181020 => 1.0.0+build.20181031
Step 7
======
1.0.0
1.1.0-alpha1+build.20181101
1.1.0-alpha1
1.0.0-beta2 => 1.0.0
1.0.0-beta1 => 1.0.0
1.0.0-alpha2 => 1.0.0
1.0.0-alpha1 => 1.0.0
1.0.0-beta2+build.20181030 => 1.1.0-alpha1+build.20181101
1.0.0-beta2+build.20181028 => 1.1.0-alpha1+build.20181101
1.0.0-alpha1+build.20181021 => 1.1.0-alpha1+build.20181101
1.0.0-alpha1+build.20181020 => 1.1.0-alpha1+build.20181101
1.0.0+build.20181031 => 1.1.0-alpha1+build.20181101
Each step is a point in time, and each line without a =>
is an actual lump of json.
The major change in logic is that a prerelease should update to the next full release, not the latest prerelease.
This is implemented in the latest commits, and now live at https://api-v1.classicpress.net/upgrade/. Closing; we can track specific follow-up tasks in new issues.
Here is the basic idea:
1.2.3 => 2.0.0
)Open question: this means that all auto-updates will eventually funnel towards final release builds and stay there. Is this desirable? We may need an option for whether to stay on the same "release channel" (nightly, alpha, beta, final) or not (or the ability to "switch channels").
From @invisnet here are some possible auto-update
before => after
versions (lines without=>
mean "no change"):