mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Reverts "Gradle Lockfile workaround and Android Embedder dependency change for ExifInterface (#177508)" (#178428)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#177508
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jtmcdole
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: tree is no bueno
```
┌─ Flutter Fix ───────────────────────────────────────────────────────────────────┐ [2025-11-12 16:47:24.646119] [STDOUT] stdout: │ You need to update the lockfile, or disable Gradle dependency locking. │ [2025-11-12 16:47:24.646119] [STDOUT] stdout: │ To regenerate the lockfiles run: `.\gradlew.bat :generateLockfiles` in │ [2025-11-12 16:47:24.646119] [STDOUT] stdout: │ c:\
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: mboetger
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {reidbaker, gmackall}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
Create a workaround for generating gradle lock files. When the ignore file exists, gradle locking will be disabled. This will allow deps for the embedder to be checked in, and then in a follow-up PR the lockfiles can correctly be updated and the ignore file can be deleted.
Fixes: #177066, #177071
## Pre-launch Checklist
- [X] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is [test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
- [X] All existing and new tests are passing.
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
This commit is contained in:
parent
9fed4d2839
commit
d48aa42950
2
DEPS
2
DEPS
@ -624,7 +624,7 @@ deps = {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/android/embedding_bundle',
|
||||
'version': 'last_updated:2025-10-15T09:53:03-0700'
|
||||
'version': 'last_updated:2024-09-10T16:32:16-0700'
|
||||
}
|
||||
],
|
||||
'condition': 'download_android_deps',
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,8 +31,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add("io.flutter:*")
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty("local-engine-repo")) {
|
||||
if (!project.hasProperty("local-engine-repo")) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -1 +0,0 @@
|
||||
Reason: https://github.com/flutter/flutter/pull/177508
|
||||
@ -15,7 +15,6 @@ import 'dart:io';
|
||||
import 'package:args/args.dart';
|
||||
import 'package:file/file.dart';
|
||||
import 'package:file/local.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
void main(List<String> arguments) {
|
||||
@ -27,8 +26,6 @@ void main(List<String> arguments) {
|
||||
'defined at dev/tools/bin/config/lockfile_exclusion.yaml.\n'
|
||||
'To disable this behavior, run with `--no-exclusion`.\n';
|
||||
|
||||
const String ignoreFileName = '.ignore-locking.md';
|
||||
|
||||
final ArgParser argParser = ArgParser()
|
||||
..addFlag(
|
||||
'gradle-generation',
|
||||
@ -40,11 +37,6 @@ void main(List<String> arguments) {
|
||||
help:
|
||||
'Run the script using the config file at ./configs/lockfile_exclusion.yaml to skip the specified subdirectories.',
|
||||
defaultsTo: true,
|
||||
)
|
||||
..addOption(
|
||||
'ignore-locking',
|
||||
help:
|
||||
'Reason to disable gradle dependency locking. A reason must be given if --ignore-locking is used.',
|
||||
);
|
||||
|
||||
ArgResults args;
|
||||
@ -64,15 +56,6 @@ void main(List<String> arguments) {
|
||||
// Skip android subdirectories specified in the ./config/lockfile_exclusion.yaml file.
|
||||
final bool useExclusion = (args['exclusion'] as bool?) ?? true;
|
||||
|
||||
final bool ignoreLocking = args['ignore-locking'] != null;
|
||||
final String ignoreReason = (args['ignore-locking'] as String?) ?? '';
|
||||
|
||||
if (ignoreLocking && ignoreReason.isEmpty) {
|
||||
stderr.writeln('A reason must be provided for --ignore-locking.');
|
||||
stderr.writeln(usageMessage);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
const FileSystem fileSystem = LocalFileSystem();
|
||||
|
||||
final Directory repoRoot = (() {
|
||||
@ -84,19 +67,6 @@ void main(List<String> arguments) {
|
||||
return repoRoot;
|
||||
})();
|
||||
|
||||
final File ignoreFile = repoRoot
|
||||
.childDirectory('dev')
|
||||
.childDirectory('tools')
|
||||
.childDirectory('bin')
|
||||
.childDirectory('config')
|
||||
.childFile(ignoreFileName);
|
||||
if (ignoreLocking) {
|
||||
print('Writing ignore file in ${ignoreFile.path}');
|
||||
ignoreFile.writeAsStringSync(ignoreReason);
|
||||
} else if (ignoreFile.existsSync()) {
|
||||
ignoreFile.deleteSync();
|
||||
}
|
||||
|
||||
final Iterable<Directory> androidDirectories = discoverAndroidDirectories(repoRoot);
|
||||
|
||||
final File exclusionFile = repoRoot
|
||||
@ -201,12 +171,11 @@ void main(List<String> arguments) {
|
||||
}
|
||||
|
||||
if (gradleGeneration) {
|
||||
final String relativeIgnorePath = path.relative(ignoreFile.path, from: androidDirectory.path);
|
||||
// Write file content corresponding to original file language.
|
||||
if (rootBuildGradle.basename.endsWith('.kts')) {
|
||||
rootBuildGradle.writeAsStringSync(createGradleKtsFileContent(relativeIgnorePath));
|
||||
rootBuildGradle.writeAsStringSync(rootGradleKtsFileContent);
|
||||
} else {
|
||||
rootBuildGradle.writeAsStringSync(createGradleFileContent(relativeIgnorePath));
|
||||
rootBuildGradle.writeAsStringSync(rootGradleFileContent);
|
||||
}
|
||||
|
||||
if (settingsGradle.basename.endsWith('.kts')) {
|
||||
@ -248,8 +217,7 @@ String exec(String cmd, List<String> args, {String? workingDirectory}) {
|
||||
return result.stdout as String;
|
||||
}
|
||||
|
||||
String createGradleFileContent(String path) {
|
||||
const String rootGradleFileContent = r'''
|
||||
const String rootGradleFileContent = r'''
|
||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
@ -275,8 +243,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/<IGNORE_FILE>")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
@ -286,8 +253,6 @@ tasks.register("clean", Delete) {
|
||||
delete rootProject.layout.buildDirectory
|
||||
}
|
||||
''';
|
||||
return rootGradleFileContent.replaceAll('<IGNORE_FILE>', path);
|
||||
}
|
||||
|
||||
const String settingGradleFileContent = r'''
|
||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
@ -333,12 +298,11 @@ plugins {
|
||||
include ":app"
|
||||
''';
|
||||
|
||||
String createGradleKtsFileContent(String path) {
|
||||
// Consider updating this file to reflect the latest updates to app templates
|
||||
// when performing batch updates (this file is modeled after
|
||||
// root_app/android/build.gradle.kts).
|
||||
// After modification verify formatting with ktlint.
|
||||
const String rootGradleKtsFileContent = r'''
|
||||
// Consider updating this file to reflect the latest updates to app templates
|
||||
// when performing batch updates (this file is modeled after
|
||||
// root_app/android/build.gradle.kts).
|
||||
// After modification verify formatting with ktlint.
|
||||
const String rootGradleKtsFileContent = r'''
|
||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
@ -372,8 +336,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add("io.flutter:*")
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/<IGNORE_FILE>")
|
||||
if (!ignoreFile.exists() && !project.hasProperty("local-engine-repo")) {
|
||||
if (!project.hasProperty("local-engine-repo")) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
@ -383,8 +346,6 @@ tasks.register<Delete>("clean") {
|
||||
delete(rootProject.layout.buildDirectory)
|
||||
}
|
||||
''';
|
||||
return rootGradleKtsFileContent.replaceAll('<IGNORE_FILE>', path);
|
||||
}
|
||||
|
||||
// Consider updating this file to reflect the latest updates to app templates
|
||||
// when performing batch updates (this file is modeled after
|
||||
|
||||
@ -385,7 +385,7 @@ android_java_sources = [
|
||||
|
||||
embedding_dependencies_jars = [
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/activity-1.8.1.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/annotation-jvm-1.8.1.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/annotation-jvm-1.8.0.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/annotation-experimental-1.4.0.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/annotations-23.0.0.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/collection-1.1.0.jar",
|
||||
@ -395,7 +395,6 @@ embedding_dependencies_jars = [
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/core-runtime-2.2.0.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/customview-1.0.0.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/fragment-1.7.1.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/exifinterface-1.4.1.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/kotlin-stdlib-1.8.22.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/kotlin-stdlib-common-1.8.22.jar",
|
||||
"//flutter/third_party/android_embedding_dependencies/lib/kotlin-stdlib-jdk7-1.8.20.jar",
|
||||
|
||||
@ -4,9 +4,10 @@
|
||||
|
||||
package io.flutter.embedding.engine.image;
|
||||
|
||||
//noinspection ExifInterface
|
||||
import android.media.ExifInterface;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.exifinterface.media.ExifInterface;
|
||||
import io.flutter.Log;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
@ -6,8 +6,9 @@ package io.flutter.embedding.engine.image;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Matrix;
|
||||
//noinspection ExifInterface
|
||||
import android.media.ExifInterface;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.exifinterface.media.ExifInterface;
|
||||
import io.flutter.Log;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
|
||||
@ -37,9 +37,9 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"url": "https://maven.google.com/androidx/annotation/annotation/1.8.1/annotation-1.8.1.jar",
|
||||
"url": "https://maven.google.com/androidx/annotation/annotation/1.8.0/annotation-1.8.0.jar",
|
||||
"out_file_name": "androidx_annotation.jar",
|
||||
"maven_dependency": "androidx.annotation:annotation:1.8.1",
|
||||
"maven_dependency": "androidx.annotation:annotation:1.8.0",
|
||||
"provides": [
|
||||
"androidx.annotation.CallSuper",
|
||||
"androidx.annotation.FloatRange",
|
||||
@ -92,13 +92,5 @@
|
||||
"out_file_name": "relinker-1.4.5.aar",
|
||||
"maven_dependency": "com.getkeepsafe.relinker:relinker:1.4.5",
|
||||
"provides": ["com.getkeepsafe.relinker.ReLinker"]
|
||||
},
|
||||
{
|
||||
"url": "https://maven.google.com/androidx/exifinterface/1.4.1/exifinterface:1.4.1.aar",
|
||||
"out_file_name": "exifinterface.aar",
|
||||
"maven_dependency": "androidx.exifinterface:exifinterface:1.4.1",
|
||||
"provides": [
|
||||
"androidx.exifinterface.media.ExifInterface"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@ -34,16 +34,11 @@ below explain how to fetch the license information for the dependencies.
|
||||
new tag: `last_updated:"$version_tag"`.
|
||||
1. Update the GN list `embedding_dependencies_jars` in
|
||||
`src/flutter/shell/platform/android/BUILD.gn`.
|
||||
1. The Gradle lockfiles will need to be updated, but they cannot be
|
||||
updated in this PR. They will need to be updated in a follow-up
|
||||
PR. Instead, run
|
||||
`<repo_root>/dev/tools/bin/generate_gradle_lockfiles.dart
|
||||
--no-gradle-generation --no-exclusion --ignore-locking=Reason: <ISSUE>`.
|
||||
Replace <ISSUE> a link to the issue. This will
|
||||
create a '.ignore-locking.md' file that will disable Gradle locking
|
||||
and allow tests to pass without locking.
|
||||
1. Once the initial PR is submitted, you will need to create a
|
||||
follow-up PR that updates the Gradle Lockfiles. Run
|
||||
`<repo_root>/dev/tools/bin/generate_gradle_lockfiles.dart
|
||||
--no-gradle-generation --no-exclusion` to delete all the ignore
|
||||
files and update the Gradle Lockfiles. Submit this PR as well.
|
||||
|
||||
## Updating Gradle Lockfiles in the Framework After Adding Dependencies
|
||||
If you land a pr that changes the versions of the embedding dependencies,
|
||||
or adds a new dependency and makes use of it, you will also need to
|
||||
perform a manual roll of that change to the framework that re-generates
|
||||
the Gradle lockfiles using the script at
|
||||
`<framework_repo>/dev/tools/bin/generate_gradle_lockfiles.dart`
|
||||
(run with the `--no-gradle-generation` and `--no-exclusion` flags).
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,8 +31,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add("io.flutter:*")
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty("local-engine-repo")) {
|
||||
if (!project.hasProperty("local-engine-repo")) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,8 +23,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
if (!project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,8 +31,7 @@ subprojects {
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add("io.flutter:*")
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
var ignoreFile = file("${rootProject.projectDir}/../../../../dev/tools/bin/config/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty("local-engine-repo")) {
|
||||
if (!project.hasProperty("local-engine-repo")) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user