Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

re-structure the project with standard template #27

Closed
wants to merge 17 commits into from

Conversation

wj-Mcat
Copy link
Contributor

@wj-Mcat wj-Mcat commented May 8, 2022

Description

try to finish the plan: #24

I don't modify the content of source code but the project structure which is added into some more useful tools to make it more extensive, eg:

  • Makefile: workflow scripts
  • requirements-dev.txt: dependency packages only used in developemtn
  • pyproject.toml: store the project metadata which can be used in many opensource toos, eg: pytest, mypy, pylint.

Another work in this pr: move the paddlefsl to the root dir to make it more clear about the source code.

To get the details, you can read the project tree structure in files of pr.

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented May 8, 2022

You can read the project structure from here:

image

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented May 8, 2022

VERSION file will mark a dev tag to the published package.

@tata1661
Copy link
Owner

tata1661 commented May 9, 2022

@wj-Mcat Thanks for your contribution!
This repo serves as a tool for users to quickly find resources of FSL, which is not limited to Paddle codes.
Thus, we would rather keep PaddleFSL as a subdirectory in FSL-Mate.

Except that, the other changes are nice. However, this branch has conflict with the current FSL-Mate. Please double check with your PR.

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented May 11, 2022

I understand this repo acts as a tool for developers who use paddle to creat model. Below are my points, if you also thinks we should keep the current structure, I will convert it back.

  1. I think FSL is at the same level with PaddleNLP, PaddleOCR, PaddleClas and so on. All of these tools provide out of box modules to be used in any other project. After checking the structure of these project, they follow the python-style to structure the project. So, from this side, I suggest we can use this same structure style.

  2. If the developer read the README and docs (waiting to be added & improved), they will get the tools in FSL-Mate. Althogh we suggest that the beginner should read the source code, docs can be more friendly to them. If the developer is family with python, subdirectory is not the problem for them and python-style structure will make them more comfort.

This is my consideration, I'm looking forward your next reply. 🤡 🤡 🤡

@tata1661
Copy link
Owner

I understand this repo acts as a tool for developers who use paddle to creat model.

@wj-Mcat This is not the aim of this repo.

As said before, ``this repo serves as a tool for users to quickly find resources of FSL, which is not limited to Paddle codes".
We care about both people from academics and industry, wishing to contribute to the advances of FSL. This is not limited to offering codes.
We include paper list, and paddle codes so far. We may also provide codes in other frameworks or some tutorials on FSL in the future.

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented May 11, 2022

OK, I will convert it back. 😆 please wait for my new commits.

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented May 12, 2022

I have converted it to PaddleFSL subdirectory structure. please review it when you have time. @tata1661

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented May 24, 2022

不好意思,我这周在准备学校毕业答辩的相关事情,等周五过后我会继续推进这个PR。

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented Jun 9, 2022

I have set the CICD workflow script for project, which contains:

  • make unittest with pytest, all of you should do is: make test
  • make code linting with mypy, pylint, flake8, all of you should do is: make test
  • use requirements.txt to store the production packages, eg: paddlenlp, numpy, tqdm and so on. use requirements-dev.txt to store the development packages, eg: pytest, pylint, mypy and so on.
  • use pyproject.toml file to store the configurations of different tools, eg: pytest, mypy.
  • automaticlly deploy the package to the pypi server, but you should set secret token, named as PYPI_TOKEN, in project setting. feature should be tested.

@tata1661
Copy link
Owner

tata1661 commented Jun 9, 2022

@wj-Mcat Thanks! I am also busy working on several DDLs. I will check your commits later this week.

@wj-Mcat
Copy link
Contributor Author

wj-Mcat commented Jun 22, 2022

Closed according to #24, I'll work on the dev branch.

@wj-Mcat wj-Mcat closed this Jun 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants