On this page:
6.1 Can I use Enigma alongside Cask, Eldev, or Eask?
6.2 Can I use Enigma with GNU Emacs’ native compilation?
6.3 Does the zero-config approach ever fail?
6.4 How does Enigma cache compilation results?
6.5 How does Enigma detect test files?
6.6 What are Enigma alternatives?
6.7 What happens if none of my ".el" files declare dependencies?
6.8 What metadata does an Emacs Lisp package need to be installable?
6.9 Will Enigma work correctly with extra test dependencies?
9.2

6 Frequently Asked Questions🔗

6.1 Can I use Enigma alongside Cask, Eldev, or Eask?🔗

Yes.

Enigma does not conflict with other tools. It does not use or require a configuration file, and it operates entirely on your project’s source tree.

You can have a "Cask", "Eask" or "Eldev" file in your repository and still run enigma compile without interference.

The only issue could be that Enigma will pick up Cask/Eask/Eldev’s cache directories and attempt to compile/test files in them, but it all depends on the directory hierarchy and form what directory Enigma is ran.

6.2 Can I use Enigma with GNU Emacs’ native compilation?🔗

Enigma itself does not pass native-compilation flags.

If your GNU Emacs is built with native compilation support, GNU Emacs may natively compile ".el" files automatically when they are loaded. Enigma does not interfere with this but does not orchestrate it either.

6.3 Does the zero-config approach ever fail?🔗

Enigma’s heuristics work well for typical Emacs Lisp package layouts.

Failures are possible with highly unconventional directory structures, for example, a project that stores source files and test files in deeply nested, idiosyncratic hierarchies. If Enigma guesses the wrong load path, inspect your project layout: source files should live in a conventional structure, such as a top-level directory named after the package.

6.4 How does Enigma cache compilation results?🔗

Enigma creates ".cache" directories next to each source file and places ".stamp" files inside them.

Each stamp records the file’s size, modification time, and creation time as JSON.

6.5 How does Enigma detect test files?🔗

Enigma recognizes a file as a runnable test if it matches one of these patterns: "name-test.el", "name-tests.el", "test-name.el" and "tests-name.el".

Helper files ("tests-helper.el") are excluded.

If your test files follow a different naming convention they will not be detected as tests.

6.6 What are Enigma alternatives?🔗

Cask, Eask and Eldev.

Unlike those tools, Enigma requires zero configuration: it automatically discovers source files, derives load paths, and detects test runners without any setup file.

6.7 What happens if none of my ".el" files declare dependencies?🔗

Enigma simply skips the dependency installation step. Compilation, test runner detection, and all other operations proceed normally.

6.8 What metadata does an Emacs Lisp package need to be installable?🔗

At minimum a Package-Requires: header and a Version: or Package-Version: header in the file header comment of your main ".el" file.

Enigma reads these headers to gather dependencies and determine the package version. Without them Enigma will still compile and test your code, but it will not know which dependencies to install.

6.9 Will Enigma work correctly with extra test dependencies?🔗

Probably not.

Enigma detects test dependencies by parsing Package-Requires: headers from the source files.

If your test suite requires additional packages not declared in any Package-Requires: header, those dependencies will not be installed automatically.

Consider declaring them in a test helper file or ensuring they are available in your environment.