Skip to content

Latest commit

 

History

History
66 lines (52 loc) · 2.95 KB

CONTRIBUTING.md

File metadata and controls

66 lines (52 loc) · 2.95 KB

Contributing

Keep contributions source-only. Do not commit disc images, extracted game code or assets, generated translations, captured overlays, proprietary BIOS files, binaries, saves, captures, logs, credentials, or machine-specific paths.

Edit project source, configuration, seeds, tests, or the framework checkout, then regenerate locally. Save a framework change with python tools/framework.py refresh, and list a newly changed file in framework/FILES.txt first. Do not hand-edit generated/*.c or include unrelated framework changes.

Changes

  • Open a pull request against main. It merges by squash or rebase once the Linux (GCC) and Windows (MinGW-w64) checks pass.
  • Write commit subjects in the Conventional Commits style: feat:, fix:, docs:, build:, ci:, test:, refactor: or chore:.
  • Run the relevant tests and review both the working diff and staged paths.
  • Keep experimental visual features optional.
  • Show a change the player can see with a before and after pair: two pictures of the same moment, or a short video when it only shows in motion. A replay capsule (Ctrl+F12 in the game) keeps the moment. Put the pair in the pull request and in the release notes.
  • Update STATUS.md when behavior, verified coverage, or a known limitation changes. Keep it focused on the current build. Update the README and PLAYING.md when a setting or its default changes.

Versions

A release is tagged vMAJOR.MINOR.PATCH in the Semantic Versioning form, with no label: a major version of 0 already says that anything may still change.

  • 0.MINOR.0 brings new features or changed behavior: the launcher, a platform, a default, save states that stop loading.
  • 0.MINOR.PATCH brings fixes only.
  • 1.0.0 when the whole campaign is verified and save states carry over between versions.

Releases up to v0.3.0-alpha.1 had an -alpha.N label. On GitHub each release is a regular release, not marked as a pre-release, and the launcher reads both kinds.

A release's section in CHANGELOG.md is headed ## v0.3.1 and so on: the launcher and the packager find it by that heading.

Reporting a problem

  • Press Report a problem in the launcher. It gathers the game's log and settings and leaves user names out. For a problem that is hard to catch, switch on the detailed log on the Troubleshooting page first.
  • Say the level, the steps to reproduce, the render scale and aspect, the enhancements or cheats in use, and whether restarting fixes the problem.
  • A replay capsule shows us the same moment.
  • Never attach game data or proprietary BIOS files.
  • Report a security issue as SECURITY.md says, not in a public issue.

License

By contributing you agree that your contribution is licensed under the MIT License.

See docs/BUILD.md for setup and test commands, and licenses/README.md for dependency licenses.