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 文件基本雷同。
有没有什么更好的方法?