Skip to content

Upstream Workflow

qjivy edited this page Dec 9, 2021 · 4 revisions

Now that our port is upstream, we just use the chromium gerrit to track and review the changes to RISCV64 backend. We don't use the github site to make pull request, review and CI check any more.

How to file issue for V8 RISCV64

We use both https://github.com/riscv-collab/v8/issues and https://bugs.chromium.org/p/v8/issues/list to track the RISC-V related issues. For any bugs, it would be help to report the error log along with the OS version and V8 commit id. Also, any suggestion and feature request is welcome.

Developer Workflow

Everyone who want to contribute code to RISCV64 backend should follow the Chromium Contributing rules and steps. As all changes will need to be merged upstream, all development branch ultimately need to be based on master.

Once a changeset is ready, the developer should locally ensure that it passes all tests for our riscv64 target and if any target-independent code is touched, also verify the tests on x86/ARM. Since the upstream process has proven now to be efficient, we no longer plan to use pull requests in this repository, but to instead review the code directly upstream. For submitting our changes upstream, we follow V8's procedures defined in Contributing to V8. Once the review is open, our team members can review it there, as well as request reviews from V8 developers as needed for shared code. A review requires a "LGTM" +1 from a committer responsible for each modified file in order to be merged. The submitter should request or notify reviewers as needed. The easiest way to do this is using the "FIND OWNERS" link at the top right of the review page. You may also need to request someone with the appropriate permissions to trigger the testing via the "Commit-Queue +1". Remember to manually add the v8_linux64_riscv64_rel_ng tests via the command line or the "CHOOSE TRY JOBS" link.

The simplified summary of this workflow is:

  1. Create a development branch based on master
  2. Make whatever changes in the development branch
  3. Open an upstream review for the changeset
  4. Request reviews from required reviewers
  5. Pass CI tests (triggered with Commit-Queue +1)

Automation

We have a real-time CI system for V8 RISCV64, https://ci.rvperf.org/job/v8-upstream-master/. The regression for "simulator" and "debug" mode is taken every 20 mins for the upstream V8. It helps us to track breaks from the non-riscv64 commits.