-
-
Notifications
You must be signed in to change notification settings - Fork 87
Open
Milestone
Description
Below is a list of changes, required bugfixes and planned features for the next version of Cleo, Cleo 3.0. The list is not finished, it might evolve, change and expand. It's, basically, a download of my plans and ideas for Cleo.
Cleo 3.0 writeup
Docs
- Rewrite docs from scratch
- user docs
- usage examples
New features
- new CLI parser
- introduce dynamic and static (user's choice) completions
- introduce Powershell completions
- introduce
Tree
UI component (extract the implementation frompoetry show
command) - replace the usage of
rapidfuzz
withdifflib
(dependent on new parser semantics) - remove namespace commands in favor of subcommands registered on commands (dependent on new parser semantics)
- integration with
logging
- add helper functions for text transformations (colors, underline etc)
Refactorings
- use
@property.getter
/@property.setter
instead ofget_*
/set_*
methods - UI components should be behind proxy
UI()
object instead of as methods onCommand
- Commands should not need
Application
reference - cleanup Windows support options into a separate module
help
andlist
commands replacement (should be handled by the new parser)- colors and ansi escape sequences should be properly handled along with FORCE_COLOR/NO_COLOR and terminal features detection
- strict API design (consider which methods/functions/classes need to be available and make stuff private/hidden, use
__all__
) - simplify lazy command loading (still easy to register new commands for
poetry
plugins)
Typing
- remove all (or as much as possible) usage of optional types and
Any
- for types, all complex (more than 1 level deep) types should have a nice alias
To consider
- drop event handling (
cleo.events
)
Misc
- "inbox-zero" on issue tracker (aka resolve all issues)
- test coverage in 90+% range
Best case scenario
This is a list of optional requirements that will not stop a release from happening if not completed
- make highlighter extendable (json highlighting etc)
- provide Protocols/hooks/base classes to easily modify or extend default behavior
- dev docs with deep dive into inner works of every part of code
"I want to help!"
First of all, thank you.
Second, if you want to tackle one of the issues mentioned here or an issue from the issue tracker, please comment under this issue what you want to take care of. That will allow us to avoid duplicating our work. When in doubt, feel free to reach out in issues or on our Discord channel
matixandr, pa1ch, MateuszStudiosCompany and hxmn
Metadata
Metadata
Assignees
Labels
No labels