[OpenWrt-Devel] RFC: versions.json

Paul Spooren mail at aparcar.org
Mon Mar 2 23:49:04 EST 2020


> Thinking on which info the client side would need, I would remove the 
> minors info if we can just skip to latest.
Yes, if we always skip to the latest anyway the "latest" key could 
contain that version and the rest is simply interpolated. When wanting 
to cover release candidates we could use Petrs "candidate" tag, which is 
empty if no "prerelease" is available.
> And, It's missing a changelog link. Also, each release can have its 
> own info.json with more info.
I would not store a change log link in a versions.json file but an 
additional info.json might makes sense.
> How would it deal with devices that cannot be upgrades (like the past 
> case of 4/32)? Or will it bother the user forever with a nonsense 
> upgrade suggestion?

The client implementation could make an additional check like reading 
<server>/<version>/<target>/profiles.json and see if the profile is 
still supported in the new version. If not, it could point to openwrt.org.

If you permanently want to ignore new upgrades, disable the upgrade check.

> How would it deal with devices target or subtarget changes (like 
> ar71xx -> ath79, or generic -> tiny) or this is more a "go to 
> OpenWrt.org" instead of "click here to download"? And aborted releases 
> that brick devices until a new release is ready, specially when they 
> are specific to a device?
I'd say target changes are too risky to automate.
> The version.json would speed up upgrade rollout. It would also 
> increase the impact of a bugged upgrade. I would be nice to have 
> something like a staged release process, even just for suggesting them 
> to the user. We could create some form of machine id mixing device 
> mac, urandom seed, board id and the new release version and use it for 
> selecting a device for a stage. It could be a client-side-code only 
> strategy but versions.json could inform the proportion of each stage.
I'm against this fragmented rollout based on some random value. Either 
the user makes a conscious decision to install freshly released firmware 
or not.
> It would also be interesting to have some form of automatic or manual 
> success feedback like "Notify OpenWrt if your upgrade worked". This 
> way, a backend could be notified before the upgrade and expect a 
> response afterwards.

Yes, long term we could try to create a community of device testers 
where whoever owns the device can perform a list of tests and set a 
"stable" bit in some "to be designed" file.


openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list