Make sure:
Your Dart SDK is configured:
a. You have a local checkout of the Dart SDK
b. Ensure your .bashrc
sets $LOCAL_DART_SDK
```shell DART_SDK_REPO_DIR=<Path to cloned dart sdk> export LOCAL_DART_SDK=$DART_SDK_REPO_DIR/sdk ```
c. The local checkout is at main
branch: git rebase-update
Your Flutter version is equal to latest candidate release branch:
./tool/update_flutter_sdk.sh --local
from the main devtools directory.You have goma configured.
tool/release_helper.sh
script with minor
or major
. ./tool/release_helper.sh [minor|major]
tool/release_helper.sh
script exports the following two variables to the terminal it is run in:$DEVTOOLS_RELEASE_BRANCH
$DEVTOOLS_NEXT_BRANCH
$DEVTOOLS_RELEASE_BRANCH
Verify release_helper.sh script:
packages/devtools_app/lib/devtools.dart
These packages always have their version numbers updated in lock, so we don't have to worry about versioning.
$DEVTOOLS_RELEASE_BRANCH
Review/update CHANGELOG.md
:
Verify all changes are here:
dart tool/bin/repo_tool.dart generate-changelog --since-tag=<tag like v1.5.2>
with passed parameter for the tag.Verify the version for the CHANGELOG entry was correctly generated.
Verify each item is a complete sentence, written as though it was an order, and there is no syntax errors.
Create draft PR for the branch and add the item for it to the top.
$DEVTOOLS_RELEASE_BRANCH
Checkout the $DEVTOOLS_RELEASE_BRANCH
,
Build the DevTools binary and run it from your local Dart SDK.
dart ./tool/build_e2e.dart
Launch DevTools and verify that everything generally works.
flutter run
an applicationOnce the build is in good shape,
git checkout . && \ git clean -f -d;
$DEVTOOLS_RELEASE_BRANCH
Ensure you are still on the
$DEVTOOLS_RELEASE_BRANCH
git push -u origin $DEVTOOLS_RELEASE_BRANCH
From the git GUI tool or from github.com directly:
Checkout the commit from which you want to release DevTools
git log -v
to see the commits.Run the tag_version.sh
script
flutter/devtools
repo for this release.packages/devtools/pubspec.yaml
so there is no need to manually enter the version.tool/tag_version.sh;
See the release notes README.md for details on where to add DevTools release notes to Flutter website and how to test them.
$DEVTOOLS_RELEASE_BRANCH
copy the release notes from NEXT_RELEASE_NOTES.mdUse the update.sh script to build and upload the DevTools binary to CIPD:
TARGET_COMMIT_HASH=<Commit hash for the version bump commit in DevTools>
cd $LOCAL_DART_SDK && \ git rebase-update && \ third_party/devtools/update.sh $TARGET_COMMIT_HASH [optional --no-update-flutter];
For cherry pick releases that need to be built from a specific version of Flutter, checkout the Flutter version on your local flutter repo (the Flutter SDK that which flutter
points to). Then when you run the update.sh
command, include the --no-update-flutter
flag:
third_party/devtools/update.sh $TARGET_COMMIT_HASH --no-update-flutter
Create new branch for your changes:
cd $LOCAL_DART_SDK && \ git new-branch dt-release;
Update the devtools_rev
entry in the Dart SDK DEPS file
devtools_rev
entry to the TARGET_COMMIT_HASH
.Build the dart sdk locally
cd $LOCAL_DART_SDK && \ gclient sync -D && \ ./tools/build.py -mrelease -ax64 create_sdk;
Verify that running dart devtools
launches the version of DevTools you just released.
xcodebuild/ReleaseX64/dart-sdk/bin/dart devtools
out/ReleaseX64/dart-sdk/bin/dart devtools
If the version of DevTools you just published to CIPD loads properly
You may need to hard reload and clear your browser cache in order to see the changes.
git add . && \ git commit -m "Bump DevTools DEP to $NEW_DEVTOOLS_VERSION" && \ git cl upload -s;
package:devtools_shared
is the only DevTools package that is published on pub.
devtools/packages/devtools_shared
directory, run:flutter pub publish
git pull upstream master git checkout $DEVTOOLS_NEXT_BRANCH git push -u origin $DEVTOOLS_NEXT_BRANCH
From the git GUI tool or from github.com directly: