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

Publish The Binary to various package management systems #7

Open
4 tasks
Vad1mo opened this issue Feb 5, 2024 · 7 comments
Open
4 tasks

Publish The Binary to various package management systems #7

Vad1mo opened this issue Feb 5, 2024 · 7 comments

Comments

@Vad1mo
Copy link
Member

Vad1mo commented Feb 5, 2024

As a user, I would rather not download the source code, compile to have binary.
A common practice for downloading and installing CLI tools is the use of popular Package Manager like Chocolatey on Win or Homebrew on Mac and so on.

One way to accomplish is to create a pipeline for each package manager.

Another alternative to have an all-in-one solution is to use https://jreleaser.org/ that provides many option to release and publish the binary to many package management systems. see full list https://jreleaser.org/guide/latest/integrations.html#_package_publish

At least we should support the following option

@amands98
Copy link
Contributor

amands98 commented Feb 6, 2024

we can also explore

  • Nix
  • Snap

@amands98
Copy link
Contributor

amands98 commented Feb 6, 2024

we can utilize goreleaser.

@Vad1mo
Copy link
Member Author

Vad1mo commented Feb 6, 2024

Didn't know about goreleaser. but will look into it.

@aalmiray
Copy link

aalmiray commented Feb 6, 2024

Both GoReleaser and JReleaser work in similar ways. However, the funtamental difference between these tools is that GoReleaser has tight integration with the Go build tool chain (it can build and release binaries) while JReleaser does not build binaries (it might assemble archives though) and expects target binaries to be given as inputs.

Both tools offer similar features (there's a large intersection) while at the same time provide unique features.
For this reason, it's recommended to use GoReleaser for Golang projects, JReleaser for everything else. Although, nothing stops you from using JReleaser with Golang projects, it's just that you'll have to configure a build step that's separate from the release step.

@amands98
Copy link
Contributor

amands98 commented Feb 6, 2024

Check out the PR, I added goreleaser support.

@prashantrewar
Copy link

+1 to @amands98 @aalmiray, jreleaser is inspired by goreleaser.

@amands98
Copy link
Contributor

amands98 commented Mar 13, 2024

⚪ homebrew - Homebrew/homebrew-core#165860
⚪ winget microsoft/winget-pkgs#144972

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