Create a branch for your release.
cd ~/path/to/devtools
git checkout master
git pull upstream master
git checkout -b release_2.7.0Run the update_version.dart script with the new DevTools version.
dart tool/update_version.dart 2.7.0Verify that this script updated the pubspecs under packages/
and updated all references to those packages. These packages always have their
version numbers updated in lock, so we don't have to worry about
versioning. Also make sure that the version constant in
packages/devtools_app/lib/devtools.dart was updated.
Use the tool generate-changelog to automatically update the packages/devtools/CHANGELOG.md file.
cd ~/path/to/devtools
dart tool/bin/repo_tool.dart generate-changelogBe sure to manually check that the version for the CHANGELOG entry was correctly generated
and that the entries don't have any syntax errors. The generate-changelog script is
intended to do the bulk of the work, but still needs manual review.
git add .
git commit -m “Prepare for 2.7.0 release.”
git push origin release_2.7.0From the git GUI tool or from github.com directly, create a PR, send for review, then squash and commit after receiving an LGTM.
Checkout the commit you just created, or remain on the branch you just landed the prep PR from.
git checkout 8881a7caa9067471008a8e00750b161f53cdb843Build the DevTools binary and run it from your local Dart SDK. From the main devtools/ directory.
dart ./tool/build_e2e.dartLaunch DevTools and verify that everything generally works.
- open the page in a browser (http://localhost:53432)
flutter runan application- connect to the running app from DevTools, verify that the pages generally work and that there are no exceptions in the chrome devtools log
If you find any release blocking issues, fix them before releasing. Then use the latest commit hash that includes the Prep PR as well as the bug fixes for the following steps.
Once the build is in good shape, you can revert any local changes and proceed to the next step.
git checkout .
git clean -f -dCheckout the commit from which you want to release DevTools (likely the
commit for the PR you just landed). Run the tag_version.sh script to create
a tag on the flutter/devtools repo for this release. This script will
automatically determine the version from packages/devtools/pubspec.yaml
so there is no need to manually enter the version.
tool/tag_version.shUsing the commit hash you want to release DevTools from (this should match the commit hash for the tag you just created) and the update.sh script, build and upload the DevTools binary to CIPD.
cd path/to/dart-sdk/sdk
git rebase-update
third_party/devtools/update.sh 8881a7caa9067471008a8e00750b161f53cdb843Update the devtools_rev entry in the Dart SDK
DEPS file
with the git commit hash you just built DevTools from (this is
the id for the CIPD upload in the previous step). See this
example CL.
Verify that running dart devtools launches the version of DevTools you just released. You'll
need to build the dart sdk locally to do this.
cd path/to/dart-sdk/sdk
gclient sync -D
./tools/build.py -mrelease -ax64 create_sdk
out/ReleaseX64/dart-sdk/bin/dart devtools # On OSX replace 'out' with 'xcodebuild'package:devtools_shared is the only DevTools package that is published on pub.
From the devtools/packages/devtools_shared directory, run:
pub publishRelease notes should contain details about the user-facing changes included in the release. These notes are shown directly in DevTools when a user opens a new version of DevTools. Please see the release notes README.md for details on where to add release notes and how to test them.