| # 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. |