blob: f079492c5f7fb80a5709459969fe429c43f439e8 [file] [log] [blame]
# Crosvm on ChromeOS
Crosvm has a unique setup to integrate with ChromeOS infrastructure.
The chromeos checkout tracks the
[cros/chromeos](https://chromium.googlesource.com/chromiumos/platform/crosvm/+/refs/heads/chromeos)
branch of crosvm, not the
[cros/main](https://chromium.googlesource.com/chromiumos/platform/crosvm/+/refs/heads/main)
branch.
While upstream development is happening on the `main` branch, changes submitted
to that branch are only tested by the crosvm kokoro CI system, not by the
ChromeOS CQ.
There is a
[daily process](https://chromium-review.googlesource.com/q/project:chromiumos%252Fplatform%252Fcrosvm+branch:chromeos)
that creates a commit to merge changes from `main` into the `chromeos` branch,
which is then tested through the CQ and watched by the crosvm-uprev rotation.
## Uploading changes
`repo start` will create a branch tracking `cros/chromeos` so you can develop
with the latest, CQ-tested code as a foundation.
However, changes are not acceped to the `cros/chromeos` branch, and should be
submitted to `cros/main` instead.
Use `repo upload -D main` to upload changes to the main branch, which works fine
in most cases where gerrit can rebase the commit cleanly. If not, please rebase
to `cros/main` manually.
## Building
See
[Building for ChromeOS](https://google.github.io/crosvm/building_crosvm/chromium_os.html)
in the crosvm mdbook.