v0.8.0 updates the requirements for Dactyl, fixes some bugs, and adds some small features.
**Updated Dependencies**
- **Python v3.5 or higher** is now required.
- Changes to ruamel.yaml from from PyYAML since PyYAML is not much maintained.
- Updates to the latest versions of other packages.
**Breaking Changes:**
- Dactyl now raises an error when it reads a YAML config file with any duplicate keys. You can use `--bypass_errors` to skip past these errors and use the first instance of each key only. (Previously, Dactyl used only the last instance of any duplicate keys.)
- YAML Config files are now loaded in "safe" mode.
**New and updated features:**
- Adds the option to use "strict" undefined fields in templates or the preprocessor. This raises an error if you refer to a field that's undefined. (By default, Dactyl ignores keys that are not defined in both preprocessor and template syntax.)
Use `--template_strict_undefined` on the commandline or `template_allow_undefined = false` in the config file to enable strict undefined for templates. Use `--pp_strict_undefined` on the commandline or `preprocessor_allow_undefined = false` in the config file to enable strict undefined for the preprocessor.
- Adds two new custom tests to the templating syntax: `defined_and_equalto` and `undefined_or_ne`. These tests combine existing Jinja tests for to make it easier to use [`selectattr()`](http://jinja.pocoo.org/docs/2.10/templates/#selectattr) on the `pages` array when using strict undefined is enabled.
**Bug Fixes:**
- Fixes namespace overlapping when loading more than one custom filter at a time. This previously could cause some custom filters' effects to run twice or not at all.
- Duplicate keys in YAML files are no longer ignored.