πŸ’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

  1. Fork the repository on GitHub

  2. Clone your fork locally

  3. Set up the development environment

  4. Create a new branch for your changes

  5. Make your changes

  6. Submit a pull request

Development Environment

Prerequisites

  • Python 3.8 or higher

  • Docker (for containerized development)

  • Proxmox VE instance (for testing)

Setup

  1. Clone the repository:

  2. Set up git configuration for development:

    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

  3. Create a virtual environment:

  4. Install development dependencies:

  5. Install pre-commit hooks:

    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.

  6. Configure your Proxmox connection:

Contribution Workflow

  1. Check the issues for tasks to work on or create a new issue for your proposed change

  2. Create a new branch from main:

  3. Make your changes

  4. Add tests for your changes

  5. Run the tests to ensure they pass:

  6. Update documentation as needed

  7. Commit your changes with a descriptive commit message:

  8. Push your branch to your fork:

  9. 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:

  • Ruff for code formatting and linting

  • mypy for type checking

You can run these tools with:

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:

For coverage report:

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?