Thank you for your interest in contributing to Axiom! This document provides guidelines and information for contributors.
- Check existing issues before creating a new one
- Use a clear, descriptive title
- Provide detailed steps to reproduce the issue
- Include relevant logs, error messages, or screenshots
- Open an issue with the
[Feature Request]prefix - Describe the use case and expected behavior
- Explain why this feature would benefit the project
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Run tests
python tests/test_framework_integration.py -v
- Commit with clear messages
git commit -m "Add: description of your change" - Push and create a Pull Request
# Clone with submodules
git clone https://github.com/certainly-param/Axiom.git
cd Axiom
git submodule update --init --recursive
# Install Python dependencies
pip install pyyaml
# Run tests
python tests/test_framework_integration.py -v- Python: Follow PEP 8
- C: Use consistent indentation (4 spaces)
- Documentation: Update relevant docs when changing functionality
See Usage Examples for the complete guide.
Quick checklist:
- Create
examples/{protocol}/config/{protocol}.yaml - Create
examples/{protocol}/adapter/{protocol}_adapter.c - Add tests if applicable
- Update documentation
- Keep PRs focused on a single change
- Include tests for new functionality
- Update documentation as needed
- Ensure all tests pass before submitting
- New Protocol Adapters - Paxos, ZAB, PBFT, etc.
- Property Templates - New verification properties
- Domain Templates - Support for new system types
- Documentation - Improvements, examples, tutorials
- Bug Fixes - Check open issues
Open an issue or reach out via the GitHub repository.
Thank you for contributing!