Skip to content

Latest commit

 

History

History
76 lines (45 loc) · 4.47 KB

File metadata and controls

76 lines (45 loc) · 4.47 KB

CONTRIBUTING

This file applies to this repository (Sturmgeist). Upstream ET: Legacy uses the same norms; for policy that only applies upstream, see etlegacy/etlegacy CONTRIBUTING.md.

ET: Legacy development is a collaborative effort done in an open, transparent and friendly manner. Anyone is welcome to join our efforts!

QUESTIONS

If you only have a question and don't want to read this whole document:

Do NOT file an issue to ask a question. You will get faster results by using the resources below:

See also our FAQ.

BUG REPORTS

When reporting an issue, ensure to be as clear as possible, and include:

  • description of the issue (current behavior, expected/desired behavior)
  • minimal steps to reproduce the problem
  • motivation and use case for changing the behavior (if relevant)
  • version used, and behaviour on older versions (if relevant)

Do note that we can only fix issues happening in the engine or in our own mod. Issues specific to third party mods can't be fixed by us.

FEATURE REQUESTS

The project has defined scope for its goals and ambition.

As a result, feature requests might not be accepted if they are considered out of scope. In case of doubt, you might also want to discuss your idea with us before starting to implement it.

CODING GUIDELINES

If you are interested to participate, ensure to read first our contribution guidelines:

UPSTREAM AND FORKS

To pull the latest changes from the main ET: Legacy repository without merging yet:

pixi run upstream-fetch
# then: git log --oneline HEAD..FETCH_HEAD
# merge or rebase when ready: git merge FETCH_HEAD   # or your preferred workflow

Formatting and workflow checks used in CI can be run locally with pixi install and pixi run -e validation check-changes. The default comparison branch is read from .upstream-remote-branch when that file exists (for example origin/main on forks that use main as the default branch).

Continuous integration is documented briefly in README.md under CI and workflows (main workflow, ETLBuild, Snap, optional Discord webhook).

Bundled native library bumps that belong in the libs submodule may be prepared as mailbox patches under misc/patches/ (see misc/patches/README.md) when you cannot push to the libs remote directly.

COVERITY SCAN (OPTIONAL)

The scheduled Coverity Scan workflow (.github/workflows/coverity-scan.yml) does nothing unless you add repository secrets COVERITY_SCAN_TOKEN and COVERITY_SCAN_EMAIL from your Coverity Scan project. Without them, the workflow completes successfully and skips the build.

Optional variable COVERITY_PROJECT (repository Actions → Variables) should match your Coverity project slug (for example timfox/sturmgeist). If unset, the workflow defaults to etlegacy/etlegacy for compatibility with the upstream project.

ANDROID JOYSTICK (VENDORED)

The on-screen joystick library is kept under app/libs/joystick/ as normal project files (not a git submodule). app/libs/joystick/gradle/wrapper/ (gradle-wrapper.properties and gradle-wrapper.jar) must remain committed (the repo-wide gradle/ ignore rule is negated for that path so CI can run ./gradlew). Keep the JoyStick Gradle distribution URL in step with the root project’s gradle/wrapper/gradle-wrapper.properties so dependency bytecode matches the wrapper’s ASM. When upgrading Android Gradle Plugin or the library itself, keep app/libs/joystick/build.gradle in step with the root build.gradle classpath version. Optional: compare with etlegacy/JoyStick upstream and port changes manually.

COMMUNICATION

Communication happens online at: