<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent activity in Tools</title>
<link>https://ask.clojure.org/index.php/activity/other/tools</link>
<description></description>
<item>
<title>Answer selected: gitlibs/tags throws a NPE if the repository has no tags</title>
<link>https://ask.clojure.org/index.php/15094/gitlibs-tags-throws-a-npe-if-the-repository-has-no-tags?show=15101#a15101</link>
<description>&lt;p&gt;Thanks! Fixed in tools.gitlibs 2.6.217.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/15094/gitlibs-tags-throws-a-npe-if-the-repository-has-no-tags?show=15101#a15101</guid>
<pubDate>Sun, 24 May 2026 22:06:48 +0000</pubDate>
</item>
<item>
<title>Comment edited: shasum not found error when using ./posix-install on linux</title>
<link>https://ask.clojure.org/index.php/14987/shasum-not-found-error-when-using-posix-install-on-linux?show=14989#c14989</link>
<description>from &lt;a href=&quot;https://clojure.org/guides/install_clojure&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.org/guides/install_clojure&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; This installer should work on Linux, BSD, and even Mac (but will conflict with brew!)&lt;br /&gt;
&lt;br /&gt;
That made me think that I should expect the posix installer to work.</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14987/shasum-not-found-error-when-using-posix-install-on-linux?show=14989#c14989</guid>
<pubDate>Thu, 12 Mar 2026 00:09:15 +0000</pubDate>
</item>
<item>
<title>Closed: TDEPS-269: checksums should use sha256sum instead of shasum</title>
<link>https://ask.clojure.org/index.php/14906/tdeps-269-checksums-should-use-sha256sum-instead-of-shasum?show=14906#q14906</link>
<description>&lt;p&gt;This commit broke our Docker build: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/clojure/brew-install/commit/d6d540756cb0a6342374db529d07f1de35d5bc71&quot;&gt;https://github.com/clojure/brew-install/commit/d6d540756cb0a6342374db529d07f1de35d5bc71&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;because &lt;code&gt;shasum&lt;/code&gt; is a perl executable provided on Fedora by &lt;code&gt;perl-Digest-SHA-1&lt;/code&gt; rpm, but it's not available on the UBI platform. The standard way to validate checksums is through &lt;code&gt;sha256sum&lt;/code&gt; provided by &lt;code&gt;coreutils&lt;/code&gt; on most (if not all) linux distributions.&lt;/p&gt;
&lt;p&gt;The jira ticket even talks about sha256sum, but then the commit doesn't use it: &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/jira/software/c/projects/TDEPS/issues?jql=project%20%3D%20TDEPS%20ORDER%20BY%20created%20DESC&amp;amp;selectedIssue=TDEPS-269&quot;&gt;https://clojure.atlassian.net/jira/software/c/projects/TDEPS/issues?jql=project = TDEPS ORDER BY created DESC&amp;amp;selectedIssue=TDEPS-269&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14906/tdeps-269-checksums-should-use-sha256sum-instead-of-shasum?show=14906#q14906</guid>
<pubDate>Tue, 27 Jan 2026 15:31:37 +0000</pubDate>
</item>
<item>
<title>Commented: How do you use a private maven repository with deps.edn</title>
<link>https://ask.clojure.org/index.php/8571/how-do-you-use-a-private-maven-repository-with-deps-edn?show=14560#c14560</link>
<description>Moved again, under &amp;quot;Maven authenticated repos&amp;quot; at &lt;a href=&quot;https://clojure.org/reference/clojure_cli#procurer_mvn&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.org/reference/clojure_cli#procurer_mvn&lt;/a&gt;</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8571/how-do-you-use-a-private-maven-repository-with-deps-edn?show=14560#c14560</guid>
<pubDate>Tue, 27 May 2025 18:18:13 +0000</pubDate>
</item>
<item>
<title>Commented: Add support for BOM (Bill Of Materials) dependencies</title>
<link>https://ask.clojure.org/index.php/10892/add-support-for-bom-bill-of-materials-dependencies?show=14454#c14454</link>
<description>At $WORK we've been asked to support some azure services and their libraries are packed together into a BOM: &lt;a href=&quot;https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/boms/azure-sdk-bom/README.md#adding-the-bom-to-your-project&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/boms/azure-sdk-bom/README.md#adding-the-bom-to-your-project&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Would the linked approach also handle the situation where sub-packages wouldn't require version specification? (it's mentioned in the next paragraph in the link to the azure sdk above)</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10892/add-support-for-bom-bill-of-materials-dependencies?show=14454#c14454</guid>
<pubDate>Sat, 08 Mar 2025 15:20:31 +0000</pubDate>
</item>
<item>
<title>Closed: Clojure cli on windows relies on MD5 which is not FIPS compliant</title>
<link>https://ask.clojure.org/index.php/9537/clojure-cli-on-windows-relies-on-md5-which-not-fips-compliant?show=9537#q9537</link>
<description>&lt;p&gt;It looks like the default powershell module uses the MD5 crypto service provider to compute a hash for the cached classpath file (I think);&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function Get-StringHash(str)  {
    $md5  = new-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Under certain installations of Windows with &lt;a rel=&quot;nofollow&quot; href=&quot;https://techcommunity.microsoft.com/t5/microsoft-security-baselines/why-we-8217-re-not-recommending-8220-fips-mode-8221-anymore/ba-p/701037&quot;&gt;FIPS&lt;/a&gt; mandated (e.g. by the system admin), MD5 is simply disallowed and &lt;code&gt;clj&lt;/code&gt; will fail with an error regarding FIPS in this function.&lt;/p&gt;
&lt;p&gt;A simple alternative is to change to a compliant algorithm, e.g. SHA1, &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function Get-StringHash(str)  {
    $md5  = new-Object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This should not have an effect on the operation of the clojure cli script, other than changing the actual hashed value of the classpath, which should be internally consistent with the script's prior runs.  Unless something depends on the exact MD5 hash of the cpcache (it doesn't look like it), this should be a quick fix for cases where FIPS is forced.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9537/clojure-cli-on-windows-relies-on-md5-which-not-fips-compliant?show=9537#q9537</guid>
<pubDate>Fri, 19 Jul 2024 17:34:16 +0000</pubDate>
</item>
<item>
<title>Commented: Clojure CLI: --report incompatible with -X ?</title>
<link>https://ask.clojure.org/index.php/10692/clojure-cli-report-incompatible-with-x?show=12563#c12563</link>
<description>Things have changed in the implementation here a number of times. In current versions, -X/-T will go through clojure.main to exec functions. I would currently consider that an implementation detail (but probably one that will stick). We have a jira to consider this more fully at &lt;a href=&quot;https://clojure.atlassian.net/browse/TDEPS-193&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/TDEPS-193&lt;/a&gt;</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10692/clojure-cli-report-incompatible-with-x?show=12563#c12563</guid>
<pubDate>Tue, 17 Jan 2023 14:14:56 +0000</pubDate>
</item>
<item>
<title>Retagged: Set GITLIBS in deps.edn</title>
<link>https://ask.clojure.org/index.php/12414/set-gitlibs-in-deps-edn?show=12414#q12414</link>
<description>&lt;p&gt;Currently, git libs are cloned to &lt;code&gt;~/.gitlibs&lt;/code&gt; by default, and this can be changed with the environment variable &lt;code&gt;GITLIBS&lt;/code&gt;. (&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.org/reference/deps_and_cli#_configuration_and_debugging&quot;&gt;See docs&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;It would be helpful if I could set that location via an entry in the repo's deps.edn file, akin to &lt;code&gt;:mvn/local-repo&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{:mvn/local-repo &quot;local-m2&quot; :gitlibs &quot;gitlibs&quot; :deps {...}}}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If this could be done, I would also appreciate it being available within an alias. This probably would require implementing the same for &lt;code&gt;:mvn/local-rep&lt;/code&gt; first (&lt;a rel=&quot;nofollow&quot; href=&quot;https://ask.clojure.org/index.php/11711/set-mvn-local-repo-via-alias&quot;&gt;see relevant Ask&lt;/a&gt;).&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12414/set-gitlibs-in-deps-edn?show=12414#q12414</guid>
<pubDate>Thu, 01 Dec 2022 15:32:56 +0000</pubDate>
</item>
<item>
<title>Answered: Datomic Pro on-prem fails on M1 Mac</title>
<link>https://ask.clojure.org/index.php/12392/datomic-pro-on-prem-fails-on-m1-mac?show=12393#a12393</link>
<description>&lt;p&gt;Probably better to post this on &lt;a rel=&quot;nofollow&quot; href=&quot;https://ask.datomic.com&quot;&gt;https://ask.datomic.com&lt;/a&gt; so the folks there will see it. &lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12392/datomic-pro-on-prem-fails-on-m1-mac?show=12393#a12393</guid>
<pubDate>Mon, 21 Nov 2022 00:30:31 +0000</pubDate>
</item>
<item>
<title>Reshown: Support `:mvn/repos` inside an alias</title>
<link>https://ask.clojure.org/index.php/12367/support-mvn-repos-inside-an-alias?show=12367#q12367</link>
<description>&lt;p&gt;This is similar to &lt;a rel=&quot;nofollow&quot; href=&quot;https://ask.clojure.org/index.php/11711/set-mvn-local-repo-via-alias&quot;&gt;https://ask.clojure.org/index.php/11711/set-mvn-local-repo-via-alias&lt;/a&gt;, sorry if I should have just added a note there instead of opening another question.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:mvn/repos&lt;/code&gt; does not seem to work inside of an alias either -- only at the top level of &lt;code&gt;deps.edn&lt;/code&gt;. If this is intentional, it would be a nicer experience if CLI logged some sort of &quot;&lt;code&gt;:mvn/repos&lt;/code&gt; is not supported inside of aliases&quot; warning on launch.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12367/support-mvn-repos-inside-an-alias?show=12367#q12367</guid>
<pubDate>Tue, 08 Nov 2022 19:25:08 +0000</pubDate>
</item>
<item>
<title>Commented: :deps manifest dependencies do not respect :mvn/repos in dependent project</title>
<link>https://ask.clojure.org/index.php/10726/deps-manifest-dependencies-respect-repos-dependent-project?show=12366#c12366</link>
<description>Maybe this could be an option for each individual dep, since there are some legitimate use cases where you want it. &lt;br /&gt;
&lt;br /&gt;
I'll give you a concrete example:&lt;br /&gt;
&lt;br /&gt;
In Metabase we have our Amazon Redshift extension as a separate `:local/root` subproject; Amazon has its own repo for the Redshift JDBC driver. Ideally we'd just have the custom `:mvn/repos` in the subproject and be able to pull that into the main project whenever we include it. As it is right now we have to copy the repo path and specify `:mvn/repos` in two places.&lt;br /&gt;
&lt;br /&gt;
Something like&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
{:extra-deps&lt;br /&gt;
&amp;nbsp;{metabase/redshift {:local/root &amp;quot;modules/drivers/redshift&amp;quot;, :mvn/include-repos true}}}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
would work I think</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10726/deps-manifest-dependencies-respect-repos-dependent-project?show=12366#c12366</guid>
<pubDate>Tue, 08 Nov 2022 19:02:40 +0000</pubDate>
</item>
<item>
<title>Edited: Convention for bypassing EDN parsing in -X usage to reduce using quotes in arguments passed from shell</title>
<link>https://ask.clojure.org/index.php/11585/convention-bypassing-parsing-reduce-quotes-arguments-passed?show=11585#q11585</link>
<description>&lt;p&gt;Sometimes quoting strings or shell invocations can be a bit verbose or clumsy in the shell when passing arguments to exec functions (-X) because those arguments have to be quoted with an extra layer since they are parsed as EDN.&lt;/p&gt;
&lt;p&gt;This example was recently posted in Slack:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clojure -X:bench :json &quot;$(my_json_producing_cmd --blah)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and it turned out nearly impossible to pass the JSON as an argument.&lt;/p&gt;
&lt;p&gt;Having a way to bypass EDN parsing for such arguments could alleviate that problem.&lt;/p&gt;
&lt;p&gt;One possible convention could be to use a leading character which would otherwise be invalid in EDN, such as the / sign:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clojure -X:bench :json /&quot;$(my_json_producing_cmd --blah)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternative approaches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use metadata on the function to opt out of processing: that would change the parsing behavior at the implementation side, e.g.:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  (defn foo
    {:tools.deps/exec-skip-edn-read #{:a}} 
    [{:keys [a b c]}]
      ...) 
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add something to deps.edn config in :exec-args: that would only change the behavior for consumers&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Extra things to consider:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The convention should play well with both bash, cmd.exe and Powershell and not mean anything special in the syntax of those shells. I tried / in these shells and this does not seem to interfere.  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After experimentation I found that / might work better than @ since @ has a special meaning in powershell:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bb -e &quot;*command-line-args*&quot; /foo @bar
(&quot;/foo&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Also @ often means: slurp contents from file and inline that content as arg.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11585/convention-bypassing-parsing-reduce-quotes-arguments-passed?show=11585#q11585</guid>
<pubDate>Sat, 08 Oct 2022 18:28:57 +0000</pubDate>
</item>
<item>
<title>Edited: Calva project type: shadow-cljs vs deps.edn + shadow-cljs?</title>
<link>https://ask.clojure.org/index.php/11901/calva-project-type-shadow-cljs-vs-deps-edn-shadow-cljs?show=11901#q11901</link>
<description>&lt;p&gt;Hi everyone, I’ve gone through the shadow-cljs quickstart guide in the GitHub repo README and got the desired message in the browser console. Next, I wanted to introduce &lt;code&gt;deps.edn&lt;/code&gt; to the project. I had some (self-inflicted) difficulty in jacking in after adding  &lt;code&gt;deps.edn&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;System details:&lt;br&gt;
OS: WSL2&lt;br&gt;
Java version: OpenJDK 11.0.15&lt;br&gt;
Clojure CLI version: 1.11.1.1113&lt;/p&gt;
&lt;p&gt;With only &lt;code&gt;shadow-cljs.edn&lt;/code&gt; in the project, said file contents are:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;;; shadow-cljs.edn
{:source-paths [&quot;src/dev&quot;
                &quot;src/main&quot;
                &quot;src/test&quot;]
 :dependencies []
 
 :dev-http {8080 &quot;public&quot;}
 :builds {:frontend {:target :browser
                     :modules {:main {:init-fn acme.frontend.app/init}}}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;At this point, jacking in with Calva using the “shadow-cljs” project type, which both starts and connects to the “:frontend” build, works like a charm. &lt;/p&gt;
&lt;p&gt;As mentioned in the first paragraph, I had difficulty with introducing &lt;code&gt;deps.edn&lt;/code&gt; to the project.&lt;/p&gt;
&lt;p&gt;Add &lt;code&gt;deps.edn&lt;/code&gt; to the main project directory with the following contents:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;;; deps.edn
{:paths [&quot;src/main&quot;
&quot;src/dev&quot;
&quot;src/test&quot;]

 :aliases
 {:cljs {:extra-deps {thheller/shadow-cljs {:mvn/version &quot;2.19.0&quot;}}}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change &lt;code&gt;shadow-cljs.edn&lt;/code&gt; to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; ;; shadow-cljs.edn
    
 {:deps {:aliases [:cljs]}
        
:dev-http {8080 &quot;public&quot;}
        
:builds {:frontend {:target :browser
:modules {:main {:init-fn acme.frontend.app/init}}}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Jacking in with Calva using the “deps.edn + shadow-cljs” project type at this point leads to an error containing “Failed starting cljs repl for build: :frontend. Is the build running and connected?” &lt;/p&gt;
&lt;p&gt;The Calva Connection Log also provides information, including: “shadow-cljs has not been started yet!” and “If you have a shadow-cljs server or watch running then you are not connected to that process.”&lt;/p&gt;
&lt;p&gt;The build doesn’t seem to have been started. What if we run &lt;code&gt;npx shadow-cljs watch frontend&lt;/code&gt; and then tried connecting to the REPL? Same error messages as before.&lt;/p&gt;
&lt;p&gt;It turns out I should’ve instead kept using the “shadow-cljs” project type (in which case the addition of &lt;code&gt;deps.edn&lt;/code&gt; goes down without a hitch).&lt;/p&gt;
&lt;p&gt;This leads me to wonder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When to use which project type?  &lt;/li&gt;
&lt;li&gt;Which is preferred for a fullstack&lt;br&gt;
project?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to Peter and contributors for Calva!&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11901/calva-project-type-shadow-cljs-vs-deps-edn-shadow-cljs?show=11901#q11901</guid>
<pubDate>Sun, 22 May 2022 04:32:03 +0000</pubDate>
</item>
<item>
<title>Commented: Error Building classpath</title>
<link>https://ask.clojure.org/index.php/10703/error-building-classpath?show=11784#c11784</link>
<description>I have bad news: I still see this with Clojure CLI version 1.11.1.1105:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Error building classpath. class java.util.HashMap$Node cannot be cast to class java.util.HashMap$TreeNode (java.util.HashMap$Node and java.util.HashMap$TreeNode are in module java.base of loader 'bootstrap')&lt;br /&gt;
java.lang.ClassCastException: class java.util.HashMap$Node cannot be cast to class java.util.HashMap$TreeNode (java.util.HashMap$Node and java.util.HashMap$TreeNode are in module java.base of loader 'bootstrap')&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.HashMap$TreeNode.moveRootToFront(HashMap.java:1900)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.HashMap$TreeNode.treeify(HashMap.java:2016)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.HashMap.treeifyBin(HashMap.java:768)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.HashMap.putVal(HashMap.java:640)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.HashMap.put(HashMap.java:608)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.HashSet.add(HashSet.java:220)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.validation.DefaultModelValidator.validateId(DefaultModelValidator.java:848)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.validation.DefaultModelValidator.validateEffectiveDependency(DefaultModelValidator.java:660)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.validation.DefaultModelValidator.validateEffectiveDependencies(DefaultModelValidator.java:584)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.validation.DefaultModelValidator.validateEffectiveModel(DefaultModelValidator.java:374)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:501)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:437)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:252)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:297)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:175)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:255)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.tools.deps.alpha.extensions.maven$read_descriptor.invokeStatic(maven.clj:115)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.tools.deps.alpha.extensions.maven$fn__1128.invokeStatic(maven.clj:143)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.tools.deps.alpha.extensions.maven$fn__1128.invoke(maven.clj:143)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.lang.MultiFn.invoke(MultiFn.java:244)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.tools.deps.alpha$expand_deps$children_task__771$fn__773$fn__774.invoke(alpha.clj:405)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.tools.deps.alpha.util.concurrent$submit_task$task__479.invoke(concurrent.clj:35)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at clojure.lang.AFn.call(AFn.java:18)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; at java.base/java.lang.Thread.run(Thread.java:829)&lt;br /&gt;
```</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10703/error-building-classpath?show=11784#c11784</guid>
<pubDate>Tue, 19 Apr 2022 22:09:55 +0000</pubDate>
</item>
<item>
<title>Answered: How can we make it easier for beginners to install Clojure?</title>
<link>https://ask.clojure.org/index.php/11767/how-can-we-make-it-easier-for-beginners-to-install-clojure?show=11777#a11777</link>
<description>&lt;p&gt;&quot;Easier for beginners to install&quot; is complected!  Let's split it up.  &lt;/p&gt;
&lt;p&gt;&quot;Easier for beginners&quot; means not having to use administrative privileges; not having to make a commitment or risk a complicated outcome if an installer does something unexpected; files obviously partitioned (e.g., inside 1 directory) for clarity of erasing it and trying it again and again.&lt;/p&gt;
&lt;p&gt;&quot;Easier to install&quot;, on the other hand, is not only a tougher problem, but also perhaps a bit secondary.  By the time someone is thrilled with the trial, and let us remember that these are top-1% people, they will know whether they even &lt;em&gt;need&lt;/em&gt; &quot;installation&quot;, and if they do need it, they will be pleased to be given no more of a red carpet than is in the nature of the task.&lt;/p&gt;
&lt;p&gt;Leiningen sets a pretty good example (it's hard to beat &quot;download lein&quot; and &quot;./lein&quot;) with not even the option of system-wide installation it avoids complications.  Nonetheless, Clojure's official getting-started page is not a super place to suggest Leiningen.  Lein's deep Maven consanguinity has been a great booster rocket, but a future of direct source-code-repo connections, free of a packaging step or a middleman brokering jars, is closer to Clojure's spirit.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11767/how-can-we-make-it-easier-for-beginners-to-install-clojure?show=11777#a11777</guid>
<pubDate>Sun, 17 Apr 2022 21:18:05 +0000</pubDate>
</item>
<item>
<title>Commented: How can I return data from clojure.tools.cli.api/tree?</title>
<link>https://ask.clojure.org/index.php/11738/how-can-i-return-data-from-clojure-tools-cli-api-tree?show=11749#c11749</link>
<description>I extracted out a new function to calculate the trace in clojure.tools.deps.alpha.tree/calc-trace that can be combined with the existing ctda.tree/trace-&amp;gt;tree to get the data. Will be in next release.</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11738/how-can-i-return-data-from-clojure-tools-cli-api-tree?show=11749#c11749</guid>
<pubDate>Fri, 08 Apr 2022 16:50:59 +0000</pubDate>
</item>
<item>
<title>Recategorized: Set mvn/local-repo via alias</title>
<link>https://ask.clojure.org/index.php/11711/set-mvn-local-repo-via-alias?show=11711#q11711</link>
<description>&lt;p&gt;Having to set local repos a top level attribute or via the command line results in pretty messy CI scripts where every call to &lt;code&gt;clojure&lt;/code&gt; needs the added options of &lt;code&gt;-Sdeps '{:mvn/local-repo &quot;...&quot;}'&lt;/code&gt;.&lt;br&gt;
This is both noisy and fragile. Moreover, with most CI systems being configured in yml, this can result in a mess of quotes.&lt;br&gt;
It would be preferable to have a &lt;code&gt;:ci&lt;/code&gt; alias where &lt;code&gt;mvn/local-rep&lt;/code&gt; and GITLIBS could be overwritten.&lt;/p&gt;
&lt;p&gt;Thanks&lt;br&gt;
Ben&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11711/set-mvn-local-repo-via-alias?show=11711#q11711</guid>
<pubDate>Mon, 04 Apr 2022 17:23:36 +0000</pubDate>
</item>
<item>
<title>Answer edited: All kinds of problems trying to run my first Clojure program</title>
<link>https://ask.clojure.org/index.php/11640/all-kinds-of-problems-trying-to-run-my-first-clojure-program?show=11661#a11661</link>
<description>&lt;p&gt;Using the clj command line, if I just copy/paste what you have into the repl:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PS C:\Users\joinr&amp;gt; clj
Clojure 1.10.2
user=&amp;gt; (ns clojure-noob.core
         (:gen-class))

(defn -main
  &quot;I don't do a whole lot...yet.&quot;
  [&amp;amp; args]
  (println &quot;Hello, World!&quot;))

(defn train
  []
  nil

#'clojure-noob.core/-main
#'clojure-noob.core/train

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and then I evaluate (train) and (main):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clojure-noob.core=&amp;gt; (train)
Choo choo!
nil

clojure-noob.core=&amp;gt; (-main)
Hello, World!
nil
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Everything seems fine.  What are you doing differently?&lt;/p&gt;
&lt;p&gt;[ed] I noticed you are following CFTBT.  Is this your first time with emacs?  If so, a simpler editor/setup may be better, so that you are not learning both clojure and emacs at the same time....(I say this as an emacs user, specifically spacemacs with the default clojure layer and minimal customization....).&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11640/all-kinds-of-problems-trying-to-run-my-first-clojure-program?show=11661#a11661</guid>
<pubDate>Wed, 23 Mar 2022 16:40:14 +0000</pubDate>
</item>
<item>
<title>Commented: EMacs standard configuration error</title>
<link>https://ask.clojure.org/index.php/11621/emacs-standard-configuration-error?show=11641#c11641</link>
<description>As long as you can type code in the REPL and get it evaluated then it shouldn't matter if the window split is vertical or horizontal, that's just how emacs decided to layout its windows. If you want to have them side by side try with &amp;quot;Control-x 0 Control-x 3&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Just to be clear, emacs has nothing to do with Clojure, it just so happens that the Clojure community early on embraced emacs as one of its preferred editors due to its lisp support. There are other editors and IDEs that might feel more familiar to you if you don't want to learn both at the same time and support Clojure via plugins: Visual Studio Code has Calva, IntelliJ has Cursive, etc. I'm not trying to discourage you from learning emacs, it's a fantastic tool if you can invest in learning it, but it can be a daunting task to learn both emacs and Clojure at the same time.</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11621/emacs-standard-configuration-error?show=11641#c11641</guid>
<pubDate>Thu, 17 Mar 2022 22:21:29 +0000</pubDate>
</item>
<item>
<title>Answered: Allow configuring behavior for -X when it's invoked as entry point</title>
<link>https://ask.clojure.org/index.php/11598/allow-configuring-behavior-for-when-its-invoked-entry-point?show=11612#a11612</link>
<description>&lt;p&gt;Why not just make a -X entry point function that wraps a simpler function? &lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11598/allow-configuring-behavior-for-when-its-invoked-entry-point?show=11612#a11612</guid>
<pubDate>Mon, 28 Feb 2022 22:56:50 +0000</pubDate>
</item>
<item>
<title>Closed: Support --help for tools / use &quot;standard&quot; cli options for clojure tooling</title>
<link>https://ask.clojure.org/index.php/11590/support-help-for-tools-use-standard-options-clojure-tooling?show=11590#q11590</link>
<description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;Is there a way to get help for a tool other than knowing in advance what it does?&lt;br&gt;
Can we have a standardized --help option ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Context:&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;I found out about clj -Ttools list command in an announcement. &lt;br&gt;
Is there a way to see what other things are available besides &quot;list&quot; operations ?&lt;br&gt;
Is there a way to print docs for those ?&lt;br&gt;
Most CLI tools offer a --help or a man page.&lt;br&gt;
I tried some of the things I know from usual OS commands: &lt;br&gt;
clj -Ttools &lt;br&gt;
No function found on command line or in :exec-fn&lt;br&gt;
clj -Ttools help&lt;br&gt;
Function not found: clojure.tools.tools.api/help&lt;br&gt;
clj -Ttools --help&lt;br&gt;
Function not found: clojure.tools.tools.api/--help&lt;br&gt;
This works but for clj, not for the tools.&lt;br&gt;
clj --help&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;I would argue that clojure should adopt a more familiar CLI interface so people comming into clojure can find their way around. &lt;/p&gt;
&lt;p&gt;Of course more advance clojure users could argue that things are good enough as they are - but I don't think there is any standardization on this front. &lt;br&gt;
This leads to having to remember syntax for lots of tools.  &lt;/p&gt;
&lt;p&gt;I think having a standardized help would improve this a lot: &lt;br&gt;
There are some guides online - first search brought me this &lt;a rel=&quot;nofollow&quot; href=&quot;https://clig.dev/#help&quot;&gt;https://clig.dev/#help&lt;/a&gt;  . &lt;br&gt;
I'm sure there are others. &lt;/p&gt;
&lt;p&gt;Original discussion on Cojurians slack &lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojurians.slack.com/archives/C06MAR553/p1635321226061200?thread_ts=1635283780.057200&amp;amp;cid=C06MAR553&quot;&gt;https://clojurians.slack.com/archives/C06MAR553/p1635321226061200?thread_ts=1635283780.057200&amp;amp;cid=C06MAR553&lt;/a&gt; . &lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11590/support-help-for-tools-use-standard-options-clojure-tooling?show=11590#q11590</guid>
<pubDate>Fri, 18 Feb 2022 14:35:10 +0000</pubDate>
</item>
<item>
<title>Answered: tools.build/javac does not handle modules-info</title>
<link>https://ask.clojure.org/index.php/11428/tools-build-javac-does-not-handle-modules-info?show=11459#a11459</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TBUILD-25&quot;&gt;https://clojure.atlassian.net/browse/TBUILD-25&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11428/tools-build-javac-does-not-handle-modules-info?show=11459#a11459</guid>
<pubDate>Tue, 11 Jan 2022 14:42:32 +0000</pubDate>
</item>
<item>
<title>Commented: clojure -X misreports error if FileNotFoundException is thrown</title>
<link>https://ask.clojure.org/index.php/11223/clojure-misreports-error-if-filenotfoundexception-thrown?show=11226#c11226</link>
<description>Thanks. I ran into a similar issue just over a week ago and I've been meaning to add an &amp;quot;ask&amp;quot; about it!</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11223/clojure-misreports-error-if-filenotfoundexception-thrown?show=11226#c11226</guid>
<pubDate>Thu, 28 Oct 2021 19:33:41 +0000</pubDate>
</item>
<item>
<title>Answer selected: Make tools help more discoverable</title>
<link>https://ask.clojure.org/index.php/11214/make-tools-help-more-discoverable?show=11215#a11215</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TDEPS-211&quot;&gt;https://clojure.atlassian.net/browse/TDEPS-211&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11214/make-tools-help-more-discoverable?show=11215#a11215</guid>
<pubDate>Wed, 27 Oct 2021 20:14:15 +0000</pubDate>
</item>
<item>
<title>Comment edited: tools.build: are &quot;standard&quot; build tasks under consideration?</title>
<link>https://ask.clojure.org/index.php/11168/tools-build-are-standard-build-tasks-under-consideration?show=11170#c11170</link>
<description>Yeah I’m using build-clj. In fact it contributed to this line of thinking.&lt;br /&gt;
&lt;br /&gt;
[edit] and just to add some nuance, while build-clj provides standard _implementations_ of common build tasks, it doesn't say anything about standard _interfaces_ to those build tasks (the latter being the focus of my question)</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11168/tools-build-are-standard-build-tasks-under-consideration?show=11170#c11170</guid>
<pubDate>Mon, 18 Oct 2021 17:28:33 +0000</pubDate>
</item>
<item>
<title>Datomic ion push fails</title>
<link>https://ask.clojure.org/index.php/11113/datomic-ion-push-fails</link>
<description>&lt;p&gt;Anyone recognize this error &quot;data did not conform&quot; when trying to make a datomic ion push? I am using a windows machine and get the following message:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;{​​​​​​:command-failed&lt;br&gt;
 &quot;{​​​​​​:op :push :uname my-test-name :creds-profile my-creds-profile :region my-region}​​​​​​&quot;,&lt;br&gt;
 :causes&lt;br&gt;
 ({​​​​​​:message &quot;Data did not conform&quot;,&lt;br&gt;
   :class ExceptionInfo,&lt;br&gt;
   :data&lt;br&gt;
   #:clojure.spec.alpha{​​​​​​:problems&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                    ({​​​​​​:path [:local :home],
                      :pred clojure.core/string?,
                      :val nil,
                      :via
                      [:cognitect.s3-libs.specs/local
                       :cognitect.s3-libs.specs/home],
                      :in [:local :home]}​​​​​​),
                    :spec
                    #object[clojure.spec.alpha$map_spec_impl$reify__1997 0x668a32a4 &quot;clojure.spec.alpha$map_spec_impl$reify__1997@668a32a4&quot;],
                    :value
                    {​​​​​​:description
                     &quot;Unreproducible deployment (no git commit)&quot;,
                     :query-group nil,
                     :app-name &quot;app-name&quot;,
                     :creds-profile my-creds-profile,
                     :op :push,
                     :uname my-test-name,
                     :allow [],
                     :region my-region,
                     :lambdas
                     {​​​​​​:api-handler
                      {​​​​​​:fn com.anon.app-name.ions.core/api-ion,
                       :integration :api-gateway/proxy,
                       :description
                       &quot;Handles requests to REST API.&quot;,
                       :timeout-secs 29,
                       :concurrency-limit :none}​​​​​​,
                      :file-upload-handler
                      {​​​​​​:fn
                       com.anon.app-name.ions.core/file-upload-handler,
                       :description
                       &quot;Handles notifications received from S3 when a user uploads a file to uploads bucket.&quot;,
                       :timeout-secs 900,
                       :concurrency-limit :none}​​​​​​,
                      :file-cleanup-handler
                      {​​​​​​:fn
                       com.anon.app-name.ions.core/file-cleanup-handler,
                       :description
                       &quot;Cleanups orphan files in database. Triggered by AWS Events every midnight.&quot;,
                       :timeout-secs 300,
                       :concurrency-limit 1}​​​​​​,
                      :common-connector
                      {​​​​​​:fn
                       com.anon.app-name.ions.core/common-connector,
                       :description
                       &quot;Handles common connection tasks between datomic and other Amazon services when required.&quot;,
                       :timeout-secs 300,
                       :concurrency-limit :none}​​​​​​,
                      :first-platform-connector
                      {​​​​​​:fn
                       com.anon.app-name.ions.core/first-platform-connector,
                       :description
                       &quot;Handles first-platform related connection tasks between datomic and other Amazon services when required.&quot;,
                       :timeout-secs 300,
                       :concurrency-limit :none}​​​​​​,
                      :second-platform-connector
                      {​​​​​​:fn
                       com.anon.app-name.ions.core/second-platform-connector,
                       :description
                       &quot;Handles second-platform related connection tasks between datomic and other Amazon services when required.&quot;,
                       :timeout-secs 300,
                       :concurrency-limit :none}​​​​​​}​​​​​​,
                     :datomic.ion.dev.config/resource
                     &quot;datomic/ion-config.edn&quot;,
                     :local {​​​​​​:home nil}​​​​​​,
                     :bucket
                     &quot;datomic-code-hash&quot;}​​​​​​}​​​​​​}​​​​​​)}​​​​​​
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11113/datomic-ion-push-fails</guid>
<pubDate>Wed, 29 Sep 2021 07:41:53 +0000</pubDate>
</item>
<item>
<title>Commented: tools.build.api/write-pom does not expose generated pom's filename</title>
<link>https://ask.clojure.org/index.php/10956/tools-build-api-write-pom-does-expose-generated-poms-filename?show=11104#c11104</link>
<description>For Alex: Thanks!&lt;br /&gt;
For Sean: I noticed that update landed in build.clj. I've been using (and loving) it. Thanks to you too!</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10956/tools-build-api-write-pom-does-expose-generated-poms-filename?show=11104#c11104</guid>
<pubDate>Sat, 25 Sep 2021 18:24:48 +0000</pubDate>
</item>
<item>
<title>Answer selected: Do I have to switch to Java 8 or 11 from 16.0.1?</title>
<link>https://ask.clojure.org/index.php/11052/do-i-have-to-switch-to-java-8-or-11-from-16-0-1?show=11053#a11053</link>
<description>&lt;p&gt;clojure.org does NOT state that it runs only on Java 8 or 11. &lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.org/releases/downloads&quot;&gt;https://clojure.org/releases/downloads&lt;/a&gt; says: &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Minimum runtime dependency: Java 8&lt;br&gt;
Supported: LTS (long term support) releases, currently Java 8 and Java 11&lt;br&gt;
Others: likely work, but not officially supported&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Clojure runs on all versions of Java 8 or higher. We test and officially support Clojure on Java Long Term Support (LTS) releases such as Java 8 or 11 (or coming out today, Java 17). I know of no known issue on any other version of Java 8+, but they are not officially supported.&lt;/p&gt;
&lt;p&gt;Clojure works great with Java 16.0.1 - if you want to use that, go for it.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11052/do-i-have-to-switch-to-java-8-or-11-from-16-0-1?show=11053#a11053</guid>
<pubDate>Tue, 14 Sep 2021 21:48:59 +0000</pubDate>
</item>
<item>
<title>Answer selected: Why tools-deps downloads all deps again when i run the tests (locally and on CI)</title>
<link>https://ask.clojure.org/index.php/10999/why-tools-deps-downloads-all-deps-again-when-run-tests-locally?show=11003#a11003</link>
<description>&lt;p&gt;Please share a deps.edn that reproduces this.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10999/why-tools-deps-downloads-all-deps-again-when-run-tests-locally?show=11003#a11003</guid>
<pubDate>Thu, 02 Sep 2021 19:29:48 +0000</pubDate>
</item>
<item>
<title>Answer selected: tools.build.api/git-count-revs should support rev-lists path argument</title>
<link>https://ask.clojure.org/index.php/10958/tools-build-api-count-revs-should-support-lists-path-argument?show=10959#a10959</link>
<description>&lt;p&gt;Good idea - added at 98d1632 for next release.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10958/tools-build-api-count-revs-should-support-lists-path-argument?show=10959#a10959</guid>
<pubDate>Mon, 23 Aug 2021 22:46:17 +0000</pubDate>
</item>
<item>
<title>Answered: Setting --prefix clojure-tools results in the installation being deleted</title>
<link>https://ask.clojure.org/index.php/10940/setting-prefix-clojure-tools-results-installation-deleted?show=10964#a10964</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TDEPS-205&quot;&gt;https://clojure.atlassian.net/browse/TDEPS-205&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10940/setting-prefix-clojure-tools-results-installation-deleted?show=10964#a10964</guid>
<pubDate>Mon, 23 Aug 2021 13:51:20 +0000</pubDate>
</item>
<item>
<title>Answer selected: getting &quot;Function not found&quot; when invoking clojure with -X:alias</title>
<link>https://ask.clojure.org/index.php/10947/getting-function-not-found-when-invoking-clojure-with-alias?show=10949#a10949</link>
<description>&lt;p&gt;You have a typo in &lt;code&gt;src/web/network_service.clj&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(ns web.netwok-service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There's an &lt;code&gt;r&lt;/code&gt; missing so the namespace does not match the filename and cannot be required correctly.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10947/getting-function-not-found-when-invoking-clojure-with-alias?show=10949#a10949</guid>
<pubDate>Wed, 18 Aug 2021 18:11:09 +0000</pubDate>
</item>
<item>
<title>Answer selected: tools.build.api/write-pom does not update scm&gt;tag</title>
<link>https://ask.clojure.org/index.php/10893/tools-build-api-write-pom-does-not-update-scm-tag?show=10926#a10926</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TBUILD-13&quot;&gt;https://clojure.atlassian.net/browse/TBUILD-13&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10893/tools-build-api-write-pom-does-not-update-scm-tag?show=10926#a10926</guid>
<pubDate>Tue, 10 Aug 2021 20:25:56 +0000</pubDate>
</item>
<item>
<title>Answer selected: create-basis/java-command do not handle :jvm-opts</title>
<link>https://ask.clojure.org/index.php/10894/create-basis-java-command-do-not-handle-jvm-opts?show=10927#a10927</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TBUILD-14&quot;&gt;https://clojure.atlassian.net/browse/TBUILD-14&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10894/create-basis-java-command-do-not-handle-jvm-opts?show=10927#a10927</guid>
<pubDate>Mon, 09 Aug 2021 17:19:49 +0000</pubDate>
</item>
<item>
<title>Answer selected: help/doc doesn't work with project dependencies</title>
<link>https://ask.clojure.org/index.php/10888/help-doc-doesnt-work-with-project-dependencies?show=10889#a10889</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TDEPS-201&quot;&gt;https://clojure.atlassian.net/browse/TDEPS-201&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10888/help-doc-doesnt-work-with-project-dependencies?show=10889#a10889</guid>
<pubDate>Thu, 29 Jul 2021 18:02:43 +0000</pubDate>
</item>
<item>
<title>Answer selected: Add the CLI equivalent of Leiningen's sample.project.clj</title>
<link>https://ask.clojure.org/index.php/10094/add-the-cli-equivalent-of-leiningens-sample-project-clj?show=10095#a10095</link>
<description>&lt;p&gt;I will update example-deps.edn, that has gotten a little old.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10094/add-the-cli-equivalent-of-leiningens-sample-project-clj?show=10095#a10095</guid>
<pubDate>Thu, 29 Jul 2021 00:25:19 +0000</pubDate>
</item>
<item>
<title>Answer selected: Exception using futures with -X on Clojure CLI 1.10.3.929</title>
<link>https://ask.clojure.org/index.php/10850/exception-using-futures-with-x-on-clojure-cli-1-10-3-929?show=10851#a10851</link>
<description>&lt;p&gt;I believe with 882, &lt;code&gt;-X&lt;/code&gt; called &lt;code&gt;System/exit&lt;/code&gt; which is why that version doesn't work.&lt;/p&gt;
&lt;p&gt;905 behaves the same way (exits).&lt;/p&gt;
&lt;p&gt;912 onward exhibit the &quot;bad&quot; behavior and I'm fairly sure this is because they call &lt;code&gt;shutdown-agents&lt;/code&gt; -- which was added to be friendly to exec functions (programs) that would otherwise &quot;hang&quot; at the end.&lt;/p&gt;
&lt;p&gt;The root of this change in behavior was probably due to wanting to be able to chain functions -- so the exec functions themselves cannot call &lt;code&gt;shutdown-agents&lt;/code&gt; or &lt;code&gt;System/exit&lt;/code&gt; because that would &quot;break the chain&quot; and so only the CLI could call those functions once all the exec functions have &quot;completed&quot;.&lt;/p&gt;
&lt;p&gt;There's an inherent tension between wanting a clean shell exit after calling &lt;code&gt;-X&lt;/code&gt; and wanting background threads to stay alive (like the Socket Server example).&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10850/exception-using-futures-with-x-on-clojure-cli-1-10-3-929?show=10851#a10851</guid>
<pubDate>Thu, 29 Jul 2021 00:09:00 +0000</pubDate>
</item>
<item>
<title>Answer selected: help/doc would be useful for -Ttools</title>
<link>https://ask.clojure.org/index.php/10782/help-doc-would-be-useful-for-ttools?show=10783#a10783</link>
<description>&lt;p&gt;Yeah, we have a ticket for this &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TDEPS-187&quot;&gt;https://clojure.atlassian.net/browse/TDEPS-187&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10782/help-doc-would-be-useful-for-ttools?show=10783#a10783</guid>
<pubDate>Mon, 19 Jul 2021 17:02:49 +0000</pubDate>
</item>
<item>
<title>Answer selected: -X:deps help/doc does not work for a function</title>
<link>https://ask.clojure.org/index.php/10778/x-deps-help-doc-does-not-work-for-a-function?show=10781#a10781</link>
<description>&lt;p&gt;The correct way to refer to the doc for a function seems to be &lt;code&gt;-X:deps help/doc :fn &amp;lt;ns-name&amp;gt;/&amp;lt;fn-name&amp;gt;&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ clj -X:deps help/doc :fn clojure.core/cons
-------------------------
clojure.core/cons
([x seq])
  Returns a new seq where x is the first element and seq is
    the rest.

$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But, in this case, that still doesn’t work. Probably, the call to &lt;code&gt;resolve&lt;/code&gt; in &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/clojure/tools.deps.alpha/blob/14b4cdf2211e74fa1ea7af22358b40853e26f943/src/main/clojure/clojure/tools/cli/help.clj#L53&quot;&gt;this line&lt;/a&gt; should be &lt;code&gt;requiring-resolve&lt;/code&gt;?&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10778/x-deps-help-doc-does-not-work-for-a-function?show=10781#a10781</guid>
<pubDate>Thu, 15 Jul 2021 16:19:33 +0000</pubDate>
</item>
<item>
<title>Answered: Support for shorthand commands in tools.deps</title>
<link>https://ask.clojure.org/index.php/10400/support-for-shorthand-commands-in-tools-deps?show=10453#a10453</link>
<description>&lt;p&gt;I am considering a similar feature for babashka. A preview of this has shipped with bb 0.3.3. An example:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/borkdude/antq/blob/bb-run/bb.edn&quot;&gt;https://github.com/borkdude/antq/blob/bb-run/bb.edn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;More info: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/babashka/babashka/issues/778&quot;&gt;https://github.com/babashka/babashka/issues/778&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10400/support-for-shorthand-commands-in-tools-deps?show=10453#a10453</guid>
<pubDate>Sat, 10 Apr 2021 18:15:21 +0000</pubDate>
</item>
<item>
<title>Answer selected: Support maven mirror with authentication</title>
<link>https://ask.clojure.org/index.php/10416/support-maven-mirror-with-authentication?show=10417#a10417</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/TDEPS-177&quot;&gt;https://clojure.atlassian.net/browse/TDEPS-177&lt;/a&gt;, thanks for the report. I will try to get that fixed soon.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10416/support-maven-mirror-with-authentication?show=10417#a10417</guid>
<pubDate>Thu, 08 Apr 2021 21:59:40 +0000</pubDate>
</item>
<item>
<title>Feature request -v as an alias for --version when using clojure cli</title>
<link>https://ask.clojure.org/index.php/10413/feature-request-as-alias-for-version-when-using-clojure-cli</link>
<description>&lt;p&gt;Running something like &lt;code&gt;clojure -v&lt;/code&gt; today with &lt;code&gt;Clojure CLI version 1.10.3.822&lt;/code&gt; will output&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;WARNING: When invoking clojure.main, use -M
Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2).
-v (No such file or directory)

Full report at:
/var/folders/xg/xr5m785j5cb9lm9cjr3qc7480000gn/T/clojure-5319990582198082614.edn
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Is it possible to use &lt;code&gt;-v&lt;/code&gt; as an alias for &lt;code&gt;clojure --version&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/iYIRVZN.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10413/feature-request-as-alias-for-version-when-using-clojure-cli</guid>
<pubDate>Wed, 07 Apr 2021 16:48:45 +0000</pubDate>
</item>
<item>
<title>Suggestion - support legacy Homebrew clients</title>
<link>https://ask.clojure.org/index.php/10176/suggestion-support-legacy-homebrew-clients</link>
<description>&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Homebrew/brew/commit/b07685291b65e51e0afc2b6cee91251419e0b3c1&quot;&gt;https://github.com/Homebrew/brew/commit/b07685291b65e51e0afc2b6cee91251419e0b3c1&lt;/a&gt; was a breaking change for people deciding to keep using old versions of Brew (which is not particularly easy or popular, but I happen to do it). It's breaking in that an old Brew client querying a newer formula would fail with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Error: clojure: undefined method `license' for #&amp;lt;Class:0x00007fd2ca91eb38&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This can be trivially addressed by wrapping the &lt;code&gt;license&lt;/code&gt; call with an idiomatic &lt;code&gt;if self.respond_to?(:license)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This would allow me to keep using the latest Clojure formulae without having to hack them for such a trivial change.&lt;/p&gt;
&lt;p&gt;Would you consider doing it?&lt;/p&gt;
&lt;p&gt;Thanks - V&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10176/suggestion-support-legacy-homebrew-clients</guid>
<pubDate>Fri, 12 Feb 2021 12:35:50 +0000</pubDate>
</item>
<item>
<title>Issue with broken packages if repository doesn't resolve properly</title>
<link>https://ask.clojure.org/index.php/9782/issue-broken-packages-repository-doesnt-resolve-properly</link>
<description>&lt;p&gt;My project edn had a old maven link that no longer resolves, since maven switched to https only in 2020:&lt;/p&gt;
&lt;p&gt;:mvn/repos {&quot;central&quot; {:url &quot;&lt;a rel=&quot;nofollow&quot; href=&quot;http://central.maven.org/maven2/&amp;quot;}&quot;&gt;http://central.maven.org/maven2/&quot;}&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When retrieving deps from a new computer, the packages were all failing with errors like:&lt;/p&gt;
&lt;p&gt;Downloading: selmer/selmer/1.12.31/selmer-1.12.31.pom from central&lt;br&gt;
Download corrupted: Checksum validation failed, expected &amp;lt;meta but is ad208edec82716369dab76b6cbca3475a4ae2033&lt;/p&gt;
&lt;p&gt;This was because the downloaded &quot;package&quot; were instead HTML files due to AT&amp;amp;T dnsassist.&lt;/p&gt;
&lt;p&gt;Since the checksum fails, I would expect the package downloaded to be deleted instead of kept as it is (broken html files). I had to delete the entire .m2, fix the repo link, and then redownload to fix.&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9782/issue-broken-packages-repository-doesnt-resolve-properly</guid>
<pubDate>Wed, 11 Nov 2020 16:17:26 +0000</pubDate>
</item>
<item>
<title>Is there a clojure cli equivalent to lein checkouts?</title>
<link>https://ask.clojure.org/index.php/9155/is-there-a-clojure-cli-equivalent-to-lein-checkouts</link>
<description>&lt;p&gt;&lt;code&gt;clj&lt;/code&gt; allows us to specify local deps with the &lt;code&gt;:local/root&lt;/code&gt; coordinate type, but when multiple developers share a &lt;code&gt;deps.edn&lt;/code&gt; for a project, it is often the case that they have placed dependencies in different locations on their filesystems. &lt;code&gt;:local/root&lt;/code&gt; allows relative paths, which helps with this a bit, but this doesn't allow the flexibility of lein checkouts, which are local file system symlinks that are not stored in version control. Does the clojure cli allow something like that?&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9155/is-there-a-clojure-cli-equivalent-to-lein-checkouts</guid>
<pubDate>Fri, 13 Mar 2020 14:34:20 +0000</pubDate>
</item>
<item>
<title>No credentials found: deploying Clojars using a Github Workflow (Actions).</title>
<link>https://ask.clojure.org/index.php/9049/credentials-found-deploying-clojars-github-workflow-actions</link>
<description>&lt;p&gt;For some reason that I can't find, it's impossible for me to deploy Clojars using Github Actions. This is my script where I perform the action.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  - name: Deploy clojars
      run: |
        mkdir ~/.lein
        echo '{:user {} :auth {:repository-auth{#&quot;clojars&quot; {:username &quot;${{ secrets.CLOJARS_USERNAME }}&quot; :password &quot;${{ secrets.CLOJARS_PASSWORD }}&quot; :sign-releases false }}}}' &amp;gt; ~/.lein/profiles.clj
        lein deploy clojars
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;He's always telling me he can't find the credentials.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;No credentials found for clojars
    See `lein help deploying` for how to configure credentials to avoid prompts.
    Username: LEIN IS UNABLE TO TURN OFF ECHOING, SO THE PASSWORD IS PRINTED TO THE CONSOLE
    Password: Created /home/runner/work/tadam-core/tadam-core/target/tadam-core-0.3.0.jar
    Wrote /home/runner/work/tadam-core/tadam-core/pom.xml
    Need to sign 2 files with GPG
    [1/2] Signing /home/runner/work/tadam-core/tadam-core/target/tadam-core-0.3.0.jar with GPG
    gpg: directory '/home/runner/.gnupg' created
    gpg: keybox '/home/runner/.gnupg/pubring.kbx' created
    gpg: no default secret key: No secret key
    gpg: signing failed: No secret key
    Could not sign /home/runner/work/tadam-core/tadam-core/target/tadam-core-0.3.0.jar
    gpg: directory '/home/runner/.gnupg' created
    gpg: keybox '/home/runner/.gnupg/pubring.kbx' created
    gpg: no default secret key: No secret key
    gpg: signing failed: No secret key
    
    
    See `lein help gpg` for how to set up gpg.
    If you don't expect people to need to verify the authorship of your jar, you
    can add `:sign-releases false` to the relevant `:deploy-repositories` entry.
    ##[error]Process completed with exit code 1.
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9049/credentials-found-deploying-clojars-github-workflow-actions</guid>
<pubDate>Tue, 21 Jan 2020 15:43:33 +0000</pubDate>
</item>
<item>
<title>Using git deps in a restricted environment</title>
<link>https://ask.clojure.org/index.php/8866/using-git-deps-in-a-restricted-environment</link>
<description>&lt;p&gt;As tools.deps gains traction, there are some libraries that are only available via git, eg &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/cognitect-labs/test-runner&quot;&gt;cognitect-labs/test-runner&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In some corporate environments without git (or general internet) access, where dependencies are acquired via tools like artifactory (for maven, npm etc), such libraries are troublesome to use. &lt;/p&gt;
&lt;p&gt;In such cases, what would your recommended approach be?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;find another library&lt;/li&gt;
&lt;li&gt;publish the library to maven either by yourself or asking the maintainers &lt;/li&gt;
&lt;li&gt;copy the source into your own source &lt;/li&gt;
&lt;li&gt;fork it into an internal (intranet) git repo and use that as a dependency&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8866/using-git-deps-in-a-restricted-environment</guid>
<pubDate>Tue, 19 Nov 2019 09:19:20 +0000</pubDate>
</item>
<item>
<title>Why is clojure not picking up installation level deps.edn?</title>
<link>https://ask.clojure.org/index.php/8839/why-is-clojure-not-picking-up-installation-level-deps-edn</link>
<description>&lt;p&gt;I have a fresh install of clojure 1.10.1.483 on a RHEL7 docker image, with the repos in /usr/local/lib/clojure/deps.edn (the installation level config) modified to point to our corporate artifactory repository. &lt;/p&gt;
&lt;p&gt;However, despite the -Sverbose option saying the file is in the config_paths, these repos are not picked up if running anywhere outside the directory itself. &lt;/p&gt;
&lt;p&gt;Doing something like &lt;code&gt;clojure -e “(clojure-version)”&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;works from within the installation dir as the deps.edn is picked up as the ‘project’ config. This indicates there is nothing wrong with the config itself. &lt;/li&gt;
&lt;li&gt;fails in any other dir, saying it cannot connect to the default repos (repo1.maven.org etc), which do not exist in any config file being checked. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;User level config is default (all commented) so should not impact, but -Srepro makes no difference. &lt;/p&gt;
&lt;p&gt;I can only conclude that the installation level config is not picked up correctly.&lt;/p&gt;
&lt;p&gt;Does anyone have any pointers here?&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8839/why-is-clojure-not-picking-up-installation-level-deps-edn</guid>
<pubDate>Thu, 07 Nov 2019 04:01:55 +0000</pubDate>
</item>
<item>
<title>Why does -A not merge deps across multiple aliases in tools.deps?</title>
<link>https://ask.clojure.org/index.php/8820/why-does-not-merge-deps-across-multiple-aliases-in-tools-deps</link>
<description>&lt;p&gt;The &lt;a rel=&quot;nofollow&quot; href=&quot;http://clojure.org/reference/deps_and_cli&quot;&gt;deps reference&lt;/a&gt; says the -A option applies across all alias types. It also says if multiple -R alias maps are specified, they are merged. This to me implies that if only options available to -R are specified (like :extra-deps), then multiple -A maps will behave the same as multiple -R maps. &lt;/p&gt;
&lt;p&gt;Given the above, and two aliases with just :extra-deps specified, I expect the following to be equivalent:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clojure -R:a:b -Spath
clojure -A:a:b -Spath
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, while -R generates a path with the deps of both :a and :b, the -A version only contains the deps of :b. &lt;/p&gt;
&lt;p&gt;Is this a bug or is the behaviour intentionally different? &lt;/p&gt;
&lt;p&gt;I tested this on the latest windows clojure 1.10.1.483&lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8820/why-does-not-merge-deps-across-multiple-aliases-in-tools-deps</guid>
<pubDate>Tue, 05 Nov 2019 03:38:08 +0000</pubDate>
</item>
<item>
<title>Running Chestnut in Cursive</title>
<link>https://ask.clojure.org/index.php/8761/running-chestnut-in-cursive</link>
<description>&lt;p&gt;Has anyone tried setting up a chestnut template in Cursive? It seems like the way IDEA auto saves causes the hot loader to not recognize the changes being made; preventing it loading those changes in the browser. &lt;/p&gt;
</description>
<category>Tools</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8761/running-chestnut-in-cursive</guid>
<pubDate>Wed, 23 Oct 2019 13:32:23 +0000</pubDate>
</item>
</channel>
</rss>