🐳 Contributing#
This guide will take you to the steps to follow in order to contribute to OSEkit.
There are many ways to contribute to this project, including:
Starring the OSEkit GitHub page to show the world that you use it
- Referencing OSEkit in your articles
(see “Cite this repository” in the About section of the OSEkit GitHub page)
- Participating in the OSEkit GitHub by:
Reporting difficulties you encounter when using the package in new issues
Suggesting functionalities that would come in handy in OSEkit in new issues
Reviewing existing pull requests
- Authoring new pull requests to:
Add new cool functionalities
Fix things that don’t work exactly the way they should
Improve the documentation
🐬 GitHub contributor workflow#
Contributions to the OSEkit codebase are done with GitHub.
If you’re new to this tool, we recommend taking a look at some resources to get you started, such as the Introduction to Github interactive course.
If you want to dig in OSEkit’s code to do anything you’d like (adding functionalities, fixing bugs, working on the documentation…), you’ll have to submit a new pull request.
There are lots of great tutorials out there that’ll guide you in the process of submitting a pull request. We recommend you follow one of those, e.g. DigitalOcean’s How To Create a Pull Request on GitHub.
We use uv to manage the project, and suggest that you install the project following the instructions in the Install from git section of the documentation.
🐬 Specific OSEkit workflow#
We use a GitHub Action to validate the code that is being pushed to our repo.
- This action validates code that:
Has been formatted thanks to the Ruff formatter
Passes all the tests of the pytest test suite
Does not reduce the coverage of the pytest test suite
Here’s what you should do if any of these three checks isn’t validated anymore:
😔 The code isn’t properly formatted according to Ruff#
Run the ruff formatter in your repo (e.g. with uv if you used it to sync the project):
uv run ruff format .
You might have to push the formatting in a new commit, and the CI should now pass! 🎉
😔 All tests don’t pass#
Run pytest in the tests module to take a look at the tests that don’t pass anymore:
uv run pytest .\tests\
This should point you to the part of the codebase that has been altered by your code modifications, and help you fix it.
😔 The coverage has reduced and coverall isn’t happy#
This probably means that you have added lines to the codebase that are not tested in the pytest test suite.
The easiest way to locate these lines is to run the test suite with coverage (example in Pycharm or in VSCode). Then, you might have to write new tests that check that exhaustively test your new features! (Refer to the pytest documentation if needed).