Open
Description
There are a number of unstrict areas of core which lead to confusion unexpected behaviors when developing their projects. Additionally, some of these unstrict areas make it difficult to make changes in core to add new features. As such, we want to make these unstrict areas strict, to do so we will be deprecating the unstrictness in a number of areas for core 1.10. Deprecating these things means they will continue to work in 1.10, but will not in later versions of core.
Things to deprecate
- [CT-520] [Enhancement] Schema files with repeated top level keys (e.g.
models
) results in only the last key being parsed #5114 - Deprecated Unexpected Jinja Blocks #11393
- deprecation warning for duplicate keys in YAML files #11296
- deprecate dbt source freshness --output, -o flag #11559
- put jsonschema validations behind a gate #11577
- deprecate extra whitespace in version: 2 YAML block #11565
- Feature Request: Strictness on arguments passed to config #2606
- [bug] do NOT allow users to define incomplete freshness config at different places and try to resolve them #11669
- [Bug] new
config.freshness
throws error when explicitly set to null #11685 - Deprecation include/exclude terminology for warn-error-options #11557
- move
loaded_at_field
andloaded_at_query
under config #11659 -
meta
andtags
should beconfig
s undercolumns:
(not properties) #11651 - deprecate --models, -m flag #11561
- Deprecate invalid properties under unused configuration paths #11339
- Deprecate unconstrained user space of environment variables #11340
- Deprecate logical operation without parentheses being piped into
as_bool
#11394 - consolidate CLI flags for --resource-type(s) (only singular now) #11560
- deprecate target_schema + target_database for snapshot legacy configs #11562
- deprecate entire context jinja variable #11564
- deprecate allowing extra colon at the end of a generic test definition #11563
- begin happy path testing jsonschema validations #11581
- Deprecate {{ modules.itertools }} #11725
- error on nesting quote characters directly within identifiers #11726
- validate config from .sql files #11727
- deprecate overrides source property #11566
Things that can be caught via JSONSchema
- Deprecate user provided custom top level attributes on nodes #11336
- Deprecate custom config keys (all non dbt controlled configs should live in
meta
withinconfig
) #11337 - Deprecate custom top level properties in
YAML
files #11338 - Generic jsonschema validation error handling from dbt_project.yml #11503
- Generic resource yaml jsonschema validation error handling #11504
- [BUG] Sometimes the
CustomKeyInConfigDeprecation
deprecation is fired with the wrong key information #11576 - move
freshness
underconfig
so you can configure defaults for all sources / models #11506 - [CT-3289] [Feature] Common misspellings of Configs Are Silently Ignored - they should raise warnings #8942
-
group.owners
andexposure.owners
should ONLY supportname
andemail
, NO additional properties #11652 - Only allow
+
syntax for config setting in dbt_project.yml #11558
Warn Error Options Imporvements
- [Bug]
--warn-error-options
doesn't support configuration of turning source freshness warnings into failures #11116 - Ability to set
deprecations
as a group option ofwarn_error_options
dbt-common#265
Adding support for meta config everywhere
- [Bug] Add support for setting tags and meta for exposures in dbt_project.yml #11428
- [Feature] Allow for groups to have a description and/or meta field #11319
- [Bug]
analyses
should support project-level configuration #11427 - make sure
analyses
support configmeta
- make sure
macros
support configmeta
- make sure
exposures
support configmeta
Deprecation improvements
- Improve deprecation warns to track and handle multiple invocations #11429
- Emit single deprecations summary event #11536
- enhance deprecations module to allow for emitting preliminary/unfinalized/preview at info level #11597
- [Feature] Allow the event tag helpers to optionally included the event name dbt-common#281
- Flip flag for
source_freshness_run_project_hooks
#11609 - Gate running jsonschemas validations/deprecations based on a list of adapters supported by the jsonschemas #11680
- indicate whether a deprecation is from a package or the root project
- Behavior flag to show event name in normal logs #11471
- Prevent overcounting PropertyMovedToConfigDeprecation for source freshness #11660
- Flip flag for
require_resource_names_without_spaces
#11610