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

Improve published release artifact names #192

Open
sagikazarmark opened this issue Jun 12, 2024 · 5 comments
Open

Improve published release artifact names #192

sagikazarmark opened this issue Jun 12, 2024 · 5 comments

Comments

@sagikazarmark
Copy link

It's not very easy to build automation with the current naming scheme of release assets.

One issue is the version in the archive name: GitHub has this useful feature where you can go to a latest release by a special URL: https://github.com/caddyserver/xcaddy/releases/latest

Unfortunately, there is no way to download artifacts without knowing the version (since it's part of the name).

By removing the name, one can download artifacts for the latest version without actually knowing what it is.

Another mild annoyance is the OS name for macOS builds: all of the other targets use the "standard" Go OS (which would be darwin in this case). (This is easy to overcome; I just thought I'd mention it).

@mholt
Copy link
Member

mholt commented Jun 12, 2024

Hmm, I think of knowing the version as a feature actually. It's nice to know once you've downloaded an artifact what version you've got.

As for Mac/Darwin, I am always torn on it, because nobody knows what Darwin is. Heck, even I don't really know to this day. I'm sure I could look up some history. Similarly I get confused with i686 arches, etc (I'm glad Go doesn't use i686 as an arch identifier).

@francislavoie
Copy link
Member

Changing this at this point would be a breaking change for the release processes of many platforms. We're not in contact with all of them and we can't really trust that we'll be able to communicate a change like this to them.

I think using "latest" is almost always a foot-gun. You should pin to a specific version number, and you should regularly update it to the latest version number as necessary. You can sign up for release notifications on GitHub (click watch, custom, check releases only) and update it in response to those notifications.

@sagikazarmark
Copy link
Author

I think using "latest" is almost always a foot-gun.

Agreed, but hard-coding a fallback version is almost as big a footgun.

Using the GitHub API to figure out what latest resolves to is not always an option.

Hmm, I think of knowing the version as a feature actually. It's nice to know once you've downloaded an artifact what version you've got.

That's fair...when you download an archive manually. I don't know how often people actually do that. They either use a package manager or some other automation/script in my experience.

Incidentally, if there was a container image published for xcaddy, there would be a latest tag.

Changing this at this point would be a breaking change for the release processes of many platforms.

That's another fair point, although 1.0.0 hasn't been tagged yet which is what led me to open this issue: if there was a time to make a change like this, it's now.

I understand if it's a no though.

@mholt
Copy link
Member

mholt commented Jun 12, 2024

I just realized we're in the xcaddy repo 🤦‍♂️

Anyway, I have less strong opinions about how we distribute xcaddy -- I can see how more of these downloads might be automated.

@mohammed90
Copy link
Member

We can probably add another build in goreleaser with another ID, e.g. latest, to produce artifacts latest in place of version. If we converge on yes, it can be added, but we'll have to validate how it impacts the release pipeline.

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