Skip to content

Merge clients into a unified tracker_client CLI (mechanical port) #1771

@josecelano

Description

@josecelano

Summary

Merge the three existing tracker testing binaries into a single tracker_client binary, while keeping behavior changes minimal:

  • http_tracker_client
  • udp_tracker_client
  • tracker_checker

This is a mechanical unification/refactor, not a CLI redesign.

Context

This work closes the pending EPIC task in #669 (unified client CLI) and follows discussion #660.

Decisions for this issue

  • CLI shape: explicit protocol subcommands (tracker_client http ..., tracker_client udp ..., tracker_client check ...)
  • Output default: JSON (--format=json), with --format=text available
  • Legacy binaries: keep for ~1 year with deprecation warning on startup; no new features
  • Scope guard: top-level auto-dispatch aliases (tracker_client announce ...) are out of scope for this issue

In Scope

  • Implement unified tracker_client entry point with http, udp, check subcommands
  • Wire current HTTP/UDP announce/scrape and checker workflows
  • Add unified --format=<json|text> behavior
  • Add deprecation warnings to legacy binaries
  • Update in-repo docs/skills/CI references
  • Run and record manual verification scenarios against a local tracker

Out of Scope

Manual Verification (required)

Run local tracker and then execute one manual scenario per command family, tracking status/evidence:

  1. HTTP announce
  2. HTTP scrape
  3. UDP announce
  4. UDP scrape
  5. Checker
  6. HTTP text-format output
  7. UDP text-format output

A full matrix with concrete commands and evidence fields is captured in the issue spec.

Follow-up

Create a separate issue for optional top-level announce/scrape convenience aliases that dispatch to HTTP/UDP by URL scheme.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions