# \[ANN\] DataLinter - data & code linter for data science

**URL:** https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710
**Category:** Package Announcements
**Created:** [February 17, 2026, 5:12pm UTC](https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710 "2026-02-17T17:12:47Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![zgornel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zgornel/32/217487_2.png) [@zgornel](https://discourse.julialang.org/u/zgornel)
#### Post date: [February 17, 2026, 5:12pm UTC](https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710/1 "2026-02-17T17:12:47Z")

</div>

[DataLinter](https://github.com/zgornel/DataLinter) is a data & code linter written in Julia. Currently it lints data, supports a few lints for R (looks at modelling code and data) and has basic integration with Rstudio and Ipython notebooks. It is still under heavy development and not registered however any remarks are welcomed.

---

<div class="post-metadata">

### Author: ![zgornel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zgornel/32/217487_2.png) [@zgornel](https://discourse.julialang.org/u/zgornel)
#### Post date: [May 2, 2026, 4:31pm UTC](https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710/2 "2026-05-02T16:31:41Z")

</div>

Two new [releases](https://github.com/zgornel/DataLinter/releases) for [DataLinter](https://github.com/zgornel/DataLinter) have been published after the original post. These contain general improvements across the board:

- new linters
- improved performance
- code queries use the high level query language provided by [ParSitter.jl](https://github.com/zgornel/ParSitter.jl)

Happy linting 😉

---

<div class="post-metadata">

### Author: ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)
#### Post date: [May 3, 2026, 6:56am UTC](https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710/3 "2026-05-03T06:56:55Z")

</div>

Thanks for sharing. This looks really useful.

It seems a bit odd that it is recommended to be run through a docker container. Is there a way it can be used just as a normal julia package?

---

<div class="post-metadata">

### Author: ![zgornel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zgornel/32/217487_2.png) [@zgornel](https://discourse.julialang.org/u/zgornel)
#### Post date: [May 3, 2026, 10:14am UTC](https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710/4 "2026-05-03T10:14:41Z")

</div>

Thanks! It can sure run as a julia package. You can check out [this script](https://github.com/zgornel/DataLinter/blob/master/scripts/code_and_data_run.jl).  
The main workflow can be found in [src/workflows.jl](https://github.com/zgornel/DataLinter/blob/master/src/workflows.jl)

The reason it is not obvious is that the library is intended to be ran after compilation with PackageCompiler. I should add a section in the documetation about that.

---

<div class="post-metadata">

### Author: ![mthelm85](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mthelm85/32/224164_2.png) [@mthelm85](https://discourse.julialang.org/u/mthelm85)
#### Post date: [May 4, 2026, 2:01pm UTC](https://discourse.julialang.org/t/ann-datalinter-data-code-linter-for-data-science/135710/5 "2026-05-04T14:01:43Z")

</div>

> [@tp2750](#):
>
> Is there a way it can be used just as a normal julia package?

If you’re primarily interested in the data linting part, there is

> **[GitHub - mthelm85/CheckMate.jl: A lightweight data validation framework for Julia,...](https://github.com/mthelm85/CheckMate.jl)**
>
> A lightweight data validation framework for Julia, designed to help you define, run, and manage data quality checks on tabular data.

but it doesn’t come with any pre-defined rules/checks - you have to define what you want it to catch.
