Create a branch for your release.
cd ~/path/to/devtools git checkout master git pull upstream master git checkout -b release_2.7.0
Run the update_version.dart script with the new DevTools version.
dart tool/update_version.dart 2.7.0
Verify 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-changelog
Be 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.0
From 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 8881a7caa9067471008a8e00750b161f53cdb843
Build the DevTools binary and run it from your local Dart SDK. From the main devtools/ directory.
dart ./tool/build_e2e.dart
Launch DevTools and verify that everything generally works.
flutter run an applicationIf you find any release blocking issues, fix them before releasing. Then grab the latest commit hash that includes both the release prep commit and the bug fixes, and use this commit hash 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 -d
Checkout the commit from which you want to release DevTools (likely the commit for the PR you just landed). You can run git log -v to see the commits. 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.sh
Using 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 8881a7caa9067471008a8e00750b161f53cdb843
Navigate to your local checkout of the Dart SDK (for getting started instructions, see sdk/CONTRIBUTING.md).
Create new branch for your changes:
git new-branch dt-release
Update 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'
If the version of DevTools you just published to CIPD loads properly, push up the SDK CL for review.
git add . git commit -m "Bump DevTools DEP to 2.16.0" git cl upload -s
package:devtools_shared is the only DevTools package that is published on pub. From the devtools/packages/devtools_shared directory, run:
pub publish
Release 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.