Contributing¶
Thank you for your interest in contributing to jettex!
Development Setup¶
Prerequisites¶
- Python 3.8 or higher
- Git
Clone the Repository¶
Create a Virtual Environment¶
Install Development Dependencies¶
Install TinyTeX for Testing¶
Running Tests¶
# Run all tests
pytest
# Run with coverage
pytest --cov=jettex --cov-report=html
# Run specific test file
pytest tests/test_utils.py
# Run with verbose output
pytest -v
Code Style¶
We use standard Python conventions:
- Follow PEP 8
- Use type hints where appropriate
- Write docstrings in Google style
Formatting¶
# Format code (if you have black installed)
black src/jettex tests
# Check types (if you have mypy installed)
mypy src/jettex
Documentation¶
Documentation is built with MkDocs:
# Install docs dependencies
pip install mkdocs mkdocs-material mkdocstrings[python]
# Serve docs locally
mkdocs serve
# Build docs
mkdocs build
Making Changes¶
1. Create a Branch¶
2. Make Your Changes¶
- Write tests for new functionality
- Update documentation as needed
- Follow the existing code style
3. Run Tests¶
4. Commit Your Changes¶
5. Push and Create a Pull Request¶
Then create a pull request on GitHub.
Pull Request Guidelines¶
- Describe what your PR does and why
- Reference any related issues
- Ensure all tests pass
- Update documentation if needed
- Keep changes focused and atomic
Reporting Issues¶
When reporting issues, please include:
- Python version (
python --version) - Operating system
- jettex version (
python -c "import jettex; print(jettex.__version__)") - TinyTeX status (
python -c "import jettex; print(jettex.tinytex_version())") - Steps to reproduce
- Expected vs actual behavior
- Error messages and tracebacks
Feature Requests¶
Feature requests are welcome! Please:
- Check if the feature already exists
- Check if there's an existing issue
- Describe the use case
- Explain why it would be useful
Code of Conduct¶
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.