Contributing to Apache ResilientDB Python SDK
We love your input! We want to make contributing to Apache ResilientDB Python SDK as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
Development Process
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code follows the project's coding standards.
- Issue that pull request!
Development Setup
Clone your fork:
git clone https://github.com/YOUR_USERNAME/incubator-resilientdb-python-sdk.git
cd incubator-resilientdb-python-sdk
Set up development environment:
sh INSTALL.sh
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Create a branch:
git checkout -b your-feature-name
Coding Standards
- Follow PEP 8 style guide for Python code
- Use type hints for function parameters and return values
- Write docstrings for all public methods and classes
- Keep functions focused and concise
- Add comments for complex logic
- Include unit tests for new functionality
Pull Request Process
- Update the README.md with details of changes to the interface, if applicable.
- Update the documentation with details of any new functionality.
- The PR will be merged once you have the sign-off of at least one maintainer.
Issue Reporting Guidelines
Bug Reports
When filing an issue, make sure to answer these questions:
- What version of Python are you using?
- What operating system are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
Feature Requests
We welcome feature requests! When submitting a feature request, please:
- Explain the problem you're trying to solve
- Describe the solution you'd like to see
- Provide context about alternative solutions you've considered
Community
License
By contributing, you agree that your contributions will be licensed under the Apache License, Version 2.0.