Thank you for your interest in contributing to the Qdrant Multi-Node Cluster project! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to abide by our Code of Conduct, which expects all participants to:
- Be respectful and inclusive
- Exercise consideration and empathy
- Focus on collaborative problem-solving
- Refrain from discriminatory or harassing behavior
There are many ways to contribute to this project:
- Reporting Bugs: Help improve the project by reporting bugs
- Suggesting Enhancements: Propose new features or improvements
- Code Contributions: Submit pull requests with bug fixes or new features
- Documentation: Improve documentation, fix typos, or add examples
- Testing: Test the project in different environments and report issues
- Providing Feedback: Share your experience using the project
-
Fork the Repository
Start by forking the repository to your GitHub account.
-
Clone Your Fork
git clone https://github.com/YOUR_USERNAME/qdrant-multi-node-cluster.git cd qdrant-multi-node-cluster -
Set Up Development Environment
# Create a virtual environment python -m venv env # Activate the virtual environment # On Windows: env\Scripts\activate # On macOS/Linux: source env/bin/activate # Install dependencies pip install -e .
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Write your code following the project's style guidelines
- Add tests for new functionality
- Update documentation for any changed functionality
-
Run Tests
python -m unittest discover -s tests
-
Format Code Ensure your code adheres to PEP 8 style guidelines.
-
Commit Changes
git add . git commit -m "Brief description of your changes"
-
Push to Your Fork
git push origin feature/your-feature-name
-
Submit a Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Select your feature branch
- Provide a clear description of your changes
When submitting a pull request:
-
Describe Your Changes
- Clearly explain what problem your PR solves
- Reference any related issues using the GitHub issue number (#123)
-
Keep PRs Focused
- Each PR should address a single concern
- For multiple unrelated changes, submit separate PRs
-
Update Documentation
- Update relevant documentation to reflect your changes
- Add comments to complex code sections
-
Include Tests
- Add tests that verify your changes work as expected
- Ensure all existing tests continue to pass
-
Be Responsive
- Address review comments and feedback promptly
- Be open to suggestions for improvement
This project follows PEP 8 style guidelines with a few modifications:
- Line length: 100 characters maximum
- Docstrings: Follow Google style docstrings
- Imports: Group and order imports as follows:
- Standard library imports
- Third-party imports
- Local application imports
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests after the first line
- Use Markdown for documentation
- Include code examples where appropriate
- Use clear, concise language
- Organize information logically
When reporting bugs, please include:
- Description: Clear description of the bug
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Environment:
- Python version
- Qdrant version
- Operating system
- Any other relevant details
- Screenshots: If applicable
- Possible Solution: If you have suggestions
For feature requests:
- Description: Clear description of the feature
- Rationale: Why this feature would be beneficial
- Example Usage: How the feature would be used
- Alternatives Considered: Any alternative solutions you've considered
- GitHub Issues: Use for bug reports and feature requests
- Pull Requests: Use for code contributions
- Discussions: For general questions and discussions
-
Building Your Development Image
docker build -t qdrant-dev -f deployments/docker/Dockerfile.dev . -
Running Development Container
docker run -it --rm -v $(pwd):/app qdrant-dev bash
-
Enable Debug Logging
import logging logging.basicConfig(level=logging.DEBUG)
-
Using Rich for Better Output
from rich.console import Console console = Console() console.print("[bold red]Error:[/bold red] Something went wrong")
By contributing to this project, you agree that your contributions will be licensed under the project's MIT License.
A big thank you to all contributors who help improve this project!