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

欢迎!请查看关于页面以获取更多有关此功能的信息。

+4 投票
工具
重新标记

XDG_CONFIG_HOME 不需要显式设置,遵循 XDG 兼容规范的工具应该直接写入 $HOME/.config/clojure

目前,如果未设置 XDG_CONFIG_HOME,则直接写入 $HOME/.clojure

此处也有更多背景信息
https://clojureverse.org/t/opinion-about-xdg-support-by-the-clojure-tools-deps-cli/9814/3

Do XDG systems always have $HOME/.config even if it is empty? If not, then what if the CLI were the first tool to run in a new user account -- it wouldn't find $HOME/.config and XDG_CONFIG_HOME wouldn't be set, so wouldn't it deduce this was not an XDG system and write to $HOME/.clojure instead of $HOME/.config/clojure? (this question would apply to all tools in such an environment, so I'm wondering what creates $HOME/.config in the first place)
根据 arch wiki,'only XDG_RUNTIME_DIR is set by default through pam_systemd(8). It is up to the user to explicitly define the other variables according to the specification.'


https://wiki.archlinux.org/title/XDG_Base_Directory

But in reality, if you check how apps imp XDG spec, most of them just go by following logic without check XDG_RUNTIME_DIR i think.

1. 如果HOME/.clojure存在,使用旧路径
2. 否则,使用 XDG 规范,(或 (getenv XDG_CONFIG_HOME)  (path HOME/.config/clojure))

大多数发行版中都未设置XDG_CONFIG_HOME(以及其他xdg变量),应使用预定义的默认值。这是clj工具容易混淆的部分,因为它应该直接写入我的HOME/.config/clojure,而不是回退到旧路径。
by
在一个任意系统中,在安装Clojure之前,$HOME/.clojure将不存在——因此,根据你评论中的逻辑,你实际上是在请求Clojure CLI在所有系统上切换到XDG。

我误解你了吗?

1 答案

0
by

问题仍然是:Clojure CLI如何明确知道您希望使用XDG配置选项。如果对这个问题的答案是确定的,我将很高兴使用它来选择这种行为。我们不会将其改为默认值。

另一个选项是,可以让Clojure CLI有一个特定于Clojure CLI的环境变量,您可以设置该变量来完成此操作(但您必须采取该行动)。

by
将用户强制使用XDG的关注点非常明显。

每个系统似乎都有默认设置的不同的XDG_变量(在Darwin上的Nix设置了XDG_CONFIG_DIRS和XDG_DATA_DIRS)。

如果我们愿意更多地依赖于XDG命名和约定,我们可以改进我们对非争议性用例的覆盖范围。

更具体地说

            如果设置了$CLJ_CONFIG,则使用$CLJ_CONFIG(显式覆盖)
            如果有任何 $XDG_* 设置,则遵循 XDG 规范(未设置时为 $XDG_CONFIG_HOME/clojure 或 ~/.config/clojure)-- **修改**
            否则使用 $HOME/.clojure(最常见)

注意:XDG_* 也可代表现有的 7 个已记录变量
by
越想、越读关于这个规范(xdg 基础目录),我越觉得它更像是应用程序选择是否遵循规范的一种选择,而系统在这方面没有责任。

因此,添加一个标志可能是可行的。这可以让用户选择是否安装完全支持 XDG 的 clojure 命令行工具,还可以让包管理人员(考虑 Debian Clojure 包维护者)。类似于 `--prefix` 标志。

以下是一个提交的方法:用代码来说明更容易:https://github.com/jgomo3/brew-install/commit/bfae7f15291826c0a27e2a76d42a5275493c7da2

一个重要的事情是,这个想法并不是要改变当前的行为。

注意:代码尚未经过测试,这不是一个 Pull Request。只是为了支持这个评论。
by
安装时选择是个好主意。如果您有兴趣修改补丁,我会很乐意看到您这么做。

编辑了
是的,谢谢。我很乐意处理这个补丁。

我将遵循以下说明: https://clojure.org/dev/dev
...