Authoring help on command classes that subclass aaz generated command class
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 3.5k
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 60
Description
### Describe the bug
>_Not sure if it's a bug report, but none of the other categories felt right_
I am working on an azure cli extension using aaz generated code. We want to write a custom command that subclasses one of these generated aaz commands.
```python
from .aaz.latest.app import Update
class CustomUpdate(Update):
...
```
After registering in the command table, I noticed that the help message was inherited from the `Update` command. I then read [authoring help](https://github.com/Azure/azure-cli/blob/dev/doc/authoring_help.md) guide and tried to add a help object for my command:
```python
helps['app update'] = """
type: command
short-summary: Custom update logic
"""
```
But I was still getting the help message from the docstring of the `Update` command. I even tried adding the summary as a docstring of the `CustomUpdate` class, but still the same issue.
Then I discovered the `AZ_HELP` class variable, which I tried to set to the help string, and then I was able to see the expected message.
After some inspection, I learned that the reason was the `@register_command` decorator, which already generates `AZ_HELP` for that class, and also for my CustomUpdate class.
https://github.com/Azure/azure-cli/blob/dev/src/azure-cli-core/azure/cli/core/aaz/_command.py#L365-L370
After adding the `@register_command` annotation to my custom command (which **does not** register it to the command table) and using the regular docstring instead of `AZ_HELP`, I was able to see the help message correctly.
---
I think that we can just update the authoring help guide to account for this case. But at the same time I'd say is odd that using `@register_command` and also needing to register the command manually on the command table as [this guide](https://azure.github.io/aaz-dev-tools/pages/usage/customization/#what-are-our-solutions-to-achieve-customized-logic) mentions is counterintuitive.
Not sure if there is a better way to figure this out, open to alternatives
### Related command
Any `--help` of a subclass of an aaz command
### Errors
No error, just incorrect output help message
### Issue script & Debug output
Not relevant
### Expected behavior
Not relevant
### Environment Summary
azure-cli 2.78.0
core 2.78.0
telemetry 1.1.0
Extensions:
aks-preview 14.0.0b2
azure-devops 1.0.1
fleet 1.5.2
ip-group 1.0.1
k8s-extension 1.6.3
log-analytics-solution 1.0.1
virtual-wan 1.0.1
applink-preview 1.0.0b1 (dev) /home/gerobayopaz/azure-cli-extensions/src/applink-preview
k8s-extension 1.7.0 (dev) /home/gerobayopaz/azure-cli-extensions/src/k8s-extension
Dependencies:
msal 1.34.0b1
azure-mgmt-resource 23.3.0
Python location '/home/gerobayopaz/azure-cli-extensions/.venv/bin/python'
Config directory '/home/gerobayopaz/.azure'
Extensions directory '/home/gerobayopaz/.azure/cliextensions'
Development extension sources:
/home/gerobayopaz/azure-cli-extensions
Python (Linux) 3.10.12 (main, Aug 15 2025, 14:32:43) [GCC 11.4.0]
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.