All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Documenting support for python 3.13. (#86)
- Only show failing rules per default in
HumanReadableFormatter
. Also added--show
parameter in the CLI to change this behavior. (#77) - Ignore imported rules and filters when building the rule registry. (#87)
- Support linting of sources.
- Breaking: Renamed modules:
dbt_score.model_filter
becomesdbt_score.rule_filter
- Breaking: Renamed filter class and decorator:
@model_filter
becomes@rule_filter
andModelFilter
becomesRuleFilter
. - Breaking: Config option
model_filter_names
becomesrule_filter_names
. - Breaking: CLI flag naming fixes:
--fail_any_model_under
becomes--fail-any-item-under
and--fail_project_under
becomes--fail-project-under
.
- Fix mkdocs.
- Breaking: The rule
public_model_has_example_sql
has been renamedhas_example_sql
and applies by default to all models. - Breaking: Remove
dbt-core
from dependencies. Since it is not mandatory fordbt-score
to executedbt
, remove the dependency. - Breaking: Stop using
MultiOption
selection type.
- Breaking: Improve error handling in CLI. Log messages are written in stderr, and exit code is 2 in case of anything going wrong. (#73)
- Auto-round scores down to align scores and medals. (#74)
- Add model filters to let models be ignored by certain rules.
- Add null check before calling
project_evaluated
in theevaluate
method to prevent errors when no models are found. (#64) - Add JSON formatter for machine-readable output. (#68)
- Add
project_fail_under
configuration. - Add
fail_any_model_under
configuration. - Breaking: default values of
5.0
forproject_fail_under
andfail_any_model_under
will cause command to exit return code 1.
- Lint the current dbt project only, not including the imported models.
- Support Python 3.10.
- Inject current working directory into python path by default.
- Create contributors guide for the documentation website.
- Add Github icon and link to documentation website.
- CLI based on Click.
- Ability to parse dbt's
manifest.json
into internal structures. - Rule registry and rule discovery.
- Rule API, decorator-based or class-based.
- Linting and scoring functionality for dbt models.
- Configuration through
pyproject.toml
. - Default rules in
dbt_score.rules.generic
. - Badges for project and model evaluation.