Bump tools to 92114ab8a16eef77be1cd7bad3f5af28b5b1dc63

Changes:
```
> git log --format="%C(auto) %h %s" 3bdef20..92114ab
 https://dart.googlesource.com/tools.git/+/92114ab8 Merge glob package (1974)
 https://dart.googlesource.com/tools.git/+/cc43df8b Update pubspec.yaml
 https://dart.googlesource.com/tools.git/+/7efb9420 Update .github/workflows/glob.yaml
 https://dart.googlesource.com/tools.git/+/5db5ae63 update glob infra and readme post merge
 https://dart.googlesource.com/tools.git/+/cb1686c6 Add issue template and other fixes
 https://dart.googlesource.com/tools.git/+/4bddff01 Merge package:glob into the tools monorepo
 https://dart.googlesource.com/tools.git/+/ce300349 [io] copyPath/copyPathSync: add a `deepCopyLinks` parameter (1267)
 https://dart.googlesource.com/tools.git/+/5cdad882 [markdown] Fix URIs in example, drop unneeded extra CSS (1971)
 https://dart.googlesource.com/tools.git/+/215e83b4 [markdown] update example CSS/JS and add an example readme (1970)
 https://dart.googlesource.com/tools.git/+/6e74c977 [markdown] use build_runner to build js & wasm (1969)
 https://dart.googlesource.com/tools.git/+/c73ffbd4 fix the deploy_pages.yaml workflow (1968)
 https://dart.googlesource.com/tools.git/+/7fcf623a add a workflow to deply the markdown playground (1966)
 https://dart.googlesource.com/tools.git/+/30de295e Fix check for copied directories (1967)
 https://dart.googlesource.com/tools.git/+/c94c5639 update the readme table and generator (1965)
 https://dart.googlesource.com/tools.git/+/aa7f54dd Bump nanasess/setup-chromedriver from 2.2.2 to 2.3.0 in the github-actions group (1955)
 https://dart.googlesource.com/tools.git/+/84ac705a Fix markdown workflow names (1963)
 https://dart.googlesource.com/tools.git/+/07d9ee52 Fix doc comment in test (dart-lang/glob101)
 https://dart.googlesource.com/tools.git/+/cbae6d6b Bump dart-lang/setup-dart in the github-actions group (dart-lang/glob100)
 https://dart.googlesource.com/tools.git/+/d90c0721 Bump actions/checkout from 4.2.0 to 4.2.2 in the github-actions group (dart-lang/glob99)
 https://dart.googlesource.com/tools.git/+/914a372a blast_repo fixes (dart-lang/glob98)
 https://dart.googlesource.com/tools.git/+/1590c49b Bump actions/checkout from 4.1.7 to 4.2.0 in the github-actions group (dart-lang/glob97)
 https://dart.googlesource.com/tools.git/+/39f9c9bf Bump the github-actions group with 2 updates (dart-lang/glob96)
 https://dart.googlesource.com/tools.git/+/729fc4b0 update lints (dart-lang/glob95)
 https://dart.googlesource.com/tools.git/+/22eb90b9 Bump actions/checkout from 4.1.5 to 4.1.6 in the github-actions group (dart-lang/glob94)
 https://dart.googlesource.com/tools.git/+/7c7d44d0 Bump actions/checkout from 4.1.4 to 4.1.5 in the github-actions group (dart-lang/glob93)
 https://dart.googlesource.com/tools.git/+/a33e8c49 blast_repo fixes (dart-lang/glob92)
 https://dart.googlesource.com/tools.git/+/3f5360ec Bump dart-lang/setup-dart from 1.6.2 to 1.6.4 (dart-lang/glob91)
 https://dart.googlesource.com/tools.git/+/423c09ed Bump actions/checkout from 4.1.2 to 4.1.4 (dart-lang/glob90)
 https://dart.googlesource.com/tools.git/+/8fbef02e Bump actions/checkout from 4.1.1 to 4.1.2 (dart-lang/glob89)
 https://dart.googlesource.com/tools.git/+/db280302 Require Dart 3.3 (dart-lang/glob88)
 https://dart.googlesource.com/tools.git/+/5b68c34d Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/glob87)
 https://dart.googlesource.com/tools.git/+/98cf3e49 Bump dart-lang/setup-dart from 1.5.1 to 1.6.0 (dart-lang/glob86)
 https://dart.googlesource.com/tools.git/+/6b831307 Bump actions/checkout from 4.1.0 to 4.1.1 (dart-lang/glob85)
 https://dart.googlesource.com/tools.git/+/bf962fe2 Bump actions/checkout from 3.6.0 to 4.1.0 (dart-lang/glob83)
 https://dart.googlesource.com/tools.git/+/a9c84db6 Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (dart-lang/glob84)
 https://dart.googlesource.com/tools.git/+/3140e6f8 Bump actions/checkout from 3.5.3 to 3.6.0 (dart-lang/glob82)
 https://dart.googlesource.com/tools.git/+/841285c1 Bump actions/checkout from 3.5.2 to 3.5.3 (dart-lang/glob79)
 https://dart.googlesource.com/tools.git/+/546bf28b allow latest file, update to latest dart_flutter_team_lints (dart-lang/glob78)
 https://dart.googlesource.com/tools.git/+/745db378 blast_repo fixes (dart-lang/glob77)
 https://dart.googlesource.com/tools.git/+/fadea3d1 Bump actions/checkout from 3.5.0 to 3.5.2 (dart-lang/glob76)
 https://dart.googlesource.com/tools.git/+/26304918 Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (dart-lang/glob73)
 https://dart.googlesource.com/tools.git/+/25251a4b Bump actions/checkout from 3.3.0 to 3.5.0 (dart-lang/glob74)
 https://dart.googlesource.com/tools.git/+/cda6be1e Update to dart_flutter_team_lints, also cleaned up markdown (dart-lang/glob71)
 https://dart.googlesource.com/tools.git/+/a4c4edc3 Bump actions/checkout from 3.2.0 to 3.3.0 (dart-lang/glob70)
 https://dart.googlesource.com/tools.git/+/8576f3f0 Bump dart-lang/setup-dart from 1.3 to 1.4 (dart-lang/glob69)
 https://dart.googlesource.com/tools.git/+/66d3f985 Migrate from no-implicit-casts to strict-casts (dart-lang/glob68)
 https://dart.googlesource.com/tools.git/+/901d98b1 Bump actions/checkout from 3.1.0 to 3.2.0 (dart-lang/glob67)
 https://dart.googlesource.com/tools.git/+/46453e59 rev version in prep. for publishing (dart-lang/glob65)
 https://dart.googlesource.com/tools.git/+/a474889d Merge branch 'v1_x'
 https://dart.googlesource.com/tools.git/+/8922482a drop author field from pubspec
 https://dart.googlesource.com/tools.git/+/d00572ab Add empty list_local_fs.dart for 1.2.1 (dart-lang/glob64)
 https://dart.googlesource.com/tools.git/+/134d25b2 Merge pull request dart-lang/glob62 from dart-lang/bump_deps
 https://dart.googlesource.com/tools.git/+/4be6b3f8 Add changelog entry
 https://dart.googlesource.com/tools.git/+/23dee689 Bump depencies
 https://dart.googlesource.com/tools.git/+/10f1ff83 Prepare to publish (dart-lang/glob61)
 https://dart.googlesource.com/tools.git/+/3feb0dd9 Don't throw for missing directories (dart-lang/glob60)
 https://dart.googlesource.com/tools.git/+/8290edd5 Use nullable argument to unawaited (dart-lang/glob58)
 https://dart.googlesource.com/tools.git/+/5540da76 drop package:pedantic, use package:lints (dart-lang/glob56)
 https://dart.googlesource.com/tools.git/+/92883f25 Merge pull request dart-lang/glob53 from dart-lang/franklinyow-patch-1
 https://dart.googlesource.com/tools.git/+/8a06e408 Update LICENSE
 https://dart.googlesource.com/tools.git/+/9babd169 Fix README example missing import (dart-lang/glob51)
 https://dart.googlesource.com/tools.git/+/331049bc Merge pull request dart-lang/glob48 from dart-lang/drop-news
 https://dart.googlesource.com/tools.git/+/d991af0e remove options `new`s
 https://dart.googlesource.com/tools.git/+/f1eea78c stable null safety release (dart-lang/glob47)
 https://dart.googlesource.com/tools.git/+/6c66dc99 Migrate to GitHub Actions (dart-lang/glob46)
 https://dart.googlesource.com/tools.git/+/871afe33 release 2.0.0-nullsafety.0 (dart-lang/glob45)
 https://dart.googlesource.com/tools.git/+/84cf9c65 Delete .test_config (dart-lang/glob43)
 https://dart.googlesource.com/tools.git/+/9f7eb35d Update to null safety, change list* apis (dart-lang/glob39)
 https://dart.googlesource.com/tools.git/+/20071683 Merge pull request dart-lang/glob36 from MichaelRFairhurst/remove-import
 https://dart.googlesource.com/tools.git/+/850d82a5 Remove unused dart:async import
 https://dart.googlesource.com/tools.git/+/b0ecdd55 Get travis passing by ignoring failures with node + latest dev release (dart-lang/glob32)
 https://dart.googlesource.com/tools.git/+/f673bf0e Fix newly enforced package:pedantic lints (dart-lang/glob31)
 https://dart.googlesource.com/tools.git/+/e6397945 Enable and fix prefer_conditional_assignment (dart-lang/glob30)
 https://dart.googlesource.com/tools.git/+/7c0c1052 Small cleanup on single set add (dart-lang/glob29)
 https://dart.googlesource.com/tools.git/+/6effd0b2 Merge pull request dart-lang/glob27 from dart-lang/update-conditionals
 https://dart.googlesource.com/tools.git/+/ffd84a2b update conditionals so that web usages dont accidentally use the node package
 https://dart.googlesource.com/tools.git/+/d8e7d6cf Support running on Node.js (dart-lang/glob25)
 https://dart.googlesource.com/tools.git/+/5ba269a7 Delete codereview.settings
 https://dart.googlesource.com/tools.git/+/fa22de29 Merge pull request dart-lang/glob20 from bcko/patch-1
 https://dart.googlesource.com/tools.git/+/2a29ebb5 Fix analysis options, test on oldest supported SDK (dart-lang/glob23)
 https://dart.googlesource.com/tools.git/+/a0a97141 chore: set max SDK version to <3.0.0 (dart-lang/glob22)
 https://dart.googlesource.com/tools.git/+/c5fb4f76 Update .gitignore to new `dart_tool` pub cache
 https://dart.googlesource.com/tools.git/+/21d66ea2 Merge pull request dart-lang/glob19 from srawlins/fix-runtime
 https://dart.googlesource.com/tools.git/+/8b7bac53 bump
 https://dart.googlesource.com/tools.git/+/0936c7eb bump
 https://dart.googlesource.com/tools.git/+/2da1e3bb Fix runtime cast issue
 https://dart.googlesource.com/tools.git/+/a5f5a71f Don't test Dartium on Travis (dart-lang/glob17)
 https://dart.googlesource.com/tools.git/+/5f0f9138 Declare support for async 2.0.0 (dart-lang/glob16)
 https://dart.googlesource.com/tools.git/+/31de2a68 Use ^ syntax for dependency constraints
 https://dart.googlesource.com/tools.git/+/7b6b055e fix import ordering
 https://dart.googlesource.com/tools.git/+/782d4e8a Migrate to pkg/test_descriptor, stop using pkg/scheduled_test
 https://dart.googlesource.com/tools.git/+/f198c022 Fix generic method syntax
 https://dart.googlesource.com/tools.git/+/4c503ef3 reenable test with SDK fix (dart-lang/glob13)
 https://dart.googlesource.com/tools.git/+/eea76c29 Dartfmt and add travis support. (dart-lang/glob11)
 https://dart.googlesource.com/tools.git/+/bb9a00b2 Rename analysis options. (dart-lang/glob10)
 https://dart.googlesource.com/tools.git/+/df194dcb Merge pull request dart-lang/glob6 from dart-lang/fix-tests
 https://dart.googlesource.com/tools.git/+/86071be3 Mark a test as skipped.
 https://dart.googlesource.com/tools.git/+/6580286b Throw errors for case-insensitive listing.
 https://dart.googlesource.com/tools.git/+/5b89b0df Support string_scanner 1.0.0.
 https://dart.googlesource.com/tools.git/+/137aae10 Fix strong mode warnings and errors.
 https://dart.googlesource.com/tools.git/+/a65d61df Bump the pubspec version.
 https://dart.googlesource.com/tools.git/+/c7ee0181 Fix case-insensitive absolute listing.
 https://dart.googlesource.com/tools.git/+/d0bb3c07 Add a caseSensitive flag to new Glob().
 https://dart.googlesource.com/tools.git/+/6f4b39df Get rid of all the library tags.
 https://dart.googlesource.com/tools.git/+/3d01916f Upgrade to the new test runner.
 https://dart.googlesource.com/tools.git/+/8110fad1 added missing collection dependency
 https://dart.googlesource.com/tools.git/+/e32f58a4 Properly skip tests in packages directories.
 https://dart.googlesource.com/tools.git/+/0670b579 Fix the status file to match the package bots' expectations.
 https://dart.googlesource.com/tools.git/+/d962c7d4 Update the pubspec's homepage link.
 https://dart.googlesource.com/tools.git/+/6fc077ec Add gitignore, status, and codereview files.
 https://dart.googlesource.com/tools.git/+/5272f724 Fix glob list failure on Windows.
 https://dart.googlesource.com/tools.git/+/0154b323 Fix a bogus exception in Glob.
 https://dart.googlesource.com/tools.git/+/65fa7b8e Fix glob list on Windows.
 https://dart.googlesource.com/tools.git/+/91fd6fcc Fix pkg/glob tests on Windows.
 https://dart.googlesource.com/tools.git/+/b172ac2e Fix analyzer warnings in pkg/glob.
 https://dart.googlesource.com/tools.git/+/89167e29 Add author and homepage fields to the glob package.
 https://dart.googlesource.com/tools.git/+/97fab9d5 Add support for listing to the glob package.
 https://dart.googlesource.com/tools.git/+/37601ef5 Fix one more glob test on Windows.
 https://dart.googlesource.com/tools.git/+/1cbc1311 Fix glob match and parse tests for Windows and URL styles.
 https://dart.googlesource.com/tools.git/+/a42ed86f Don't use dart:io in the pkg/glob tests.
 https://dart.googlesource.com/tools.git/+/ebb40067 Create a glob package.

```

