Hi,

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.

Best,
Paul


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to