# 0.36.0 - November 2024

This update introduces an extra layer between config files and parsers called `DirectoryScanner`. It helps to support the following improvements related to treatment of config files:

* Both file extensions `.yml` and `.yaml` are now supported.
* It is now possible to detect and emit warnings for unused config files using CLI option `--show-unused-files`. This feature is OFF by default.
* Repeated grep() calls were removed from parsers. Now all config files are scanned only once per run, and results are re-used by parsers. It should improve performance while working with very large configs.

### Technical changes in parsers

This section applies only if you implemented your own custom parsers.

1. Direct `.iterdir` calls should be replaced with wrappers `.get_database_names()` and `.get_schema_names_in_database(database_name)`. These wrappers automatically normalise names to upper-case and ignore technical directory names starting with double udnerscore (e.g. `__custom`).
2. `parse_single_file()` calls how accept string `config_key` instead of path config file. Config key does not have file extension. For example, replace `business_role.yaml` with `business_role`. Replace `db1/sc1/params.yaml` with `db1/sc1/params`.
3. Following string properties of `ParsedFiles` are now upper-cased automatically: `database`, `schema`, `name`. It may have some impact on formatting of error messages. Property `path` is unchanged.
