NEWS – history of user-visible changes -*- mode: org; -*-
- The ‘localrule’ keyword (new in Snakemake v7.25.0) is now recognized.
- Support for Emacs versions older than 26.1 has been dropped.
- The Magit Popup command
snakemake-popup
has been rewritten as a transient,snakemake
. snakemake.el now depends on Transient rather than Magit Popup. - The
--jobs
argument in thesnakemake
transient has been replaced by--cores
to follow upstream changes.--cores
is bound to-c
, and--use-conda
has been moved from-c
to-C
. - Snakemake’s new module syntax (added in v6.0) is now supported.
- Additional Snakemake keywords are now recognized: ‘containerized’ (new in Snakemake v6.0.0), ‘default_target’ (new in Snakemake v6.15.0), ‘handover’ (new in Snakemake v6.2.0), ‘name’ (new in Snakemake v5.31.0), and ‘notebook’ (new in Snakemake v5.10.0).
- The
snakemake-compile
command, marked obsolete in v1.2.0 in favor ofsnakemake-build
, has been removed.
- Additional Snakemake keywords are now recognized: ‘envmodules’ (new in Snakemake v5.9.0), ‘envvars’ (new in v5.11.0), ‘container’ (new in v5.11.0), and ‘cache’ (new in v5.12.0).
- The ‘multiext’ built-in (new in Snakemake v5.8.2) is now recognized.
- The font-lock handling has been updated to be compatible with python.el changes in Emacs 27.
- Checkpoints (new in Snakemake v5.4) are now recognized.
snakemake-popup
now includes--use-conda
.- Additional Snakemake keywords are now recognized: ‘group’ keyword (new in Snakemake v5.0), report (both the keyword and function; new in Snakemake v5.1), and ‘localrules’.
- The ‘cwl’ keyword (new in Snakemake v4.8.0), ‘pipe’ (new in Snakemake v5.2.0), ‘directory’ (new in Snakemake v5.2.0), and ‘ancient’ built-in are now recognized.
- The minimum Emacs version is now specified as 24.5. Although the previous specification was a looser “24”, Snakemake’s indentation function is incompatible with Emacs 24.4 and below.
- The ‘singularity’ keyword (new in Snakemake v4.2.0) is now recognized.
- “.smk” has been added as a suffix for Snakemake files.
snakemake-popup
commands learned to call Snakemake through a terminal rather than throughcompile
. This allows a persistent environment to be maintained between Snakemake calls, which is useful for running Snakemake in isolated environments created by tools like Guix.
- The ‘conda’ keyword (new in Snakemake v3.9.0) is now recognized.
- The ‘wildcard_constraints’ keyword (new in Snakemake v3.8.0) is now recognized.
- New command
snakemake-graph-this-file
displays the graph for the first rule of the current file. Similar functionality is available fromsnakemake-graph
, which supports graphing any target in the file, but you may find the new command useful if your workflow involves frequently using Snakemake’s--snakefile
option. - New function
snakemake-mode-setup-mmm
configures MMM mode to highlight string-embedded R code. (Contributed by Endre Bakken Stovner.) - “.rules” has been added as a suffix for Snakemake files.
beginning-of-defun
andend-of-defun
implementations for rule blocks are now defined.- Rule blocks are now recognized by
add-log-current-defun
.
- New library snakemake.el provides a popup interface for running Snakemake from Emacs.
- New command
snakemake-graph
displays the graph of dependencies for a rule. (Thanks to Endre Bakken Stovner for the idea and initial implementation.) - “.snakefile” has been added as a suffix for Snakemake files.
- Anonymous rule blocks are now supported.
- The ‘wrapper’ keyword is now recognized.
- The keywords ‘configfile’, ‘onsuccess’, ‘onerror’, ‘log’, and ‘benchmark’, ‘script’, ‘shadow’, as well as the ‘touch’ function, are now recognized.
- Indentation for field values starting on the line below a field key
is now supported. New variable
snakemake-indent-value-offset
controls the offset for the value and replaces the variablesnakemake-indent-run-offset
. If these values are continued on another line, indentation cycling now includes a step that indents according to Python mode. snakemake-compile-rule
can now pass the ‘–touch’ flag to snakemake.- The Imenu index now includes Python mode items in addition to rule blocks.
- Errors in Snakefiles are now highlighted in complilation buffers.
- Both the executable and flags for the Snakemake
compile-command
are now customizable. - New command
snakemake-compile-rule
runs Snakemake with the rule at point as the target. - Subworkflow blocks are now supported.
- The ‘ruleorder’ keyword is now recognized.