Skip to content

Commit cefc368

Browse files
committed
Update Changlog and Known Issues for V0.0.1 Release
1 parent f863f26 commit cefc368

2 files changed

Lines changed: 30 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99
- Nil
1010

11-
## [0.0.1] - 2026-04-01
11+
## [0.0.1] - 2026-04-02
1212

13-
Initial public release of **vowl** (formerly DQMK).
13+
### 🎉 Celebrating Open Source
1414

15-
### Added
15+
Initial public release of **vowl**.
16+
17+
**Background:**
1618

19+
- vowl originated as an internal tool for demonstrating data contracts within our prototyping workflows. Over time, we recognised its potential value to the wider international community.
20+
- With that in mind, we refined the library and published it as open source.
21+
- As the project is still in its early stages, there may be rough edges and bugs. We appreciate your patience and warmly welcome contributions to help improve vowl for everyone.
22+
23+
### Added
1724
- Core SQL-powered data quality validation engine backed by Ibis and DuckDB.
1825
- Contract-based validation with YAML/JSON schema definitions.
1926
- Adapters for pandas, Spark, and database backends (DuckDB attach).

docs/known-issues.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,26 @@ The `MultiSourceSQLExecutor` materialises tables via Arrow instead of using Duck
6363

6464
---
6565

66+
## Null Handling Varies Across Database Backends
67+
68+
Different database backends handle `NULL` values differently in generic checks such as `minimum`, `maximum`, and `mean`. Some backends silently skip `NULL` rows when computing aggregates, while others may include them or produce unexpected results. This means a column containing `NULL` values might still pass a `minimum` or `maximum` check because the nulls are ignored during evaluation.
69+
70+
If you need to guarantee that a column contains **no null values**, add an explicit `nullValues` library check rather than relying on aggregate checks to catch them:
71+
72+
```yaml
73+
properties:
74+
- name: my_column
75+
quality:
76+
- id: my_column_no_nulls
77+
metric: nullValues
78+
mustBe: 0
79+
description: "There must be no null values in the column."
80+
```
81+
82+
This ensures nulls are caught directly, regardless of which database backend is running the validation.
83+
84+
---
85+
6686
## Dark Patterns
6787
6888
### Queries Accessing Tables Outside the Contract

0 commit comments

Comments
 (0)