Skip to content

Releases: jbangdev/jbang

v0.116.0

01 Apr 07:47
Compare
Choose a tag to compare

This release adds jbanghub catalog in by default. Meaning jbang catalog list now provides easy access to list of catalogs. See more at https://github.com/jbanghub.

JBang automatic java downloading now works on riscv64 and 32-bit arm systems thanks to @sxa.

Changelog

🚀 Features

🐛 Fixes

  • c26de98 fix: 32-bit arm architecture detection missing (#1773)
  • eceb5c1 fix: fixes for handling more 3xx codes and not asking for trust twice (#1771)

📝 Documentation

  • c494420 docs: explain how to specify classifiers on dependencies (#1775)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Julien Ponge, Max Rydahl Andersen, Stewart X Addison, Tako Schotanus, allcontributors[bot]

v0.115.0

09 Mar 18:41
Compare
Choose a tag to compare

About time we have the first release of 2024!

This one has a good set of fixes and a few cleanup fixes around Aliases, Catalogs and app installs.

First, a (small) breaking change:

Aliases now get arguments appended instead of overwritten.
i.e. before you made an alias like:

jbang alias add 
  --name=color_sqlline \
  --deps com.oracle.database.jdbc:ojdbc8:23.3.0.23.09,com.h2database:h2:2.0.204 \
  sqlline:sqlline:1.12.0 --color=true

and call it jbang color_sqlline --nullValue='***' the --color=true would not apply.
That is now the case.

We should have done that from the beginning. It is more natural. Thank you to @robin-a-meade for reminding us!

Second, app installs now can specify build arguments to make it possible to have different commands with different build input.
For example specify system properties to change a version for a dependency.

Finally, catalogs now support import, i.e. jbang catalog add --import jbanghub will import all the alias, catalogs, templates etc. in the jbanghub catalog making it directly available without having to add @jbanghub to the name.

To do this some of the list commands and how catalog names are treated have been unified so things looks the same and can be accessed consistently.

Changelog

🚀 Features

  • 8855f35 feat!: alias arguments are now appended (#t)
  • 7380851 feat: allow setting build/run options for app install (#1754)
  • b9f8412 feat: extended syntax for catalog references (#1756)

🐛 Fixes

🧰 Tasks

  • fe45753 chore(deps): pin dependencies (#1762)
  • 7d61581 chore: enable renovate per mgr and best practice
  • d92cb15 chore: enable renovate per mgr and best practice
  • aebb6d1 chore: update quarkus version in templates (#1757)
  • 87c02ad chore: made rendering of lists less noisy (#1748)
  • 38fa191 chore: updated java-properties library to 0.0.7 (#1752)
  • 1657c47 chore(deps): update tj-actions/verify-changed-files action to v8 [security] (#1747)
  • 314bcf2 chore: update deps (#1721)
  • d662199 chore(deps): update tj-actions/verify-changed-files action to v7.2 [security] (#1725)
  • f5d8300 chore: added descriptions to some edit command flags (#1727)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Matteo Mortari, Max Rydahl Andersen, Tako Schotanus, Tamas Cservenak, Tim Felgentreff, allcontributors[bot], renovate[bot]

v0.114.0

09 Dec 07:48
Compare
Choose a tag to compare

20% Faster

Moved artifact resolution to use MIMA via @cstamas's great work. This makes jbang use the newer version of Maven's artifactresolver.

The first obvious benefit is that JBang now is able to utilize the performance improvements and use better http client implementations bringing about ~20% faster downloads.

When next version of Maven resolver becomes available that number should increase even more significantly when it starts utilising http2.

We've tested as much as we could - all existing tests passes but it is a change of dependency resolution thus if you have some project that changes behavior because of this behavior do please open an issue.

Changelog

🔄️ Changes


Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen, Tako Schotanus, Tamas Cservenak, allcontributors[bot]

v0.113.0

24 Nov 00:23
Compare
Choose a tag to compare

Changelog

Added a magic %{deps:..} expansion on command line that will resolve dependencies in that expression and replace it with a classpath.

Lets you do things like:
jbang sqlline@maxandersen -cp %{deps:org.hsqldb:hsqldb:RELEASE} other args

removing need to manually deal with absolute paths to .jar files.

🚀 Features

  • f79a0f2 feat: added support for %{deps:...} substitutions in arguments (#1707)

Contributors

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

v0.112.4

19 Nov 09:30
Compare
Choose a tag to compare

A few user contribute fixes (thanks @essobedo and @ritikverma2000) but otherwise a release to test and verify that dev.jbang:jbang-cli is now publish to maven central.

What's Changed

New Contributors

Full Changelog: v0.111.0...v0.112.4

v0.111.0

30 Sep 11:20
Compare
Choose a tag to compare

Lots of bugfixes and Groovy support now defaults to use Groovy 4. You can use //GROOVY <version> to use older Groovy if you need to.

🐛 Fixes

  • b52a829 support Groovy 4
  • d8b8bb4 fix: Now showing integration errors when verbose is on (#1630)
  • 04f61ed fix: check manifest exist before reading from it (#1687)
  • 66eef4f fix: alias settings not being properly applied (#1686)
  • 418b904 fix: upgrade to commons-text 1.10.0 (#1674)
  • 0541427 fix: remove -g from runtime options because groovyc does not accept -g

🧰 Tasks

  • ca942a6 chore: not necessary to remove "-g"
  • dd6e913 chore: update to Kotlin 1.8.22
  • c8b8acd chore: update default Groovy version to 4.0.14

Contributors

We'd like to thank the following people for their contributions:
Alex Karezin, Andrew O, GitHub, Libing Chen, Max Rydahl Andersen, P. Ottlinger, Tako Schotanus, allcontributors[bot]

v0.110.1

17 Aug 08:06
Compare
Choose a tag to compare

Changelog

🐛 Fixes

  • 64e2bef fix: we now only add -g flag to Java source types (#1657)
  • c535473 fix: Fixes NPE when running in container (#1660)

Contributors

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

v0.110.0

23 Jul 07:35
Compare
Choose a tag to compare

Changelog

JBang will now use "central" rather than "mavencentral" as its id for fetching dependencies allowing for better sharing of downloads between Maven and JBang based builds. Also means you can do //REPOS central as a shorthand. Should not break users but is a behavior change thus released as minor rather than a patch.

Fixed a regression where maven artifacts with capital letters failed to download.

v0.109.0

08 Jul 08:35
Compare
Choose a tag to compare

Changelog

Fixes and a minor and major new feature.

Scripts and jars as dependencies

//DEPS aloca.jar or //DEPS myscript.java or even //DEPS https://my.site/some/script.java is now allowed.

Allowing you to use scripts (or jars) as dependencies is different from using //SOURCES in the sense that the //DEPS gets built in isolation and is a true dependency rather than built inside the project. Allows for more decoupled and interesting composability of your jbang scripts and applications. Mainly; allow you to build and publish a java library without an intermediate publishing step.

Use it responsibly :)

Debug customization

I (re)learned from @danberindei that IDE's can work as clients to allow the java app to connect to the debugger rather than the other way around. Quite useful.

Thus jbang now allows customizing how debug is configured.

You can still just do jbang --debug myapp.java but you can now also pass in a comma separated list to configure the JDPA connection string. i.e.jbang --debug=server=n myapp.java to have it be a client rather than a server. You can set any other JDPA flag this way.

Fixes

Docker publish had been failing the last few releases. Finally figured out the issue. Should now work. Crossing fingers.
Multi-user access were causing issues for caching in docker containers; that should be fixed too now.

🚀 Features

  • 1bfa853 feat: Added support for script dependencies (#1641)
  • d87feaa feat: --debug now allow multiple key/values. --debug=server=n,suspend=y (#1642)

🐛 Fixes

  • 61bdc6a fix: #1624 docker publish fail
  • d81bed7 fix: swallow any exceptions when setting file modified timestamp (#1639)

🧰 Tasks

  • c379bd3 chore: add justfile for those with bad memory

Contributors

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

v0.108.0

10 Jun 11:16
Compare
Choose a tag to compare

Changelog

Recently support for main methods without a surrounding class was merged into OpenJDK main line.
This release now supports that feature.

At time of writing the default Termurin JDK builds does not have the latest build thus
for now you will have to manually build the JDK and set that up in your path.

Also since it is a Java preview feature you will need to use --enable-preview or put //PREVIEW in the file.

That means the smallest self-contained Java 21 example looks as follows:

//PREVIEW
//JAVA 21+

void main() {
    System.out.println("Hello World");
}

And can now be run using jbang main.java if you have Java 21 latest nightly build installed.

If you prefer

🚀 Features

  • 9c2255b feat: JEP 445: Unnamed Classes and Instance Main Methods (#1633)

🐛 Fixes

  • ac432ec fix: detect version from JAVA_RUNTIME_VERSION and don't use JAVA_VERS… (#1632)

  • 62d3d7b [minor] java 21 JEP445 support

Contributors

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