πContributing
Thank you for your interest in contributing to ProxmoxMCP! This document provides guidelines and instructions for contributing to the project.
π Complete Documentation - For detailed guides and API reference
Table of Contents
Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct. Please be respectful and considerate of others when contributing to the project.
Getting Started
Fork the repository on GitHub
Clone your fork locally
Set up the development environment
Create a new branch for your changes
Make your changes
Submit a pull request
Development Environment
Prerequisites
Python 3.8 or higher
Docker (for containerized development)
Proxmox VE instance (for testing)
Setup
Clone the repository:
git clone https://github.com/yourusername/ProxmoxMCP.git cd ProxmoxMCP
Set up git configuration for development:
# Option 1: Copy project git configuration (recommended) cp example.gitconfig .git/config # Then update with your personal details git config user.name "Your Name" git config user.email "your.email@example.com" # Option 2: Manual configuration git config user.name "Your Name" git config user.email "your.email@example.com" git config core.editor "vscode" git config init.defaultBranch "main" git config pull.rebase true git config push.autoSetupRemote true
The
example.gitconfig
includes development-friendly settings like:Python/JSON/Dockerfile diff patterns
Useful aliases (
git lg
,git st
,git sync
)Performance and security optimizations
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
Install development dependencies:
pip install -e ".[dev]"
Install pre-commit hooks:
pre-commit install
This sets up automatic code quality checks that run before each commit. The hooks include:
Ruff formatting and linting
Type checking with mypy
Security scanning with bandit and safety
Markdown formatting validation
Note: Pre-commit will automatically install required tools in isolated environments, so you don't need to install them globally.
Configure your Proxmox connection:
cp proxmox-config/config.example.json proxmox-config/config.json # Edit config.json with your Proxmox credentials
Contribution Workflow
Check the issues for tasks to work on or create a new issue for your proposed change
Create a new branch from
main
:git checkout -b feature/your-feature-name
Make your changes
Add tests for your changes
Run the tests to ensure they pass:
pytest
Update documentation as needed
Commit your changes with a descriptive commit message:
git commit -m "Add feature: your feature description"
Push your branch to your fork:
git push origin feature/your-feature-name
Create a pull request against the
main
branch of the original repository
Coding Standards
Follow PEP 8 style guidelines
Use type hints for function parameters and return values
Write docstrings for all functions, classes, and modules
Keep functions focused on a single responsibility
Use meaningful variable and function names
Add comments for complex logic
Code Formatting
We use the following tools for code formatting and linting:
You can run these tools with:
ruff format src tests
ruff check src tests
mypy src tests
Testing
Write unit tests for all new functionality
Ensure all tests pass before submitting a pull request
Aim for high test coverage of your code
Include both positive and negative test cases
To run tests:
pytest
For coverage report:
pytest --cov=src
Documentation
Update documentation for any changes to functionality
Document all public APIs
Include examples where appropriate
Keep the README up to date
Add docstrings to all functions, classes, and modules
Issue and Pull Request Process
Issues
Use the appropriate issue template
Provide clear and detailed information
Include steps to reproduce for bugs
Label issues appropriately
Pull Requests
Reference the related issue in your pull request
Provide a clear description of the changes
Update documentation as needed
Ensure all tests pass
Request review from maintainers
Security Vulnerabilities
If you discover a security vulnerability, please do NOT open an issue. Instead, email security@example.com with details. We take security issues seriously and will address them promptly.
Community
Join our discussions for questions and community support
Follow the project on GitHub to stay updated
Share your success stories and use cases
Thank you for contributing to ProxmoxMCP!
Last updated
Was this helpful?