Contributing
We welcome contributions to Simulchip! This guide will help you get started.
Development Setup
Fork the repository on GitHub
Clone your fork locally:
git clone https://github.com/yourusername/simulchip.git cd simulchip
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
Install development dependencies:
pip install -e ".[dev,docs]" pre-commit install
Code Style
We use several tools to maintain code quality:
Black for code formatting (88 character line length)
isort for import organization
flake8 for linting
mypy for type checking
pylint for additional code quality checks
Run all checks:
make check
Or individually:
make format # Run black and isort
make lint # Run flake8, mypy, and pylint
make test # Run pytest
Contribution Guidelines
All code must pass style checks - Run
make check
before submittingNew functionality must include tests - We aim for high test coverage
Update documentation - Include docstrings and update docs if needed
Follow existing patterns - Match the code style of the surrounding code
Submitting Changes
Create a feature branch:
git checkout -b feature/your-feature-name
Make your changes and commit:
git add . git commit -m "Add your descriptive commit message"
Push to your fork:
git push origin feature/your-feature-name
Open a Pull Request on GitHub
Testing
Run the test suite:
make test
Run with coverage:
pytest --cov=simulchip tests/
Documentation
Build documentation locally:
cd docs
make html
View at docs/build/html/index.html
Code of Conduct
Please be respectful and constructive in all interactions. We’re here to build something great together!