2015-09-22 21:14:18 +03:00
|
|
|
# How to Branch and Roll Chromium's ANGLE Dependency
|
|
|
|
|
|
|
|
ANGLE provides an implementation of OpenGL ES on Windows, which Chromium relies
|
|
|
|
upon for hardware accelerated rendering and WebGL support. Chromium specifies
|
|
|
|
its dependency on a specific version of ANGLE in the repository; this document
|
|
|
|
describes how to update that dependency, and, if necessary, create an ANGLE
|
|
|
|
branch to correspond to a branched release of Chrome.
|
|
|
|
|
|
|
|
## Rolling DEPS
|
|
|
|
|
|
|
|
Chromium's dependency on third-party projects is tracked in [the Chromium
|
|
|
|
repository's src/DEPS file]
|
|
|
|
(http://src.chromium.org/viewvc/chrome/trunk/src/DEPS). To update the ANGLE
|
2015-11-05 22:27:38 +03:00
|
|
|
dependency:
|
2015-11-05 23:54:51 +03:00
|
|
|
|
2015-11-05 23:44:24 +03:00
|
|
|
* Find the line in this file that defines "src/third\_party/angle"
|
2015-11-05 22:27:38 +03:00
|
|
|
for deps (**not** deps\_os)
|
2015-11-05 23:44:24 +03:00
|
|
|
* Change the [git SHA-1 revision number]
|
2015-09-22 21:14:18 +03:00
|
|
|
(http://git-scm.com/book/ch6-1.html) to be that of the commit on which Chromium
|
2015-11-05 22:27:38 +03:00
|
|
|
should depend. Please use the full SHA-1, not a shortened version.
|
2015-11-05 23:44:24 +03:00
|
|
|
* You can
|
2015-09-22 21:14:18 +03:00
|
|
|
find the SHA-1 for a particular commit with `git log` on the appropriate branch
|
|
|
|
of the repository, or via [the public repository viewer]
|
2015-11-05 22:27:38 +03:00
|
|
|
(https://chromium.googlesource.com/angle/angle).
|
2015-11-05 23:44:24 +03:00
|
|
|
* If using the public repository viewer, you will need to select the branch whose log you wish to view
|
2015-09-22 21:14:18 +03:00
|
|
|
from the list on the left-hand side, and then click on the "tree" link at the
|
|
|
|
top of the resulting page. Alternatively, you can navigate to
|
|
|
|
`https://chromium.googlesource.com/angle/angle/+/<branch name>/` -- including
|
|
|
|
the terminating forward slash. (e.g.
|
2021-07-16 23:25:35 +03:00
|
|
|
`https://chromium.googlesource.com/angle/angle/+/main/`)
|
2015-09-22 21:14:18 +03:00
|
|
|
|
|
|
|
## Branching ANGLE
|
|
|
|
|
|
|
|
Sometimes, individual changes to ANGLE are needed for a release of Chrome which
|
|
|
|
has already been branched. If this is the case, a branch of ANGLE should be
|
|
|
|
created to correspond to the Chrome release version, so that Chrome may
|
|
|
|
incorporate only these changes, and not everything that has been committed since
|
|
|
|
the version on which Chrome depended at branch time. **Please note: Only ANGLE
|
|
|
|
admins can create a new branch.** To create a branch of ANGLE for a branched
|
2015-11-05 22:27:38 +03:00
|
|
|
Chrome release:
|
2015-11-05 23:54:51 +03:00
|
|
|
|
2015-11-05 23:44:24 +03:00
|
|
|
* Determine what the ANGLE dependency is for the Chrome release
|
2015-11-05 22:27:38 +03:00
|
|
|
by checking the DEPS file for that branch.
|
2015-11-05 23:44:24 +03:00
|
|
|
* Check out this commit as a new branch in your local repository.
|
2015-11-05 23:40:51 +03:00
|
|
|
* e.g., for [the Chrome 34 release at chrome/branches/1847]
|
2015-09-22 21:14:18 +03:00
|
|
|
(http://src.chromium.org/viewvc/chrome/branches/1847/src/DEPS), the ANGLE
|
|
|
|
version is 4df02c1ed5e97dd54576b06964b1da67ea30238e. To check this commit out
|
2015-11-05 22:27:38 +03:00
|
|
|
locally and create a new branch named 'mybranch' from this commit, use: ```git
|
|
|
|
checkout -b mybranch 4df02c1ed5e97dd54576b06964b1da67ea30238e```
|
2015-11-05 23:44:24 +03:00
|
|
|
* To create this new branch in the public repository, you'll need to push the
|
2015-09-22 21:14:18 +03:00
|
|
|
branch to the special Gerrit reference location, 'refs/heads/<branch name>'. You
|
2015-11-05 22:27:38 +03:00
|
|
|
must be an ANGLE administrator to be able to push this new branch.
|
2015-11-05 23:40:51 +03:00
|
|
|
* e.g., to use your local 'mybranch' to create a branch in the public repository called
|
2015-11-05 22:27:38 +03:00
|
|
|
'chrome\_m34', use: ```git push origin mybranch:refs/heads/chrome_m34```
|
2015-11-05 23:40:51 +03:00
|
|
|
* The naming convention that ANGLE uses for its release-dedicated branches is 'chrome\_m##'.
|