Thank you for your interest in contributing! This guide will help you get started with development.
- Clone the repository:
git clone https://github.com/BobTheBuidler/sphinx-autodoc-vyper
cd sphinx-autodoc-vyper
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install development dependencies:
pip install -e ".[dev]"
The project uses tox for testing across multiple Python versions and environments:
# Run all tests and checks
tox
# Run specific environment
tox -e py39 # Run tests on Python 3.9
tox -e lint # Run linting
tox -e type # Run type checking
# Run pytest directly during development
pytest
pytest --cov=sphinx_autodoc_vyper
py37
throughpy311
: Run tests on Python 3.7-3.11lint
: Run code formatting and linting checkstype
: Run type checking with mypy
The project uses several tools to maintain code quality:
-
Black: Code formatting
black sphinx_autodoc_vyper tests
-
isort: Import sorting
isort sphinx_autodoc_vyper tests
-
Ruff: Fast Python linter
ruff check sphinx_autodoc_vyper tests
-
mypy: Static type checking
mypy sphinx_autodoc_vyper tests
sphinx_autodoc_vyper/
├── __init__.py # Package initialization
├── cli.py # Command-line interface
├── generator.py # Sphinx documentation generator
├── parser.py # Vyper contract parser
└── server.py # Development server
tests/
├── __init__.py
├── conftest.py # Test fixtures
├── test_cli.py
├── test_generator.py
├── test_parser.py
└── test_server.py
- Create a new branch for your changes
- Write tests for new functionality
- Ensure all tests pass with
tox
- Update documentation if needed
- Submit a pull request
When adding new features:
- Add docstrings to new functions/classes
- Update README.md if needed
- Add example usage if applicable
- Update version in
pyproject.toml
- Update CHANGELOG.md
- Create a new release on GitHub
- Publish to PyPI
Feel free to open an issue for:
- Bug reports
- Feature requests
- Documentation improvements
- General questions