NEWS -- history of user-visible changes             -*- mode: org; -*-

* master (unreleased)

- The 'localrule' keyword (new in Snakemake v7.25.0) is now
  recognized.

* v2.0.0

- 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 the ~snakemake~ 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
  of ~snakemake-build~, has been removed.

* v1.8.0

- 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).

* v1.7.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.

* v1.6.0

- Checkpoints (new in Snakemake v5.4) are now recognized.

* v1.5.0

- ~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'.

* v1.4.0

- 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.

* v1.3.0

- The 'singularity' keyword (new in Snakemake v4.2.0) is now
  recognized.

- ".smk" has been added as a suffix for Snakemake files.

* v1.2.0

- ~snakemake-popup~ commands learned to call Snakemake through a
  terminal rather than through ~compile~.  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.

* v1.1.0

- The 'conda' keyword (new in Snakemake v3.9.0) is now recognized.

* v1.0.0

- The 'wildcard_constraints' keyword (new in Snakemake v3.8.0) is now
  recognized.

* v0.5.0

- New command ~snakemake-graph-this-file~ displays the graph for the
  first rule of the current file.  Similar functionality is available
  from ~snakemake-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~ and ~end-of-defun~ implementations for rule
  blocks are now defined.

- Rule blocks are now recognized by ~add-log-current-defun~.

* v0.4.0

- 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.

* v0.3.0

- 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 variable
  ~snakemake-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.

* v0.2.0

- 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.
