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?