2024 Clojure状态调查中分享您的想法!

欢迎!请参阅关于页面以了解此怎样工作。

+13
tools.deps
已重新分类

当在单一代码仓库中工作时,特别是依赖于单一代码仓库中定义的库时,通常可以通过:git/url,tag,sha:deps/root来引入它们,如下所述。

; clojure -Sdeps '{:deps {polylith-kaocha/kaocha-wrapper
  {:git/url "https://github.com/imrekoszo/polylith-kaocha"
   :git/sha "d1fcd406cf0813b836419e39706ae61929a391a2"
   :deps/root "projects/kaocha-wrapper"}}}' -Stree | grep 'lambdaisland/kaocha'
    . lambdaisland/kaocha 1.68.1059

在某些情况下,克隆单一代码仓库并使用:local/root引用其库对开发或调试可能有益。然而,仅替换git属性并指向本地文件夹当前并不起作用(Clojure CLI版本1.11.1.1273)。

; clojure -Sdeps '{:deps {polylith-kaocha/kaocha-wrapper
  {:local/root "/Users/ikoszo/imre/oss/polylith-kaocha"
   :deps/root "projects/kaocha-wrapper"}}}' -Stree | grep 'lambdaisland/kaocha'

(注意,未打印出lambdaisland/kaocha,表明它不在依赖树中)

由于当前的工具.deps似乎忽略了:local/root依赖项的:deps/root,因此开发者目前必须将它们合并为:local/root,如下所示。

; clojure -Sdeps '{:deps {polylith-kaocha/kaocha-wrapper
  {:local/root "/Users/ikoszo/imre/oss/polylith-kaocha/projects/kaocha-wrapper"}}}' -Stree | grep 'lambdaisland/kaocha'
    . lambdaisland/kaocha /Users/ikoszo/imre/oss/kaocha
    . lambdaisland/kaocha /Users/ikoszo/imre/oss/kaocha

https://clojure.org/reference/deps_and_cli中,目前有以下声明

常见坐标属性(全部可选)
...
:deps/root - 基于文件的依赖关系中文件内的相对目录路径,用于搜索清单文件

还有

本地项目属性
:local/root(必需)- 目录路径(将自动检测是依赖项或pom项目;也见:deps/manifest)

阅读上述内容,《:local/root》可以作为文件型依赖项,这意味着《:deps/root》应该也可以正常工作,因为未提及其他。

能否支持这一点?这将使在开发库或工具时在本地和git依赖项之间切换更容易。

如果可以的话,这可能也是解决至少https://clojure.atlassian.net/browse/TDEPS-132中报告的问题的一部分。

(最初在以下slack线程中提出并讨论:https://clojurians.slack.com/archives/C6QH853H8/p1682712720554439

1 答案

+6
头像
选定
 
最佳答案

是的,应该实现这一点。

登录为 https://clojure.atlassian.net/browse/TDEPS-246

头像
感谢Alex!
...