diff --git a/fdroid-sync.py b/fdroid-sync.py index fab33d6..2e7c2e6 100755 --- a/fdroid-sync.py +++ b/fdroid-sync.py @@ -282,11 +282,17 @@ _listing_done = {} def sync_listing(app, cfg, tag, apk: Path, locale): """Refresh metadata// from the app repo. True if it changed. - Refetched on every run rather than only when the release moves, so a - description or screenshot corrected upstream without a new release still - lands here. Within a run it is done once per tag: the later passes exist to - notice a *new* release, and repeating the fetch and the APK icon parse for - a tag already handled would be pure waste. + Read from the source archive at the *released tag*, not from the default + branch, so the listing always describes the build it ships with. The + consequence is worth stating plainly: correcting a typo in + full_description.txt on main changes nothing here. It takes a new release, + or moving the tag. + + Refetched on every run even when the release has not moved, so a tag that + was moved in place is still picked up, and so a listing lost to a failed + run repairs itself. Within a single run it is done once per tag: the later + passes exist to notice a *new* release, and repeating the fetch and the APK + icon parse for a tag already handled would be pure waste. """ if _listing_done.get(app["id"]) == tag: return False