Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Mar 13:53
· 15 commits to main since this release
8c7d27e

v0.5.0 (2026-03-22)

Breaking Changes

  • build: package consumers must now import the single zigcli root module instead of adding
    separate simargs, pretty-table, and gitignore modules, and the struct-based argument parser
    is now named structargs
    • Old:
      • exe.root_module.addImport("simargs", zigcli.module("simargs"));
      • exe.root_module.addImport("pretty-table", zigcli.module("pretty-table"));
      • exe.root_module.addImport("gitignore", zigcli.module("gitignore"));
    • New:
      • exe.root_module.addImport("zigcli", zigcli.module("zigcli"));
      • Use zigcli.structargs instead of zigcli.simargs

New Programs

  • pretty-csv: Pretty-print CSV/TSV files as aligned tables
    • Auto-fits table width to terminal, truncates with
    • Three border styles: ascii, box, dos
    • Transpose mode (-t): show each record as vertical key-value block
    • Column selection (-c 1,3,5): display only specific columns
    • Row separators (--row-separator) and right-aligned selected columns (-r 2,4)
    • Configurable delimiter, padding, and max input size

Improvements

  • build: consolidate exported packages behind a single zigcli root module in lib.zig
  • build: run .github/build-release.sh target builds in parallel with per-target logs
  • install: make docs/static/install.sh install all packaged binaries by default
  • zigcli: add csv package for parsing delimited text into rows and fields
    • Standard comma-separated parsing now follows RFC 4180 record and quoted-field rules
    • Supports embedded newlines and doubled-quote unescaping in quoted fields
    • Returns error.UnclosedQuotedField for unterminated quoted records
  • zigcli: add shared term module for ANSI colors and terminal capability helpers
  • zigcli: add shared term.Style for reusable ANSI-styled text output
  • zigcli: add term.stdoutWidth() as a convenience wrapper for stdout terminal-width detection
  • structargs: print_help_on_error now prints the subcommand-specific help context for subcommand parse failures
  • pretty-table: Table(N).Owned runtime row helper with string shorthand and Cell-level control
    • Table(N) and Table(N).Owned: optional transpose mode
    • RuntimeTable: runtime column count with footer rows, header/footer cell setters, row separators, per-column alignment, "{f}" formatting, optional cell truncation, and UTF-8-safe truncation boundaries
    • Windows targets skip POSIX terminal-width probing during cross-compilation

Bug Fixes

  • structargs: Fixed memory leak when parse failed

Documentation

  • Added gitignore package docs
  • Added term package docs
  • Updated pretty-table and structargs docs for Zig 0.15 API

What's Changed

  • feat: add runtime table builder and pretty-csv utility by @jiacai2050 in #73
  • simargs: print help to stderr on parse error by @Copilot in #74
  • refactor: consolidate packages and add shared terminal module by @jiacai2050 in #75
  • refactor(build): reorganize project structure by @jiacai2050 in #76
  • feat(csv): add standard compliant CSV parser by @jiacai2050 in #77

Full Changelog: v0.4.0...v0.5.0