7 Changelog
7.1 v1.0.3 (2026–06–28)
enigma-app/enigma: allow to suppress colors with —
no-color flag color log the file progress
add colored logs
add command time report
enigma/subcommands: log only file name
subcommand’s task log progress
enigma-app/enigma: use the stamps to ignore up-to-date caches
enigma/scribblings: add faq.scrbl
scribblings/main.scrbl: show built date; obfuscate the e-mail
enigma-app/enigma: add and use metadata.rkt
file/emacs-context.rkt: fix hidden dotfile detection
log/simplelog.rkt: fix template inconsistency; change colors
stamp/stamp.rkt: correct value unpacking; check if stamp file exists
path/load-path-unit-test.rkt: do NOT do recursive cross-package requires
file/context.rkt: do not scan hidden directories for emacs lisp files
context -> emacs-context
enigma/app: split program.rkt off to cli.rkt
scribblings/main.scrbl: use prefix-in for metadata
7.2 v1.0.3 (2026–06–20)
file/content-guess.rkt: also look for the Package-Version header
app/program.rkt: show command list in help
app/program.rkt: add the subcommands subcommand
subcommands/test.rkt: for ert tests change directory to the test’s directory
init enigma-page
app/program.rkt: add shortcuts to each subcommand
app/program.rkt: add argument parser to each subcommand
utils/find.rkt: do not fund hidden files
utils/find.rkt: ensure that found file is not a directory
subcommands/test.rkt: instead of parameterize pass dir directly to Emacs
subcommands/test.rkt: debug-print in proper order
utils/content.rkt: split macro off of functional body
app/program.rkt: functinize where we do not need macros
app/program.rkt: add and use run-action
7.3 v1.0.2 (2026–06–18)
add dependencies subcommand
allow to specify package-archives on the CLI
add hermetic package install
subcommands/install.rkt: show how Emacs sees the package-user-dir
file/content-guess.rkt: fix regexp matching in match expression
make sure to package-initialize on file or remote pkg install
file/content-guess.rkt: use racket/match
enigma-app/enigma: use match
enigma-app/enigma: use match
enigma-app/enigma: case -> match
port from ~>> to ~> and lambda~>
enigma/emacs: add and use package/archives.rkt
app/program.rkt: add and use emacs-directory-setup-expr
7.4 v1.0.1 (2026–06–17)
build a self-contained binary
file/content-guess.rkt: guess from ert-deftest
app/program.rkt: add execution-directory guard
enigma-app/enigma: allow to set custom emacs, buttercup and ert-runner exe paths
run/enigma: use PLTADDONDIR if locally available
stamp/stamp.rkt: create json stamps
utils/path.rkt: add contracts
utils/find.rkt: consistent returns; add contracts
file/content-guess.rkt: add contracts
file/content-guess.rkt: detect ert-runner
add install subcommand
lib/exec.rkt: add Executing message
enigma-app/enigma: add exec subcommand
consume extra args for emacs
lib/compile.rkt: add stamping after compilation
lib/test.rkt: create test stamp files
app/test.rkt: match both test and tests
add test subcommand with ert and buttercup support
app/program.rkt: require action to be given
app/compile.rkt: only show path if it actually was compiled
enigma/app: return json
make a real launcher
app/program.rkt: return a hash as compilation return object
app/program.rkt: compile found files
app/program.rkt: find load paths
scons_support/_init_.py: add module docstring for flit
app/program.rkt: call parameter that is to be set - program-parameter/execution-directory
system/run-emacs.rkt: correct defaults; export contracts
app/program.rkt: expand path given to -C flag
path/load-path.rkt: detect string to match the contract
enigma-app/SConscript: correct names
subcommands/install.rkt: correct result-hash order
subcommands/install.rkt: use result-code instead of static 0 exit-code
app/compile.rkt: unpack the parameter
scons_support/racket.py: remove the cwd arg requirement
scons_support/racket.py: refactor; format
app/program.rkt: renames and tweaks
subcommands/install.rkt: write the bootstrap code as a S-Expression
enigma-app/test: change layout
enigma/emacs: add and use file/context.rkt
enigma-app/enigma: add contracts to all current exports
subcommands/test.rkt: error on mismatch
enigma-app/enigma: add and use run-emacs helper module
app/program.rkt: no extra stderr for error
enigma/subcommands: cleanup; format
system/utils: add and use path.rkt
enigma-app/enigma: exec -> launch
app/program.rkt: no extra stderr for error
app/program.rkt: less macro defs
enigma-app/src: flatten lib
enigma/lib: add and use emacs/file/content-guess.rkt
reorganize files
enigma/app/program.rkt: dry
enigma/lib: add and use load-path.rkt
enigma/lib: split off to stamp.rkt
lib/find.rkt: rewrite load-patch matching
enigma-app/enigma: move libs to lib dir
enigma/app: split off and use find.rkt
file/content-guess.rkt: temporarily disable deps