jbang icon indicating copy to clipboard operation
jbang copied to clipboard

alias@org~path no longer works

Open quintesse opened this issue 8 months ago • 2 comments

The alias gets turned into http://github.com/org/jbang-catalog/blob/HEAD/experimentaljbang-catalog.json missing a /

PS: It might still seem to work if you previously accessed a catalog in this way, with a JBang version that wasn't broken in this aspect. In that case JBang will pick up the existing catalog reference in ~/.jbang/implicit-catalogs.json and things will work. It's creating that reference, when it's accessed for the first time, that seems to be broken.

quintesse avatar Mar 31 '25 16:03 quintesse

I think I am also hitting this issue, but not sure

$ jbang version
0.125.1
$ jbang cli@junit-team
jbang] [ERROR] Could not download https://junit.jbang.dev/jbang-catalog.json
[jbang] Run with --verbose for more details. The --verbose must be placed before the jbang command. I.e. jbang --verbose run [...]
❯ jbang --verbose cli@junit-team
[jbang] [0:155] jbang version 0.125.1
[jbang] [0:162] Resolving resource ref: cli@junit-team
[jbang] [0:164] Reading catalog from /Users/albertocavalcante/dev/workspace/rewrite-jbang/jbang-catalog.json
[jbang] [0:244] Requesting HTTP GET https://junit.jbang.dev/jbang-catalog.json
[jbang] [0:244] Headers {User-Agent=[JBang/0.125.1 (Mac OS X/15.1/aarch64) Java/21.0.6/Homebrew]}
[jbang] [0:261] Retry using cache-evict: cli@junit-team
[jbang] [0:261] Requesting HTTP GET https://junit.jbang.dev/jbang-catalog.json
[jbang] [0:261] Headers {User-Agent=[JBang/0.125.1 (Mac OS X/15.1/aarch64) Java/21.0.6/Homebrew]}
[jbang] [0:262] [ERROR] Could not download https://junit.jbang.dev/jbang-catalog.json
dev.jbang.cli.ExitException: Could not download https://junit.jbang.dev/jbang-catalog.json
        at dev.jbang.source.resolvers.RemoteResourceResolver.fetchFromURL(RemoteResourceResolver.java:119)
        at dev.jbang.source.resolvers.RemoteResourceResolver.resolve(RemoteResourceResolver.java:41)
        at dev.jbang.source.resolvers.CombinedResourceResolver.lambda$resolve$0(CombinedResourceResolver.java:27)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:1034)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
        at dev.jbang.source.resolvers.CombinedResourceResolver.resolve(CombinedResourceResolver.java:29)
        at dev.jbang.source.ResourceResolver.resolve(ResourceResolver.java:52)
        at dev.jbang.source.ResourceRef.forResource(ResourceRef.java:131)
        at dev.jbang.catalog.Catalog.getByRef(Catalog.java:190)
        at dev.jbang.catalog.Catalog.getByName(Catalog.java:145)
        at dev.jbang.catalog.Alias.fromCatalog(Alias.java:285)
        at dev.jbang.catalog.Alias.merge(Alias.java:209)
        at dev.jbang.catalog.Alias.get(Alias.java:168)
        at dev.jbang.source.resolvers.AliasResourceResolver.resolve(AliasResourceResolver.java:39)
        at dev.jbang.source.ResourceResolver.resolve(ResourceResolver.java:52)
        at dev.jbang.source.ProjectBuilder.lambda$resolveChecked$1(ProjectBuilder.java:268)
        at dev.jbang.util.Util.withConfig(Util.java:223)
        at dev.jbang.util.Util.withConfig(Util.java:216)
        at dev.jbang.util.Util.withCacheEvict(Util.java:210)
        at dev.jbang.util.Util.withCacheEvict(Util.java:206)
        at dev.jbang.source.ProjectBuilder.resolveChecked(ProjectBuilder.java:268)
        at dev.jbang.source.ProjectBuilder.build(ProjectBuilder.java:245)
        at dev.jbang.cli.Run.doCall(Run.java:73)
        at dev.jbang.cli.BaseCommand.call(BaseCommand.java:145)
        at dev.jbang.cli.BaseCommand.call(BaseCommand.java:21)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
        at picocli.CommandLine.access$1500(CommandLine.java:148)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
        at dev.jbang.cli.JBang$3.handle(JBang.java:150)
        at dev.jbang.cli.JBang$3.handle(JBang.java:145)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
        at picocli.CommandLine.execute(CommandLine.java:2170)
        at dev.jbang.Main.main(Main.java:15)
Caused by: java.net.UnknownHostException: junit.jbang.dev
        at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
        at java.base/java.net.Socket.connect(Socket.java:751)
        at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
        at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:181)
        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:377)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1252)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1138)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1690)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1614)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:531)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:307)
        at dev.jbang.util.Util.handleRedirects(Util.java:1105)
        at dev.jbang.util.Util.access$400(Util.java:66)
        at dev.jbang.util.Util$ResultHandler.lambda$redirects$0(Util.java:908)
        at dev.jbang.util.Util.connect(Util.java:830)
        at dev.jbang.util.Util.downloadFileAndCache(Util.java:759)
        at dev.jbang.util.Util.downloadAndCacheFile(Util.java:710)
        at dev.jbang.source.resolvers.RemoteResourceResolver.fetchFromURL(RemoteResourceResolver.java:116)
        ... 41 more
[jbang] [0:263] If you believe this a bug in jbang, open an issue at https://github.com/jbangdev/jbang/issues

albertocavalcante avatar Apr 05 '25 05:04 albertocavalcante

Weird, that definitely works for me.

Can you run jbang catalog list --show-origin and see if "junit-team" shows up in there?

Or even looking directly in the /Users/albertocavalcante/dev/workspace/rewrite-jbang/jbang-catalog.json, that shows up in your output, and see if "junit-team" appears there.

Because that junit.jbang.dev that it tries to connect to is definitely wrong and I have no idea where it could come from, unless it's something that somehow got explicitly added to your local catalog.

quintesse avatar Apr 05 '25 11:04 quintesse