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,表示它不在依赖树中)

由于 tools.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(必需)- 目录路径(将自动检测是否为 deps 或 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!
...