.bashrc
/.zshrc
for Flutter Tools:alias flutter_tools='/YOUR_PATH/flutter/bin/dart --observe /YOUR_PATH/flutter/packages/flutter_tools/bin/flutter_tools.dart'
Explanation:
/PATH_TO_YOUR_FLUTTER_REPO/bin/dart
: This is the path to the Dart SDK that Flutter Tools uses--observe
: This flag specifies we want a Dart DevTools URL for debugging/PATH_TO_YOUR_FLUTTER_REPO/packages/flutter_tools/bin/flutter_tools.dart
: This is the path to Flutter Tools itselfMore details can be found at the Flutter Tools README.
pubspec.yaml
, change the DWDS dependency to point to your local DWDS:dwds: path: /YOUR_PATH/dwds
flutter_tools run -d chrome
... The Dart VM service is listening on http://127.0.0.1:8181/ajXIPMLq6iI=/ The Dart DevTools debugger and profiler is available at: http://127.0.0.1:8181/ajXIPMLq6iI=/devtools/#/?uri=ws%3A%2F%2F127.0.0.1%3A8181%2FajXIPMLq6iI%3D%2Fws <== THIS ONE! Launching lib/main.dart on Chrome in debug mode... ...
/webdev
directory, run pub global activate --source path webdev
(this only needs to be run once)/webdev/webdev/pubspec.yaml
, then run dart run build_runner build
from /webdev/webdev
directory/webdev/example
, run webdev serve --debug --verbose
(Note: all options can be found by running webdev help serve
)If you get this error:
The /webdev/webdev/pubspec.yaml file has changed since the /webdev/webdev/pubspec.lock file was generated, please run "dart pub get" again.
You need to do the following:
rm webdev/webdev/pubspec.lock
/webdev/webdev
run dart pub get
CHANGELOG.md
with a description of the changeCHANGELOG
, and the pubspec.yaml
file as well (eg, https://github.com/dart-lang/webdev/pull/1462)run dart run build_runner
build to check in the any file that should be built. This will make sure the integration tests are run against the built files.NOTE: You must be a Googler to do this step. If you are not, please ask someone for help.
dart --version
)/dwds
, /frontend_server_client
, /frontend_server_common
, and /webdev
) update dependencies with dart pub upgrade
dwds/pubspec.yaml
and dwds/CHANGELOG.md
/dwds
run dart run build_runner build
, this will build and update the version in /dwds/lib/src/version.dart
run dart pub publish
Note: To have the right permissions for publishing, you need to be invited to the tools.dart.dev. A member of the Dart team should be able to add you at https://pub.dev/publishers/tools.dart.dev/admin.
Note: DWDS is a dependency of Webdev, which is why DWDS must be published before Webdev can be published.
dart --version
)/webdev/pubspec.yaml
to match the newly released DWDS version, and update the Webdev version to the new version number. Also, comment out the dependency_override so that Webdev is now depending on the version of DWDS on pub (which should have just been published) instead of the local version./webdev/CHANGELOG.md
to match the new webdev version/webdev
, run dart pub upgrade
/webdev
run dart run build_runner build
, this will build and update the version in webdev/lib/src/version.dart
dart pub publish
Whenever Dart SDK is updated to a new major or minor version (~every 2 weeks), any PR submissions to Webdev are blocked by the min_sdk_test until the Dart min SDK constraint is updated. Therefore, whenever your PR gets blocked by the test, you need to:
/dwds
, /frontend_server_client
, /frontend_server_common
, and /webdev
) update dependencies with dart pub upgrade
CHANGELOG
to include the new version numberWhy is this necessary?
This is so that we don’t need to support older versions of the SDK and test against them, therefore every time the Dart SDK is bumped to a new major or minor version, DWDS and Webdev’s min Dart SDK constraint needs to to be changed and DWDS and Webdev have to be released. Since DWDS is dependent on DDC and the runtime API, if we had a looser min constraint we would need to run tests for all earlier stable releases of the SDK that match the constraint, which would have differences in functionality and therefore need different tests.