Thank you very much for your willingness to contribute to the Py2exe-GUI project, please read the following and follow
some ground rules in order to keep the project in good shape for rapid development.
## Before Writing Code
If you have any thoughts that involve more than a few dozen lines of code, I highly recommend you to submit an issue first talking about the stuff you want to implement. It's a good idea to discuss whether we want to do it before you put a lot of effort into it, and it also ensures that we're not duplicating work.
## Coding
### Prepare the development environment
Development environment is more complicated than use environment, ensure that you have installed Python 3.11+ and [Poetry](https://python-poetry.org/docs/#installation). Then use Poetry to create and install the development environment:
You also need to install a git hook via [pre-commit](https://pre-commit.com/):
```shell
pre-commit install
```
### Code Style
- In general, new and modified code should be close to the style of the original code. Try to make the code readable.
- Please format the code using [Black](https://black.readthedocs.io/en/stable/) to ensure that all code styles are consistent with the project.
- Please add sufficient type annotations to the code for your code. This allows the code to pass [mypy](https://mypy.readthedocs.io/en/stable/) checks without reporting errors.
- Please add docstrings or comments to modules, classes, functions/methods, properties, etc. to ensure clarity and readability.
### Documentation
If you implement some new features, you should consider adding the appropriate documentation to the `docs/` directory, or modifying `README.md` as appropriate to elaborate.
### Tests
The Py2exe-GUI project does not have any tests at the moment due to my limited programming skills as well as the fact that automated tests are not easily implemented for GUI programs. If you want to add some test code, please create `tests/` directory in the root directory of the whole project and put the test code in it.
## Pull Request
Do a pull request to the `main` branch of [muziing/Py2exe-GUI](https://github.com/muziing/Py2exe-GUI), and I will review the code and give feedbacks as soon as possible.