Migrate to Github releases - #619
ExtremeFiretop wants to merge 8 commits into
Conversation
- publish dedicated install and update script assets with each release - use version-pinned GitHub Release assets for stable script downloads - keep development builds on raw GitHub - validate generated release assets before publishing - preserve install fallback to the repository source when a release asset is unavailable - update release workflow and documentation for the new distribution method
Update comment notes
Update notes
Interesting approach. I wonder how reliable or representative (of the actual number of users) these counters would be, given that in your notes you stated that this mechanism doesn't distinguish unique users or routers. IOW, it doesn't keep an anonymized record of the caller's IP address, so the counter is incremented even when the very same user does a re-install, a force update, or perhaps manual downloads of the same release version. I suppose the counters could provide a rough estimate of the user base, although I'm not sure how useful that is, IMO. In any case, I imagine you're still testing the concept at this point to check the results. Wishing you good luck, bud!! |
To what I can tell from the firmware "release" I did with the nvram bug fix. Very accurate. Delayed, but accurate. I can manually test from that asset I posted, and everytime it takes a few minutes but the download count increases. And while your correct it's not perfect. The goal is to get numbers without putting gateways in front of the script that could compromise a users feeling of privacy. The conclusion of that thread is basically not everyone likes scarf but there was no general / universal playbook to follow that the community landed on. As you can tell by the test asset I published, the stats are basic, rudimentary numbers. They don't give me IPs. They don't give me location, they don't give me anything else other than "downloaded x times" Yes the numbers could get fuzzy with multiple reinstalls or forced updates, but let's be honest that isn't much, I doubt it would influence numbers much. Actually when we start seeing a pattern, if one release has many new installs for example, it could mean a very popular release that got lots of new users, or lots of existing users with issues that had to reinstall from scratch. At least it's data.
Exactly. The goal is not to get perfect exact numbers. The goal is to see any patterns over time. When I noticed I could see download counts on the release I did for that nvram bug: My brain started turning... What if instead of downloading MerlinAU directly using the raw GitHub URL. I publish the source code as a release, and make the scripts download the published release. Then I'll get download counts per release... Then I thought... If I split the URLs between new installs and updates. I would be able to say "version 1.7.0 had approximately x new installs, and x number of updates" and see the progression with each new release.
Yeah I'm still testing, I just wanted to get your opinion on this solution before spending more time on it. So far I really tested the workflow more than anything. And that a real GitHub prerelease was created successfully and confirmed that GitHub keeps independent download counters for the two assets. And the two assets correctly contained: readonly RELEASE_ASSET_KIND="install" Things I haven't tested yet but plan too are: Router runtime testing of the actual self-update path... |
|
This is good to go :) If you need me to recreate the test assets for you to test, let me know! |
|
And Viktor also implemented something similar for his brand new IOCMON: I gave him the idea, but the better metrics through the .py script is his implementation he tossed back our way in return ;) |
Hey @Martinski4GitHub
Any thoughts on this?
This will allow us to get download stats directly from Github for new installs and existing updates for each release going forwards, without using an external provider like Scarf Gateway in front of GitHub downloads and without extra server/hosting infrastructure like TLC has for Diversion and amtm.
Example release with example download stats found here:
https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/releases/tag/release-count-test
I had also prepared an update for amtm .mod file:
decoderman/amtm@bae074a