From b5482ef1795e17fd4dec72c5848784db1084886d Mon Sep 17 00:00:00 2001 From: "darkhan.nausharipov" Date: Fri, 6 Jan 2023 13:37:30 +0600 Subject: [PATCH 1/4] WIP: playground_components works in tour-of-beam only with configureondemand set to false (#24563) --- .../tour-of-beam/frontend/build.gradle.kts | 141 ++++++++++++++++++ settings.gradle.kts | 3 + 2 files changed, 144 insertions(+) create mode 100644 learning/tour-of-beam/frontend/build.gradle.kts diff --git a/learning/tour-of-beam/frontend/build.gradle.kts b/learning/tour-of-beam/frontend/build.gradle.kts new file mode 100644 index 000000000000..a7ec64b5fc4a --- /dev/null +++ b/learning/tour-of-beam/frontend/build.gradle.kts @@ -0,0 +1,141 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +tasks.register("generate") { + dependsOn(":playground:frontend:playground_components:generate") + + dependsOn("generateCode") + + group = "build" + description = "Generates all generated files." +} + +tasks.register("pubGet") { + group = "build" + description = "Get packages for the playground frontend project" + doLast { + exec { + executable("flutter") + args("pub", "get") + } + } +} + +tasks.register("format") { + group = "build" + description = "Idiomatically format Dart source code" + doLast { + exec { + // Exact paths instead of "." so it does not go into playground_components + executable("dart") + args("format", "lib", "test") + } + } +} + +tasks.register("run") { + group = "application" + description = "Run application on Google Chrome" + + doLast { + exec { + executable("flutter") + args("run", "-d", "chrome") + } + } +} + +tasks.register("test") { + dependsOn(":playground:frontend:playground_components:generateCode") + dependsOn("generateCode") + + group = "verification" + description = "flutter test" + + doLast { + exec { + executable("flutter") + args("test") + } + } +} + +tasks.register("precommit") { + dependsOn(":playground:frontend:playground_components:precommit") + + dependsOn("analyze") + dependsOn("test") +} + +tasks.register("generateCode") { + dependsOn(":playground:frontend:playground_components:generateCode") + + dependsOn("cleanFlutter") + dependsOn("pubGet") + + group = "build" + description = "Generate code" + + doLast { + exec { + executable("flutter") + args("pub", "run", "build_runner", "build", "--delete-conflicting-outputs") + } + } +} + +tasks.register("cleanFlutter") { + group = "build" + description = "Remove build artifacts" + + doLast { + exec { + executable("flutter") + args("clean") + } + } +} + +// tasks.register("cleanGenerated") { +// dependsOn(":playground:frontend:playground_components:cleanGenerated") + +// group = "build" +// description = "Remove build artifacts" + +// doLast { +// println("Deleting:") + +// deleteFilesByRegExp(".*\\.g\\.dart\$") +// deleteFilesByRegExp(".*\\.gen\\.dart\$") +// deleteFilesByRegExp(".*\\.mocks\\.dart\$") +// } +// } + +// extra["deleteFilesByRegExp"] = { re -> +// // Prints file names. +// exec { +// executable("find") +// args("assets", "lib", "test", "-regex", re) +// } + +// // Actually deletes them. +// exec { +// executable("find") +// args("assets", "lib", "test", "-regex", re, "-delete") +// } +// } diff --git a/settings.gradle.kts b/settings.gradle.kts index f7ff5a41cc7a..1c3aed402778 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -68,6 +68,9 @@ include(":playground:backend:containers:python") include(":playground:backend:containers:router") include(":playground:backend:containers:scio") include(":playground:terraform") + +include(":learning:tour-of-beam:frontend") + include(":runners:core-construction-java") include(":runners:core-java") include(":runners:direct-java") From 8ac27a1ccd9db77ba8e9f2e88bc0d94e2df2d8f3 Mon Sep 17 00:00:00 2001 From: "darkhan.nausharipov" Date: Fri, 6 Jan 2023 15:19:11 +0600 Subject: [PATCH 2/4] added evaluationDependsOn playground_components (#24563) --- .../tour-of-beam/frontend/build.gradle.kts | 73 ++++++++++++------- 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/learning/tour-of-beam/frontend/build.gradle.kts b/learning/tour-of-beam/frontend/build.gradle.kts index a7ec64b5fc4a..e30af26d2cae 100644 --- a/learning/tour-of-beam/frontend/build.gradle.kts +++ b/learning/tour-of-beam/frontend/build.gradle.kts @@ -16,6 +16,8 @@ * limitations under the License. */ +evaluationDependsOn(":playground:frontend:playground_components") + tasks.register("generate") { dependsOn(":playground:frontend:playground_components:generate") @@ -25,6 +27,22 @@ tasks.register("generate") { description = "Generates all generated files." } +tasks.register("analyze") { + dependsOn(":playground:frontend:playground_components:generateCode") + dependsOn("generateCode") + + group = "verification" + description = "Analyze dart code" + + doLast { + exec { + // Exact paths instead of '.' so it does not go into playground_components + executable("dart") + args("analyze", "lib", "test") + } + } +} + tasks.register("pubGet") { group = "build" description = "Get packages for the playground frontend project" @@ -111,31 +129,30 @@ tasks.register("cleanFlutter") { } } -// tasks.register("cleanGenerated") { -// dependsOn(":playground:frontend:playground_components:cleanGenerated") - -// group = "build" -// description = "Remove build artifacts" - -// doLast { -// println("Deleting:") - -// deleteFilesByRegExp(".*\\.g\\.dart\$") -// deleteFilesByRegExp(".*\\.gen\\.dart\$") -// deleteFilesByRegExp(".*\\.mocks\\.dart\$") -// } -// } - -// extra["deleteFilesByRegExp"] = { re -> -// // Prints file names. -// exec { -// executable("find") -// args("assets", "lib", "test", "-regex", re) -// } - -// // Actually deletes them. -// exec { -// executable("find") -// args("assets", "lib", "test", "-regex", re, "-delete") -// } -// } +tasks.register("cleanGenerated") { + dependsOn(":playground:frontend:playground_components:cleanGenerated") + + group = "build" + description = "Remove build artifacts" + + doLast { + println("Deleting:") + + deleteFilesByRegExp(".*\\.g\\.dart\$") + deleteFilesByRegExp(".*\\.gen\\.dart\$") + deleteFilesByRegExp(".*\\.mocks\\.dart\$") + } +} + +val deleteFilesByRegExp: (String) -> Unit = { re -> + // Prints file names. + exec { + executable("find") + args("assets", "lib", "test", "-regex", re) + } + // Actually deletes them. + exec { + executable("find") + args("assets", "lib", "test", "-regex", re, "-delete") + } +} From d6783c358d29e9d9f60d2e0be3658dfbe3a35642 Mon Sep 17 00:00:00 2001 From: "darkhan.nausharipov" Date: Fri, 6 Jan 2023 15:45:52 +0600 Subject: [PATCH 3/4] comments (1) (#24563) --- learning/tour-of-beam/frontend/build.gradle.kts | 4 +--- playground/frontend/build.gradle | 8 +++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/learning/tour-of-beam/frontend/build.gradle.kts b/learning/tour-of-beam/frontend/build.gradle.kts index e30af26d2cae..31bf46e59ffe 100644 --- a/learning/tour-of-beam/frontend/build.gradle.kts +++ b/learning/tour-of-beam/frontend/build.gradle.kts @@ -36,7 +36,6 @@ tasks.register("analyze") { doLast { exec { - // Exact paths instead of '.' so it does not go into playground_components executable("dart") args("analyze", "lib", "test") } @@ -45,7 +44,7 @@ tasks.register("analyze") { tasks.register("pubGet") { group = "build" - description = "Get packages for the playground frontend project" + description = "Get packages for the frontend project" doLast { exec { executable("flutter") @@ -59,7 +58,6 @@ tasks.register("format") { description = "Idiomatically format Dart source code" doLast { exec { - // Exact paths instead of "." so it does not go into playground_components executable("dart") args("format", "lib", "test") } diff --git a/playground/frontend/build.gradle b/playground/frontend/build.gradle index 27ca2c6ce064..a70799df4774 100644 --- a/playground/frontend/build.gradle +++ b/playground/frontend/build.gradle @@ -67,7 +67,6 @@ task analyze { doLast { exec { - // Exact paths instead of '.' so it does not go into playground_components executable("dart") args("analyze", "lib", "test") } @@ -76,7 +75,7 @@ task analyze { task pubGet { group = "build" - description = "Get packages for the playground frontend project" + description = "Get packages for the frontend project" doLast { exec { executable("flutter") @@ -90,7 +89,6 @@ task format { description = "Idiomatically format Dart source code" doLast { exec { - // Exact paths instead of '.' so it does not go into playground_components executable("dart") args("format", "lib", "test") } @@ -205,7 +203,7 @@ task copyDockerfileDependencies(type: Copy) { docker { group = "build" - description = "Build container for playground frontend application" + description = "Build container for the frontend project" name containerImageName( name: project.docker_image_default_repo_prefix + "playground-frontend", root: project.rootProject.hasProperty(["docker-repository-root"]) ? @@ -223,7 +221,7 @@ dockerPrepare.dependsOn copyDockerfileDependencies task("createConfig") { group = "build" - description = "Generate config for the playground frontend project" + description = "Generate config for the frontend project" doLast { def configFileName = "config.g.dart" def modulePath = project(":playground:frontend").projectDir.absolutePath From 6ebe89d2a1c518f498eb810df920cc1ce219d10a Mon Sep 17 00:00:00 2001 From: "darkhan.nausharipov" Date: Fri, 6 Jan 2023 17:11:54 +0600 Subject: [PATCH 4/4] removed goToContextLine after merge (#24563) --- .../frontend/lib/pages/tour/widgets/playground_demo.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/learning/tour-of-beam/frontend/lib/pages/tour/widgets/playground_demo.dart b/learning/tour-of-beam/frontend/lib/pages/tour/widgets/playground_demo.dart index 4b5347a24810..c8016a120caf 100644 --- a/learning/tour-of-beam/frontend/lib/pages/tour/widgets/playground_demo.dart +++ b/learning/tour-of-beam/frontend/lib/pages/tour/widgets/playground_demo.dart @@ -48,7 +48,6 @@ class PlaygroundDemoWidget extends StatelessWidget { first: SnippetEditor( controller: snippetController, isEditable: true, - goToContextLine: false, ), second: OutputWidget( playgroundController: playgroundController,