Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use permanent URL instead of latest #61

Open
FranklinYu opened this issue May 10, 2020 · 7 comments
Open

Use permanent URL instead of latest #61

FranklinYu opened this issue May 10, 2020 · 7 comments

Comments

@FranklinYu
Copy link

Currently both 32-bit and 64-bit templates are referring to the “latest” ISO of current release. For example, the 64-bit one refers to

https://channels.nixos.org/nixos-20.03/latest-nixos-minimal-x86_64-linux.iso

This has the problem that there will be a gap between a new release in the channel and an update in this repository. During this gap, the checksum would fail.

I hereby propose to change the link to one with exact version number, such as

https://releases.nixos.org/nixos/20.03/nixos-20.03.1795.d6c1b566b77/nixos-minimal-20.03.1795.d6c1b566b77-x86_64-linux.iso

for 64-bit. This doesn’t remove the gap, but it allows users to keep using the old (albeit outdated) version during the gap. This change isn’t expected to add much maintenance burden, since the checksum would need an update anyway.

I can certainly make a PR for this, but since this affects maintenance update, I think it’s better to discuss in advance.

Note: the version number 20.03.1795.d6c1b566b77 can be extracted into Packer variable.

@FranklinYu
Copy link
Author

FranklinYu commented May 12, 2020

It’s easy to find the ISO URLs, but I would also like to update the Ruby script iso_urls_update.rb. It’s easy to find the full version given the channel (20.03 currently), but I’m hesitating whether to automate finding the latest stable channel (LSC).

  1. My way of finding LSC is less “natural”: by looking at the unstable channel, and deduce back a channel.
  2. Maintainers may want to create a new branch for the old channel, so manual work is required anyway.

In conclusion I propose to keep the channel hard-coded in the script, and update it twice a year.

By the way, I’m going to hard-code the URL patterns. Is it acceptable? It could be less adaptive than current solution of HTML look up; note that current URL pattern lasted only for a year (since 145f7ce).

I would also like to know ideas from @cdituri as author of #58.

@nrdsp
Copy link

nrdsp commented Jun 5, 2020

The checksum is failing at the moment btw.

@cdituri
Copy link
Contributor

cdituri commented Jun 5, 2020

@nrdsp thank you for reporting the checksum failure.

@FranklinYu apologies for any delay. COVID certainly caused an impact on my side; and I would safely venture everyone else as well. I see you tagged me in your comment a while back. Will carve out some time this weekend to circle back and gather thoughts. Thank you for submitting this issue.

@cdituri
Copy link
Contributor

cdituri commented Jun 6, 2020

@FranklinYu makes sense what you propose, least from my perspective. The only gotcha here looks to be the choice of urls.

channels.nixos.org and releases.nixos.org are both backed by s3 bucket. If you hit these directly, for example curl -s 'https://releases.nixos.org/?prefix=nixos/', you'll see that unevaluated javascript is returned.

Thus if nix-community/nixbox chooses to hard-code the channel, I'd propose we walk the latest release using the following url: https://nix-releases.s3.amazonaws.com/?delimiter=/&prefix=nixos/20.03/. It returns structured XML along with a LastModified, see below.

Open to all thoughts, opinions, and suggestions.


curl -s 'https://nix-releases.s3.amazonaws.com/?delimiter=/&prefix=nixos/20.03/' | xmllint --format -
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>nix-releases</Name>
  <Prefix>nixos/20.03/</Prefix>
  <Marker/>
  <MaxKeys>1000</MaxKeys>
  <Delimiter>/</Delimiter>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1405.a17e021b948</Key>
    <LastModified>2020-04-19T22:02:22.000Z</LastModified>
    <ETag>"555a156b126ceb66f777de2b33446736"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1414.e03eeffd616</Key>
    <LastModified>2020-04-20T11:53:12.000Z</LastModified>
    <ETag>"ae04e8db7d8d45e058c0ed4f95c5f19d"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1418.5272327b81e</Key>
    <LastModified>2020-04-20T21:10:55.000Z</LastModified>
    <ETag>"fe07e5628aa9a82f9cd7e1964804dd5d"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1422.1e90c46c2d9</Key>
    <LastModified>2020-04-21T16:43:04.000Z</LastModified>
    <ETag>"fe951ddceb7550654e7e451c18ac48e1"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1438.63284ecf6fb</Key>
    <LastModified>2020-04-22T20:50:23.000Z</LastModified>
    <ETag>"d7ad2f22383b37d25c3409f63ccf9c41"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1445.95b9c99f6d0</Key>
    <LastModified>2020-04-22T22:46:00.000Z</LastModified>
    <ETag>"f40f71f32fb512d7c4856b999ed24946"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1574.4b6bfecc0bd</Key>
    <LastModified>2020-04-26T15:26:13.000Z</LastModified>
    <ETag>"4ba65c0991c3f1554f77df074736addc"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1577.74a80c5a9ab</Key>
    <LastModified>2020-04-26T17:55:42.000Z</LastModified>
    <ETag>"d09eb114cc5940cd9e9e8036a3a84c59"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1589.9137f05564e</Key>
    <LastModified>2020-04-27T09:27:12.000Z</LastModified>
    <ETag>"b757371f09bc04b722b3481c41eccfae"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1596.2faa76db27c</Key>
    <LastModified>2020-04-28T03:15:22.000Z</LastModified>
    <ETag>"c9160dc84cdde12558a74784b7997ac4"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1602.365ca111211</Key>
    <LastModified>2020-04-29T01:10:25.000Z</LastModified>
    <ETag>"02dcdfeb9fa1fa7a39ce3a35145b66a3"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1619.ab3adfe1c76</Key>
    <LastModified>2020-04-29T06:52:38.000Z</LastModified>
    <ETag>"0ceeea0e17d6d35f34a6beb72dbf7ec4"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1739.4d373182597</Key>
    <LastModified>2020-05-06T08:12:51.000Z</LastModified>
    <ETag>"f767e2877b15c41859515d9343fe35e3"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1754.b0e3df2f843</Key>
    <LastModified>2020-05-07T09:38:41.000Z</LastModified>
    <ETag>"c1eafefa9199df3a1ea086ac2c98a552"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1782.210d8624ac4</Key>
    <LastModified>2020-05-08T16:52:43.000Z</LastModified>
    <ETag>"70aae143bcdd981894781b2e417f9091"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1791.6958957214b</Key>
    <LastModified>2020-05-09T00:11:26.000Z</LastModified>
    <ETag>"0a288f0bbeb0a0ebbdefa1181340ddb9"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1795.d6c1b566b77</Key>
    <LastModified>2020-05-09T11:44:24.000Z</LastModified>
    <ETag>"5986e323f8e07abda59fe08833041862"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1812.14dd961b8d5</Key>
    <LastModified>2020-05-10T15:52:06.000Z</LastModified>
    <ETag>"537492c82b4a9fa563291834ccaa65fb"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1822.5adf2a6c116</Key>
    <LastModified>2020-05-11T13:25:28.000Z</LastModified>
    <ETag>"4f1a6feba24e2355114d7336f4f6148e"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1844.a4f8cec54dc</Key>
    <LastModified>2020-05-14T08:44:29.000Z</LastModified>
    <ETag>"1942c9d502360dc81ce086185b2a4385"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1853.7829e5791ba</Key>
    <LastModified>2020-05-14T19:56:37.000Z</LastModified>
    <ETag>"7e75896fb5367c538b3c2c2e1ad93129"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1866.a7c70f2e10b</Key>
    <LastModified>2020-05-15T11:47:37.000Z</LastModified>
    <ETag>"2be039a694aaa391902716b07e67112a"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1879.91cdcf31357</Key>
    <LastModified>2020-05-16T07:23:34.000Z</LastModified>
    <ETag>"c50f540e62d122c71ca781bad7f0097b"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1885.885a6658073</Key>
    <LastModified>2020-05-16T23:53:08.000Z</LastModified>
    <ETag>"244ef7af6462fd32982e9f3971be6ae9"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1896.025deb80b24</Key>
    <LastModified>2020-05-17T11:52:09.000Z</LastModified>
    <ETag>"885e8fa7906afd0e120f4fb9c8983a0a"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1917.82b5f87fcc7</Key>
    <LastModified>2020-05-19T14:50:00.000Z</LastModified>
    <ETag>"4d05f4f15f7d5c1265ce8208a8747ea1"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1926.f45ccd9d20b</Key>
    <LastModified>2020-05-20T17:52:20.000Z</LastModified>
    <ETag>"3464f770ea997f852224baab1e6dbe57"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1942.6d68b920eb2</Key>
    <LastModified>2020-05-22T01:58:29.000Z</LastModified>
    <ETag>"eb034899f79f83556fa8275d97ea520d"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1950.48723f48ab9</Key>
    <LastModified>2020-05-22T17:14:51.000Z</LastModified>
    <ETag>"63ed1a07ff9a6565a41bea7e4c6aaa03"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1996.fc60ed1fffb</Key>
    <LastModified>2020-05-28T17:18:51.000Z</LastModified>
    <ETag>"be47e8e4c8ac41b03ac1fef6ddc28a5b"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.1998.93b68c7cc5a</Key>
    <LastModified>2020-05-28T19:18:40.000Z</LastModified>
    <ETag>"2ea1098591fab0a435784ac16adbd8bf"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.2012.71c059d12a8</Key>
    <LastModified>2020-05-29T02:50:02.000Z</LastModified>
    <ETag>"9bedbb3c7588e3a67943c820b9dadb1d"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.2013.e985ffea2d6</Key>
    <LastModified>2020-05-29T06:29:56.000Z</LastModified>
    <ETag>"a7d7cdc026b81ebd97bd0b688368e0f3"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.2015.e7752db2fb6</Key>
    <LastModified>2020-05-29T20:08:11.000Z</LastModified>
    <ETag>"0bed3325df536f1e11547c0736af66f1"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03.2059.05a32d8e771</Key>
    <LastModified>2020-06-04T07:28:13.000Z</LastModified>
    <ETag>"44f199c3f8d996b3ac61ab8859d09439"</ETag>
    <Size>3201</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta-410.67c24f6f8a7</Key>
    <LastModified>2020-02-25T11:42:22.000Z</LastModified>
    <ETag>"11b13ac256d690a4e0a10301ed8a3fe7"</ETag>
    <Size>2823</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta-436.43ab8e86ca6</Key>
    <LastModified>2020-03-03T10:05:30.000Z</LastModified>
    <ETag>"17e886b9ecb2db17e4f99122d167f436"</ETag>
    <Size>2823</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta-475.71be729a58e</Key>
    <LastModified>2020-02-20T11:23:38.000Z</LastModified>
    <ETag>"1f76d69c64aea9bcb804e6008a620780"</ETag>
    <Size>2823</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1010.5bf91db519c</Key>
    <LastModified>2020-04-04T01:45:15.000Z</LastModified>
    <ETag>"8606dd07aff91f96774478bc9fb5ca21"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1023.e89b1063fb5</Key>
    <LastModified>2020-04-04T07:27:36.000Z</LastModified>
    <ETag>"7c3c7272fd7e29dcb634d60c71df9876"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1064.4dc8447c55f</Key>
    <LastModified>2020-04-04T15:34:50.000Z</LastModified>
    <ETag>"6c5e9ffdcc93970a79942f48bbb670cd"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1083.7c9e1ecdf5a</Key>
    <LastModified>2020-04-05T17:55:37.000Z</LastModified>
    <ETag>"e6b3205671baece56c574b77d60413f8"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1085.182f229ba7c</Key>
    <LastModified>2020-04-05T22:07:53.000Z</LastModified>
    <ETag>"5b959cc5203dbca213c83ff974bf71cb"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1088.0bb35152be8</Key>
    <LastModified>2020-04-06T09:14:50.000Z</LastModified>
    <ETag>"4698022e0f37dc5a86b40a8519c60e97"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1155.29eddfc36d7</Key>
    <LastModified>2020-04-07T22:27:22.000Z</LastModified>
    <ETag>"2197f1cc3f7543285728714117b56f48"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1301.708cb6b307b</Key>
    <LastModified>2020-04-13T22:26:16.000Z</LastModified>
    <ETag>"470593605b15898cf53e3660047b74c7"</ETag>
    <Size>3263</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1320.9f0f06ac8be</Key>
    <LastModified>2020-04-14T22:52:24.000Z</LastModified>
    <ETag>"5e47e48530d8c220ddeb939b5cf08b31"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1324.21750051b26</Key>
    <LastModified>2020-04-15T21:24:16.000Z</LastModified>
    <ETag>"33f0b2e6be16189004af0420dfe06363"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1341.a438aed5a6c</Key>
    <LastModified>2020-04-16T04:09:31.000Z</LastModified>
    <ETag>"9199ae3dcee245065c717c75bd311f00"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1355.0f920b05cbc</Key>
    <LastModified>2020-04-17T09:13:02.000Z</LastModified>
    <ETag>"5fa8c58bc81421f19982e33ab16bc86c"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta1405.a17e021b948</Key>
    <LastModified>2020-04-19T06:29:05.000Z</LastModified>
    <ETag>"fb2d9d9d70e9d4d436cb150168681a37"</ETag>
    <Size>3264</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta216.d31e383c44e</Key>
    <LastModified>2020-02-22T17:30:08.000Z</LastModified>
    <ETag>"848d6737c92bded2609be3223553a4e7"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta219.153baa26740</Key>
    <LastModified>2020-02-23T13:41:11.000Z</LastModified>
    <ETag>"dc063b6fb916342ea24acb07b59bc6d1"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta248.04aca9ac24a</Key>
    <LastModified>2020-02-23T18:05:44.000Z</LastModified>
    <ETag>"9bac1e59d95049006b2084397de5b45c"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta258.68df00b0ba6</Key>
    <LastModified>2020-02-24T16:20:07.000Z</LastModified>
    <ETag>"e3a9c37999864a04978471f9fa6a058b"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta315.8d49ebf4888</Key>
    <LastModified>2020-02-27T04:08:13.000Z</LastModified>
    <ETag>"834d2d15ce0d56fbac46631fe12289c8"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta321.be346a1f4bd</Key>
    <LastModified>2020-02-27T05:37:47.000Z</LastModified>
    <ETag>"aa142d3dfcc36b34aad5c0cedae7aba0"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta322.f823335caa8</Key>
    <LastModified>2020-02-27T23:47:18.000Z</LastModified>
    <ETag>"35b2b63593cedec3aa093725152338b1"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta331.a2bb258c603</Key>
    <LastModified>2020-02-28T09:38:42.000Z</LastModified>
    <ETag>"a09d01f3099a702fea738dc7d1c4484f"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta335.89536cd763c</Key>
    <LastModified>2020-02-28T21:58:37.000Z</LastModified>
    <ETag>"755a2420a892649c0e2e61f2640f567a"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta358.4f8bc8e10bf</Key>
    <LastModified>2020-02-29T15:09:08.000Z</LastModified>
    <ETag>"b16e290c924abd4607b83f34e6cfab9f"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta377.ebc9620c3f6</Key>
    <LastModified>2020-03-02T00:28:04.000Z</LastModified>
    <ETag>"80dc77aa0160ab54ca9f4f03456ebcee"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta387.61cc1f0dc07</Key>
    <LastModified>2020-03-02T15:54:55.000Z</LastModified>
    <ETag>"f02f6caaa08932ad1122efc1a1f05e03"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta441.08bcfe14ae2</Key>
    <LastModified>2020-03-05T13:34:12.000Z</LastModified>
    <ETag>"170a689ec3b01049063430a7c23c0ff1"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta448.1f99fd2fdbe</Key>
    <LastModified>2020-03-06T07:03:58.000Z</LastModified>
    <ETag>"741d1544dac2d449ae09d2cc455b2f07"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta451.4707311e202</Key>
    <LastModified>2020-03-07T05:46:13.000Z</LastModified>
    <ETag>"9c0fc18aacbfc67fb9abfee3e833042c"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta482.b780aefc621</Key>
    <LastModified>2020-03-07T19:47:32.000Z</LastModified>
    <ETag>"9436b918e591e59811c4dc83011dc2eb"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta497.cbe553c988a</Key>
    <LastModified>2020-03-08T01:54:14.000Z</LastModified>
    <ETag>"ca351c03872bf874c6f6e3c54bdd6cb9"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta499.fb34ac13e46</Key>
    <LastModified>2020-03-08T17:53:59.000Z</LastModified>
    <ETag>"8388572062acdef3362203446c3a455b"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta503.62b2bf3f8e8</Key>
    <LastModified>2020-03-09T07:43:38.000Z</LastModified>
    <ETag>"0297557879fcfc1af4788aaad680aa5f"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta529.da92e0566d1</Key>
    <LastModified>2020-03-10T03:59:01.000Z</LastModified>
    <ETag>"5eb1cebe3c8d2c755d8dbacf2bf5f680"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta536.dbacfa172f9</Key>
    <LastModified>2020-03-10T15:19:58.000Z</LastModified>
    <ETag>"833d9edb7b5b50cbf12e13cac489ef5e"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta570.730453919bd</Key>
    <LastModified>2020-03-13T21:05:35.000Z</LastModified>
    <ETag>"fac5b418ca703772d0b66d79d7dfdcfc"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta591.99a3d7a86fc</Key>
    <LastModified>2020-03-16T12:41:13.000Z</LastModified>
    <ETag>"951b84893eb7b7d19eb3c5466129c633"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta687.16dd1df0817</Key>
    <LastModified>2020-03-20T00:56:33.000Z</LastModified>
    <ETag>"d3d611fab0e509873b50a09671d66cb0"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta695.b2935fbecea</Key>
    <LastModified>2020-03-21T08:03:46.000Z</LastModified>
    <ETag>"2e77fcc26c7de0f5c451ad76bbb14890"</ETag>
    <Size>2804</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta786.c6839e5ae8c</Key>
    <LastModified>2020-03-26T18:25:43.000Z</LastModified>
    <ETag>"a29fa1c958b6549b3b54a4472874e5f0"</ETag>
    <Size>3243</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta806.3a009bd5daf</Key>
    <LastModified>2020-03-26T22:06:42.000Z</LastModified>
    <ETag>"0dec12a0e325cf0bd5f032fbbd0e1d69"</ETag>
    <Size>3243</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta835.85055b3ab7b</Key>
    <LastModified>2020-03-28T01:23:29.000Z</LastModified>
    <ETag>"693d3e8d49a8ddd918cd40e4ec45ceff"</ETag>
    <Size>3243</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>nixos/20.03/nixos-20.03beta874.b0c285807d6</Key>
    <LastModified>2020-03-28T16:48:37.000Z</LastModified>
    <ETag>"b458707e30dde3a7e32c805c8743a23b"</ETag>
    <Size>3243</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1405.a17e021b948/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1414.e03eeffd616/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1418.5272327b81e/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1422.1e90c46c2d9/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1438.63284ecf6fb/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1445.95b9c99f6d0/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1574.4b6bfecc0bd/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1577.74a80c5a9ab/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1589.9137f05564e/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1596.2faa76db27c/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1602.365ca111211/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1619.ab3adfe1c76/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1739.4d373182597/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1754.b0e3df2f843/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1782.210d8624ac4/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1791.6958957214b/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1795.d6c1b566b77/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1812.14dd961b8d5/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1822.5adf2a6c116/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1844.a4f8cec54dc/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1853.7829e5791ba/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1866.a7c70f2e10b/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1879.91cdcf31357/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1885.885a6658073/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1896.025deb80b24/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1917.82b5f87fcc7/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1926.f45ccd9d20b/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1942.6d68b920eb2/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1950.48723f48ab9/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1996.fc60ed1fffb/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.1998.93b68c7cc5a/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.2012.71c059d12a8/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.2013.e985ffea2d6/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.2015.e7752db2fb6/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03.2059.05a32d8e771/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta-410.67c24f6f8a7/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta-436.43ab8e86ca6/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta-475.71be729a58e/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1010.5bf91db519c/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1023.e89b1063fb5/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1064.4dc8447c55f/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1083.7c9e1ecdf5a/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1085.182f229ba7c/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1088.0bb35152be8/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1155.29eddfc36d7/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1301.708cb6b307b/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1320.9f0f06ac8be/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1324.21750051b26/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1341.a438aed5a6c/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1355.0f920b05cbc/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta1405.a17e021b948/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta216.d31e383c44e/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta219.153baa26740/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta248.04aca9ac24a/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta258.68df00b0ba6/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta315.8d49ebf4888/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta321.be346a1f4bd/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta322.f823335caa8/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta331.a2bb258c603/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta335.89536cd763c/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta358.4f8bc8e10bf/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta377.ebc9620c3f6/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta387.61cc1f0dc07/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta441.08bcfe14ae2/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta448.1f99fd2fdbe/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta451.4707311e202/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta482.b780aefc621/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta497.cbe553c988a/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta499.fb34ac13e46/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta503.62b2bf3f8e8/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta529.da92e0566d1/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta536.dbacfa172f9/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta570.730453919bd/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta591.99a3d7a86fc/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta687.16dd1df0817/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta695.b2935fbecea/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta786.c6839e5ae8c/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta806.3a009bd5daf/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta835.85055b3ab7b/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>nixos/20.03/nixos-20.03beta874.b0c285807d6/</Prefix>
  </CommonPrefixes>
</ListBucketResult>

@cdituri
Copy link
Contributor

cdituri commented Jun 6, 2020

@FranklinYu @zimbatm @PierreR

The below is by no means well written. Just threw something together quick to provide some colour to my comment above. Could be viable if cleaned up and made proper. Thoughts?

#!/usr/bin/env nix-shell
#!nix-shell -i ruby
#
# Heuristic to update the ISO urls
#

require 'open-uri'
require 'json'
require 'rexml/document'
include REXML

isos = {}
keys = []

CHANNEL = "20.03"
BASE_URL = "https://nix-releases.s3.amazonaws.com"
RELEASES_URL = "#{BASE_URL}/?delimiter=/&prefix=nixos/#{CHANNEL}/"

xml = Document.new(open(RELEASES_URL))
xml.elements.each("ListBucketResult/Contents/Key") { |key|
  if key.text !~ /beta/
    keys.push(key.text)
  end
}
latest = keys.sort!.last

keys = []
LATEST_URL = "https://nix-releases.s3.amazonaws.com/?delimiter=/&prefix=#{latest}/"

xml = Document.new(open(LATEST_URL))
xml.elements.each("ListBucketResult/Contents/Key") { |key|
  if key.text =~ /nixos-minimal-.*-linux.iso/
    keys.push(key.text)
  end
}

