Thank you for your interest in contributing to Drydock! This guide will help you get started.
- Report bugs via GitHub Issues
- Suggest features via GitHub Issues
- Submit pull requests for bug fixes or new tools
- Improve documentation in StartHere/, README files, or analysis templates
- Add analyzer tools to the Tools/ directory
- Fork the repository
- Clone your fork locally
- Create a feature branch:
git checkout -b my-feature - Make your changes
- Test your changes (see below)
- Commit with a clear message
- Push to your fork and open a PR
Drydock tools are pure Python (stdlib only). No virtual environment or pip install required.
# Clone
git clone https://github.com/YOUR_USERNAME/Drydock.git
cd Drydock
# Verify tools work
python Tools/analyzers/codemap.py --help
python Tools/analyzers/context_compiler.py --help- Pure stdlib - No external dependencies for tools in Tools/
- JSON-first output - All analyzers default to JSON, with
--markdownoption - No fat files - Keep files under 300 lines where possible
- Naming convention -
{action}_{target}.pyfor tools (e.g.,dependency_analyzer.py) - Docstrings - Include a module-level docstring with usage examples
- Non-destructive - Analyzers must never modify the source project
- Place in the appropriate category folder under
Tools/ - Follow the naming convention:
{action}_{target}.py - Output JSON by default, support
--markdownflag - Include a module-level docstring with usage
- Use
argparsefor CLI arguments - Update
Tools/README.mdwith your tool
# Run a tool against the Drydock repo itself as a smoke test
python Tools/analyzers/codemap.py . --output /tmp/test-codemap.json
python Tools/analyzers/structure_analyzer.py .- Keep PRs focused on a single change
- Include a clear description of what and why
- Reference any related issues
- Ensure all existing tools still run without errors
Open an issue and we'll help you out.