Thank you for your interest in contributing to Starbelly! This document provides guidelines and information for contributors.
Before you begin:
- Read the Developer Guide in our documentation
- Familiarize yourself with the codebase and architecture
- Check existing issues and pull requests to avoid duplication
- Docker - For running RethinkDB and Nginx containers
- Poetry - For Python dependency management
- Python 3.7 - Required for the server
- Chromium or Chrome - Optional, for web client development
- Dart SDK 2.7.1 - For web client development
Note: Continuous integration currently tests against Python 3.7. Newer Python versions may work but are not guaranteed unless CI is updated to cover them.
-
Clone the repository:
git clone https://github.com/HyperionGray/starbelly cd starbelly -
Install dependencies:
poetry install
-
Set up the development environment:
cd dev/ poetry run python gencert.py localhost docker-compose up -
Run the server:
poetry shell python tools/container_init.py python -m starbelly --log-level debug --reload
For detailed setup instructions, see the Developer Guide.
When reporting bugs, please include:
- Starbelly version
- Operating system and version
- Python version
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Any relevant logs or error messages
Enhancement suggestions are welcome! Please:
- Check if the enhancement has already been suggested
- Provide a clear description of the proposed feature
- Explain why this enhancement would be useful
- Include any relevant examples or mockups
- Fork the repository and create your branch from
master - Make your changes, following the code style guidelines
- Add tests if applicable
- Update documentation if you're changing functionality
- Run the test suite:
poetry run make test - Submit a pull request with a clear description of your changes
- Follow PEP 8 guidelines for Python code
- Use meaningful variable and function names
- Add docstrings to functions and classes
- Keep functions focused and concise
- Add comments for complex logic
- Use clear, descriptive commit messages
- Start with a verb in the present tense (e.g., "Add", "Fix", "Update")
- Reference issue numbers when applicable
Run the test suite with:
poetry run make testFor coverage reports:
poetry run pytest tests/ --cov=starbelly --cov-report=term-missingDocumentation is built using Sphinx. To build the documentation:
poetry run make docsView the built documentation at docs/_build/html/index.html.
This project adheres to a code of conduct that promotes a welcoming and inclusive environment. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
If you have questions about contributing, feel free to:
- Open an issue for discussion
- Contact the maintainers at Hyperion Gray
By contributing to Starbelly, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Starbelly!