Merge pull request #10215 from electron/update-chromium-upgrade-docs

Update Chromium Upgrade docs
This commit is contained in:
Zeke Sikelianos 2017-08-28 08:42:14 -07:00 committed by GitHub
commit 66a5ac4d67

View file

@ -1,47 +1,65 @@
# Upgrading Chrome Checklist
# Upgrading Chromium Workflow
This document is meant to serve as an overview of what steps are needed
on each Chrome upgrade in Electron.
on each Chromium upgrade in Electron.
These are things to do in addition to updating the Electron code for any
Chrome/Node API changes.
## Update libchromiumcontent (a.k.a. libcc)
- Clone the repo:
```sh
git clone git@github.com:electron/libchromiumcontent.git
cd libchromiumcontent
```
- Run bootstrap script to init and sync git submodules:
```sh
./script/bootstrap -v
```
- Update `VERSION` file to correspond to Chromium version.
- Run `script/update`, it will probably fail applying patches.
- Fix failing patches. `script/patch.py` might help.
- Don't forget to fix patches in the `patches-mas/` folder.
- Build libcc:
```sh
./script/build
```
- Create dist folders which will be used by electron:
```sh
./script/create-dist --no_zip
cd dist/main
../../tools/generate_filenames_gypi filenames.gypi src shared_library static_library
cd -
```
- Open a pull request to `electron/libchromiumcontent` with the changes.
- Fix compilation on the all supported platforms/arches.
## Update Electron
- Set `vendor/libchromiumcontent` revision to a version with the new Chromium.
- It will be great if GH builds for this libcc version are already green
and its archives are already available. Otherwise everyone would need
to build libcc locally in order to try build a new Electron.
- Set `CLANG_REVISION` in `script/update-clang.sh` to match the version
Chromium is using. You can find it in file `src/tools/clang/scripts/update.py` in updated `electron/libchromiumcontent` repo.
- Run `script/bootstrap.py`.
- Upgrade Node.js if you are willing to. See the notes below.
- Fix compilation.
- Open a pull request on `electron/electron` with the changes.
- This should include upgrading the submodules in `vendor/` as needed.
- Fix failing tests.
## Upgrade Node.js
- Verify the new Chrome version is available from
https://github.com/zcbenz/chromium-source-tarball/releases
- Update the `VERSION` file at the root of the `electron/libchromiumcontent`
repository
- Update the `CLANG_REVISION` in `script/update-clang.sh` to match the version
Chrome is using in `libchromiumcontent/src/tools/clang/scripts/update.py`
- Upgrade `vendor/node` to the Node release that corresponds to the v8 version
being used in the new Chrome release. See the v8 versions in Node on
https://nodejs.org/en/download/releases for more details
- Upgrade `vendor/crashpad` for any crash reporter changes needed
- Upgrade `vendor/depot_tools` for any build tools changes needed
- Update the `libchromiumcontent` SHA-1 to download in `script/lib/config.py`
- Open a pull request on `electron/libchromiumcontent` with the changes
- Open a pull request on `electron/electron` with the changes
- This should include upgrading the submodules in `vendor/` as needed
- Verify debug builds succeed on:
- macOS
- 32-bit Windows
- 64-bit Window
- 32-bit Linux
- 64-bit Linux
- ARM Linux
- Verify release builds succeed on:
- macOS
- 32-bit Windows
- 64-bit Window
- 32-bit Linux
- 64-bit Linux
- ARM Linux
- Verify tests pass on:
- macOS
- 32-bit Windows
- 64-bit Window
- 32-bit Linux
- 64-bit Linux
- ARM Linux
being used in the new Chromium release. See the v8 versions in Node on
https://nodejs.org/en/download/releases for more details.
- You can find v8 version Chromium is using on [OmahaProxy](http://omahaproxy.appspot.com).
If it's not available check `v8/include/v8-version.h`
in the Chromium checkout.
## Troubleshooting
**TODO**
## Verify ffmpeg Support
@ -83,6 +101,8 @@ codecs.
</html>
```
## Links
## Useful Links
- [Chrome Release Schedule](https://www.chromium.org/developers/calendar)
- [OmahaProxy](http://omahaproxy.appspot.com)
- [Chromium Issue Tracker](https://bugs.chromium.org/p/chromium)