ITADN

[EPIC] Fix how we handle updates to components

#76Openpetefoth 创建于 2026-01-25
P
petefothcommented
Problem - The old model of an automatic updater: - detected an updated component.; - Downloaded the update; - Committed it directly to the `master` branch ; - Updated the `.version_code` of the component. This is no longer appropriate because some components - are too big to be stored in git, even using `git-lfs` (see #53 ) - need additional changes - e.g. to permissions files - in order to work (see #36 ) Some issues have already been raised, and fixes implemented to deal with some of these issue, - [Change updater action to not commit direct to master branch #48 ](#48) was raised, and (partially fixed) to stop updates being committed to `master` until they had been checked / tested - [Get microg GmsCore & FakeStore direct from GitHub not from this repo #65 ](#65) introduced the `vendorsetup.sh` script, which, for the microG components, pulls the version of the component specified in `.version_code` directly from the component's github `releases` page, at build time. Solution requirements - For all of the components included in this project: 1. the need for an update is detected automatically; 2. the new component can be tested ***before*** the repository code is changed to use the updated component; 3. the number of times a component is downloaded is minimised: github imposes bandwidth limits on projects it hosts (including the projects / components we use), and our use of those components should minimise how much of that bandwith we use. Solution implementation - 1. A 'Check for Updates` action checks whether new versions are available. If they are, for each compnent with an update, it creates an ***issue*** with the title 'Update <component-name> to version <version-code>'. 2. A project maintainer will 'fix' the issue, by trying the new component: if the new component is OK, the maintainer will commit a change to the `.version_code` file for the component, causing the `vendorsetup.sh` script to download the updated component at build time. 3. The issue will be closed, once a monthly build run is completed that includes the updated components.
2 条评论