Skip to content

feat(cli): add data-designer --version #597

@eric-tramel

Description

@eric-tramel

Priority Level

Medium (Nice to have)

Is your feature request related to a problem? Please describe.

There is currently no first-class CLI command for users, support workflows, automation, or bug reports to quickly identify the installed Data Designer version. The codebase can read package versions internally, but the public CLI does not expose a simple data-designer --version entry point.

This makes issue triage and reproducibility more awkward because users have to know Python/importlib commands or inspect package metadata manually.

Describe the solution you'd like

Add a top-level CLI version flag:

data-designer --version

It should print the installed data-designer package version as a simple string and exit successfully:

0.6.0

Implementation expectations:

  • Use the data-designer distribution version, not data-designer-config or data-designer-engine.
  • Prefer importlib.metadata.version("data-designer"), matching the pattern already used by CLI agent introspection.
  • Keep output intentionally plain so scripts can parse it without stripping labels or formatting.
  • Avoid running unrelated CLI bootstrap work before returning the version. --version should be fast and should not initialize default model config files.
  • Return a clear non-zero error only if the package version cannot be resolved in an unexpected environment.

Describe alternatives you've considered

  • python -c 'import importlib.metadata; print(importlib.metadata.version("data-designer"))' works, but it is not discoverable for normal CLI users.
  • The agent introspection command includes version metadata, but that is intended for agent context, not a simple user-facing version check.

Agent Investigation

Current relevant code paths:

  • CLI entry point: packages/data-designer/pyproject.toml maps data-designer to data_designer.cli.main:main.
  • CLI startup: packages/data-designer/src/data_designer/cli/main.py calls ensure_cli_default_model_settings() before invoking Typer.
  • Existing version helper for config package: packages/data-designer-config/src/data_designer/config/version.py returns importlib.metadata.version("data-designer-config").
  • Existing CLI-agent version lookup: packages/data-designer/src/data_designer/cli/utils/agent_introspection.py returns importlib.metadata.version("data-designer").

I did not find an existing data-designer --version implementation or tests for one.

Additional context

This should be intentionally small and boring. A later feature can build on this flag to show update availability, but the baseline behavior should remain a simple current-version string.

Checklist

  • I've reviewed existing issues and the documentation
  • This is a design proposal, not a "please build this" request

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions