Thank you for your interest in contributing to EchoForge! This document provides guidelines and instructions for contributing to the project.
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
If you find a bug in the application, please create an issue on GitHub with the following information:
- A clear, descriptive title
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Screenshots if applicable
- Environment details (OS, browser, Python version, etc.)
We welcome feature suggestions! Please create an issue on GitHub with:
- A clear, descriptive title
- A detailed description of the proposed feature
- Any relevant mockups or examples
- Use cases for the feature
- Fork the repository
- Create a new branch for your feature or bugfix
- Make your changes
- Add or update tests as necessary
- Ensure all tests pass
- Update documentation if needed
- Submit a pull request
Please follow the installation instructions in the README.md file to set up your development environment.
# Run all tests
./run_tests.sh
# Run specific tests
python -m unittest tests/unit/test_theme.py- Follow PEP 8 style guidelines for Python code
- Use meaningful variable and function names
- Write docstrings for all functions, classes, and modules
- Keep functions small and focused on a single task
- Add comments for complex logic
- Keep commits small and focused on a single change
- Write clear, descriptive commit messages
- Reference issue numbers in commit messages when applicable
- Rebase your branch before submitting a pull request
- Update the README.md file with any new features or changes
- Document new API endpoints
- Add inline comments for complex code
- Update environment variable documentation if you add new configuration options
- Write unit tests for new functionality
- Ensure existing tests pass with your changes
- Consider edge cases in your tests
- Test both success and failure scenarios
By contributing to EchoForge, you agree that your contributions will be licensed under the project's MIT License.