i686, x86_64 = keys.partition { |el| el =~ /-i686-/ }

isos['i686'] = {
  iso_url: BASE_URL + '/' + i686.select { |i| i =~ /\.iso$/ }.first,
  iso_sha256: open(BASE_URL + '/' + i686.select { |i| i =~ /\.sha256$/ }.first).read.strip.split.first
}

isos['x86_64'] = {
  iso_url: BASE_URL + '/' + x86_64.select { |i| i =~ /\.iso$/ }.first,
  iso_sha256: open(BASE_URL + '/' + x86_64.select { |i| i =~ /\.sha256$/ }.first).read.strip.split.first
}

out = JSON.pretty_generate(isos)
puts out
File.write("iso_urls.json", out)
$ ./iso_urls_update.rb
{
  "i686": {
    "iso_url": "https://nix-releases.s3.amazonaws.com/nixos/20.03/nixos-20.03.2059.05a32d8e771/nixos-minimal-20.03.2059.05a32d8e771-i686-linux.iso",
    "iso_sha256": "9c684a943607d9b5804ed0ed413c44ac0e4e9dd0fbcad944fc7215376a42414c"
  },
  "x86_64": {
    "iso_url": "https://nix-releases.s3.amazonaws.com/nixos/20.03/nixos-20.03.2059.05a32d8e771/nixos-minimal-20.03.2059.05a32d8e771-x86_64-linux.iso",
    "iso_sha256": "ef9c74e65185a36e61dbab842faeacebfc04fcc0608f19bd2aaae2cbfe620d45"
  }
}

