0

Backstory

Hi, I am developing a library that easily transforms JSON alists into EIEIO objects, jeison. It sounds pretty obvious and a duplicate of json.el functionality, but it is a bit trickier than that. Jeison defines more of a declarative way of mapping alist onto an object by specifying how certain EIEIO class slots can be fetched in JSON object.

I had no dependencies till the very last moment where it became too hard avoiding dash.el. I ran my tests in Travis using the following command:

emacs -batch -l jeison.el -l jeison-tests.el -f ert-run-tests-batch-and-exit

dash.el in Travis CI

I found out that magit downloads dash.el like this:

curl -fsSkL -O https://raw.githubusercontent.com/magnars/dash.el/master/dash.el

and byte compiles it in the following manner:

emacs -Q --batch -f batch-byte-compile dash.el

I didn't quite get what I should do after, but even this command fails on my MacOSX:

>>Error occurred processing dash.el: File error (("Cannot open load file" "No such file or directory" "warnings"))

More naive approach:

emacs -batch -l dash.el -l jeison.el -l jeison-tests.el -f ert-run-tests-batch-and-exit

also fails with the following error:

Eager macro-expansion failure: (file-error "Cannot open load file" "No such file or directory" "cl")
Eager macro-expansion failure: (file-error "Cannot open load file" "No such file or directory" "cl")
Cannot open load file: No such file or directory, cl

So the question is: What is the easiest way to download and use an external package while testing your package in Travis?

  • The builtin Emacs on macOS is v22.1 which is very old (2007) and you probably don't need to support, nowadays people usually requires at least v24.1 which adds the package system and the lexical binding. Many packages even requires much recent version, e.g., Magit requires v25.1. – xuchunyang Jul 13 '19 at 12:36
  • I'm not using default macOS Emacs, I use 26.2. But all experiments I run with 25.1 installed with `evm` because it's the earliest version supported by my package. – Valeriy Savchenko Jul 13 '19 at 20:59
  • Not sure why your Emacs lacks the warnings and cl library, I'm sure they are presented in Emacs 25.1, I think there is something wrong with your Emacs installation. – xuchunyang Jul 14 '19 at 04:06
  • have you seen https://github.com/flycheck/emacs-travis? – John Kitchin Jul 14 '19 at 12:24
  • @JohnKitchin no, I haven't, but in the end I went with a similar solution: cask + EVM + ert-runner. I guess I'll post the answer so it's easier for people in the future to find this solution. – Valeriy Savchenko Jul 14 '19 at 12:59

0 Answers0