chore: TODO.md backlog and version metadata in --version output #23

Merged
David merged 1 commit from chore/todo-and-version-stamp into main 2026-05-14 17:25:31 +02:00
Owner

Summary

Two small, independent things bundled because they're both chore and trivially reviewable.

TODO.md

New file capturing the post-issue create audit. Organized in three tiers:

  • Tier 1 (functional completeness): issue update, issue link/unlink, issue delete, list pagination, raw --query passthrough, user commands, project commands, work history + delete, attachments, tags.
  • Tier 2 (polish + scriptability): yt open, yt search, shell completions, auth aliases, --dry-run, --quiet, --json parity.
  • Tier 3 (robustness): custom-field $type discovery per project, local-time work check boundary, retry on 5xx, -v flag, dead --color plumbing, multi-board sprint scoping.

Plus code-hygiene (unused secrecy + url deps), test-coverage gaps, and a deferred / not-chasing list.

Version metadata in --version

yt --version was printing the bare 0.1.0 from Cargo. It now prints 0.1.0 (<git-hash>, built <build-date>). The hash and date are env vars build.rs already injects via cargo:rustc-env; the CLI just composes them into a const at compile time and hands it to clap's version attribute.

$ yt --version
yt 0.1.0 (91ad2c377e35, built 2026-05-14T15:23:37Z)

Verification

  • cargo fmt --check clean.
  • cargo clippy --all-targets -- -D warnings clean.
  • cargo test --all-targets: 175 tests pass.

Sequence

This is part 1 of 3 for the items you listed today. PRs incoming:

  • (this one) TODO.md + version metadata.
  • Next: yt update reading YOUTRACK_CLI_UPDATE_URL (build-arg, baked in), fetching the latest binary for the running platform.
  • Then: per-instance config redesign (config-<instance>.yml per file, config.yml pointer, drop config configurations subcommand group in favor of --instance <name>).
## Summary Two small, independent things bundled because they're both `chore` and trivially reviewable. ### TODO.md New file capturing the post-`issue create` audit. Organized in three tiers: - Tier 1 (functional completeness): `issue update`, `issue link/unlink`, `issue delete`, list pagination, raw `--query` passthrough, `user` commands, `project` commands, work history + delete, attachments, tags. - Tier 2 (polish + scriptability): `yt open`, `yt search`, shell completions, auth aliases, `--dry-run`, `--quiet`, `--json` parity. - Tier 3 (robustness): custom-field `$type` discovery per project, local-time `work check` boundary, retry on 5xx, `-v` flag, dead `--color` plumbing, multi-board sprint scoping. Plus code-hygiene (unused `secrecy` + `url` deps), test-coverage gaps, and a deferred / not-chasing list. ### Version metadata in `--version` `yt --version` was printing the bare `0.1.0` from Cargo. It now prints `0.1.0 (<git-hash>, built <build-date>)`. The hash and date are env vars `build.rs` already injects via `cargo:rustc-env`; the CLI just composes them into a const at compile time and hands it to clap's `version` attribute. ``` $ yt --version yt 0.1.0 (91ad2c377e35, built 2026-05-14T15:23:37Z) ``` ## Verification - `cargo fmt --check` clean. - `cargo clippy --all-targets -- -D warnings` clean. - `cargo test --all-targets`: 175 tests pass. ## Sequence This is part 1 of 3 for the items you listed today. PRs incoming: - (this one) TODO.md + version metadata. - Next: `yt update` reading `YOUTRACK_CLI_UPDATE_URL` (build-arg, baked in), fetching the latest binary for the running platform. - Then: per-instance config redesign (`config-<instance>.yml` per file, `config.yml` pointer, drop `config configurations` subcommand group in favor of `--instance <name>`).
chore: TODO.md backlog and version metadata in --version output
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 8s
Create release / Create release from merged PR (pull_request) Has been skipped
fd455c4a5c
TODO.md captures the post-issue-create gap audit, organized into Tier 1 (functional completeness: `issue update`, link/unlink, list pagination, user/project commands, work history, attachments, tags), Tier 2 (polish + scriptability: `yt open`, search, completions, auth aliases, `--dry-run`, `--quiet`, `--json` parity), and Tier 3 (robustness: custom-field $type discovery, local-time work-check, retry, verbosity flag, dead `--color` plumbing, multi-board sprint membership). Code hygiene (unused `secrecy` and `url` deps), test coverage gaps, and an explicit deferred list (VCS, articles, OAuth refresh, TUI) round it out.

`yt --version` now reads `<crate-version> (<git-hash>, built <build-date>)` instead of bare `<crate-version>`. The hash and date are env vars `build.rs` already injects via `cargo:rustc-env`; the cli wires them through a const composed at compile time and passes the result into clap's `version` attribute. Example: `yt 0.1.0 (91ad2c377e, built 2026-05-14T15:23:37Z)`. 175 tests still pass; clippy/fmt clean.
David merged commit 10be705a1d into main 2026-05-14 17:25:31 +02:00
David deleted branch chore/todo-and-version-stamp 2026-05-14 17:25:32 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pandoras-box/youtrack-cli!23
No description provided.