Diff: https://dart.googlesource.com/tools.git/+/3bdef2043af9244b804adc08896bf96d51bb49ba..92114ab8a16eef77be1cd7bad3f5af28b5b1dc63/
Change-Id: I14f90edcdf1c36de46c2b32ecf59df7dc36dbc00
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405621
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>

https://dart.googlesource.com/sdk/+/dcb89892a3c46f8495c2fc2a2cbcc77c32c40b29
2 files changed
tree: 3ccbc5a2f0b07a2474727fa6f2adc41fdfe38882
  1. ci/
  2. tools/
  3. .gitignore
  4. commits.json
  5. DEPS
  6. OWNERS
  7. README.md
README.md

Monorepo

A gclient solution for checking out Dart and Flutter source trees

Monorepo is:

  • Optimized for Tip-of-Tree testing: The Monorepo DEPS used to check out Dart and Flutter dependencies comes from the Flutter engine DEPS with updated dependencies from Dart.

Checking out Monorepo

With depot_tools installed and on your path, create a directory for your monorepo checkout and run these commands to create a gclient solution in that directory:

mkdir monorepo
cd monorepo
gclient config --unmanaged https://dart.googlesource.com/monorepo
gclient sync -D

This gives you a checkout in the monorepo directory that contains:

monorepo/
  DEPS - the DEPS used for this gclient checkout
  commits.json - the pinned commits for Dart, flutter/engine,
                 and flutter/flutter
  tools/ - scripts used to create monorepo DEPS
