Skip to content

v0.2.0: deadlines that warn

Choose a tag to compare

@github-actions github-actions released this 10 Jul 17:08
v0.2.0
b60a914

todo-by flags comment tags whose deadline has passed, in any language, and gates CI on them. v0.2.0 is about one thing: deadlines should warn you before they break your build. Full changes in #3.

New Features 🎉

Warn ahead of the deadline

Until now a deadline arrived silently and broke every PR that day. Now it can announce itself:

$ todo-by --warn 14
src/auth.rs:81: due in 5 days (2026-07-15): drop the legacy token check
1 warning

Warnings exit 0, so CI stays green while the countdown is visible in every run. In GitHub Actions they render as inline ::warning annotations on the PR. Set it once in config (warn = 14) and forget the flag.

Configuration file

todo-by.toml (or .todo-by.toml), discovered from the current directory upward:

warn = 14
exclude = ["docs/examples/**"]   # gitignore-style globs, on top of .gitignore
tags = ["todo-by", "fixme-by"]   # replaces the default tag list

Precedence: command line flags, then TODO_BY_FORMAT / TODO_BY_WARN environment variables, then the config file.

Machine-readable output

$ todo-by --format json
{"type":"finding","kind":"overdue","path":"src/lib.rs","line":12,"date":"2026-01-01","deadline":"2026-01-01","days_overdue":4,"message":"remove workaround"}
{"type":"summary","findings":1,"warnings":0}

JSON Lines, one object per finding plus a summary record. The schema is additive-stable across releases.

Zero-config GitHub Actions

- run: todo-by

The github annotation format is auto-selected when GITHUB_ACTIONS=true. Findings appear inline on the PR diff.

Scan anything, inspect everything

  • todo-by - scans stdin (git diff | todo-by -), handling binary and invalid UTF-8 input the same way file scanning does.
  • --exit-zero reports without failing, for inventory jobs and gradual adoption.
  • --files lists exactly what would be scanned, --dump-config prints the effective config and its source. Both answer "why was my file skipped" in seconds.
  • --color auto|always|never, honoring NO_COLOR, TERM=dumb, and pipes.

Performance 🚀

The scan loop kept its first-byte fast reject through the multi-tag rewrite, and v0.2.0 measures faster than v0.1: 36ms vs 43ms scanning the laravel/framework repository on CI hardware. Every PR is now benchmark-gated so scan speed cannot regress silently.

Upgrading from v0.1

No breaking changes. All existing tags, flags, and exit codes work unchanged (0 clean, warnings alone stay 0, 1 findings, 2 usage or I/O error). New behavior to be aware of: a todo-by.toml present in your repository (or any parent directory) is now discovered and applied.


Install todo-by-cli 0.2.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/alies-dev/todo-by/releases/download/v0.2.0/todo-by-cli-installer.sh | sh

Install via cargo

cargo install todo-by-cli --locked

Download todo-by-cli 0.2.0

File Platform Checksum
todo-by-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
todo-by-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
todo-by-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
todo-by-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
todo-by-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum