For linking to the latest release artifacts on our webpage, we currently use the closer.lua script described here:

  https://infra.apache.org/release-download-pages.html

For example, to download the latest source release, our website links here:


https://www.apache.org/dyn/closer.lua/daffodil/3.4.0/src/apache-daffodil-3.4.0-src.zip

This goes to an HTML page listing mirrors and verification instructions.

Unfortunately, this means that if a user just uses wget/curl to download the link, they will just get an HTML page instead of the actual zip, which can lead to confusion when installation/checksum/gpg verification fails. I know I've done this in the past, and just supported a user that ran into this as well.

And I think linking to this HTML page doesn't really provide much benefit anymore. It used to list a number of alternative mirrors, but relatively recently it switched to only listing dlcdn.apache.org, so the CDN automatically determines the best mirror. Additionally, our download page already mentions that downloads should be verified, and links to instructions on how to do so. So this page doesn't really provide any new information.

According to first link, we still must use the closer.lua script, but we can add the "action=download" query parameter to automatically redirect to download the file. So for example, the above link would become:


https://www.apache.org/dyn/closer.lua/daffodil/3.4.0/src/apache-daffodil-3.4.0-src.zip?action=download

An added benefit to this is closer.lua supports archives, so we would no longer need to change the links of previous releases to directly point to the archive URL. For example, this link to an archived release works fine:


https://www.apache.org/dyn/closer.lua/daffodil/3.3.0/src/apache-daffodil-3.3.0-src.zip?action=download

One downside I see to this is if you wget this URL, the resulting filename includes the query parameter. It's a bit unhelpful since a user would likely need to remove it, but at least they get what they intended. There might also be a wget option to fix this, or if we do go this route, maybe we can suggest to infra a new closer.lua script that has the same behavior but with action=download as the default (e.d. download.lua).

Thoughts?

Reply via email to