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

Jiajie Zhong updated COMDEV-462:
--------------------------------
    Description: 
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]

  was:
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 
other command if it should be added(but may sure after discuss in 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

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]

        Summary: GSoC: Python API CLI enhancement  (was: [DolphinScheduler] 
Python API CLI enhancement)

> 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