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
Some issues have already been raised, and fixes implemented to deal with some of these issue,
Solution requirements
For all of the components included in this project:
- the need for an update is detected automatically;
- the new component can be tested before the repository code is changed to use the updated component;
- 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
- 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 to version '.
- 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.
- The issue will be closed, once a monthly build run is completed that includes the updated components.
Problem
The old model of an automatic updater:
masterbranch ;.version_codeof the component.This is no longer appropriate because some components
git-lfs(see microG Services v0.3.10 is over 100 MB and it will be rejected by GitHub #53 )Some issues have already been raised, and fixes implemented to deal with some of these issue,
masteruntil they had been checked / testedvendorsetup.shscript, which, for the microG components, pulls the version of the component specified in.version_codedirectly from the component's githubreleasespage, at build time.Solution requirements
For all of the components included in this project:
Solution implementation
.version_codefile for the component, causing thevendorsetup.shscript to download the updated component at build time.