Contributions
Contributions come in many forms, be it reporting bugs, giving feedback or submitting code. It's all welcome as our goal is to provide a useful toolkit that suits the needs of its users.
Response Time
At the time of writing this, PyFDL is developed primarily in my spare time. Please excuse any delays in answering questions or reviewing of code. I'll do my best to respond as quickly as I can.
Package Management
PyFDL uses Hatch for package management. Please refer to their documentation for more info on usage.
There is an environment setup for unit testing.
hatch run test:test
# or
hatch test
And a default shell for an interactive python session and so on.
hatch shell
To build and serve the documentation locally, you may use one of the following commands.
# Only build the docs. You'll find them in the "site" folder
hatch run docs:build
# Serve the docs on localhost:8000
hatch run docs:serve
Checklist For Contributions
Fork the repo
Please fork the repo on GitHub and clone your fork locally.
git clone git@github.com:<USERNAME>/pyfdl.git
Create a feature branch
Always work in a feature branch. Do not submit Pull Requests directly from "main"
Name your branch something relatable to the feature you're adding or a bug your fixing.
Only address one feature/bug in a branch to the best of your judgement.
git checkout -b my_feature_branch
Write code
Please try to follow the style of the project when writing code.
Use type hints and provide docstrings in your code.
Write unittests
All contributions should provide tests for new/updated behavior. We use pytest, please consult
their documentation for info on usage.
New sample files may be added to the tests/sample_data
folder if needed
Documentation
Please add/update relevant documentation. We use mkdocs and mkdocstrings
NOTE! All python code blocks will get tested, so make sure to write valid examples.
If you need to split your code blocks in the documentation, but would like to refer to each block, add your
markdown file to the USE_MEM
list in the tests/test_docs.py
file
Submitting a Pull Request
Push your feature branch to your repo and open a Pull Request on GitHub.
Branches on "apetrynet's" GitHub repo that get merged into "main" are deleted on GitHub to keep a clean repo.
git push origin my_feature_branch
Continue to push to this branch until the Pull Request is merged