Contributing to Grout
Thank you for considering contributing to Grout! We appreciate your time and effort.
Before implementing major features, please open an issue or discuss it in the Grout Development Channel on the RomM Discord to ensure alignment with the project's direction.
Code of Conduct
By contributing, you agree to uphold our Code of Conduct.
Be respectful, constructive, and welcoming to all contributors regardless of experience level.
Ways to Contribute
Not a developer? There are many ways to help improve Grout!
Translations
Help make Grout accessible to more users by translating it into your language. Translation files are located in resources/locales/.
See the Development Guide for details on the i18n workflow.
Testing & Bug Reports
- Test Grout on your device and CFW combination
- Report bugs with detailed reproduction steps
- Verify fixes in pre-release builds
- Test edge cases (slow networks, large libraries, etc.)
Documentation
- Fix typos and improve clarity in guides
- Write tutorials for specific use cases
- Add screenshots or animated demos
- Translate documentation
Platform Mapping Updates
Help keep CFW platform directory mappings current:
- Report incorrect or missing platform mappings for your CFW
- Test new CFW releases and note any directory structure changes
Community Support
- Help answer questions in the RomM Discord
- Share tips and workflows with other users
- Welcome new community members
Getting Started (Developers)
- Read the Development Guide for setup instructions
- Fork and clone the repository
- Create a feature branch from
mainwith a descriptive name (e.g.,feature/add-search-filter) - Make your changes
- Test locally on your target CFW if possible
- Commit with clear, descriptive messages
- Push and open a pull request against
main
Pull Request Standards
- Follow existing code conventions and patterns
- Test your changes locally before submitting
- Update documentation if your changes affect user-facing behavior
- Ensure the build passes (
task buildorgo build ./...) - Provide a clear description of what your PR does and why
Code Style
We use standard Go formatting and conventions:
- Run
go fmtbefore committing - Use
go vetandstaticcheckto catch issues - Follow existing patterns in the codebase for consistency
Reporting Bugs
Please create an issue with:
- Your CFW and version (muOS, Knulli, Spruce, NextUI)
- Grout version
- Steps to reproduce the issue
- Expected vs actual behavior
- Any relevant logs or screenshots
License
By contributing, you agree that your contributions will be licensed under the MIT License.