[ 
https://issues.apache.org/jira/browse/COMDEV-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jiajie Zhong updated COMDEV-462:
--------------------------------
    difficulty-level: Medium

> GSoC: Python API CLI enhancement
> --------------------------------
>
>                 Key: COMDEV-462
>                 URL: https://issues.apache.org/jira/browse/COMDEV-462
>             Project: Community Development
>          Issue Type: Task
>          Components: GSoC/Mentoring ideas
>            Reporter: Jiajie Zhong
>            Priority: Major
>              Labels: DolphinScheduler, full-time, gsoc2022
>
> h1. About pydolphinscheduler
> *PyDolphinScheduler* is Python API for [Apache 
> DolphinScheduler|https://dolphinscheduler.apache.org/], which allows you to 
> define your workflow by Python code, aka workflow-as-codes. You could see 
> more detail about PyDolphinScheduler in its document[4]. And all the source 
> code hold as the submodule in DolphinScheduler main codebase[5].
> h1. The goal
> Make pydolphinscheduler's CLI more powerful, make it can operate the model of 
> DolphinScheduler, run pydolphinscheduler's code, visualize its DAG graph in 
> the terminal.
> h1. Detail
> Up to now, Apache DolphinScheduler Python API has CLI only with limited 
> command supported and our community wishes it to become a more powerful tool 
> and support as much command as possible(unless command has security issue).
> It only supports `version` and `config` for now, which you could see more 
> detail in [1]
> Basically, we think the following command is helpful for CLI and you could 
> add another command if it should be added(but may sure after discussing in 
> the community):
>  * `run <DAG name> [--example]`: Run local workflow DAG file or examples 
> build-in
>  * `users`: User's operation, CURD
>  * `projects`: Project's operation, CURD, grant to other users
>  * `tenants`: Tenant's operation, CURD
>  * `workflow`: Workflow's operation, CURD, name change, should also change  
> the local Python file name
>  * `visualize`: Show task graph in the terminal.
>  * etc...
> Besides the functional addition, we should also consider the output part of 
> CLI which makes our output more clear and cool. We *may* consider using (we 
> should also find other interesting packages to do it):
>  * rich: For highlight, our output, or using some existing rich plugin like 
> `click-rich`
>  * tabulate: For the tables visualization in terminal
> h1. What Can You Learn
> We wish everyone join GSoC could learn some things from the project. When you 
> finish this project, you could lean:
>  * How to write production-level Python codes and docs, you could improve 
> your Python syntax, how to write tests with `pytest` and `tox`, how to write 
> document with `sphnix` and it related plugin, how to format your Python code 
> and the linter inside
>  * Adding knowledge about task scheduling system, what is it and what it 
> focus, how it could be run
> h1. If You Interested in It
> If you want to take this ticket, you should
>  * (Must) Python skill, especially packages click, pytest and etc.
>  * Have a little knowledge of task scheduling systems.
>  * (Optional) Basic Java knowledge is better because Apache DolphinScheduler 
> core is written with Java and you may add some functional code to it.
>  
> [1]: [https://dolphinscheduler.apache.org/python/cli.html]
> [2]: [https://github.com/Textualize/rich]
> [3]: [https://github.com/astanin/python-tabulate]
> [4]: [https://dolphinscheduler.apache.org/python/index.html]
> [5]: 
> [https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-python/pydolphinscheduler]



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@community.apache.org
For additional commands, e-mail: dev-h...@community.apache.org

Reply via email to