CycloneDX / CycloneDX/cyclonedx-cli
Switch release assets to archive
- Dominant language
- C#
- Stars
- 541
- Forks
- 82
- PR merge metrics
- No merged PRs in 30d
Description
Follow up to https://github.com/jreleaser/jreleaser/issues/1115
Currently `cyclonedx-cli` posts its release assets as plain executables. The following benefits may be obtained if archives were to be used instead:
- package LICENSE, README, and any other additional supporting files alongside the binary.
- though package managers such as Homebrew can work with plain binaries others such as Scoop, Chocolatey, Snapcraft prefer the use of archives.
This being said, existing consumers of the `cyclonedx-cli` expect plain binaries at this moment. Switching to archives might break automated pipelines in downstream consumers. Thus such move should we weighted with the community.
This issue presents two ideas:
- What: switch to archives as release assets.
- How: update the release process to make the first point happen.
I've setup a PoC of `cyclonedx-cli` to post releases via JReleaser (disclaimer: a release tool of which I'm the author). This PoC is found at https://github.com/aalmiray/cyclonedx-cli/ and it simply posts binaries like the current `cyclonedx-cli` release process does. The release configuration is https://github.com/aalmiray/cyclonedx-cli/blob/main/jreleaser.yml. Binaries are posted on every push to the default branch https://github.com/aalmiray/cyclonedx-cli/blob/main/.github/workflows/early-access.yml allowing consumers to test out fixes and features ahead of stable releases which are posted with https://github.com/aalmiray/cyclonedx-cli/blob/main/.github/workflows/release.yml. If JReleaser were to be chosen switching from simple binaries to archives is a pretty straight forward task, as shown by the following repositories
- https://github.com/aalmiray/helloworld-rustx
- https://github.com/aalmiray/helloworld-elixir
- https://github.com/aalmiray/helloworld-csharp
As additional benefits, regardless of plain binaries or archives, JReleaser can also automate:
- updates to the Homebrew formula.
- create and publish the Docker image (not shown in the PoC at the moment).
- post packages to Scoop, Chocolatey, and other package managers, as needed.
- post announces to Twitter, Mastodon, and other communication channels.
Contributor guide
Assessment
This issue has not been assessed yet.