Abyss-lord opened a new issue, #8576:
URL: https://github.com/apache/gravitino/issues/8576

   ### What would you like to be improved?
   
   The current CLI is built on Apache Commons CLI, which has several 
limitations:
   1. Verbose code with scattered parameter definitions and parsing logic.
   2. Limited support for subcommands, making it hard to scale to complex CLI 
structures.
   3. Manual maintenance of help and usage messages, which is error-prone and 
inconsistent.
   4. Heavy reliance on mock systems in tests, delaying error detection and 
reducing reliability.
   
   
   ### How should we improve?
   
   We propose to migrate the CLI framework from Apache Commons CLI to Picocli.
   - Adopt an annotation-driven command definition to reduce boilerplate code.
   - Leverage Picocli’s built-in validation (`@ArgGroup`, type conversion, 
etc.) to eliminate manual validation logic.
   - Use hierarchical subcommand support (gcli <Entity> <Command> [options]) 
for better organization and scalability.
   - Simplify testing by executing commands with real arguments instead of 
mocks, catching errors earlier.
   - Automatically generate colored, structured help messages and documentation 
(HTML, PDF).
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to