This repository contains hashes of build tools used by Chromium and related
projects. The actual binaries are pulled from Google Storage, normally as part
of a gclient hook.
The repository is separate so that the shared build tools can be shared between
the various Chromium-related projects without each one needing to maintain
their own versionining of each binary.
To update the GN binary, run (from the Chromium repo) tools/gn/bin/roll_gn.py
which will automatically upload the binaries and roll build tools.
UPDATING AND ROLLING BUILDTOOLS MANUALLY
When you update buildtools, you should roll the new version into the Chromium
repository right away. Otherwise, the next person who makes a change will end
up rolling (and testing) your change. If there are any unresolved problems with
your change, the next person will be blocked.
- From the buildtools directory, make a branch, edit and upload normally.
- Get your change reviewed and landed. There are no trybots so landing will
be very fast.
- Get the hash for the commit that commit-bot made. Make a new branch in
the Chromium repository and paste the hash into the line in //DEPS
- You can TBR changes to the DEPS file since the git hashes can't be reviewed
in any practical way. Submit that patch to the commit queue.
- If this roll identifies a problem with your patch, fix it promptly. If you
are unable to fix it promptly, it's best to revert your buildtools patch
to avoid blocking other people that want to make changes.
ADDING BINARIES MANUALLY
One uploads new versions of the tools using the 'gsutil' binary from the
Google Storage SDK:
There is a checked-in version of gsutil as part of depot_tools.
To initialize gsutil's credentials:
python ~/depot_tools/third_party/gsutil/gsutil config
That will give a URL which you should log into with your web browser. For
rolling GN, the username should be the one that is on the ACL for the
"chromium-gn" bucket (probably your @google.com address). Contact the build
team for help getting access if necessary.
Copy the code back to the command line util. Ignore the project ID (it's OK
to just leave blank when prompted).