All contributions, big and small, are very appreciated! File an issue for bug reports, suggestions and questions, or make a pull request to actively contribute to the code or documentation.
However you decide to help, please refer to our code of conduct for what we expect from our community.
Issues can be filed at https://github.com/hashberg-io/typed-descriptors/issues. You can file an issue to:
- report a bug (using the
bug
label) - suggest a new feature (using the
enhancement
label) - suggest improvements to our documentation (using the
documentation
label) - ask for information and start a discussion thread (using the
question
label)
If you are reporting a bug, please include the following information:
- project version (PyPI version number or commit number)
- Python version
- version of installed dependencies
- how the bug manifests (e.g. what you expect to happen vs what actually happens)
- how others can reproduce the bug
Please try to be concise in your description, providing a minimal reproducible example whenever possible.
If you're proposing a new feature, please describe it in detail, with a few examples of it might be implemented and of its intended usage.
You can make a pull request to:
- fix a bug which is reported and discussed in an open issue
- implement a new feature which is suggested and discussed in an open issue
- improve our documentation in ways suggested and discussed in an open issue
You should link your pull request to the issue(s) that it addresses. Once your pull request passes all continuous integration checks, we will review it and either:
- approve the pull request and merge it
- start a discussion on how to improve the pull request before it can be approved
- reject the pull request, with an explanation as to why we don't consider it viable for improvement
You can perform continuous integration checks on all supported versions by running tox in the main project folder:
tox
Continuous integration involves the following individual checks:
- testing with pytest:
pytest test
- static type-checking with mypy:
mypy --strict typed-descriptors
- linting with pylint:
pylint typed-descriptors
Whenever relevant, please consider contributing some additional tests pertaining to your implementation.
The API documentation for this project is generated by Sphinx: please document any code changes and additions using reST docstrings. The documentation is generated by running the following commands in the docs/ folder:
docs>make api
docs>make clean
docs>make html
The script make-api-clean-html.bat
automates the procedure on Windows. If you edit the readme page, please conform to the standard-readme specification.
Code should be formatted by Black:
black -l 80 -t py38 -t py39 -t py310 -t py311 -t py312 .\typed_descriptors