@zimbatm
Copy link
Member

zimbatm commented Jun 6, 2020

sounds good to me!

@FranklinYu
Copy link
Author

FranklinYu commented Jun 7, 2020

LGTM.

By the way, I tried to find a documentation page for the XML from S3; the URL matches request syntax of REST API ListOpjects, but the response doesn’t match the Response Syntax section of that page at all. The page itself is inconsistent, since the Response Syntax section contradicts with Examples section. Amazon should seriously fix their documentation! I can’t believe that S3 is one of the most popular services they provide.

In comparison, Google Cloud Storage provides JSON API.

billwanjohi added a commit to billwanjohi/nixbox that referenced this issue Oct 1, 2021
per nix-community#61, using a more specific URL will allow people to install
a slightly-out-of-date version as long as it is hosted,
after which the error will be that the release no longer exists rather
than that its checksum has failed.

This has a side benefit of happening failing more quickly,
before the user has downloaded a full disk image.
billwanjohi added a commit to billwanjohi/nixbox that referenced this issue Oct 1, 2021
per nix-community#61, using a more specific URL will allow people to install
a slightly-out-of-date version as long as it is hosted,
after which the error will be that the release no longer exists rather
than that its checksum has failed.

This has a side benefit of happening failing more quickly,
before the user has downloaded a full disk image.
zimbatm pushed a commit that referenced this issue Oct 3, 2021
per #61, using a more specific URL will allow people to install
a slightly-out-of-date version as long as it is hosted,
after which the error will be that the release no longer exists rather
than that its checksum has failed.

This has a side benefit of happening failing more quickly,
before the user has downloaded a full disk image.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants