You are welcome to contribute to PyLECO.
There are many ways, how to contribute:
- Share your experience with PyLECO,
- ask questions,
- suggest improvements,
- report bugs,
- improve the documentation,
- fix bugs,
- add new features
- ...
If you have a suggestion, a question, or found a bug, please open an issue
on our github issues page or on the discussions page.
For technical suggestions, questions, or bug reports, please try to be as descriptive as possible in order to allow others to help you better.
For a bug report, the following information is a good start:
- Which PyLECO version do you use? installed from PyPI / conda-forge or from the current main branch from github?
- Python version
- Operating system
If you are able, you can try to fix the bug and open a pull request, see below.
You are especially welcome to share, how you use PyLECO in the show-and-tell discussions.
If you want to add a new feature, please open an issue first in order to discuss the feature and ideas of its implementation.
Once the general idea is tied down, you can open a pull request with your code. We encourage to open a pull request early on.
For development, we recommend test driven development, that is writing tests and the features at the same time supporting each other.
For example for a bug fix:
- Write a test for the expected behaviour, which will fail (as there is a bug),
- fix the code, such that the bug is fixed and the test succeeds,
- refactor the code.
We use pytest as our test framework.
All tests are in the tests
folder.
Each module has its own file with unit tests in a similarly named structure, for example pyleco/core/message.py
has the tests/core/test_message.py
test file.
There is a special folder, tests/acceptance_tests
with acceptance tests, that are tests, which test several modules working together.
The module pymeasure.test
offers fake classes, e.g. a fake zmq Socket, in order to facilitate writing tests.