Bump http to c27d6c780bae0207e938f09596c2cf8d9bb4a963

Changes:
```
> git log --format="%C(auto) %h %s" 79470d0..c27d6c7
 https://dart.googlesource.com/http.git/+/c27d6c7 Merge pull request 1416 from dart-lang/merge-http_multi_server-package
 https://dart.googlesource.com/http.git/+/e166181 Upgrade `ok_http` to `jnigen` 0.12.2 (1405)
 https://dart.googlesource.com/http.git/+/b6a4eeb Add license to example
 https://dart.googlesource.com/http.git/+/19386a7 Update README.md
 https://dart.googlesource.com/http.git/+/cc1efef Update labeler.yml
 https://dart.googlesource.com/http.git/+/c5b5f9c Moving issues
 https://dart.googlesource.com/http.git/+/ab30c76 Add issue template and other fixes
 https://dart.googlesource.com/http.git/+/658b4c4 Merge package:http_multi_server into the http monorepo
 https://dart.googlesource.com/http.git/+/2b0b562 Bump dart-lang/setup-dart in the github-actions group (dart-lang/http_multi_server75)
 https://dart.googlesource.com/http.git/+/21d42dd Bump actions/checkout from 4.2.0 to 4.2.2 in the github-actions group (dart-lang/http_multi_server74)
 https://dart.googlesource.com/http.git/+/55feb82 blast_repo fixes (dart-lang/http_multi_server73)
 https://dart.googlesource.com/http.git/+/e0e499e Bump actions/checkout from 4.1.7 to 4.2.0 in the github-actions group (dart-lang/http_multi_server72)
 https://dart.googlesource.com/http.git/+/a41bcb6 Bump the github-actions group with 2 updates (dart-lang/http_multi_server71)
 https://dart.googlesource.com/http.git/+/74159ad Bump actions/checkout from 4.1.5 to 4.1.6 in the github-actions group (dart-lang/http_multi_server70)
 https://dart.googlesource.com/http.git/+/f5bf636 Bump actions/checkout from 4.1.4 to 4.1.5 in the github-actions group (dart-lang/http_multi_server69)
 https://dart.googlesource.com/http.git/+/a304f32 blast_repo fixes (dart-lang/http_multi_server68)
 https://dart.googlesource.com/http.git/+/e9ba5c5 Bump actions/checkout from 4.1.2 to 4.1.4 (dart-lang/http_multi_server66)
 https://dart.googlesource.com/http.git/+/34b47f5 Bump dart-lang/setup-dart from 1.6.2 to 1.6.4 (dart-lang/http_multi_server67)
 https://dart.googlesource.com/http.git/+/0e0d661 Bump actions/checkout from 4.1.1 to 4.1.2 (dart-lang/http_multi_server65)
 https://dart.googlesource.com/http.git/+/fad988c Bump dart-lang/setup-dart from 1.6.1 to 1.6.2 (dart-lang/http_multi_server64)
 https://dart.googlesource.com/http.git/+/f28092d Update lints, require Dart 3.2 (dart-lang/http_multi_server63)
 https://dart.googlesource.com/http.git/+/5a87d97 blast_repo fixes (dart-lang/http_multi_server62)
 https://dart.googlesource.com/http.git/+/2c389f5 Bump dart-lang/setup-dart from 1.5.1 to 1.6.0 (dart-lang/http_multi_server61)
 https://dart.googlesource.com/http.git/+/ff00778 Bump actions/checkout from 4.1.0 to 4.1.1 (dart-lang/http_multi_server60)
 https://dart.googlesource.com/http.git/+/9e338f0 Bump actions/checkout from 3.6.0 to 4.1.0 (dart-lang/http_multi_server59)
 https://dart.googlesource.com/http.git/+/e8d5de4 Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (dart-lang/http_multi_server58)
 https://dart.googlesource.com/http.git/+/779cbaf Bump actions/checkout from 3.5.3 to 3.6.0 (dart-lang/http_multi_server57)
 https://dart.googlesource.com/http.git/+/334125d Bump actions/checkout from 3.5.2 to 3.5.3 (dart-lang/http_multi_server56)
 https://dart.googlesource.com/http.git/+/a43a0a4 blast_repo fixes (dart-lang/http_multi_server55)
 https://dart.googlesource.com/http.git/+/8b5c7ec Bump actions/checkout from 3.5.0 to 3.5.2 (dart-lang/http_multi_server54)
 https://dart.googlesource.com/http.git/+/7e71efb Bump actions/checkout from 3.3.0 to 3.5.0 (dart-lang/http_multi_server53)
 https://dart.googlesource.com/http.git/+/4e98ab8 Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (dart-lang/http_multi_server52)
 https://dart.googlesource.com/http.git/+/ae85c13 Require Dart 2.19, enable and fix new team lints (dart-lang/http_multi_server51)
 https://dart.googlesource.com/http.git/+/8a9583e Bump dart-lang/setup-dart from 1.3 to 1.4 (dart-lang/http_multi_server49)
 https://dart.googlesource.com/http.git/+/076ef46 Bump actions/checkout from 3.2.0 to 3.3.0 (dart-lang/http_multi_server50)
 https://dart.googlesource.com/http.git/+/d415434 Migrate from no-implicit-casts to strict-casts (dart-lang/http_multi_server48)
 https://dart.googlesource.com/http.git/+/b6ae63c Bump actions/checkout from 3.1.0 to 3.2.0 (dart-lang/http_multi_server47)
 https://dart.googlesource.com/http.git/+/5f6fbe0 blast_repo fixes (dart-lang/http_multi_server46)
 https://dart.googlesource.com/http.git/+/f1e619d Merge pull request dart-lang/http_multi_server44 from dart-lang/prep_publish
 https://dart.googlesource.com/http.git/+/2555ef5 3.2.1
 https://dart.googlesource.com/http.git/+/fd17403 Merge pull request dart-lang/http_multi_server43 from dart-lang/package_lint
 https://dart.googlesource.com/http.git/+/b69c6f0 switch to package:lints
 https://dart.googlesource.com/http.git/+/2c4a533 Merge pull request dart-lang/http_multi_server42 from dart-lang/devoncarew-patch-1
 https://dart.googlesource.com/http.git/+/106b743 rev to a dev version
 https://dart.googlesource.com/http.git/+/f1a3288 Update pubspec.yaml
 https://dart.googlesource.com/http.git/+/da60302 Bump actions/checkout from 2 to 3 (dart-lang/http_multi_server41)
 https://dart.googlesource.com/http.git/+/8d07869 Drop unnecessary SDK constraint suffix (dart-lang/http_multi_server40)
 https://dart.googlesource.com/http.git/+/d2820ed Forward the preserveHeaderCase argument (dart-lang/http_multi_server39)
 https://dart.googlesource.com/http.git/+/d28e78e Bump dart-lang/setup-dart from 0.3 to 1 (dart-lang/http_multi_server38)
 https://dart.googlesource.com/http.git/+/ec3b3e4 Add dependabot
 https://dart.googlesource.com/http.git/+/bcdc341 Avoid IPv4 when unsupported (dart-lang/http_multi_server37)
 https://dart.googlesource.com/http.git/+/007b3d3 Add a bindSecure method (dart-lang/http_multi_server19)
 https://dart.googlesource.com/http.git/+/8e8035a Merge pull request dart-lang/http_multi_server36 from dart-lang/any
 https://dart.googlesource.com/http.git/+/28d39cc changelog
 https://dart.googlesource.com/http.git/+/dd1814f fix test
 https://dart.googlesource.com/http.git/+/e421e9c doc
 https://dart.googlesource.com/http.git/+/264d705 Bind to the correct address for
 https://dart.googlesource.com/http.git/+/e46998b Merge pull request dart-lang/http_multi_server34 from dart-lang/franklinyow-patch-1
 https://dart.googlesource.com/http.git/+/f4546e6 Update LICENSE
 https://dart.googlesource.com/http.git/+/c3a9371 stable null safety release (dart-lang/http_multi_server33)
 https://dart.googlesource.com/http.git/+/d052873 migrate to null safety (dart-lang/http_multi_server32)
 https://dart.googlesource.com/http.git/+/32e9ac7 Migrate to GitHub Actions (dart-lang/http_multi_server31)
 https://dart.googlesource.com/http.git/+/e7d065c Skip test binding to IPv4 without support (dart-lang/http_multi_server30)
 https://dart.googlesource.com/http.git/+/4ba71c3 Pass a Uri to package:http APIs (dart-lang/http_multi_server29)
 https://dart.googlesource.com/http.git/+/695c819 Change issue link to https. (dart-lang/http_multi_server27)
 https://dart.googlesource.com/http.git/+/45e5901 Remove unused dart:async import (dart-lang/http_multi_server28)
 https://dart.googlesource.com/http.git/+/4e14640 Drop the publish_to: none (dart-lang/http_multi_server25)
 https://dart.googlesource.com/http.git/+/3fcc0c8 Prepare to publish (dart-lang/http_multi_server24)
 https://dart.googlesource.com/http.git/+/5efb004 Add preserveHeaderCase argument (dart-lang/http_multi_server22)
 https://dart.googlesource.com/http.git/+/17245f9 Fix newly enforced package:pedantic lints (dart-lang/http_multi_server20)
 https://dart.googlesource.com/http.git/+/c674bb1 Merge pull request dart-lang/http_multi_server18 from srawlins/pedantic
 https://dart.googlesource.com/http.git/+/6b4127d Bump minimum to 2.1.1, for pedantic
 https://dart.googlesource.com/http.git/+/8c5b385 Async/await
 https://dart.googlesource.com/http.git/+/7a48a66 Add example; bump pedantic
 https://dart.googlesource.com/http.git/+/ebbd1af Merge pull request dart-lang/http_multi_server6 from bcko/patch-1
 https://dart.googlesource.com/http.git/+/e0b2b27 Add HttpMultiServer.bind utility (dart-lang/http_multi_server16)
 https://dart.googlesource.com/http.git/+/94bc5bd Wrap description to stay under 80 chars. (dart-lang/http_multi_server15)
 https://dart.googlesource.com/http.git/+/f704a00 Enforce override annotations (dart-lang/http_multi_server14)
 https://dart.googlesource.com/http.git/+/42504c7 Test on oldest supported SDK, bump min SDK to stable release (dart-lang/http_multi_server13)
 https://dart.googlesource.com/http.git/+/44177a3 Close Ipv4 server when failing to start Ipv6 (dart-lang/http_multi_server12)
 https://dart.googlesource.com/http.git/+/7e75f3c enable and fix a number of lints
 https://dart.googlesource.com/http.git/+/ef7eba4 Update dev deps to latest
 https://dart.googlesource.com/http.git/+/031fd1d Dart 2 cleanup (dart-lang/http_multi_server10)
 https://dart.googlesource.com/http.git/+/46a6135 Update SDK to version 2.0.0-dev.55.0. (dart-lang/http_multi_server8)
 https://dart.googlesource.com/http.git/+/883b045 remove .pub and packages
 https://dart.googlesource.com/http.git/+/2cd3d63 Update .gitignore to new `dart_tool` pub cache
 https://dart.googlesource.com/http.git/+/d08c3ca Declare support for async 2.0.0 (dart-lang/http_multi_server5)
 https://dart.googlesource.com/http.git/+/c174b74 Remove -dev.infinity in SDK upper constraint
 https://dart.googlesource.com/http.git/+/f2df083 Homepage: use https (dart-lang/http_multi_server4)
 https://dart.googlesource.com/http.git/+/19903c0 dartfmt
 https://dart.googlesource.com/http.git/+/b37ced8 Use the correct name for analysis_options
 https://dart.googlesource.com/http.git/+/d0507f6 Add travis-ci support
 https://dart.googlesource.com/http.git/+/3f161f5 Change '127.0.0.1' to 'localhost' to support both IPv4 and IPv6 envs.
 https://dart.googlesource.com/http.git/+/230a641 Work in IPv6-only environments. (dart-lang/http_multi_server2)
 https://dart.googlesource.com/http.git/+/f09d35a Properly depend on async.
 https://dart.googlesource.com/http.git/+/4df9fdf Fix most strong mode warnings.
 https://dart.googlesource.com/http.git/+/ce0dd31 Get rid of all the library tags.
 https://dart.googlesource.com/http.git/+/d230d25 Update loopback constructors to match dart:io.
 https://dart.googlesource.com/http.git/+/c9d513e Upgrade to the new test package.
 https://dart.googlesource.com/http.git/+/8098e79 Use OSError.errorCode rather than .errno.
 https://dart.googlesource.com/http.git/+/1e13011 Eventually stop retrying port allocation if it fails repeatedly.
 https://dart.googlesource.com/http.git/+/6b03e0d Recover gracefully if a matching port is unavailable.
 https://dart.googlesource.com/http.git/+/5cef50d Properly skip tests in packages directories.
 https://dart.googlesource.com/http.git/+/4b300ce Fix the status file to match the package bots' expectations.
 https://dart.googlesource.com/http.git/+/7944efc Update the pubspec's homepage link.
 https://dart.googlesource.com/http.git/+/f479103 Add gitignore, status, and codereview files.
 https://dart.googlesource.com/http.git/+/ab32229 Clean up http_multi_server.
 https://dart.googlesource.com/http.git/+/83fbe23 Give http_multi_server a more accurate SDK bound.
 https://dart.googlesource.com/http.git/+/dfcc4a7 Release http_multi_server 1.3.0.
 https://dart.googlesource.com/http.git/+/e39fb07 Add HttpServer:autoCompress option, to disable auto gzip compression.
 https://dart.googlesource.com/http.git/+/f2beb70 Fix analyzer warnings in http_multi_server.
 https://dart.googlesource.com/http.git/+/e883828 Add support for HttpServer.defaultResponseHeaders to HttpMultiServer.
 https://dart.googlesource.com/http.git/+/e034b88 Add dummy implementation of defaultResponseHeaders
 https://dart.googlesource.com/http.git/+/80a11f8 Remove the workaround for issue 19815 in http_multi_server.
 https://dart.googlesource.com/http.git/+/8df4fcf Swallow errors in subscriptions in http_multi_server..
 https://dart.googlesource.com/http.git/+/bf3c130 Add a LICENSE file to pkg/http_multi_server.
 https://dart.googlesource.com/http.git/+/816ac38 Add an http_multi_server package.

```

Diff: https://dart.googlesource.com/http.git/+/79470d014b467f01b0e7c5b63ab6c86b22dec8db..c27d6c780bae0207e938f09596c2cf8d9bb4a963/
Change-Id: I7d8246be1e9884699d38902f389a1f6439632001
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/401385
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>

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