在《2024 年 Clojure 状态调查》中分享您的想法!(https://www.surveymonkey.com/r/clojure2024)

欢迎!有关如何使用本站点的更多信息,请参阅关于页面。

+2
tools.deps
重新分类

环境

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"}

1 个答案

+1
...