github jbangdev/jbang v0.103.0

latest releases: v0.132.1, v0.132.0, v0.131.0...
2 years ago

A new release and this one is a silent but beautiful one.

First there is a bunch of small fixes after last release custom JDK support introduced some regressions - like breaking Groovy support; but that is now back. Thanks for all the feedback!

export fat jar

jbang export fatjar now exists. It merges all dependencies into a single combined jar allowing you to easily copy/distribute as a single command . It merges overlapping META-INF/services and for most things that seem sufficient.

If you use it and things does not work, open issues and we can look at improving it.

native image now honored by alias

@kanha-gupta contributed his first fix making it so --native for building native images
works for aliases.

jbang will now get latest version, reducing need to use --fresh

Since forever jbang aliases were defined in a catalog and if that catalog was updated
AFTER you fetched something the first time you would not get the latest updates unless you used --fresh.

Now @quintesse implemented proper cache eviction so that

a) when you run an alias jbang newcommand@somecatalog and that newcommand is not found locally then
jbang will now force reload the catalog to see if there is a new command.

b) By default every 12 hours the cache will be refreshed, meaning updates to alias catalogs (not just new ones will automatically be downloaded)

This allows for much smoother updates and ensuring users have the latest and greatest.

If for some reason you as a user do NOT want that (i.e. you really want zero updates) you have multiple options dependent on your usecase:

  • To get similar behavior as before, set cache-evict to never, i.e. jbang config set cache-evict never
  • run with --offline then jbang will not do any remote requests, including cache updates.
  • install/use aliases with a specific version or even SHA. i.e. jbang cmd@myorg//2.0 or jbang kill@quarkusio//5b58242 to lock in a specific alias.

Changelog

🚀 Features

  • 7281285 now always using latest aliases
  • b9f61f4 config list --show-available now shows descriptions
  • 9848c8c caching now supports ETag
  • 8febe9c cached files are now checked with HEAD
  • 53d1e6c implemented first version of export fatjar
  • 7682219 improved Linux/Mac startup script (#1551)

🐛 Fixes

  • 9ba1084 broken JDK links no longer cause problems
  • 6ea7835 jdk install --force was not forcing install
  • f0917fa minor fix in log messages
  • 01d26c4 artifact up-to-date check is more lenient
  • 15680bc fixed minor GAV resolve ordering problem
  • 465c941 fixes duplicate classpath entries
  • 098d7fe Groovy compiler now runs correctly
  • 006959a we don't blindly import JAR metadata anymore (#1549)
  • 66c9f3a Alias command now properly sets nativeImage (#1547)

♻️ Changes

  • ac44ea4 Gist handling now uses core code for downloads

🧰 Tasks

  • a465522 prefer installing default java version
  • f0b1bbc minor update in logging and cache-evict default
  • 662fa9e recompiled hellojar.jar with Java 8
  • 5501090 app setup now tells user about --force (#1550)
  • b1756bf verbose mode now includes timing (#1552)

🛠 Build

  • a27766c added tests for new ETag caching code
  • 862e6da added tests for the new caching code
  • 47b43ca report github rate limit

Contributors

We'd like to thank the following people for their contributions:
Tako Schotanus, Max Rydahl Andersen, kanha gupta, GitHub

Don't miss a new jbang release

NewReleases is sending notifications on new releases.