Skip to content

v1.2.9 - Better Error Visibility & Strict Mode

Choose a tag to compare

@aborruso aborruso released this 01 Feb 19:13
· 19 commits to main since this release

What's New for Users

This release significantly improves error visibility when using csvnorm with pipes and adds a new fail-fast mode for data quality pipelines.

🎯 Better Error Visibility in Pipelines

The Problem: When piping csvnorm output to tools like head, validation warnings appeared after the data, often getting lost when the pipe closed early.

What Changed:

  • ⚠️ Validation errors now appear before the CSV output
  • 📁 Reject file saved to ./reject_errors.csv (current directory) instead of /tmp
  • ✅ Warnings are now visible even when piping to head, tail, or other tools

Example:

# Before: warning might not be visible
csvnorm data.csv | head -10

# Now: warning appears before data, always visible
csvnorm data.csv | head -10
# ╭─ ! Validation Failed ─╮
# │ Rejected rows: 5      │
# │ Details: ./reject_errors.csv │
# ╰───────────────────────╯
# [CSV data follows...]

🚨 New Fail-Fast Mode

New --strict flag for pipelines that require data quality guarantees:

# Exit with code 1 if any validation errors occur
csvnorm data.csv --strict | process.sh

# Use in CI/CD pipelines
csvnorm input.csv --strict > output.csv || exit 1

In strict mode:

  • ❌ Exits immediately if validation errors are found
  • 🛑 No CSV output is produced on error
  • 📊 Perfect for automated data quality checks

⚠️ Breaking Change

Reject file location changed for stdout mode:

  • Before: /tmp/csvnorm_xxxxx/reject_errors.csv
  • Now: ./reject_errors.csv (current working directory)

This makes reject files more accessible but means you may need to clean them up from your working directory.

File output mode unchanged: When using -o filename.csv, reject files still go to filename_reject_errors.csv in the same directory.


Full Changelog: v1.2.8...v1.2.9