Contributing to depkeeper¶
We welcome contributions of all types, including bug fixes, new features, documentation improvements, and design suggestions. This project values clear communication, code quality, and respectful collaboration.
How You Can Contribute¶
There are many ways to participate in the depkeeper project, regardless of your experience level.
| Contribution | Description | Link |
|---|---|---|
| Report a Bug | Open an issue when you encounter unexpected behavior. Include clear reproduction steps. | Open an issue |
| Propose a Feature | Submit feature requests or improvement ideas through discussions. | Start a discussion |
| Improve Documentation | Keep documentation accurate, clear, and easy to follow. | Edit documentation |
| Contribute Code | Fix bugs, improve performance, or add new features. | Development setup |
Contributor Resources¶
Use these guides to get started:
- Development Setup -- Set up your local development environment
- Code Style Guide -- Follow coding standards and best practices
- Testing Guide -- Write and execute tests
- Release Process -- Understand how releases are planned and published
Code of Conduct¶
All contributors must follow our Code of Conduct to maintain a respectful, inclusive, and professional environment.
Getting Support¶
Get help through the following channels:
- General Questions -- GitHub Discussions
- Bug Reports -- GitHub Issues
- Security Issues -- Security Policy
First-Time Contributors¶
New to open-source contributions? Follow these steps:
- Find issues labeled
good first issue - Review the Development Setup guide
- Follow the Code Style guidelines
- Submit a pull request
Maintainers provide guidance during the review process.
Standard Contribution Flow¶
- Fork the repository
- Create a dedicated branch for your change
- Implement changes following project guidelines
- Add or update tests as required
- Open a pull request with a clear description
- Address review feedback
- Maintainers merge changes after approval
Project Structure¶
The depkeeper codebase is organized as follows:
Text Only
depkeeper/
├── depkeeper/ # Source code
│ ├── commands/ # CLI command implementations (check, update)
│ ├── core/ # Dependency parsing, version checking, resolution
│ ├── models/ # Data models (package, requirement, conflict)
│ ├── utils/ # Console output, HTTP, logging, file I/O
│ ├── cli.py # CLI entry point and global options
│ ├── constants.py # Centralized configuration constants
│ ├── context.py # CLI context management
│ └── exceptions.py # Custom exception hierarchy
├── tests/ # Test suite (unit, integration, e2e)
├── docs/ # Documentation source (MkDocs)
└── scripts/ # Development setup and automation
Thank you for contributing to depkeeper.