Contributing¶
Contributions to odys are welcome and appreciated!
Issues¶
Bug reports, feature requests and general questions can all be filed as issues.
When reporting a bug, please include the output of the following call so we can reproduce the problem:
python -c "from importlib.metadata import version; print(version('odys'))"
Pull Requests¶
Getting started with a pull request is straightforward.
For non-trivial changes, please open an issue first to discuss the approach before submitting a PR.
Prerequisites¶
Make sure you have the following installed:
- Python 3.11 to 3.14
- uv for dependency management
- just for running development commands
- git for version control
Installation and setup¶
Fork the repository on GitHub and clone your fork locally.
# Clone your fork and cd into the repo directory
git clone git@github.com:<your username>/odys.git
cd odys
# Install dependencies and pre-commit hooks
just install
Check out a new branch and make your changes¶
git switch -c my-new-feature-branch
# Make your changes...
Run tests and linting¶
Before opening a PR, verify that formatting, linting and tests all pass locally.
# Run automated code formatting and linting
just check
# Run tests
just test
Build documentation¶
If your changes touch documentation, verify the build still succeeds.
just docs-test
Commit and push your changes¶
Once everything passes, commit and push your branch.
git add .
git commit -m "Your detailed description of your changes."
git push origin my-new-feature-branch
Then open a pull request on GitHub. Link any related issues and describe what your changes do.
Pull Request Guidelines¶
Please make sure your pull request:
- Includes tests for any new or changed behaviour.
- Updates documentation if it adds new functionality.