I am relying on the deterministic and immutable and forward version only change behavior of releases.json
.
I found the change made on or about 26 Aug 2022 to https://updates.vmsproxy.com/digitalwatchdog/releases.json
broke continuity:
- Version 4.2 was re-introduced after having been removed on or about 12 Aug 2022.
- Version 5 was downgraded from
5.0.0.35271
to 5.0.0.35138
, and the release_date
set back to null
.
This makes it impossible to have durable and deterministic version updates.
If the releases.json
files are to be used for deterministic version management, I'd expect the following behaviors:
- Durable, i.e. no need to maintain history, the versions entries need to be fully inclusive at all times.
- Forward moving only, i.e. version numbers should never become smaller.
- Complete, all versions should be included, e.g. 4.2 was removed and then re-added, this should not happen.
- Release state should move forward only, e.g. the same version should not have
release_date
or release_delivery_days
should not revert to null
for the same version.
Here is the short history I have tacked for e.g. DWSpectrum showing a regression in expected versions:
1 Aug 2022:
{
"packages_urls": [
"https://updates.networkoptix.com/digitalwatchdog",
"http://beta.networkoptix.com/beta-builds/digitalwatchdog"
],
"releases": [
{
"product": "vms",
"version": "5.0.0.35271",
"protocol_version": 5002,
"publication_type": "release",
"release_date": null,
"release_delivery_days": null
},
{
"product": "vms",
"version": "4.2.0.32842",
"protocol_version": 4201,
"publication_type": "release",
"release_date": "1627938214069",
"release_delivery_days": 30
}
]
}
12 Aug 2022 (4.2 was removed, 5.0 was released, i.e release_date
no longer null
):
{
"packages_urls": [
"https://updates.networkoptix.com/digitalwatchdog",
"http://beta.networkoptix.com/beta-builds/digitalwatchdog"
],
"releases": [
{
"product": "vms",
"version": "5.0.0.35271",
"protocol_version": 5002,
"publication_type": "release",
"release_date": "1660167578448",
"release_delivery_days": null
}
]
}
26 Aug 2022 (4.2 was reintroduced, 5.0 was downgraded from 5.0.0.35271
to 5.0.0.35138
)
{
"packages_urls": [
"https://updates.networkoptix.com/digitalwatchdog",
"http://beta.networkoptix.com/beta-builds/digitalwatchdog"
],
"releases": [
{
"product": "vms",
"version": "5.0.0.35138",
"protocol_version": 5002,
"publication_type": "release",
"release_date": null,
"release_delivery_days": null
},
{
"product": "vms",
"version": "4.2.0.32842",
"protocol_version": 4201,
"publication_type": "release",
"release_date": "1627938214069",
"release_delivery_days": 30
}
]
}