[ 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