The problem with running aliases and scripts from remote catalogs/sites is that the original author can update them and then we're stuck with several issues:
- do we update automatically (possibly breaking an existing script) or not (possibly forgoing critical bug/security fixes)?
- we can already somewhat tell JBang to update by using
--fresh , but what if we don't want that and want to "pin" a specific version we already have?
- how can we notify the user that a newer version is available (if automatic updating is not available/enabled)?
- how can we support multiple versions and how do we make it possible to install a specific version?
- how can a user list the versions that are available?
Also see discussion here quarkiverse/quarkus-mcp-servers#30
Edit: my current recommendation would be something similar to #1979 (comment)
Which basically is:
- special alias syntax
alias:version@catalog
- the
version will be used to "patch" the script-ref, this would work for git repos and maven artifacts
- nice to have: query repos for possible versions (tags/branches for git, artifact versions for maven)
The advantage is that the catalog format stays exactly the same so it's fully backward-compatible.
Examples (added 2026-01-03):
jbang myapp:0.0.3@catalog would be:
The problem with running aliases and scripts from remote catalogs/sites is that the original author can update them and then we're stuck with several issues:
--fresh, but what if we don't want that and want to "pin" a specific version we already have?Also see discussion here quarkiverse/quarkus-mcp-servers#30
Edit: my current recommendation would be something similar to #1979 (comment)
Which basically is:
alias:version@catalogversionwill be used to "patch" thescript-ref, this would work for git repos and maven artifactsThe advantage is that the catalog format stays exactly the same so it's fully backward-compatible.
Examples (added 2026-01-03):
jbang myapp:0.0.3@catalog would be:
https://github.com/jbangdev/jbang-catalog/blob/main/jupyter/trylink.javawould become https://github.com/jbangdev/jbang-catalog/blob/0.0.3/jupyter/trylink.java