Bump core to 7a71ad6b9170e09d5cbe39f3fccdee648659f1e7

Changes:
```
> git log --format="%C(auto) %h %s" 7f9f597..7a71ad6
 https://dart.googlesource.com/core.git/+/7a71ad6b Moving fixes (736)
 https://dart.googlesource.com/core.git/+/0ca0d5c8 Merge pull request 578 from dart-lang/merge-lints-package
 https://dart.googlesource.com/core.git/+/bcff5ce3 Add issue template and other fixes
 https://dart.googlesource.com/core.git/+/a64c3796 Merge package:lints into the core monorepo
 https://dart.googlesource.com/core.git/+/2e5c71db update the sdk lower bound to the current stable (dart-lang/lints220)
 https://dart.googlesource.com/core.git/+/16a70472 Revert "Update README.md before archiving (dart-lang/lints214)" (dart-lang/lints219)
 https://dart.googlesource.com/core.git/+/49591a2a Bump dart-lang/setup-dart from 1.6.5 to 1.7.0 (dart-lang/lints217)
 https://dart.googlesource.com/core.git/+/e62ca1df Bump actions/checkout from 4.2.0 to 4.2.2 (dart-lang/lints215)
 https://dart.googlesource.com/core.git/+/dfcdd2a7 Update README.md before archiving (dart-lang/lints214)
 https://dart.googlesource.com/core.git/+/4a0b9550 Bump actions/checkout from 4.1.7 to 4.2.0 (dart-lang/lints212)
 https://dart.googlesource.com/core.git/+/7f2bf15b add unintended_html_in_doc_comment; rev to 5.1.0 (dart-lang/lints211)
 https://dart.googlesource.com/core.git/+/532cbe46 rev to 5.0.0 in preparation for publishing (dart-lang/lints210)
 https://dart.googlesource.com/core.git/+/c3693999 Fixes formatting error in the rules.md table (dart-lang/lints206)
 https://dart.googlesource.com/core.git/+/1940026b Remove avoid_null_checks_in_equality_operators from recommended (dart-lang/lints201)
 https://dart.googlesource.com/core.git/+/d82f9c30 add invalid_runtime_check_with_js_interop_types to the recommended lint set (dart-lang/lints199)
 https://dart.googlesource.com/core.git/+/37cbcc2d add unnecessary_library_name to recommended (dart-lang/lints198)
 https://dart.googlesource.com/core.git/+/94b2e13b Bump dart-lang/setup-dart from 1.6.4 to 1.6.5 (dart-lang/lints194)
 https://dart.googlesource.com/core.git/+/dcd52fe4 Bump actions/checkout from 4.1.6 to 4.1.7 (dart-lang/lints193)
 https://dart.googlesource.com/core.git/+/0e28bddd Bump actions/checkout from 4.1.4 to 4.1.6 (dart-lang/lints191)
 https://dart.googlesource.com/core.git/+/bcb9f052 Update README.md (dart-lang/lints189)
 https://dart.googlesource.com/core.git/+/b47a1010 Tighten up the `gen_docs.dart` script. (dart-lang/lints187)
 https://dart.googlesource.com/core.git/+/c32c8c7c rev to 4.0.0; prep to publish (dart-lang/lints184)
 https://dart.googlesource.com/core.git/+/4d31b374 Bump dart-lang/setup-dart from 1.6.2 to 1.6.4 (dart-lang/lints185)
 https://dart.googlesource.com/core.git/+/008685c5 Bump actions/checkout from 4.1.2 to 4.1.4 (dart-lang/lints186)
 https://dart.googlesource.com/core.git/+/f95ebd34 remove the 'library_names' lint (dart-lang/lints183)
 https://dart.googlesource.com/core.git/+/8f633a96 Bump actions/checkout from 4.1.1 to 4.1.2 (dart-lang/lints182)
 https://dart.googlesource.com/core.git/+/34ec24ba add library_annotations; remove package_prefixed_library_names (dart-lang/lints179)
 https://dart.googlesource.com/core.git/+/a0bf795a Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/lints176)
 https://dart.googlesource.com/core.git/+/3727b78e add a section on upgrading to the latest lint set to the readme (dart-lang/lints171)
 https://dart.googlesource.com/core.git/+/68d0df8b Bump actions/checkout from 4.1.0 to 4.1.1 (dart-lang/lints168)
 https://dart.googlesource.com/core.git/+/ea7eaf5b Update README.md to use new syntax for adding dev dependencies (dart-lang/lints167)
 https://dart.googlesource.com/core.git/+/4ae44a7a add no_wildcard_variable_uses; rev to a new major version (dart-lang/lints165)
 https://dart.googlesource.com/core.git/+/3b84d310 Remove mention of no_wildcard_variable_uses from changelog (dart-lang/lints164)
 https://dart.googlesource.com/core.git/+/4b192603 rev to 3.0.0; prep to publish (dart-lang/lints160)
 https://dart.googlesource.com/core.git/+/d4ea622a Bump actions/checkout from 3.6.0 to 4.1.0 (dart-lang/lints159)
 https://dart.googlesource.com/core.git/+/8cec1cd7 Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (dart-lang/lints158)
 https://dart.googlesource.com/core.git/+/f2ff9d4d add dangling_library_doc_comments, remove prefer_void_to_null (dart-lang/lints157)
 https://dart.googlesource.com/core.git/+/f4be7362 remove no_wildcard_variable_uses; improve testing (dart-lang/lints156)
 https://dart.googlesource.com/core.git/+/a7c27283 rev to 3.0.0-beta in preparation for publishing (dart-lang/lints153)
 https://dart.googlesource.com/core.git/+/dd94f2c1 add several rules to core and recommended (dart-lang/lints150)
 https://dart.googlesource.com/core.git/+/e8ce542b fix a dangling table link (dart-lang/lints146)
 https://dart.googlesource.com/core.git/+/43147954 move the list of lint rules from the readme to a separate rules.md file (dart-lang/lints145)
 https://dart.googlesource.com/core.git/+/cc48f6fe Bump actions/checkout from 3.5.3 to 3.6.0 (dart-lang/lints144)
 https://dart.googlesource.com/core.git/+/7efe3ac4 Cleanup docs and links (dart-lang/lints142)
 https://dart.googlesource.com/core.git/+/f7c120f8 Update tooling to use new `rules.json` location (dart-lang/lints140)
 https://dart.googlesource.com/core.git/+/b23d145e Bump actions/checkout from 3.5.2 to 3.5.3 (dart-lang/lints138)
 https://dart.googlesource.com/core.git/+/87c35959 Fix typo in 3.0.0-wip changelog entry (dart-lang/lints137)
 https://dart.googlesource.com/core.git/+/48b5006b update core and recommended from the recent review (dart-lang/lints136)
 https://dart.googlesource.com/core.git/+/1a05d9ec Link to 'dart fix' docs in table header (dart-lang/lints132)
 https://dart.googlesource.com/core.git/+/e59a008d add 'has quick-fix' checkboxes to the package's readme (dart-lang/lints131)
 https://dart.googlesource.com/core.git/+/b8de47a9 update the readme to clarify the package's goals (dart-lang/lints130)
 https://dart.googlesource.com/core.git/+/9202d6b6 mv analysis_options file (dart-lang/lints129)
 https://dart.googlesource.com/core.git/+/c445e0ba Add topics to the pubspec file (dart-lang/lints122)
 https://dart.googlesource.com/core.git/+/f1765d7f Remove pedantic from README (dart-lang/lints124)
 https://dart.googlesource.com/core.git/+/9f0668b4 Update example for latest lints version (dart-lang/lints123)
 https://dart.googlesource.com/core.git/+/4234bca5 blast_repo fixes (dart-lang/lints120)
 https://dart.googlesource.com/core.git/+/b4910bd2 blast_repo fixes (dart-lang/lints119)
 https://dart.googlesource.com/core.git/+/ace519bc Bump actions/checkout from 3.5.0 to 3.5.2 (dart-lang/lints116)
 https://dart.googlesource.com/core.git/+/21eddf78 2.1.0 (dart-lang/lints107)
 https://dart.googlesource.com/core.git/+/0e849aa0 Update lint-propoposal.md (dart-lang/lints115)
 https://dart.googlesource.com/core.git/+/5d8ad249 Bump actions/checkout from 3.3.0 to 3.5.0 (dart-lang/lints110)
 https://dart.googlesource.com/core.git/+/43d0e5a4 Fix 'recommended' spelling in README (dart-lang/lints109)
 https://dart.googlesource.com/core.git/+/9e6ce6cf Update README.md (dart-lang/lints108)
 https://dart.googlesource.com/core.git/+/5e681a4a Bump actions/checkout from 3.2.0 to 3.3.0 (dart-lang/lints98)
 https://dart.googlesource.com/core.git/+/6ddd48bf Bump actions/checkout from 3.1.0 to 3.2.0 (dart-lang/lints96)
 https://dart.googlesource.com/core.git/+/ae71463e Bump actions/checkout from 3.0.2 to 3.1.0 (dart-lang/lints89)
 https://dart.googlesource.com/core.git/+/69eb5370 update lint files docs (dart-lang/lints88)
 https://dart.googlesource.com/core.git/+/4bc3e267 Add lints for v2.0 (dart-lang/lints72)
 https://dart.googlesource.com/core.git/+/ec576f07 Update validate.yml
 https://dart.googlesource.com/core.git/+/bd10aba9 Mention `dart:async` `unawaited` (dart-lang/lints53)
 https://dart.googlesource.com/core.git/+/9619bfea Update README.md (dart-lang/lints52)
 https://dart.googlesource.com/core.git/+/e93106e7 + issue templates (dart-lang/lints49)
 https://dart.googlesource.com/core.git/+/1c8b0302 Tweak the README a bit and add a section on evolution process. (dart-lang/lints46)
 https://dart.googlesource.com/core.git/+/b165f7f2 Add notes regarding migrating from pedantic (dart-lang/lints41)
 https://dart.googlesource.com/core.git/+/b836ad5a add feedback notes (dart-lang/lints43)
 https://dart.googlesource.com/core.git/+/d33a9607 + example (dart-lang/lints36)
 https://dart.googlesource.com/core.git/+/4fee86b5 Update README.md (dart-lang/lints27)
 https://dart.googlesource.com/core.git/+/a24bdb2a + 1.0.1 (dart-lang/lints34)
 https://dart.googlesource.com/core.git/+/2113ad32 Update README.md (dart-lang/lints33)
 https://dart.googlesource.com/core.git/+/133e80ee add pubspec entries tagged missing by pana (dart-lang/lints31)
 https://dart.googlesource.com/core.git/+/1d311560 add instruction to call `pub get` (dart-lang/lints21)
 https://dart.googlesource.com/core.git/+/fa62baa1 Prep for publishing (dart-lang/lints22)
 https://dart.googlesource.com/core.git/+/735b8956 Update README.md (dart-lang/lints18)
 https://dart.googlesource.com/core.git/+/9ce04cf5 bump to dev version (dart-lang/lints14)
 https://dart.googlesource.com/core.git/+/95981332 Update README.md (dart-lang/lints13)
 https://dart.googlesource.com/core.git/+/76ddfb4c rename (dart-lang/lints11)
 https://dart.googlesource.com/core.git/+/b1ec4f0b move build badge (dart-lang/lints8)
 https://dart.googlesource.com/core.git/+/29172601 add initial rulesets (dart-lang/lints4)
 https://dart.googlesource.com/core.git/+/ebead698 Add pub badge to readme (dart-lang/lints7)
 https://dart.googlesource.com/core.git/+/a9ab173f add build badge (dart-lang/lints6)
 https://dart.googlesource.com/core.git/+/7c619d09 Add initial files (dart-lang/lints1)
 https://dart.googlesource.com/core.git/+/cd1348c3 simple package validation (dart-lang/lints3)
 https://dart.googlesource.com/core.git/+/92e021c9 Create LICENSE

```

Diff: https://dart.googlesource.com/core.git/+/7f9f597e64fa52faebd3c0a2214f61a7b081174d..7a71ad6b9170e09d5cbe39f3fccdee648659f1e7/
Change-Id: I04c5fe1d6d4a8030329c5ac3ed171dbae2061377
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402883
Auto-Submit: Devon Carew <devoncarew@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>

https://dart.googlesource.com/sdk/+/e2219ef3dbf0c4868e8db85c42d5572ed500658e
2 files changed
tree: f0cf54b3240328b61eae62004d484ea4cd411634
  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.