jib icon indicating copy to clipboard operation
jib copied to clipboard

Publish jib via SDKMAN!

Open helpermethod opened this issue 3 years ago • 6 comments

Environment: MacOS, Windows, Linux

  • Jib version: 0.10.0
  • Build tool: Gradle 7.3.3
  • OS: MacOS

Description of the issue: Distribute jib via SDKMAN!

Expected behavior: The jib CLI ZIP file has the correct structure to be distributed by SDKMAN!

image

SDKMAN! is a popular tool for managing multiple versions of SDKs and CLI tools. jib would be a welcome addition!

Additional Information:

The distribution can easily be automated using JReleaser (https://jreleaser.org/). This would also open up the possiblity to automatically distribute jib via other channels, like Homebrew and many more.

I wouldn't hesitate to do the PR myself :).

helpermethod avatar May 13 '22 11:05 helpermethod

This would be very useful, thank you! We'll accept the PR.

elefeint avatar May 16 '22 15:05 elefeint

(We have duplicate request: https://github.com/GoogleContainerTools/jib/issues/3419)

I started using sdkman for Java (different version of JDK, including GraalVM distribution). Compared to Java's case, I believe jib users want to use the latest jib always. I may be wrong because I'm not a heavy Jib user.

@helpermethod Where do you see the benefit of jib versions managed in sdkman?

suztomo avatar May 16 '22 16:05 suztomo

The benefits I see are ease of installation/discoverability, and possibly simpler upgrades. @mpeddada1 What do you think?

elefeint avatar May 17 '22 13:05 elefeint

This sounds like a really useful idea! I just have one quick question. I'm not too familiar with how SDKMAN manages versions, but would the new version of the CLI be available as soon as it is released on github? Or would it require any manual updates?

mpeddada1 avatar May 17 '22 14:05 mpeddada1

This sounds like a really useful idea! I just have one quick question. I'm not too familiar with how SDKMAN manages versions, but would the new version of the CLI be available as soon as it is released on github? Or would it require any manual updates?

There are two options: One is performed manually and entirely community driven, i.e. if a new version is available someone has to manually perform a PR against our migrations repo.

The other option is using SDKMAN!s Vendor API. You can basically request a key, and by using the API or through some tools announce a new release on SDKMAN! in your CI pipeline.

Vendoring is the prefered way to publish / announce new releases.

BTW SDKMAN! announces its releases via the Vendor API by using JReleaser

https://github.com/sdkman/sdkman-cli/blob/master/.github/workflows/release.yml

https://jreleaser.org/guide/latest/configuration/packagers/sdkman.html

helpermethod avatar May 18 '22 20:05 helpermethod

We'd be okay with adding the manual step as part of our release process, and seeing how it goes. It can be automated later.

elefeint avatar May 24 '22 14:05 elefeint

Thanks again for proposing this! However, we're trying to focus on bug fixes and platform evolution changes. After careful consideration, while it is a good idea, it's not something we can prioritize at this time (unfortunately). Closing as not planned.

mpeddada1 avatar Mar 26 '24 19:03 mpeddada1