Welcome! We're excited you're interested in contributing to CrashVault. This guide will help you get started.
Please note that this project is governed by the Contributor Covenant Code of Conduct. By participating, you agree to abide by its terms.
New to open source? Here's how to make your first contribution:
- Fork the repository - Click the "Fork" button on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/crashvault.git cd crashvault - Create a branch:
git checkout -b my-first-contribution
- Install in development mode:
pip install -e . - Make your changes and test with
crashvault --help - Run tests:
pytest
- Commit and push:
git add . git commit -m "Add a descriptive commit message" git push origin my-first-contribution
- Open a Pull Request - Go to the original repo and click "New Pull Request"
Looking for a place to start? These issues are labeled good first issue and are perfect for beginners:
- Documentation improvements
- Test coverage expansion
- Adding new webhook providers
- CLI command enhancements
- Bug fixes with clear reproduction steps
- Search existing issues to avoid duplicates
- Use the bug template when creating new issues
- Include:
- Clear title
- Steps to reproduce
- Expected vs actual behavior
- CrashVault version (
crashvault --version) - Python version
- Search issues first to see if it's already been discussed
- Open a discussion before implementing large changes
- Describe the problem your feature solves
- Provide examples of how it would work
- Update documentation for any changed functionality
- Add tests for new features
- Ensure all tests pass (
pytest) - Update the CHANGELOG.md if it exists
- Request review from maintainers
We follow these conventions (also see our detailed Style Guide):
- Functions/variables:
snake_case - Classes:
PascalCase - Constants:
UPPER_SNAKE_CASE - Imports: stdlib first, then third-party, then local
- Formatting: f-strings preferred
- Type hints: Required in webhooks/ and server.py
# Clone and install
git clone https://github.com/Ak-dude/crashvault.git
cd crashvault
pip install -e ".[dev]"
# Install dev dependencies
pip install pytest pytest-cov black flake8
# Run tests
pytest
# Format code
black .
# Lint
flake8 .crashvault/
├── crashvault/ # Main package
│ ├── commands/ # CLI commands
│ ├── webhooks/ # Webhook providers
│ ├── core.py # Core functionality
│ ├── cli.py # CLI entry point
│ └── server.py # HTTP server
├── tests/ # Test suite
├── contributing.md # This file
└── README.md # Project documentation
- GitHub Discussions: Ask questions and share ideas
- Issues: Report bugs and request features
- Discord: Join our community (link in README)
Contributors are recognized in the README.md. Thank you for your contributions!
Last updated: February 2026