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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snowddl.com/breaking-changes-log/0.36.0-november-2024.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
