环境
clj --version
Clojure CLI version 1.12.0.1479
来源
Slack 上的聊天,我们注意到这一行为。
场景
当库 x 同时是 git 依赖和 Maven 依赖时,
clj -X:deps find-versions :lib x
只显示 git 依赖的版本。
具体示例:[io.github.clojure/tools.build](https://github.com/clojure/tools.build)
作为 git 依赖
io.github.clojure/tools.build {:git/tag "v0.10.5" :git/sha "2a21b7a"}
作为 Maven 依赖
io.github.clojure/tools.build {:mvn/version "0.10.5"}
重现
clj -X:deps find-versions :lib io.github.clojure/tools.build
实际行为
列出 git 依赖的版本
{:git/tag "v0.9.4", :git/sha "76b78fe"}
{:git/tag "v0.9.5", :git/sha "24f2894"}
{:git/tag "v0.9.6", :git/sha "8e78bcc"}
{:git/tag "v0.10.0", :git/sha "3a2c484"}
{:git/tag "v0.10.1", :git/sha "5e3b8f3"}
{:git/tag "v0.10.3", :git/sha "15ead66"}
{:git/tag "v0.10.4", :git/sha "31388ff"}
{:git/tag "v0.10.5", :git/sha "2a21b7a"}
期望行为
由 Alex 确定,但请注意,尽管[maven 依赖存在](https://central.sonatype.com/artifact/io.github.clojure/tools.build/versions),但它们并未列出。
一些探索想法
想法一:用所有可用的版本填充此列表
{:mvn/version "0.9.4" :git/tag "v0.9.4", :git/sha "76b78fe"}
{:mvn/version "0.9.5" :git/tag "v0.9.5", :git/sha "24f2894"}
{:mvn/version "0.9.6" :git/tag "v0.9.6", :git/sha "8e78bcc"}
{:mvn/version "0.10.0" :git/tag "v0.10.0", :git/sha "3a2c484"}
{:mvn/version "0.10.1" :git/tag "v0.10.1", :git/sha "5e3b8f3"}
{:mvn/version "0.10.3" git/tag "v0.10.3", :git/sha "15ead66"}
{:mvn/version "0.10.4" :git/tag "v0.10.4", :git/sha "31388ff"}
{:mvn/version "0.10.5" :git/tag "v0.10.5", :git/sha "2a21b7a"}
但也许这会让用户复制粘贴时有些困惑。
想法二:并列显示所有可用的版本
{:mvn/version "0.9.4"} {:git/tag "v0.9.4", :git/sha "76b78fe"}
{:mvn/version "0.9.5"} {:git/tag "v0.9.5", :git/sha "24f2894"}
{:mvn/version "0.9.6"} {git/tag "v0.9.6", :git/sha "8e78bcc"}
{:mvn/version "0.10.0"} {:git/tag "v0.10.0", :git/sha "3a2c484"}
{:mvn/version "0.10.1"} {:git/tag "v0.10.1", :git/sha "5e3b8f3"}
{:mvn/version "0.10.3"} {git/tag "v0.10.3", :git/sha "15ead66"}
{:mvn/version "0.10.4"} {:git/tag "v0.10.4", :git/sha "31388ff"}
{:mvn/version "0.10.5"} {:git/tag "v0.10.5", :git/sha "2a21b7a"}
想法三:依次列出所有可用的版本
{:mvn/version "0.9.4"}
{:mvn/version "0.9.5"}
{:mvn/version "0.9.6"}
{:mvn/version "0.10.0"}
{:mvn/version "0.10.1"}
{:mvn/version "0.10.3"}
{:mvn/version "0.10.4"}
{:mvn/version "0.10.5"}
{:mvn/version "0.9.4" :git/tag "v0.9.4", :git/sha "76b78fe"}
{:mvn/version "0.9.5" :git/tag "v0.9.5", :git/sha "24f2894"}
{:mvn/version "0.9.6" :git/tag "v0.9.6", :git/sha "8e78bcc"}
{:mvn/version "0.10.0" :git/tag "v0.10.0", :git/sha "3a2c484"}
{:mvn/version "0.10.1" :git/tag "v0.10.1", :git/sha "5e3b8f3"}
{:mvn/version "0.10.3" git/tag "v0.10.3", :git/sha "15ead66"}
{:mvn/version "0.10.4" :git/tag "v0.10.4", :git/sha "31388ff"}
{:mvn/version "0.10.5" :git/tag "v0.10.5", :git/sha "2a21b7a"}