Contributing to RomM
Thank you for considering contributing to RomM! This document outlines some guidelines to help you get started with your contributions.
If you're looking to implement a large feature or make significant changes to the project, it's best to open an issue first AND join the Discord to discuss your ideas with the maintainers.
Code of Conduct
Please note that this project adheres to the Contributor Covenant code of conduct. By participating in this project, you are expected to uphold this code.
AI Assistance Notice
[!IMPORTANT]
If you are using any kind of AI assistance to contribute to RomM, it must be disclosed in the pull request.
If you are using any kind of AI assistance while contributing to RomM this must be disclosed in the pull request, along with the extent to which AI assistance was used (e.g. docs only vs. code generation). If PR responses are being generated by an AI, disclose that as well. As a small exception, trivial tab-completion doesn't need to be disclosed.
An example disclosure:
This PR was written primarily by Claude Code.
Or a more detailed disclosure:
I consulted ChatGPT to understand the codebase but the solution was fully authored manually by myself.
Failure to disclose this is rude to the human operators on the other end of the pull request, but it also makes it difficult to determine how much scrutiny to apply to the contribution.
In a perfect world, AI assistance would produce equal or higher quality work than any human. That isn't the world we live in today, and in most cases it's generating slop.
Please be respectful to maintainers and disclose AI assistance.
Contributing to the Docs
If you would like to contribute to the project's documentation, open a pull request against the docs repo. We welcome any contributions that help improve the documentation (new pages, updates, or corrections).
Adding Translations
If you would like to translate the project into another language, create a new folder under the frontend/src/locales directory, and follow the existing language files as a template. Once you've created the new language file, open a pull request to add it to the project.
How to Contribute Code
- Fork the repository.
- Clone your forked repository:
git clone https://github.com/your-username/romm.git - Checkout the
masterbranch:git checkout master - Follow the steps in the developer setup guide
- Create a new branch for your feature/fix:
git checkout -b feature-or-fix-name - Make your changes and commit them with descriptive commit messages:
git commit -am 'Add feature XYZ' - Push your changes to your fork:
git push origin feature-or-fix-name - Open a pull request to the
masterbranch of the original repository.
Pull Request Guidelines
- Make sure your code follows the project's coding standards.
- Test your changes locally before opening a pull request.
- Update the documentation if necessary.
- Ensure all existing tests pass, and add new tests for new functionality.
- Use clear and descriptive titles and descriptions for your pull requests.
Code Style
Follow the existing code style used throughout the project. If working with VSCode or a similar editor, consider installing these extensions:
Issue Reporting
If you encounter any bugs or have suggestions for improvements, please create an issue on GitHub. Provide as much detail as possible, including steps to reproduce the issue if applicable.
Licensing
By contributing to RomM, you agree that your contributions will be licensed under the project's LICENSE.
Thank you for contributing to RomM! Your help is greatly appreciated.