blob: d9cfc5a86d1e51b9622b66d7317290edbffdeab9 [file] [log] [blame] [view]
# Skia SK Tool
**Fetching**
The `sk` program is fetched into the Skia repo by:
1. `cd bin`
2. `./fetch-sk`
## `release-branch`
The release-branch subcommand automates several tasks done on each Skia
release. It is safe to run as it only creates Gerrit CLs to be reviewed and
makes no permanent changes. It does the following:
1. Creates a CL to update the Skia milestone in `include/core/SkMilestone.h` in
the **main** branch.
Example: http://review.skia.org/661110
2. Creates a CL to update [supported-branches.json](https://skia.googlesource.com/skia/+/refs/heads/infra/config/supported-branches.json)
in the **infra/config** branch to edit the commit queue config to add the new
branch and remove the outgoing (e.g. M-4).
Example: http://review.skia.org/661111
3. Creates a CL to filter out unsupported CQ try jobs on the **new milestone**
branch.
Example: http://review.skia.org/661360
4. Creates a CL to remove the M-4 branch from the CQ in the **M-4** branch.
Example: http://review.skia.org/661361
5. Creates a CL to merge individual release notes into the top level
RELEASE_NOTES.md file in the **new milestone** branch.
Example: http://review.skia.org/751627
6. Creates a CL to cherry-pick the RELEASE_NOTES.md merge into the **main
branch**.
Example: http://review.skia.org/752136
### Running `release-branch`
Run as so:
```sh
./sk release-branch <release branch name>
```
For example:
```sh
./sk release-branch chrome/m113
```
### Testing `release-branch`
release-branch works by creating CLs which eventually merge into their target
branches. Once this is done, running a second time will fail as the changes
have already been made and `release-branch` treats empty CLs as an error. To
enable testing run with the `allow-empty` flag:
```sh
./sk release-branch --allow-empty chrome/m113
```
After running, if all goes well, new CLs will be in the outgoing section of
https://skia-review.googlesource.com **in your name**. Some steps are smart
enough to know that the change is already made and will not produce a new CL.
As this is a test, they can be deleted once verified.
## `sk` Deployment
Changes to `sk` are automatically pulled into Skia via an autoroller.
Skia's `fetch-sk` retrieves the `sk` version from the DEPS file and pulls that
version down from CIPD for the correct platform.
Avoid changing `sk` in the final days before a Skia branch without first
coordinating with the Skia release manager. Skia is branched alongside Chrome,
and the Chrome branch schedule can be found at
https://chromiumdash.appspot.com/schedule.