uutils / coreutils

Cross-platform Rust rewrite of the GNU coreutils
https://uutils.github.io/
MIT License
17.73k stars 1.27k forks source link

Provide unversioned (vanity) releases page. #5542

Open RokeJulianLockhart opened 12 months ago

RokeJulianLockhart commented 12 months ago

It shall allow programs that use GitHub as their ultimate origin point for binaries to not worry about versions, instead always pulling the latest version. Not everything supports RegEx. For example, https://github.com/uutils/coreutils/issues/4291#issuecomment-1812814643.

sylvestre commented 12 months ago

Do you have example of project proposing this kind of release page ? thanks

YDX-2147483647 commented 12 months ago

IMHO this is not a good idea: It does not solve the winget problem because the manifest includes the hash.

Besides, this can be implemented by removing versions from filenames, then release/latest link will work (e.g. https://github.com/uutils/coreutils/releases/latest/download/coreutils_0.0.23_arm64.deb ).

RokeJulianLockhart commented 12 months ago

https://github.com/uutils/coreutils/issues/5542#issuecomment-1812839663

@sylvestre,

  1. [x] https://github.com/ClementTsang/bottom/releases/tag/nightly
  2. [x] https://github.com/Fleex255/PolicyPlus/issues/71#event-9828806901 Although per https://github.com/Fleex255/PolicyPlus/issues/71#issuecomment-1636793346, the owner, @Fleex255, went about it in a different manner. You might prefer this, @YDX-2147483647. You can see this at https://github.com/Fleex255/PolicyPlus/releases.

There's also some useful discussion and positive reception to the issue at:

  1. [ ] https://github.com/PowerShell/PowerShell/issues/20338#issuecomment-1734273622
  2. [ ] https://github.com/illogical-robot/apkmirror-public/issues/231#issue-1329278729
tertsdiepraam commented 12 months ago

Right, lots of things to consider here I think. Let's hope I get what this is about: if I understand correctly, you want an easy way to download artifacts for the main branch? Or do you want the release/latest thing mentioned above?

First, let's consider the current state:

We could add a page to the website with the latest artifacts or something like that? How would you propose we implement this?

RokeJulianLockhart commented 12 months ago

@tertsdiepraam,

We could add a page to the website with the latest artifacts or something like that? How would you propose we implement this?

Probably how https://github.com/ClementTsang/bottom/releases/ does — https://github.com/ClementTsang/bottom/releases/tag/nightly.

tertsdiepraam commented 12 months ago

Is that generated every day? What does that provide to you over the normal releases?

RokeJulianLockhart commented 12 months ago

https://github.com/uutils/coreutils/issues/5542#issuecomment-1813442092

No, @tertsdiepraam, I don't want to it to be generated each day, though I don't particularly care if it works (nightly builds obviously probably wouldn't though). I'm providing an example of an unversioned release which is updated at regular intervals, as you requested. All that you would need to do differently is change it to use the same release schedule as the others, perhaps by copying the binaries generated for the last versioned release into the unversioned one.

tertsdiepraam commented 12 months ago

Alright, I understand now! Thanks! So, the release/latest link is not enough?

RokeJulianLockhart commented 12 months ago

https://github.com/uutils/coreutils/issues/5542#issuecomment-1813448087

I... wasn't aware that existed, @tertsdiepraam. In a bout of intense shame, I pass the baton of whether to reopen this issue onto you the participants here. There might yet be rationale for having a dedicated latest release like https://github.com/ClementTsang/bottom/releases/tag/nightly does, but I can't imagine it being more useful than https://github.com/uutils/coreutils/releases/latest. Ah, gee.

RokeJulianLockhart commented 12 months ago

https://github.com/uutils/coreutils/issues/5542#issuecomment-1813451760

Aha! I just found the rationale whilst testing furiously, attempting to regain my lost honour:

Although https://github.com/uutils/coreutils/releases/latest is useful for a human, linking to specific assets is unsupported even when the URI correlates to the version that the asset's filename includes. For instance, https://github.com/uutils/coreutils/releases/latest/coreutils-0.0.23-x86_64-pc-windows-msvc.zip returns 404. Additionally, because the assets are currently versioned too in their filenames, vanity filenames would be necessary in the unversioned release too.

tertsdiepraam commented 12 months ago

Oh yeah that makes sense :)

YDX-2147483647 commented 12 months ago

For instance, uutils/coreutils/releases/latest/coreutils-0.0.23-x86_64-pc-windows-msvc.zip returns 404.

Linking to specific assets is supported. It's 404 Not Found because /download is missing — https://github.com/uutils/coreutils/releases/latest/download/coreutils-0.0.23-x86_64-pc-windows-msvc.zip returns 302 Found and redirects to https://github.com/uutils/coreutils/releases/download/0.0.23/coreutils-0.0.23-x86_64-pc-windows-msvc.zip . (Your conclusion still holds, however)