Last Updated: 2025-10-14 | Version: 1.0.0
Thank you for your interest in contributing to Accelerapp! This document provides guidelines for contributing to the project.
- Bug Reports: Submit detailed bug reports with reproduction steps
- Feature Requests: Propose new features or improvements
- Code Contributions: Submit pull requests with bug fixes or new features
- Documentation: Improve or expand documentation
- Examples: Create example projects showcasing Accelerapp
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/Accelerapp.git cd Accelerapp -
Install in development mode:
pip install -e . pip install -r requirements.txt -
Create a branch for your changes:
git checkout -b feature/your-feature-name
- Follow PEP 8 style guidelines (enforced by flake8)
- Use Black for code formatting (line length: 100)
- Sort imports with isort (profile: black)
- Add comprehensive docstrings to all classes and functions
- Include type hints throughout (checked by mypy)
- Write unit tests for new functionality (pytest)
- Maintain or improve code coverage (target: 80%+)
- Keep changes focused and atomic
- Run Bandit security scanner before committing
- Never commit secrets, API keys, or credentials
- Follow secure coding practices
- Review code for CWE vulnerabilities
- Validate all user inputs
- Update README.md for user-facing changes
- Update relevant documentation files
- Add docstrings with examples for complex functions
- Keep CHANGELOG.md up to date
- Document configuration options
Run the full test suite:
# Run all tests
pytest tests/
# Run with coverage
pytest --cov=accelerapp --cov-report=html tests/
# Run specific test file
pytest tests/test_core.py -v
# Run tests in parallel
pytest tests/ -n auto
# Run with specific markers
pytest -m unit tests/
pytest -m integration tests/Run all quality checks before committing:
# Format code
black --line-length=100 src/
# Sort imports
isort --profile black --line-length=100 src/
# Lint code
flake8 src/ --max-line-length=100
# Type check
mypy src/ --ignore-missing-imports
# Security scan
bandit -r src/ -ll
# Or use pre-commit to run all checks
pre-commit run --all-files- All new features must include tests
- Tests must pass on Python 3.8-3.12
- Maintain or improve code coverage (current: 71%, target: 80%+)
- Tests should be fast (< 5 seconds per test)
- Use fixtures for common setup code
- Update documentation for any changed functionality
- Add tests for new features
- Ensure all tests pass
- Update the README.md if needed
- Submit your pull request with a clear description
All submissions require review. We use GitHub pull requests for this purpose. Expect:
- Feedback on code quality and design
- Requests for tests or documentation
- Suggestions for improvements
To add support for a new hardware platform:
- Update
firmware/generator.pywith platform-specific code - Add platform templates if needed
- Create example configurations
- Update documentation
- Add tests for the new platform
To add a new SDK language:
- Add language support in
software/generator.py - Create appropriate templates
- Add language-specific examples
- Update documentation
- Add tests
To add UI framework support:
- Implement generation logic in
ui/generator.py - Create framework templates
- Add example UI projects
- Update documentation
- Add tests
Feel free to open an issue for:
- Clarification on contribution process
- Discussion of major changes
- Help with development setup
Be respectful, inclusive, and professional in all interactions.
Thank you for contributing to Accelerapp!