engine/src/ - the flutter/buildroot repo
    flutter/ - the flutter/engine repo
    out/ - the build directory, where Flutter engine builds are created
    third_party/ - Flutter dependencies checked out by DEPS
      dart/ - the Dart SDK checkout.
        third_party - Dart dependencies, also used by Flutter
flutter/ - the flutter/flutter repo

Building Flutter engine

Flutter's instructions for building the engine are at Compiling the engine

They can be followed closely, with a few changes:

  • Googlers working on Dart do not need to switch to Fuchsia's Goma RBE, except for Windows. The GOMA_DIR enviroment variable can just point to the .cipd_bin directory in a depot_tools installation, and just goma_ctl ensure_start is sufficient.
  • The --no-prebuilt-dart-sdk option has to be added to every gn command, so that the build is set up to build and use a local Dart SDK.
  • The --full-dart-sdk option must be added to gn for the host build target if you will be building web or desktop apps.

Example build commands that work on linux:

MONOREPO_PATH=$PWD
if [[ ! $PATH =~ (^|:)$MONOREPO_PATH/flutter/bin(:|$) ]]; then
  PATH=$MONOREPO_PATH/flutter/bin:$PATH
fi

export GOMA_DIR=$(dirname $(command -v gclient))/.cipd_bin
goma_ctl ensure_start

