Contributing#
Thank you for your interest in contributing to lox! We welcome contributions from everyone, whether you’re fixing a bug, improving documentation, or suggesting new features.
Ways to Contribute#
Report Bugs: If you find a bug, please open an issue with a clear description and a minimal reproducible example.
Suggest Features: Have an idea for a new feature? Open an issue to discuss it.
Improve Documentation: Help us make our documentation clearer and more comprehensive.
Contribute Code: Submit pull requests for bug fixes or new features.
Development Setup#
We aim to keep the setup process as simple as possible.
1. Environment Setup#
We recommend using a virtual environment.
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,tests,docs,wandb,neptune]"
2. Running Tests#
Ensure all tests pass before submitting a pull request.
pytest tests
3. Code Quality#
We use black and isort for formatting. Please run them before committing.
black .
isort .
Pull Request Process#
Open an Issue: For significant changes, please open an issue first to discuss your proposal.
Create a Branch: Work on a feature branch (e.g.,
feat/awesome-new-feature).Submit PR: Open a PR against the
mainbranch.Review: Participate in the review process and address any feedback.
Roadmap#
Here are some areas where we’re looking for help:
Neptune Support: Implement
NeptuneLogger(currently placeholder in dependencies).Additional Loggers: Add support for TensorBoard, MLflow, or other common backends.
Documentation:
Add more real-world examples (e.g., training a neural network with
lox).Expand “The Sharp Bits” section with common pitfalls.
Testing: Improve test coverage, especially for different JAX transformations.
Performance: Benchmarking
loxoverhead and optimizing where possible.
Looking forward to your contributions!