Make sure:
-
Your Dart SDK is configured:
a. You have a local checkout of the Dart SDK
- (for getting started instructions, see sdk/CONTRIBUTING.md).
b. Ensure your
.bashrcsets$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
mainbranch:git rebase-update -
Your Flutter version is equal to latest candidate release branch:
- Run
./tool/update_flutter_sdk.sh --localfrom the main devtools directory.
- Run
-
You have goma configured.
If you need to install the Github CLI you can run:
brew install gh
- Run:
./tool/release_helper.sh - This will create a PR for you using the tip of master.
- The branch for that PR will be checked out locally for you.
- It will also update your local version of flutter to the Latest flutter candidate
- This is to facilitate testing in the next steps
Verify the code on the release PR:
- updated the pubspecs under packages/
- updated all references to those packages
- updated the version constant in
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.
-
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.
- open the page in a browser (http://localhost:53432)
flutter runan application- connect to the running app from DevTools
- verify:
- pages generally work
- there are no exceptions in the chrome devtools log
- If you find any release blocking issues:
- fix them before releasing.
- Then grab the latest commit hash that includes
- the release prep commit
- the bug fixes,
- use this commit hash for the following steps.
-
Once the build is in good shape,
- revert any local changes.
git checkout . && \ git clean -f -d;
- revert any local changes.
Receive an LGTM for the PR, squash and commit.
-
Checkout the commit from which you want to release DevTools
- This is likely the commit, on
master, for the PR you just landed - You can run
git log -vto see the commits.
- This is likely the commit, on
-
Run the
tag_version.shscript- this creates a tag on the
flutter/devtoolsrepo for this release. - This script will automatically determine the version from
packages/devtools/pubspec.yamlso there is no need to manually enter the version.
tool/tag_version.sh; - this creates a tag on the
-
Use 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_reventry in the Dart SDK DEPS file- set the
devtools_reventry to theTARGET_COMMIT_HASH. - See this example CL for reference.
- set the
-
Build the dart sdk locally
cd $LOCAL_DART_SDK && \ gclient sync -D && \ ./tools/build.py -mrelease -ax64 create_sdk;
-
Verify that running
dart devtoolslaunches the version of DevTools you just released.- for OSX
xcodebuild/ReleaseX64/dart-sdk/bin/dart devtools
- For non-OSX
out/ReleaseX64/dart-sdk/bin/dart devtools
- for OSX
-
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.
- push up the SDK CL for review.
git add . && \ git commit -m "Bump DevTools DEP to $NEW_DEVTOOLS_VERSION" && \ git cl upload -s;
- push up the SDK CL for review.
package:devtools_shared is the only DevTools package that is published on pub.
- From the
devtools/packages/devtools_shareddirectory, run:flutter pub publish
gh workflow run daily-dev-bump.yaml -f updateType=minor+dev- This will kick off a workflow that will automatically create a PR with a
minor+devversion bump - That PR should then be auto submitted
- This will kick off a workflow that will automatically create a PR with a
- See https://github.com/flutter/devtools/actions/workflows/daily-dev-bump.yaml
- To see the workflow run
- Go to https://github.com/flutter/devtools/pulls to see the pull request that ends up being created
- You should make sure that the release PR goes through without issue.
- Follow the instructions outlined in the release notes README.md to add DevTools release notes to Flutter website and test them in DevTools.
- Once release notes are submitted to the Flutter website, send an announcement to g/flutter-internal-announce with a link to the new release notes.