Clojure-CLI
This page is intended to help the (re-)packaging of clj (and maybe other tools?)
ITP: 891141
This is a GSoC 2021 Project
Relevant ITPs
(from the accepted proposal)
1. The following ITPs should be fixed:
“ITP: clojure-cli -- upstream CLI entrypoints for Clojure” 891141
“ITP: tools-deps-alpha-clojure -- functional API for dependency management and classpath creation” 891136
“ITP: tools-gitlibs-clojure -- Clojure API for programatically accessing git libraries” 905543
2. Consider also closing the following RFPs:
“RFP: clojurehelper -- Helper scripts for packaging Clojure programs” 718775
We plan to collaborate with upstream during the packaging process, to ensure the package's quality. From what we have already heard from them in the debian-clojure list, they are listening
Packaging strategy
- Check which packages are already in Debian (some of them already are).
- Identify leaf nodes (all)
- Identify leaf nodes to work on (maybe some are not?)
Work on org.clojure leaf nodes
Work on non- org.clojure leaf nodes
Upstream Dependencies
In order to package clj, we first need to study clojure's upstream deps.
Dependencies (full tree)
% mvn dependency:tree [INFO] Scanning for projects... [INFO] [INFO] ---------------------< org.clojure:clojure-tools >---------------------- [INFO] Building clojure-tools 1.10.3.855 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ clojure-tools --- [INFO] org.clojure:clojure-tools:jar:1.10.3.855 [INFO] +- org.clojure:clojure:jar:1.10.3:compile [INFO] | +- org.clojure:spec.alpha:jar:0.2.194:compile [INFO] | \- org.clojure:core.specs.alpha:jar:0.2.56:compile [INFO] +- org.clojure:tools.deps.alpha:jar:0.11.922:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-api:jar:1.7.0:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-spi:jar:1.7.0:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-impl:jar:1.7.0:compile [INFO] | | +- org.apache.maven.resolver:maven-resolver-named-locks:jar:1.7.0:compile [INFO] | | +- org.apache.commons:commons-lang3:jar:3.8.1:compile [INFO] | | \- javax.annotation:javax.annotation-api:jar:1.3.2:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-util:jar:1.7.0:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.7.0:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-transport-file:jar:1.7.0:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-transport-http:jar:1.7.0:compile [INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile [INFO] | | | \- commons-codec:commons-codec:jar:1.11:compile [INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile [INFO] | | \- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime [INFO] | +- org.apache.maven:maven-resolver-provider:jar:3.8.1:compile [INFO] | | +- org.apache.maven:maven-model:jar:3.8.1:compile [INFO] | | +- org.apache.maven:maven-model-builder:jar:3.8.1:compile [INFO] | | | \- org.codehaus.plexus:plexus-interpolation:jar:1.25:compile [INFO] | | +- org.apache.maven:maven-repository-metadata:jar:3.8.1:compile [INFO] | | \- org.codehaus.plexus:plexus-utils:jar:3.2.1:compile [INFO] | +- org.apache.maven:maven-core:jar:3.8.1:compile [INFO] | | +- org.apache.maven:maven-settings:jar:3.8.1:compile [INFO] | | +- org.apache.maven:maven-settings-builder:jar:3.8.1:compile [INFO] | | | \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile [INFO] | | | \- org.sonatype.plexus:plexus-cipher:jar:1.4:compile [INFO] | | +- org.apache.maven:maven-builder-support:jar:3.8.1:compile [INFO] | | +- org.apache.maven:maven-artifact:jar:3.8.1:compile [INFO] | | +- org.apache.maven:maven-plugin-api:jar:3.8.1:compile [INFO] | | +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:compile [INFO] | | | \- commons-io:commons-io:jar:2.5:compile [INFO] | | +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:compile [INFO] | | | \- javax.enterprise:cdi-api:jar:1.0:compile [INFO] | | | \- javax.annotation:jsr250-api:jar:1.0:compile [INFO] | | +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:compile [INFO] | | +- com.google.inject:guice:jar:no_aop:4.2.1:compile [INFO] | | | +- aopalliance:aopalliance:jar:1.0:compile [INFO] | | | \- com.google.guava:guava:jar:25.1-android:compile [INFO] | | | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile [INFO] | | | +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile [INFO] | | | +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile [INFO] | | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile [INFO] | | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile [INFO] | | +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile [INFO] | | \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:compile [INFO] | +- org.clojure:data.xml:jar:0.2.0-alpha6:compile [INFO] | | \- org.clojure:data.codec:jar:0.1.0:compile [INFO] | +- org.clojure:tools.gitlibs:jar:2.3.167:compile [INFO] | +- org.clojure:tools.cli:jar:1.0.206:compile [INFO] | +- com.cognitect.aws:api:jar:0.8.505:compile [INFO] | | +- org.clojure:data.json:jar:1.0.0:compile [INFO] | | +- org.clojure:tools.logging:jar:1.1.0:compile [INFO] | | +- com.cognitect:http-client:jar:0.1.106:compile [INFO] | | | +- org.eclipse.jetty:jetty-client:jar:9.4.36.v20210114:compile [INFO] | | | | \- org.eclipse.jetty:jetty-io:jar:9.4.36.v20210114:compile [INFO] | | | +- org.eclipse.jetty:jetty-http:jar:9.4.36.v20210114:compile [INFO] | | | \- org.eclipse.jetty:jetty-util:jar:9.4.36.v20210114:compile [INFO] | | \- org.clojure:core.async:jar:1.3.610:compile [INFO] | | \- org.clojure:tools.analyzer.jvm:jar:1.1.0:compile [INFO] | | +- org.clojure:tools.analyzer:jar:1.0.0:compile [INFO] | | +- org.clojure:core.memoize:jar:1.0.236:compile [INFO] | | | \- org.clojure:core.cache:jar:1.0.207:compile [INFO] | | | \- org.clojure:data.priority-map:jar:1.0.0:compile [INFO] | | +- org.ow2.asm:asm:jar:5.2:compile [INFO] | | \- org.clojure:tools.reader:jar:1.3.2:compile [INFO] | +- com.cognitect.aws:endpoints:jar:1.1.11.969:compile [INFO] | +- com.cognitect.aws:s3:jar:811.2.858.0:compile [INFO] | \- javax.inject:javax.inject:jar:1:compile [INFO] \- org.slf4j:slf4j-nop:jar:1.7.30:compile [INFO] \- org.slf4j:slf4j-api:jar:1.7.30:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.599 s [INFO] Finished at: 2021-06-09T11:07:08-03:00 [INFO] ------------------------------------------------------------------------
First-level dependencies
[INFO] +- org.clojure:clojure:jar:1.10.3:compile ... [INFO] +- org.clojure:tools.deps.alpha:jar:0.11.922:compile ... [INFO] \- org.slf4j:slf4j-nop:jar:1.7.30:compile ...
Second-level dependencies
[INFO] +- org.clojure:clojure:jar:1.10.3:compile [INFO] | +- org.clojure:spec.alpha:jar:0.2.194:compile (leaf node) [INFO] | \- org.clojure:core.specs.alpha:jar:0.2.56:compile (leaf node) [INFO] +- org.clojure:tools.deps.alpha:jar:0.11.922:compile [INFO] | +- org.apache.maven.resolver:maven-resolver-api:jar:1.7.0:compile (leaf node) [INFO] | +- org.apache.maven.resolver:maven-resolver-spi:jar:1.7.0:compile (leaf node) [INFO] | +- org.apache.maven.resolver:maven-resolver-impl:jar:1.7.0:compile ... [INFO] | +- org.apache.maven.resolver:maven-resolver-util:jar:1.7.0:compile (leaf node) [INFO] | +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.7.0:compile (leaf node) [INFO] | +- org.apache.maven.resolver:maven-resolver-transport-file:jar:1.7.0:compile (leaf node) [INFO] | +- org.apache.maven.resolver:maven-resolver-transport-http:jar:1.7.0:compile ... [INFO] | +- org.apache.maven:maven-resolver-provider:jar:3.8.1:compile ... [INFO] | +- org.apache.maven:maven-core:jar:3.8.1:compile ... [INFO] | +- org.clojure:data.xml:jar:0.2.0-alpha6:compile ... [INFO] | +- org.clojure:tools.gitlibs:jar:2.3.167:compile (leaf node) [INFO] | +- org.clojure:tools.cli:jar:1.0.206:compile (leaf node) [INFO] | +- com.cognitect.aws:api:jar:0.8.505:compile ... [INFO] | +- com.cognitect.aws:endpoints:jar:1.1.11.969:compile (leaf node) [INFO] | +- com.cognitect.aws:s3:jar:811.2.858.0:compile ... [INFO] \- org.slf4j:slf4j-nop:jar:1.7.30:compile [INFO] \- org.slf4j:slf4j-api:jar:1.7.30:compile