有无 Cask 替代方案?

Travis CI 测试的时候,用 Cask 管理包的依赖,和测试的依赖:

(development
 (depends-on "markdown-mode"))

最近 markdown-mode 不再支持 Emacs 24 了,而我的包并不直接依赖 markdown,暂时也不打算放弃支持 Emacs 24,但也不想把所有 Emacs 版本的测试依赖都锁定在 markdown 以前的某个版本:

(development
 (depends-on "markdown-mode"
             :git "https://github.com/jrblevin/markdown-mode"
             :ref "365697302345f8b9dc10bc975477452a282f7ae0"))

这个锁定应该只针对 Emacs 24。

然而 Cask DSL 不支持条件判断 (而且未来也不会支持: https://github.com/cask/cask/issues/425 ),目前想到的方法是创建两份依赖文件:Cask-24 和 Cask-25。在 .travis.xml 文件里判断用哪个:

before_install:
  - if [[ $EMACS_VERSION = 24.* ]]; then
        ln -snf Cask-24 Cask;
    else
        ln -snf Cask-25 Cask;
    fi

感觉有点丑陋,而且这两份 Cask 文件基本雷同。

有没有什么更好的方法?

試下 eldev?說是配置文件就是 Emacs-Lisp。不過我最近開始覺得直接用 make 也挺好的。

另外 Flycheck 也是用了多個 Cask 文件。

2 个赞

Eldev 终于支持 Ecukes 了: