Currently, the JSON index of our archive repo is 22M+ and growing. Trying to parse it with the
php-fdroid library requires to increase the per-process
memory-limit to 256M (with the default 128M it leads to a “memory exhaustion” exception). While archive holds many useful packages, many others could be considered obsolete – only interesting “for historical reasons”.
Hence I’d suggest a “cleanup” here, moving those “historical” parts to a more-or-less static place. I’m aware this isn’t a “quick task” and will rather be a process which, once established, would take place e.g. once per year. But let me give some details (“brain-storming”):
NoSourceSinceapps which are no longer working – eg because the service they were intended for no longer exists.
- move: older APKs which no longer work for similar reasons (eg API changes of the given services; this would eg apply to apps like NewPipe)
- keep: the latest build per minSDK which is still working. These might be of interest for users stuck on older Android versions. Move the others when older than, say, 2 years (this could also depend on the amount of builds existing for a given app)
keep: maybe latest N builds per app (similar to
What I hope to gain by this?
- minor improvement: faster index builds. They don’t run that often, hence minor.
- major: decreasing update times on the clients, as well as the subsequent package-parsing, including less resource consumption. Especially low-end devices will profit from this – as well as users on bad connections or with limited data plans.
- medium: loads on the server due to decreased download size of the archive index
Those “old APKs” could be moved to a separate repo we set up. Where entire (retired) apps are moved, all their metadata could move along. Where apps remain in the current repo/archive, their metadata could be synced (one-way; which can be automated).
The most difficult/“workloaded” task here will be identification of such APKs. It won’t be possible “just on a weekend”, so this would rather be a continuous process. Users could help with identification, reporting such apps when encountering them (not only from archive, by the way).
Ideas for the name of the repo-to-be-created: “F-Droid Graveyard” / “F-Droid Retired” / “F-Droid RestingPlace” / “F-Droid Historical”