Files
rally/requirements.txt
Andriy Kurilin 62546ec666 Port the CLI from the argparse/oslo wrapper to typer
Replace the custom oslo.config/argparse CLI wrapper with a typer
application. typer (over its vendored click) now owns the whole CLI surface
(help, validation, strict rejection of unknown arguments); oslo.config and
oslo.log are used only as libraries for config-file loading and logging
setup.

- Global options are generated at runtime from the live oslo Opt objects
  and appended to the root callback signature, then translated back into an
  argv slice for rally.api.API, so they stay in sync with oslo.log.
- The six command groups become plain module-level functions on per-group
  sub-apps; the API instance is injected through a ContextVar instead of a
  parameter, keeping it out of the generated help and completion.
- Each command's primary identifier is an ArgumentOrKeyword: it is accepted
  both positionally (rally task status <uuid>) and via its historical flag
  (--uuid), which is registered on the parser and hidden from help.
- task start/validate accept "-" to read the input task from stdin.
- The bash completion script is generated from the command tree
  (rally/cli/bashcomplete.py) and guarded by tests/unit/test_resources.
- The cli_reference sphinx extension and the CHANGELOG are updated to match.

Backward-incompatible: documented usage is preserved, but help and error
messages are now rendered by typer/click (different wording and layout), and
bash completion no longer suggests the primary-id flags (--uuid, --id,
--env, --deployment, --task) -- they still work, and the identifiers can now
also be passed positionally.

Change-Id: I99341a53d8f79c2afa382f977bbddd9202eb6d09
Signed-off-by: Andriy Kurilin <andr.kurilin@gmail.com>
2026-07-10 17:42:00 +02:00

23 lines
998 B
Plaintext

# Rally core dependencies
alembic!=1.2.0,!=1.6.3
Jinja2 # BSD
jsonschema
markupsafe
oslo.config!=4.3.0,!=4.4.0
# do not forget to remove `testresources` from test-requirements. it is a
# dependency of oslo.db for tests
oslo.db # Apache-2.0
oslo.log!=3.44.2,!=4.1.2,!=4.2.0,!=5.0.1,!=5.0.2,!=5.1.0
packaging!=20.5,!=20.6,!=20.7
paramiko>=4.0.0
pbr!=2.1.0 # Apache-2.0
PrettyTable!=3.4.0
pyOpenSSL # Apache License, Version 2.0
PyYAML # MIT
python-subunit # Apache-2.0 or BSD
requests!=2.20.0,!=2.24.0 # Apache-2.0
SQLAlchemy>=2 # MIT
typer>=0.26.0 # MIT
virtualenv!=16.3.0 # MIT