Contributing to ZigX¶
Thank you for your interest in contributing to ZigX! This guide will help you get started.
Getting Started¶
Prerequisites¶
- Python 3.8+
- Zig 0.14.0+ (0.15.0+ recommended)
- Git
Development Setup¶
- Fork the repository on GitHub
- Clone your fork:
- Install development dependencies:
- Build the Zig CLI:
Development Workflow¶
Running Tests¶
Running Lints¶
Building Documentation¶
Visit http://localhost:8000 to preview.
Code Style¶
Python¶
- Follow PEP 8
- Use type hints
- Use ruff for formatting and linting
Zig¶
- Follow Zig style guide
- Use
zig fmtfor formatting - Keep functions small and focused
Pull Request Process¶
- Create a feature branch:
-
Make your changes
-
Write tests for new functionality
-
Update documentation if needed
-
Run tests and lints:
- Commit with descriptive messages:
- Push and create a Pull Request:
Issue Guidelines¶
Bug Reports¶
Include: - Python version - Zig version - Operating system - Minimal reproduction code - Expected vs actual behavior - Full error traceback
Feature Requests¶
Include: - Use case description - Proposed API/behavior - Alternatives considered
Project Structure¶
zigx/
├── zigx/
│ ├── __init__.py # CLI entry point
│ ├── build.py # PEP 517 build backend
│ ├── src/ # Zig source code
│ │ ├── main.zig # CLI implementation
│ │ └── ...
│ └── build.zig # Zig build configuration
├── tests/ # Python tests
├── docs/ # Documentation (MkDocs)
├── pyproject.toml # Project configuration
└── README.md
Areas for Contribution¶
- Documentation - Improve guides and examples
- Testing - Add test coverage
- Features - Implement new functionality
- Bug fixes - Fix reported issues
- Performance - Optimize build times and runtime
- Cross-compilation - Improve multi-platform support
Code of Conduct¶
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
License¶
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Questions?¶
- Open an issue for discussion
- Check existing issues for answers
- Review the documentation
Thank you for contributing to ZigX! 🚀