为什么melpa-stable苹果酒会打破苹果酒?

时间:2018-01-24 04:11:56

标签: emacs clojure cider

我已经使用了Emacs将近40年了,而且几乎没有像melpa-stable中反复破碎的苹果酒包一样令人沮丧。

我的包裹清单中只有两个条目

package-archives是'package.el'中定义的变量。 它的价值是

   (("gnu" . "http://elpa.gnu.org/packages/")
    ("melpa-stable" . "http://melpa.milkbox.net/packages/"))

在今天之前的一段时间里,我一直在使用cider-0.17.0-SNAPSHOT和相应的nrepl版本号。但是我在Emacs软件包管理器中做了一个更新,它在昨天的日期(2018年1月22日)加载了一个苹果酒-0.17-0-SNAPSHOT。

现在,在昨天工作的每个项目(10+)中启动苹果酒和苹果酒 - jack-in产生一个“错误:未处理的REPL处理程序异常处理消息”和一个巨大的堆栈跟踪。

有趣的是,如果用旧版本替换project.clj中的nrepl依赖项,例如[[cider / cider-nrepl“0.16.0”],cider-jack-in开始但警告苹果酒和苹果酒 - nrepl版本不同,“事情会破裂”

所以,经过几个小时的工作,我已经从一个工作的苹果酒-0.17.0-SNAPSHOT系统(直到melpa-stable 1月22日更新到苹果酒-0.17.0-SNAPSHOT)再到工作苹果酒-0.16.0系统。

那么腐败发生在哪里? GitHub上的melpa-stable标签是0.16.0,但在我的包列表中只有melpa-stable(+ gnu),破坏的0.17.0-SNAPSHOT正在加载。

如果没有很多Git疼痛我真的不需要我找不到Jan-22之前的苹果酒-0.17.0-SNAPSHOT和Jan22 SNAPSHOT之间的差异。

所以唯一的选择是回到手动安装cider-0.16.0并返回相应的nrepl版本。但是在使用破碎的SNAPSHOT损坏melpa-stable之前,它与cider-0.17.0-SNAPSHOT一起工作得非常好。

破碎的狗屎不属于melpa-stable。

我们如何修复melpa-stable以保持稳定?

2 个答案:

答案 0 :(得分:4)

现在很长一段时间,如果你运行cider-jack-in,CIDER不需要任何clojure端配置。在项目中删除与nreplcider相关的任何内容,并且lein profiles.clj和CIDER应该开始开箱即用。

另外,如果你想要melpa-stable那么你可能也想使用CIDER的完整版本,而不是一些快照。 CIDER 0.16.0现在是melpa稳定的,它对我来说很好。

更新:我看到你实际上正在使用直接的melpa,这不是melpa-stable (其中"http://stable.melpa.org/packages/"为url)

答案 1 :(得分:2)

你在这里做错了是你直接在你的项目文件中指定了Cider的版本。请不要这样做。每个项目都可能需要自己的Cider版本,而在Emacs中,您可能只有一个版本一次安装。因此,动态切换它们将是一团糟。

解决方案是指定不在project.clj但在~/.lein/profiles.clj文件中的Cider包。这是我的:

~> cat ~/.lein/profiles.clj
{:user {:signing {:gpg-key "........."}
        :plugins [[cider/cider-nrepl "0.15.1"]]}}

在我的Emacs中,我已经从releases Git page手动安装了0.15.1版本。

此文件根本不会影响您的Git历史记录。 Lein工具在启动时自动将其合并到project.clj内容。此外,现在您可以使用在所有项目中安装的唯一一个Cider。请从project.clj文件中删除所有Cider包声明。

有空的时候,请阅读官方Lein profile manual