pushd engine/src
flutter/tools/gn --goma --no-prebuilt-dart-sdk --unoptimized --full-dart-sdk
autoninja -C out/host_debug_unopt
popd

Building Flutter apps

The Flutter commands used to build and run apps will use the locally built Flutter engine and Dart SDK, instead of the one downloaded by the Flutter tool, if the --local-engine option is provided.

For example, to build and run the Flutter spinning square sample on the web platform,

MONOREPO_PATH=$PWD
cd flutter/examples/layers
flutter --local-engine=host_debug_unopt \
  -d chrome run widgets/spinning_square.dart
cd $MONOREPO_PATH

To build for desktop, specify the desktop platform device in flutter run as -d macos or -d linux or -d windows. You may also need to run the command

flutter create --platforms=windows,macos,linux

on existing apps, such as sample apps. New apps created with flutter create already include these support files. Details of desktop support are at Desktop Support for Flutter

Testing

Tests in the Flutter source tree can be run with the flutter test command, run in the directory of a package containing tests. For example:

MONOREPO_PATH=$PWD
cd flutter/packages/flutter
flutter test --local-engine=host_debug_unopt
cd $MONOREPO_PATH

Troubleshooting

Please file an issue or email the dart-engprod team with any problems with or questions about using monorepo.

We will update this documentation to address them.

  • flutter commands may download the engine and Dart SDK files for the configured channel, even though they will be using the local engine and its SDK.

Windows

  • On Windows, gclient sync needs to be run in an administrator session, because some installed dependencies create symlinks.