Skip to content

Contributing

tsjost edited this page Oct 4, 2021 · 24 revisions

How to Contribute

If you would like to contribute to OpenRW, there are a few ways to help out.

Please drop into the IRC channel #openrw on irc.libera.chat to discuss any questions about contributing.

Contributing without writing code

Reporting issues

If you have discovered an issue that has not already been reported, please report it. See the reporting issues page on the information that should be included with the report.

Document behaviour

Some of the complex behaviour is not known. If you would like to help others make implementing OpenRW easier and more correct, please check out the issues tagged with behaviour. These issues document what behaviours need investigate to improve the implementation of OpenRW.

Contributing as a developer

There are many open issues for bugs, enhancements and others. Tackling these tasks help get OpenRW closer to the goal of a 1.0 release. For new developers, issues tagged with easy are a good place to start.

We also have a development page to give tips about OpenRW debugging features to get you started.

Check the tasks & issues.

We also keep a list of tasks to avoid having too many opened issues at once. You can also find bugs or enhancements that might be "easy" tagged with the label easy, these are a good place to start.

Submitting pull requests

If you are submitting a pull request for OpenRW:

  1. Include a reference to any issue the pull request is intended to address.
  2. Keep unrelated changes in separate pull requests so they can be accepted individually.
  3. If you aren't ready to merge your changes but are looking for feedback, include "[not ready]" in the title.
  4. You should provide a reasonable justification for the change. For example:
    • This implements required opcodes.
    • This improves the quality of the code.
    • This fixes a bug in OpenRW.
  5. Provide details of how you are testing your PR. For example:
    • The test suite is passing.
    • I checked it manually in a new game and from a save.

Guidelines

These guidelines cover the types of changes that are likely to be accept and how to get those changes accepted.

What will be accepted

  • Changes that increase compatibility with the game data.
  • Changes that fix incorrect behaviour.
  • Fixes for technical issues, such as wide-screen or UHD resolution support.
  • Feature enhancements, such as improved support for different input schemes.

What will not be accepted

  • Changes where the ownership of the code is in question.
  • Changes to support non-GTA titles.

Evaluating pull requests

Pull requests should be reviewed by as many people as possible for merging. Ideally at least two active contributors should review the changes before it is accepted, including the person who will accept the pull request.

If you have reviewed a pull request and think it should be accepted, leave a comment stating that you have reviewed the changes and that they look good to you, and leave any notes you may have.

New code introduced by a change must follow the coding conventions to ensure new code is consistent.

Changes that are likely to cause problems on different platforms, such as including a new system header or adding a dependency should be reviewed on at least Linux, macOS and Windows to ensure that OpenRW continues to work on supported platforms.