Thank you for your interest in contributing to Soul Browser! We welcome contributions from the community.
Please read and follow our Code of Conduct to maintain a welcoming environment.
- Check existing issues to avoid duplicates
- Use the bug report template
- Include:
- Soul Browser version
- Platform (OS, architecture)
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Check existing feature requests
- Use the feature request template
- Describe:
- Use case
- Proposed solution
- Alternatives considered
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pytest) - Run linting (
ruff check .) - Commit with descriptive message
- Push to your fork
- Open a Pull Request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/soulbrowser.git
cd soulbrowser
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# or: venv\Scripts\activate # Windows
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
ruff check .
black --check .- Follow PEP 8
- Use type hints
- Write docstrings for public functions
- Keep functions focused and small
- Write tests for new features
- Use present tense ("Add feature" not "Added feature")
- Be descriptive but concise
- Reference issues when applicable (
Fixes #123)
soulbrowser/
├── __init__.py # Public API
├── browser.py # Core browser launch functions
├── config.py # Configuration and constants
├── download.py # Binary download management
├── privacy/ # Privacy protection modules
├── adblock/ # Ad blocking
├── performance/ # Performance optimization
├── security/ # Security features
├── automation/ # Automation tools
├── devtools/ # Developer tools
├── web3/ # Web3 integration
├── ai/ # AI features
└── human/ # Human-like behavior
- Unit tests:
pytest tests/unit/ - Integration tests:
pytest tests/integration/ - All tests:
pytest
- Open a Discussion
- Email: soulbrowser@soulbrowser.dev
Thank you for contributing!