This guide shows how to make a new Perfetto SDK release.
Before snapshotting a release, check that no release-blockers are open.
Check out the code:
git clone https://android.googlesource.com/platform/external/perfetto cd perfetto
Next, decide the version number for the new release (vX.Y). The major version number (X) is incremented on every release (monthly). The minor version number is incremented only for minor changes / fixes on top of the monthly release (cherry-picks on the releases/vN.x branch).
Continue with the appropriate section below.
Create a release branch for the new major version (“v15.x” here):
git fetch origin git push origin origin/master:refs/heads/releases/v15.x git fetch origin git checkout -b releases/v15.x -t origin/releases/v15.x
Continue with building the release.
Check out the existing release branch (“5.x” here) and merge in the desired revision for the new release, resolving any conflicts you may encounter.
git checkout -b releases/v15.x -t origin/releases/v15.x
If you only want to introduce one or two patches in the new release, consider cherry-picking them individually:
git cherry-pick <sha1>
Otherwise, you can do a full merge:
git merge <sha1>
tools/gen_amalgamated --output sdk/perfetto git add sdk/perfetto.{cc,h} git commit -m "Amalgamated source for vX.Y"
cd examples/sdk cmake -B build cmake --build build
git cl upload --no-squash
If you get an error about a missing Change-Id field (remote: ERROR: commit a7c7c4c: missing Change-Id in message footer
), install the commit-msg hook script and amend the change to make sure that field is present:
curl -Lo .git/hooks/commit-msg http://android-review.googlesource.com/tools/hooks/commit-msg chmod u+x .git/hooks/commit-msg git commit --amend
# This brings the branch up to date with the CL landed in the step above. git pull git status # Should print: Your branch is up to date with 'origin/releases/v15.x'. # Do NOT proceed if your branch has diverged from origin/releases/vX.X git tag -a -m "Perfetto vX.Y" vX.Y git push origin vX.Y
Update the documentation to point to the latest release.
Phew, you're done!