Subject: GNU ELPA: Stale badges in GitHub cache
From: Stefan Kangas <[email-masked]>
To: [email-masked]
Date: Sun, 30 Oct 2022 07:59:42 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Severity: minor

I often see stale badges in the GitHub cache, sometimes for several
days.  I think we should use a "Cache-Control" header when serving them:

    $ curl -i https://elpa.gnu.org/packages/url-scgi.svg
    HTTP/1.1 200 OK
    Date: Sun, 30 Oct 2022 14:45:24 GMT
    Server: Apache/2.4.54 (Debian)
    Last-Modified: Sat, 29 Oct 2022 21:04:31 GMT
    ETag: "4c2-5ec32b879e704"
    Accept-Ranges: bytes
    Content-Length: 1218
    Content-Type: image/svg+xml
    [...]

Here, we should also have:

    Cache-Control: max-age=21600, must-revalidate

This should ensure that they are only ever cached for 12 hours, which
roughly coincides with how often we update the archive.

Probably something like this in .htaccess should suffice:

    <FilesMatch ".+\.svg$">
        Header unset Cache-Control
        Header set Cache-Control "max-age=21600, must-revalidate"
    </FilesMatch>

For more, see:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
https://httpd.apache.org/docs/2.4/mod/core.html#filesmatch