Trigger Build Part Deux (#160481)
Hello, Monorepo Part Deux - after adding commit to datastore.
diff --git a/.ci.yaml b/.ci.yaml
index fd48900..ba8ad21 100644
--- a/.ci.yaml
+++ b/.ci.yaml
@@ -802,12 +802,14 @@
- name: Linux fuchsia_precache
recipe: flutter/flutter_drone
timeout: 60
+ presubmit: false
properties:
shard: fuchsia_precache
tags: >
["framework", "hostonly", "shard", "linux"]
runIf:
- - bin/internal/engine.version
+ - engine/**
+ - DEPS
- .ci.yaml
- name: Linux gradle_desugar_classes_test
@@ -962,6 +964,7 @@
- name: Linux build_android_host_app_with_module_source
recipe: devicelab/devicelab_drone
timeout: 60
+ presubmit: false
properties:
dependencies: >-
[
@@ -1156,7 +1159,8 @@
tags: >
["framework", "hostonly", "shard", "linux"]
runIf:
- - bin/internal/engine.version
+ - engine/**
+ - DEPS
- .ci.yaml
- name: Linux tool_integration_tests_1_6
@@ -2606,7 +2610,8 @@
# presubmit during engine rolls. This test is the *only* automated e2e
# test for external textures for the engine, it should never break.
runIf:
- - bin/internal/engine.version
+ - engine/**
+ - DEPS
- .ci.yaml
properties:
tags: >
@@ -2621,7 +2626,8 @@
# presubmit during engine rolls. This test is the *only* automated e2e
# test for external textures for the engine, it should never break.
runIf:
- - bin/internal/engine.version
+ - engine/**
+ - DEPS
- .ci.yaml
properties:
tags: >
@@ -4111,6 +4117,7 @@
- name: Mac build_android_host_app_with_module_source
recipe: devicelab/devicelab_drone
timeout: 60
+ presubmit: false
properties:
dependencies: >-
[
@@ -5791,6 +5798,7 @@
- name: Windows build_android_host_app_with_module_source
recipe: devicelab/devicelab_drone
timeout: 60
+ presubmit: false
properties:
dependencies: >-
[
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 35c9165..2b57f9b 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -63,7 +63,8 @@
engine:
- changed-files:
- any-glob-to-any-file:
- - bin/internal/engine.version
+ - DEPS
+ - engine/**/*
- docs/engine/**/*
'f: cupertino':
diff --git a/bin/internal/README.md b/bin/internal/README.md
index 8e7047f..dcb8813 100644
--- a/bin/internal/README.md
+++ b/bin/internal/README.md
@@ -1,23 +1,11 @@
-## Flutter SDK dependency versions
+# Flutter SDK dependency versions
The files in this directory specifies pinned versions of various
dependencies of the flutter SDK.
-The `bin/internal/engine.version` file controls which version of the
-Flutter engine to use. The file contains the commit hash of a commit
-in the <https://github.com/flutter/engine> repository. That hash must
-have successfully been compiled on
-<https://build.chromium.org/p/client.flutter/> and had its artifacts
-(the binaries that run on Android and iOS, the compiler, etc)
-successfully uploaded to Google Cloud Storage.
-
-The `/bin/internal/engine.merge_method` file controls how we merge a
-pull request created by the engine auto-roller. If it's `squash`,
-there's only one commit for a pull request no matter how many engine
-commits there are inside that pull request. If it's `rebase`, the
-number of commits in the framework is equal to the number of engine
-commits in the pull request. The latter method makes it easier to
-detect regressions but costs more test resources.
+The `bin/internal/engine.version` file controls where to find compiled artifacts
+of the engine. These artifacts are compiled in the Merge Queue for every commit
+in the flutter repository.
The `bin/internal/flutter_packages.version` file specifies the version
of the `flutter/packages` repository to be used for testing. The
diff --git a/bin/internal/engine.realm b/bin/internal/engine.realm
deleted file mode 100644
index e69de29..0000000
--- a/bin/internal/engine.realm
+++ /dev/null
diff --git a/bin/internal/engine.version b/bin/internal/engine.version
deleted file mode 100644
index e6e7770..0000000
--- a/bin/internal/engine.version
+++ /dev/null
@@ -1 +0,0 @@
-6a75cb6a6a57ae5a05309a43f0fba6cd50c65752
diff --git a/bin/internal/update_dart_sdk.ps1 b/bin/internal/update_dart_sdk.ps1
index dd7cafa..5f3c6ee 100644
--- a/bin/internal/update_dart_sdk.ps1
+++ b/bin/internal/update_dart_sdk.ps1
@@ -20,14 +20,45 @@
$dartSdkPath = "$cachePath\dart-sdk"
$dartSdkLicense = "$cachePath\LICENSE.dart_sdk_archive.md"
$engineStamp = "$cachePath\engine-dart-sdk.stamp"
-$engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
+$engineRealm = ""
-if (Test-Path "$flutterRoot\bin\internal\engine.version") {
- $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version")
-} else {
+# Test for fusion repository
+if ((Test-Path "$flutterRoot\DEPS" -PathType Leaf) -and (Test-Path "$flutterRoot\engine\src\.gn" -PathType Leaf)) {
# Calculate the engine hash from tracked git files.
- $lsTree = ((git ls-tree -r HEAD engine DEPS) | Out-String).Replace("`r`n", "`n")
- $engineVersion = (Get-FileHash -InputStream ([System.IO.MemoryStream] [System.Text.Encoding]::UTF8.GetBytes($lsTree)) -Algorithm SHA1 | ForEach-Object { $_.Hash }).ToLower()
+ $branch = (git -C "$flutterRoot" rev-parse --abbrev-ref HEAD)
+ if ($null -eq $Env:LUCI_CONTEXT) {
+ $engineVersion = (git -C "$flutterRoot" merge-base HEAD upstream/master)
+ }
+ else {
+ $engineVersion = (git -C "$flutterRoot" rev-parse HEAD)
+ }
+
+ if (($branch -ne "stable" -and $branch -ne "beta")) {
+ # Write the engine version out so downstream tools know what to look for.
+ $utf8NoBom = New-Object System.Text.UTF8Encoding($false)
+ [System.IO.File]::WriteAllText("$flutterRoot\bin\internal\engine.version", $engineVersion, $utf8NoBom)
+
+ # The realm on CI is passed in.
+ if ($Env:FLUTTER_REALM) {
+ [System.IO.File]::WriteAllText("$flutterRoot\bin\internal\engine.realm", $Env:FLUTTER_REALM, $utf8NoBom)
+ $engineRealm = "$Env:FLUTTER_REALM"
+ }
+ else {
+ if (Test-Path -Path "$flutterRoot\bin\internal\engine.realm") {
+ $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
+ }
+ }
+ }
+ else {
+ # Release branch - these files will exist
+ $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version")
+ $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
+ }
+}
+else {
+ # Non-fusion repository - these files will exist
+ $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version")
+ $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
}
$oldDartSdkPrefix = "dart-sdk.old"
diff --git a/bin/internal/update_dart_sdk.sh b/bin/internal/update_dart_sdk.sh
index 5c1ea23..f33de37 100755
--- a/bin/internal/update_dart_sdk.sh
+++ b/bin/internal/update_dart_sdk.sh
@@ -19,16 +19,41 @@
DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
DART_SDK_PATH_OLD="$DART_SDK_PATH.old"
ENGINE_STAMP="$FLUTTER_ROOT/bin/cache/engine-dart-sdk.stamp"
-ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
+ENGINE_REALM=""
OS="$(uname -s)"
-ENGINE_VERSION=""
-if [ -f "$FLUTTER_ROOT/bin/internal/engine.version" ]; then
- ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version")
+# Test for fusion repository
+if [ -f "$FLUTTER_ROOT/DEPS" ] && [ -f "$FLUTTER_ROOT/engine/src/.gn" ]; then
+ BRANCH=$(git -C "$FLUTTER_ROOT" rev-parse --abbrev-ref HEAD)
+ # In a fusion repository; the engine.version comes from the git hashes.
+ if [ -z "${LUCI_CONTEXT}" ]; then
+ ENGINE_VERSION=$(git -C "$FLUTTER_ROOT" merge-base HEAD upstream/master)
+ else
+ ENGINE_VERSION=$(git -C "$FLUTTER_ROOT" rev-parse HEAD)
+ fi
+
+ if [[ "$BRANCH" != "stable" && "$BRANCH" != "beta" ]]; then
+ # Write the engine version out so downstream tools know what to look for.
+ echo $ENGINE_VERSION > "$FLUTTER_ROOT/bin/internal/engine.version"
+
+ # The realm on CI is passed in.
+ if [ -n "${FLUTTER_REALM}" ]; then
+ echo $FLUTTER_REALM > "$FLUTTER_ROOT/bin/internal/engine.realm"
+ ENGINE_REALM="$FLUTTER_REALM"
+ else
+ if [ -f "$FLUTTER_ROOT/bin/internal/engine.realm" ]; then
+ ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
+ fi
+ fi
+ else
+ # Release branch - these files will exist
+ ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version")
+ ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
+ fi
else
- # Calculate the engine hash from tracked git files.
- # The array takes the first part of the sha1sum string.
- ENGINE_VERSION=($(git ls-tree HEAD -r engine DEPS | sha1sum))
+ # Non-fusion repository - these files will exist
+ ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version")
+ ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
fi
if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != `cat "$ENGINE_STAMP"` ]; then
diff --git a/engine/src/.clang-format b/engine/src/.clang-format
new file mode 100644
index 0000000..6fdf1dc
--- /dev/null
+++ b/engine/src/.clang-format
@@ -0,0 +1,8 @@
+# Defines the Chromium style for automatic reformatting.
+# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
+BasedOnStyle: Chromium
+# This defaults to 'Auto'. Explicitly set it for a while, so that
+# 'vector<vector<int> >' in existing files gets formatted to
+# 'vector<vector<int>>'. ('Auto' means that clang-format will only use
+# 'int>>' if the file already contains at least one such instance.)
+Standard: Cpp11
diff --git a/engine/src/.vscode/settings.json b/engine/src/.vscode/settings.json
deleted file mode 100644
index de05f5a..0000000
--- a/engine/src/.vscode/settings.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-"clangd.path": "${workspaceFolder}/buildtools/mac-arm64/clang/bin/clangd",
-"clangd.arguments": [
- "--compile-commands-dir=${workspaceFolder}/../out/host_debug_unopt_arm64"
-],
-"clang-format.executable": "${workspaceRoot}/buildtools/mac-arm64/clang/bin/clang-format",
-
- // "clangd.path": "flutter/buildtools/mac-arm64/clang/bin/clangd",
- // "clangd.arguments": [
- // "--compile-commands-dir=out/host_debug_unopt_arm64"
- // ],
- // "clang-format.executable": "flutter/buildtools/mac-arm64/clang/bin/clang-format",
-
- "search.followSymlinks": true,
- "search.quickOpen.includeHistory": true,
- "search.quickOpen.includeSymbols": false,
- "search.useIgnoreFiles": false,
-
- "editor.tabSize": 2,
-}
\ No newline at end of file
diff --git a/engine/src/flutter/.ci.yaml b/engine/src/flutter/.ci.yaml
index 1a7b579..a253d02 100644
--- a/engine/src/flutter/.ci.yaml
+++ b/engine/src/flutter/.ci.yaml
@@ -396,14 +396,6 @@
# For more details see the issue
# at https://github.com/flutter/flutter/issues/152186.
cores: "8"
- runIf:
- - DEPS
- - engine/src/flutter/.ci.yaml
- - engine/src/flutter/lib/web_ui/**
- - engine/src/flutter/web_sdk/**
- - engine/src/flutter/tools/**
- - engine/src/flutter/ci/**
- - engine/src/flutter/flutter_frontend_server/**
- name: Linux clangd
recipe: engine_v2/builder
diff --git a/engine/src/flutter/third_party/boringssl/BUILD.gn b/engine/src/flutter/third_party/boringssl/BUILD.gn
new file mode 100644
index 0000000..8d185ba
--- /dev/null
+++ b/engine/src/flutter/third_party/boringssl/BUILD.gn
@@ -0,0 +1,93 @@
+# Copyright 2014 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/config.gni")
+import("//build/config/arm.gni")
+import("//build/config/compiler/compiler.gni")
+import("//build/config/sanitizers/sanitizers.gni")
+import("//build_overrides/build.gni")
+import("src/gen/sources.gni")
+
+# Config for us and everybody else depending on BoringSSL.
+config("external_config") {
+ include_dirs = [ "src/include" ]
+ if (is_component_build) {
+ defines = [ "BORINGSSL_SHARED_LIBRARY" ]
+ }
+}
+
+# The config used by the :boringssl component itself, and the fuzzer copies.
+config("component_config") {
+ visibility = [ ":*" ]
+ configs = [ ":internal_config" ]
+ defines = [ "BORINGSSL_IMPLEMENTATION" ]
+
+ cflags_c = [ "-std=c17" ]
+}
+
+# This config is used by anything that consumes internal headers. Tests consume
+# this rather than :component_config.
+config("internal_config") {
+ visibility = [ ":*" ]
+ defines = [
+ "OPENSSL_SMALL",
+ "OPENSSL_STATIC_ARMCAP",
+ ]
+ if (is_posix) {
+ defines += [ "_XOPEN_SOURCE=700" ]
+ }
+}
+
+config("no_asm_config") {
+ visibility = [ ":*" ]
+ defines = [ "OPENSSL_NO_ASM" ]
+}
+
+# TODO(crbug.com/42290535): Move Chromium's use of libpki to the public API and
+# unexport pki_internal_headers.
+all_sources = bcm_internal_headers + bcm_sources + crypto_internal_headers +
+ crypto_sources + ssl_internal_headers + ssl_sources + pki_sources
+all_headers = crypto_headers + ssl_headers + pki_headers + pki_internal_headers
+
+if (is_msan) {
+ # MSan instrumentation is incompatible with assembly optimizations.
+ # BoringSSL's GAS-compatible assembly knows how to detect MSan, but the NASM
+ # assembly does not, so we check for MSan explicitly.
+ source_set("boringssl_asm") {
+ visibility = [ ":*" ]
+ public_configs = [ ":no_asm_config" ]
+ }
+} else if (is_win && (current_cpu == "x86" || current_cpu == "x64")) {
+ # Windows' x86 and x86_64 assembly is built with NASM.
+ source_set("boringssl_asm") {
+ visibility = [ ":*" ]
+ public_configs = [ ":no_asm_config" ]
+ }
+} else {
+ # All other targets use GAS-compatible assembler. BoringSSL's assembly files
+ # are all wrapped in processor checks for the corresponding target, so there
+ # is no need to add target conditions in the build.
+ source_set("boringssl_asm") {
+ visibility = [ ":*" ]
+ sources = rebase_path(bcm_sources_asm + crypto_sources_asm, ".", "src")
+ include_dirs = [ "src/include" ]
+ }
+}
+
+source_set("boringssl") {
+ sources = rebase_path(all_sources, ".", "src")
+ public = rebase_path(all_headers, ".", "src")
+
+ if (is_win) {
+ configs += [ ":no_asm_config" ]
+ } else {
+ deps = [ ":boringssl_asm" ]
+ }
+
+ public_configs = [ ":external_config" ]
+ configs += [ ":component_config" ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+}
\ No newline at end of file