This section is here to explain how to contribute to this project.
By participating in this project, you agree to abide by our code of conduct: be respectful, professional, and collaborative.
We use uv for all dependency management. To set up your environment:
git checkout -b feature/your-feature-name
uv sync- Formatting: We follow standard Python conventions. Please ensure your code is clean and readable.
- Docstrings: All new functions and classes must include docstrings in Google Style.
- Type Hints: Use Python type hints wherever possible to improve maintainability.
- No contribution will be merged without passing tests.
- Add tests for any new feature in the
tests/directory. - Ensure your changes do not break existing tests.
- Always run the test suite locally before pushing. In the project root dir, run:
uv run pytest-
Branches: Use descriptive names like feature/abc, fix/xyz, or docs/update-readme.
-
Commits: Try to use Conventional Commits (e.g., feat: add new mesh generator, fix: resolve libGLU path issue).
-
Update the
README.mdor documentation if you changed the API. -
Ensure the CI pipeline (GitHub Actions) passes on your PR.
-
A maintainer will review your changes and provide feedback.
#u# 🛠 Troubleshooting for Contributors
If you are working on a headless Linux server and encounter libGLU errors, ensure you have the system dependencies installed:
sudo apt-get install libglu1-mesa libosmesa6Your PR will be automatically tested for:
-
Linting & Logic: via
pytest. -
Coverage: Coverage must not decrease significantly.
-
Documentation:
pdocmust be able to build the docs without errors.