Thank you for your interest in contributing to Plesk Unified! We welcome contributions from the community. This document provides guidelines and instructions for contributing.
Be respectful and constructive in all interactions. We maintain a welcoming and harassment-free environment for everyone.
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/barateza/mcp-plesk-unified.git cd mcp-plesk-unified -
Create a virtual environment:
python -m venv .venv source .venv/bin/activate -
Install development dependencies:
pip install -e .
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes according to the style guide below.
-
Test your changes:
python -m plesk_unified.server # Verify the server starts correctly -
Commit with clear messages:
git commit -m "feat: add support for X" -m "Detailed explanation of changes"
Use conventional commits:
feat:for new featuresfix:for bug fixesdocs:for documentation changesrefactor:for code refactoringtest:for test additionschore:for maintenance tasks
-
Follow PEP 8 style guidelines.
-
Use meaningful variable and function names.
-
Add docstrings to functions and classes:
def search_knowledge_base(query: str, max_results: int = 10) -> list[dict]: """ Search the Plesk knowledge base for relevant documentation. Args: query: The search query string max_results: Maximum number of results to return Returns: List of documentation entries matching the query """
-
Keep lines under 100 characters when reasonable.
-
Use type hints for function arguments and return values.
- Write clear, concise comments detailing the "why" instead of the "what".
- Update
README.mdwith new features. - Document configuration changes.
- Add examples for new functionality.
-
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub with:
- A clear title describing the changes.
- A description of what changed and why.
- A reference to any related issues (e.g., "Fixes #123").
- Screenshots or examples if applicable.
-
Respond to review comments promptly and professionally.
Before submitting a PR, ensure:
- Code follows the style guide.
- Changes include proper documentation.
- You add no unnecessary dependencies.
- You regenerate the vector database if content parsing changed.
- You resolve merge conflicts with the main branch.
- Commit messages are clear and conventional.
Include:
- A clear, descriptive title.
- Steps to reproduce.
- Expected behavior.
- Actual behavior.
- Python version and OS.
- Full error messages and traceback.
- Relevant code snippets.
Include:
- A clear description of the feature.
- Use cases and benefits.
- A possible implementation approach.
- Examples of similar features in other projects.
- Check existing GitHub Issues.
- Open a new Discussion or Issue.
- Be patient—maintainers are volunteers.
We recognize contributors in:
- Git commit history.
- Release notes for significant contributions.
- README contributors section (if implemented).
Thank you for helping make Plesk Unified better! 🙏
Install development dependencies:
pip install -e ".[dev]"Run the full quality suite before opening a PR:
# Lint and auto-fix (must pass in CI)
ruff check . --fix
ruff format .
# Type check
pyright plesk_unified/
# Run tests
pytestWe use pre-commit to run formatters and linters automatically on each commit.
The hooks include ruff (lint + auto-fix and code formatting). If a hook modifies files, re-run git add and
commit again.
Install and enable hooks locally:
python -m pip install --upgrade pre-commit
pre-commit install
pre-commit run --all-files # optional: verify everything passes