Skip to content

Contributing

Thank you for your interest in contributing to jettex!

Development Setup

Prerequisites

  • Python 3.8 or higher
  • Git

Clone the Repository

git clone git@github.com:gauranshkumar/jettex.git
cd jettex

Create a Virtual Environment

python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# or
.venv\Scripts\activate     # Windows

Install Development Dependencies

pip install -e ".[dev]"

Install TinyTeX for Testing

python -c "import jettex; jettex.install_tinytex()"

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

git checkout -b feature/your-feature-name

2. Make Your Changes

  • Write tests for new functionality
  • Update documentation as needed
  • Follow the existing code style

3. Run Tests

pytest

4. Commit Your Changes

git add .
git commit -m "Add your descriptive commit message"

5. Push and Create a Pull Request

git push origin feature/your-feature-name

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.