Skip to content

Latest commit

 

History

History
100 lines (81 loc) · 4.94 KB

CONTRIBUTING.md

File metadata and controls

100 lines (81 loc) · 4.94 KB

How to contribute to Radiant

Please read the Code of Conduct.

Reporting Bugs

  • Do not open a GitHub issue if the bug is a security vulnerability in Radiant, and instead refer to our security policy.
  • Ensure the bug was not already reported by searching issues.
  • If you're unable to find an open issue addressing the problem, open one.

Requesting Features

  • Feature requests are welcome. But take a moment to find out whether your idea fits with the scope of the project. Features always deserve discussions before implementation. We strongly encourage opening or joining discussions on existing requests.
  • Ensure the feature request ("enhancement") was not already requested by searching issues and does not have an active discussion.
  • If you're unable to find an open issue or discussion:

Development Setup

  • Fork the repository on GitHub and clone it.
  • Radiant uses Bazel as the primary build system. Install Bazel (official instructions). Bazelisk is recommended.
  • Python is required for tooling. Install Python (official instructions).
  • Radiant uses python package to aid in the remaining setup and subsequent workflows. Install it into your python environment by running: python -m pip install -e ./tools/rad.
  • Initialize the development environment: rad init.
  • Build the project: rad build.
  • Run the tests: rad test.
  • Check out rad --help for more information. 😎 🎉

Code Coverage

Run rad coverage to generate code coverage reports.

How you view coverage is up to you. We recommend using the Visual Studio Code Coverage Gutters extension, which is already recommended by the vscode project configuration. Coverage is gathered during pull requests and from the main branch. Coverage may be viewed on codecov.io or GitHub. We recommend installing the codecov browser extension for viewing coverage on GitHub.

Windows

If you're working on ARM64 Windows, there is a bug in bazilisk that ends up using the x64 version of Bazel on ARM64 systems. To work around this, it is recommended to use the ARM64 Bazel binary directly.

Building with a normal Visual Studio install is possible, but Bazel has bugs in their default toolchain resolution that may cause issues when cross-compiling architectures. To work around this, we recommend using the EWDK toolchain instead. It is already configured as a bzlmod developer dependency for the project.

  • Download the Windows EWDK and mount the ISO.
  • Set the EWDKDIR environment variable to the EWDK directory.
  • You're all set! You might have to rad clean --expunge.

To generate code coverage on Windows, Radiant uses OpenCppCoverage.

  • Download and install OpenCppCoverage.
  • Running rad coverage will now generate coverage reports.

Pull Requests

  • After opening a pull request you will be required to sign the Contributor License Agreement.
  • The changes must be tested and covered by unit tests, as appropriate.
  • The pull request must pass the required checks.
  • Open a new pull request with the patch.
    • Ensure the pull request clearly describes the subject/problem and solution.
    • Include the relevant issue number if applicable.