v0.139.2 #2546
maxandersen
announced in
Blog/Website
v0.139.2
#2546
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
JBang 0.139.2 Changelog
Big release — the biggest change is replacing picocli with Aesh for CLI parsing, plus native binary builds are now available as early-access.
⭐ Highlights
Picocli → Aesh Migration
JBang's CLI framework has been migrated from picocli to Aesh (#2453).
This is a big change, but luckily JBang has a large integration test suite that let us test and verify majority of all jbang commands thus we feel quite confident the CLI behavior should be the same as before.
If you spot differences, things breaking or not working as before please do open issues.
Why ?
By moving to Aesh we are able to get JBang to startup 2-3x faster in JVM mode 5x time faster in native.
That is the difference between "meh - ok enough" to "I didn't notice - is this really Java?".
This enables us to do much more interesting completion support and finally seriously offer jbang native binaries.
Native Binaries (Early Access) 🚀
We've had native-image builds of JBang for a while, but not integrated into the install and automatic download and updates JBang supports.
We now publishes GraalVM native image builds as part of this release and the early-access release channel. Native binaries are available for Linux, macOS, and Windows — giving you near-instant startup with no JVM required.
To enable use native binaries set the environment variable
JBANG_USE_NATIVEto true.This work on Windows, Linux and OSX using the
curlinstall mechanism - it should also work for package installers but not fullytested so please do try use it with other install mechanisms and let us know if it works or not :)
Note: a key design choice is that pure JVM mode is always available thus if you run on a platform where native image does not work; the JVM mode still works!
Smart Tab Completion
With the new found speed boost we can offer many interesting shell completions features, starting of with completion of the application or script you can pass to
run,build, etc.@<TAB>to browse catalogs~/.m2/repositorycompletion-demo.mp4
This will work in bash, zsh and fish - expect update in future that enables it in PowerShell too.
TamboUI Dependency Search
The
jbang deps searchTUI has been rewritten from JLine to TamboUI (#2465) +aesh, with a dock-based layout, fuzzy match highlighting, async search with debounce, intent classification (paste a Java import or compiler error and it auto-searches Central), and a version picker side pane.deps-search-demo.mp4
Download retry support
With GitHub having more and more interesting outages we've gone and improved the resilience of JBang download and added retry support.
If download fails of JBang; we will retry with exponential backoff. See documentation for various settings you can do for setting retry count and timeout behaviour.
Install multiple JDKs
JBang's jdk discovery and install options now allow installing multiple JDKs for a given Java version.
🚀 Features
JBANG_DOWNLOAD_VERSIONe.g.early-access(feat: support release tag names in JBANG_DOWNLOAD_VERSION (early-access) #2480)🐛 Fixes
--option=falsesyntax for boolean flags (AEsh broke primitive options #2504, fix: support --option=false syntax for boolean flags (#2504) #2505)module-inforequires for JavaFX//MODULEscripts (fix: generate correct module-info requires for JavaFX //MODULE scripts #2525)download()with user feedback (fix: use manual retry loop in bash download() with user feedback #2472)🏗️ Build & CI
📝 Documentation
--manifestoption (docs: add description to --manifest option (#2485) #2506)This discussion was created from the release v0.139.2.
Beta Was this translation helpful? Give feedback.
All reactions