Skip to content

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)

  1. Read the Development Guide for setup instructions
  2. Fork and clone the repository
  3. Create a feature branch from main with a descriptive name (e.g., feature/add-search-filter)
  4. Make your changes
  5. Test locally on your target CFW if possible
  6. Commit with clear, descriptive messages
  7. 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 build or go build ./...)
  • Provide a clear description of what your PR does and why

Code Style

We use standard Go formatting and conventions:

  • Run go fmt before committing
  • Use go vet and staticcheck to 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.