You can contribute to Ryujinx with PRs, testing of PRs and issues. Contributing code and other implementations is greatly appreciated alongside simply filing issues for problems you encounter. Please read the entire document before continuing as it can potentially save everyone involved a significant amount of time.
We always welcome bug reports, feature proposals and overall feedback. Here are a few tips on how you can make reporting your issue as effective as possible.
The Ryujinx codebase is distributed across multiple repositories in the Ryujinx organization. Depending on the feedback you might want to file the issue on a different repo. Here are a few common repos:
Before filing a new issue, please search our open issues to check if it already exists.
If you do find an existing issue, please include your own feedback in the discussion. Do consider upvoting (👍 reaction) the original post, as this helps us prioritize popular issues in our backlog.
Please review any feature requests already opened to both check it has not already been suggested, and to familiarize yourself with the format. When ready to submit a proposal, please use the Feature Request issue template.
Good bug reports make it easier for maintainers to verify and root cause the underlying problem. The better a bug report, the faster the problem will be resolved. Ideally, a bug report should contain the following information:
[Executable Folder]/Logs
and are named chronologically.When ready to submit a bug report, please use the Bug Report issue template.
Project maintainers will merge changes that both improve the project and meet our standards for code quality.
The Pull Request Guide and License docs define additional guidance.
Please do:
Please do not:
We use and recommend the following workflow:
git checkout -b mybranch
).
dotnet format
has been run and any corrections tested and committed.The team marks the most straightforward issues as good first issues. This set of issues is the place to start if you are interested in contributing but new to the codebase.
Please format commit messages as follows (based on A Note About Git Commit Messages):
Summarize change in 50 characters or less
Provide more detail after the first line. Leave one blank line below the
summary and wrap all lines at 72 characters or less.
If the change fixes an issue, leave another blank line after the final
paragraph and indicate which issue is fixed in the specific format
below.
Fix #42
Also do your best to factor commits appropriately, not too large with unrelated things in the same commit, and not too small with the same small change applied N times in N different commits.
The Ryujinx continuous integration (CI) system will automatically perform the required builds and run tests (including the ones you are expected to run) for PRs. Builds and test runs must be clean or have bugs properly filed against flaky/unexpected failures that are unrelated to your change.
If the CI build fails for any reason, the PR actions tab should be consulted for further information on the failure. There are a few usual suspects for such a failure:
dotnet format
has not been run on the PR and has outstanding stylistic issues.Ryujinx team and community members will provide feedback on your change. Community feedback is highly valued. You may see the absence of team feedback if the community has already provided good review feedback.
Two Ryujinx team members must review and approve every PR prior to merge. They will often reply with "LGTM, see nit". That means that the PR will be merged once the feedback is resolved. "LGTM" == "looks good to me".
There are lots of thoughts and approaches for how to efficiently discuss changes. It is best to be clear and explicit with your feedback. Please be patient with people who might not understand the finer details about your approach to feedback.
Ryujinx uses some implementations and frameworks from other projects. The following rules must be followed for PRs that include changes from another project: