diff --git a/packages/examples/BUILD.bazel b/packages/examples/BUILD.bazel index 431b64beea5..626a45e20f5 100644 --- a/packages/examples/BUILD.bazel +++ b/packages/examples/BUILD.bazel @@ -1,10 +1,38 @@ +load("//tools:defaults2.bzl", "ts_config") + package(default_visibility = ["//visibility:public"]) exports_files([ "index.html", - "tsconfig-e2e.json", ]) +ts_config( + name = "tsconfig_build", + src = "tsconfig.json", + deps = [ + "//packages:tsconfig_build", + ], +) + +ts_config( + name = "tsconfig_test", + src = "tsconfig-test.json", + deps = [ + ":tsconfig_build", + "//:node_modules/@types/jasmine", + ], +) + +ts_config( + name = "tsconfig_e2e", + src = "tsconfig-e2e.json", + deps = [ + ":tsconfig_test", + "//:node_modules/@types/jasminewd2", + "//:node_modules/@types/node", + ], +) + filegroup( name = "files_for_docgen", srcs = [ diff --git a/packages/examples/common/BUILD.bazel b/packages/examples/common/BUILD.bazel index c2b1a8c647c..877ccc6c62f 100644 --- a/packages/examples/common/BUILD.bazel +++ b/packages/examples/common/BUILD.bazel @@ -1,34 +1,39 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module", "protractor_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "esbuild", "http_server", "protractor_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "common_examples", srcs = glob( ["**/*.ts"], exclude = ["**/*_spec.ts"], ), - deps = [ - "//packages/common", - "//packages/core", + interop_deps = [ "//packages/platform-browser", "//packages/platform-browser-dynamic", - "//packages/router", "//packages/zone.js/lib", - "@npm//rxjs", + ], + deps = [ + "//:node_modules/rxjs", + "//packages/common:common_rjs", + "//packages/core:core_rjs", + "//packages/router:router_rjs", ], ) -ts_library( +ts_project( name = "common_tests_lib", testonly = True, srcs = glob(["**/*_spec.ts"]), - tsconfig = "//packages/examples:tsconfig-e2e.json", - deps = [ - "//packages/examples/test-utils", + interop_deps = [ "//packages/private/testing", - "@npm//@types/jasminewd2", - "@npm//protractor", + ], + tsconfig = "//packages/examples:tsconfig_e2e", + deps = [ + "//:node_modules/@types/jasminewd2", + "//:node_modules/protractor", + "//packages/examples/test-utils:test-utils_rjs", ], ) diff --git a/packages/examples/core/BUILD.bazel b/packages/examples/core/BUILD.bazel index eaf9f890783..11bc3d8d1b6 100644 --- a/packages/examples/core/BUILD.bazel +++ b/packages/examples/core/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "jasmine_node_test", "ng_module", "protractor_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "esbuild", "http_server", "jasmine_node_test", "protractor_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "core_examples", srcs = glob( ["**/*.ts"], @@ -11,20 +12,22 @@ ng_module( "**/*_howto.ts", ], ), - deps = [ - "//packages/animations", - "//packages/core", - "//packages/forms", + interop_deps = [ "//packages/platform-browser", "//packages/platform-browser-dynamic", "//packages/platform-browser/animations", - "//packages/router", "//packages/zone.js/lib", - "@npm//rxjs", + ], + deps = [ + "//:node_modules/rxjs", + "//packages/animations:animations_rjs", + "//packages/core:core_rjs", + "//packages/forms:forms_rjs", + "//packages/router:router_rjs", ], ) -ts_library( +ts_project( name = "core_tests_lib", testonly = True, srcs = glob( @@ -32,20 +35,20 @@ ts_library( exclude = ["**/e2e_test/*"], ), deps = [ - "//packages/core", - "//packages/core/testing", + "//packages/core:core_rjs", + "//packages/core/testing:testing_rjs", ], ) -ts_library( +ts_project( name = "core_e2e_tests_lib", testonly = True, srcs = glob(["**/e2e_test/*_spec.ts"]), - tsconfig = "//packages/examples:tsconfig-e2e.json", + tsconfig = "//packages/examples:tsconfig_e2e", deps = [ - "//packages/examples/test-utils", - "@npm//@types/jasminewd2", - "@npm//protractor", + "//:node_modules/@types/jasminewd2", + "//:node_modules/protractor", + "//packages/examples/test-utils:test-utils_rjs", ], ) diff --git a/packages/examples/core/di/ts/contentChild/content_child_example.ts b/packages/examples/core/di/ts/contentChild/content_child_example.ts index e2d01c9263f..cdb0249a08c 100644 --- a/packages/examples/core/di/ts/contentChild/content_child_example.ts +++ b/packages/examples/core/di/ts/contentChild/content_child_example.ts @@ -19,7 +19,7 @@ export class Pane { @Component({ selector: 'tab', - template: `
pane: {{ pane?.id }}
`, + template: `
pane: {{ pane.id }}
`, standalone: false, }) export class Tab { diff --git a/packages/examples/core/di/ts/forward_ref/BUILD.bazel b/packages/examples/core/di/ts/forward_ref/BUILD.bazel index 335dbb63b79..fd778ff5c53 100644 --- a/packages/examples/core/di/ts/forward_ref/BUILD.bazel +++ b/packages/examples/core/di/ts/forward_ref/BUILD.bazel @@ -1,19 +1,19 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -# Note: The `forward_ref` example tests are built through this `ng_module` sub-target. +# Note: The `forward_ref` example tests are built through this `ng_project` sub-target. # This is done so that DI decorator/type metadata is processed manually by the compiler # ahead of time. We cannot rely on the official TypeScript decorator downlevel emit (for JIT), # as the output is not compatible with `forwardRef` and ES2015+. More details here: # https://github.com/angular/angular/commit/323651bd38909b0f4226bcb6c8f5abafa91cf9d9. # https://github.com/microsoft/TypeScript/issues/27519. -ng_module( +ng_project( name = "forward_ref_tests_lib", testonly = True, srcs = ["forward_ref_spec.ts"], visibility = ["//packages/examples/core:__pkg__"], - deps = ["//packages/core"], + deps = ["//packages/core:core_rjs"], ) filegroup( diff --git a/packages/examples/core/testing/ts/BUILD.bazel b/packages/examples/core/testing/ts/BUILD.bazel index 885756eb09d..d32cda81a75 100644 --- a/packages/examples/core/testing/ts/BUILD.bazel +++ b/packages/examples/core/testing/ts/BUILD.bazel @@ -1,17 +1,17 @@ -load("//tools:defaults.bzl", "jasmine_node_test", "ts_library") +load("//tools:defaults.bzl", "jasmine_node_test") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "fake_async_lib", + testonly = True, srcs = [ "example_spec.ts", "fake_async.ts", ], - deps = [ + interop_deps = [ "//packages/core/testing", - "@npm//@types/jasmine", - "@npm//@types/node", ], ) diff --git a/packages/examples/forms/BUILD.bazel b/packages/examples/forms/BUILD.bazel index e5608526622..650904cf3ed 100644 --- a/packages/examples/forms/BUILD.bazel +++ b/packages/examples/forms/BUILD.bazel @@ -1,34 +1,39 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module", "protractor_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "esbuild", "http_server", "protractor_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "forms_examples", srcs = glob( ["**/*.ts"], exclude = ["**/*_spec.ts"], ), - deps = [ - "//packages/core", - "//packages/forms", + interop_deps = [ "//packages/platform-browser", "//packages/platform-browser-dynamic", - "//packages/router", "//packages/zone.js/lib", - "@npm//rxjs", + ], + deps = [ + "//:node_modules/rxjs", + "//packages/core:core_rjs", + "//packages/forms:forms_rjs", + "//packages/router:router_rjs", ], ) -ts_library( +ts_project( name = "forms_e2e_tests_lib", testonly = True, srcs = glob(["**/e2e_test/*_spec.ts"]), - tsconfig = "//packages/examples:tsconfig-e2e.json", - deps = [ - "//packages/examples/test-utils", + interop_deps = [ "//packages/private/testing", - "@npm//@types/jasminewd2", - "@npm//protractor", + ], + tsconfig = "//packages/examples:tsconfig_e2e", + deps = [ + "//:node_modules/@types/jasminewd2", + "//:node_modules/protractor", + "//packages/examples/test-utils:test-utils_rjs", ], ) diff --git a/packages/examples/platform-browser/BUILD.bazel b/packages/examples/platform-browser/BUILD.bazel index f594500164f..67df18392fa 100644 --- a/packages/examples/platform-browser/BUILD.bazel +++ b/packages/examples/platform-browser/BUILD.bazel @@ -1,16 +1,18 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "platform_browser_examples", srcs = glob(["**/*.ts"]), - deps = [ + interop_deps = [ "//packages/compiler", - "//packages/core", "//packages/platform-browser", "//packages/platform-browser-dynamic", ], + deps = [ + "//packages/core:core_rjs", + ], ) filegroup( diff --git a/packages/examples/router/BUILD.bazel b/packages/examples/router/BUILD.bazel index 9df62d556b0..b65750368d0 100644 --- a/packages/examples/router/BUILD.bazel +++ b/packages/examples/router/BUILD.bazel @@ -1,16 +1,18 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "router", srcs = glob( ["**/*.ts"], ), - deps = [ - "//packages/core", + interop_deps = [ "//packages/platform-browser", - "//packages/router", + ], + deps = [ + "//packages/core:core_rjs", + "//packages/router:router_rjs", ], ) diff --git a/packages/examples/router/activated-route/BUILD.bazel b/packages/examples/router/activated-route/BUILD.bazel index 84c44956acb..d1a3d371895 100644 --- a/packages/examples/router/activated-route/BUILD.bazel +++ b/packages/examples/router/activated-route/BUILD.bazel @@ -1,19 +1,22 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module") +load("//tools:defaults.bzl", "esbuild", "http_server") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "router_activated_route_examples", srcs = glob( ["**/*.ts"], ), - deps = [ - "//packages/core", - "//packages/platform-browser", + interop_deps = [ "//packages/platform-browser-dynamic", - "//packages/router", "//packages/zone.js/lib", - "@npm//rxjs", + "//packages/platform-browser", + ], + deps = [ + "//:node_modules/rxjs", + "//packages/core:core_rjs", + "//packages/router:router_rjs", ], ) diff --git a/packages/examples/router/testing/BUILD.bazel b/packages/examples/router/testing/BUILD.bazel index bbaf09459fd..12a738521e3 100644 --- a/packages/examples/router/testing/BUILD.bazel +++ b/packages/examples/router/testing/BUILD.bazel @@ -1,17 +1,18 @@ -load("//tools:defaults.bzl", "jasmine_node_test", "karma_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "jasmine_node_test", "karma_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "test_lib", testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ - "//packages/common", - "//packages/core", - "//packages/core/testing", - "//packages/router", - "//packages/router/testing", + "//packages/common:common_rjs", + "//packages/core:core_rjs", + "//packages/core/testing:testing_rjs", + "//packages/router:router_rjs", + "//packages/router/testing:testing_rjs", ], ) diff --git a/packages/examples/service-worker/push/BUILD.bazel b/packages/examples/service-worker/push/BUILD.bazel index fc6ff49c9e3..802d8a68ab7 100644 --- a/packages/examples/service-worker/push/BUILD.bazel +++ b/packages/examples/service-worker/push/BUILD.bazel @@ -1,32 +1,37 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module", "protractor_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "esbuild", "http_server", "protractor_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "sw_push_examples", srcs = glob( ["**/*.ts"], exclude = ["**/*_spec.ts"], ), - deps = [ - "//packages/core", + interop_deps = [ "//packages/platform-browser", "//packages/platform-browser-dynamic", - "//packages/service-worker", "//packages/zone.js/lib", ], + deps = [ + "//packages/core:core_rjs", + "//packages/service-worker:service-worker_rjs", + ], ) -ts_library( +ts_project( name = "sw_push_e2e_tests_lib", testonly = True, srcs = glob(["**/e2e_test/*_spec.ts"]), - tsconfig = "//packages/examples:tsconfig-e2e.json", - deps = [ - "//packages/examples/test-utils", + interop_deps = [ "//packages/private/testing", - "@npm//@types/jasminewd2", - "@npm//protractor", + ], + tsconfig = "//packages/examples:tsconfig_e2e", + deps = [ + "//:node_modules/@types/jasminewd2", + "//:node_modules/protractor", + "//packages/examples/test-utils:test-utils_rjs", ], ) diff --git a/packages/examples/service-worker/registration-options/BUILD.bazel b/packages/examples/service-worker/registration-options/BUILD.bazel index b08650809dd..5d1a3a64750 100644 --- a/packages/examples/service-worker/registration-options/BUILD.bazel +++ b/packages/examples/service-worker/registration-options/BUILD.bazel @@ -1,32 +1,37 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module", "protractor_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "esbuild", "http_server", "protractor_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "sw_registration_options_examples", srcs = glob( ["**/*.ts"], exclude = ["**/*_spec.ts"], ), - deps = [ - "//packages/core", + interop_deps = [ "//packages/platform-browser", "//packages/platform-browser-dynamic", - "//packages/service-worker", "//packages/zone.js/lib", ], + deps = [ + "//packages/core:core_rjs", + "//packages/service-worker:service-worker_rjs", + ], ) -ts_library( +ts_project( name = "sw_registration_options_e2e_tests_lib", testonly = True, srcs = glob(["**/e2e_test/*_spec.ts"]), - tsconfig = "//packages/examples:tsconfig-e2e.json", - deps = [ - "//packages/examples/test-utils", + interop_deps = [ "//packages/private/testing", - "@npm//@types/jasminewd2", - "@npm//protractor", + ], + tsconfig = "//packages/examples:tsconfig_e2e", + deps = [ + "//:node_modules/@types/jasminewd2", + "//:node_modules/protractor", + "//packages/examples/test-utils:test-utils_rjs", ], ) diff --git a/packages/examples/test-utils/BUILD.bazel b/packages/examples/test-utils/BUILD.bazel index 60f587804f7..65619a36f99 100644 --- a/packages/examples/test-utils/BUILD.bazel +++ b/packages/examples/test-utils/BUILD.bazel @@ -1,12 +1,12 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "test-utils", srcs = ["index.ts"], deps = [ - "@npm//@types/selenium-webdriver", + "//:node_modules/@types/selenium-webdriver", ], ) diff --git a/packages/examples/testing/BUILD.bazel b/packages/examples/testing/BUILD.bazel index bd496251610..2aac6c0afd6 100644 --- a/packages/examples/testing/BUILD.bazel +++ b/packages/examples/testing/BUILD.bazel @@ -1,14 +1,14 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "testing_examples", + testonly = True, srcs = glob(["**/*.ts"]), - tsconfig = "//packages:tsconfig-test", deps = [ - "@npm//@types/jasmine", - "@npm//@types/node", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", ], ) diff --git a/packages/examples/tsconfig-e2e.json b/packages/examples/tsconfig-e2e.json index ed38112bb4a..7727251c9a7 100644 --- a/packages/examples/tsconfig-e2e.json +++ b/packages/examples/tsconfig-e2e.json @@ -1,6 +1,6 @@ { + "extends": "./tsconfig-test.json", "compilerOptions": { - "lib": ["es2015"], "types": ["node", "jasminewd2"] } } diff --git a/packages/examples/tsconfig-test.json b/packages/examples/tsconfig-test.json new file mode 100644 index 00000000000..e30ea297884 --- /dev/null +++ b/packages/examples/tsconfig-test.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": ["jasmine"] + } +} \ No newline at end of file diff --git a/packages/examples/tsconfig.json b/packages/examples/tsconfig.json new file mode 100644 index 00000000000..328f728abfe --- /dev/null +++ b/packages/examples/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../tsconfig-build.json" +} \ No newline at end of file diff --git a/packages/examples/upgrade/BUILD.bazel b/packages/examples/upgrade/BUILD.bazel index af3d16a31b0..fe94f510bb7 100644 --- a/packages/examples/upgrade/BUILD.bazel +++ b/packages/examples/upgrade/BUILD.bazel @@ -1,7 +1,29 @@ +load("//tools:defaults2.bzl", "ts_config") + package(default_visibility = ["//visibility:public"]) exports_files([ - "tsconfig-build.json", + "tsconfig.json", "start-server.js", "index.html", ]) + +ts_config( + name = "tsconfig_build", + src = "tsconfig.json", + deps = [ + "//:node_modules/@types/angular", + "//:node_modules/@types/jasmine", + "//:node_modules/tslib", + ], +) + +ts_config( + name = "tsconfig_e2e", + src = "tsconfig-e2e.json", + deps = [ + ":tsconfig_build", + "//:node_modules/@types/jasminewd2", + "//:node_modules/@types/node", + ], +) diff --git a/packages/examples/upgrade/tsconfig-build.json b/packages/examples/upgrade/tsconfig-build.json deleted file mode 100644 index eb79d48482c..00000000000 --- a/packages/examples/upgrade/tsconfig-build.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "importHelpers": true, - "lib": ["dom", "es2015"], - "types": ["angular"] - } -} diff --git a/packages/examples/upgrade/tsconfig-e2e.json b/packages/examples/upgrade/tsconfig-e2e.json new file mode 100644 index 00000000000..0b30dff819b --- /dev/null +++ b/packages/examples/upgrade/tsconfig-e2e.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "lib": ["es2015"], + "types": ["node", "jasminewd2"] + } +} \ No newline at end of file diff --git a/packages/examples/upgrade/tsconfig.json b/packages/examples/upgrade/tsconfig.json new file mode 100644 index 00000000000..2f58826b7b2 --- /dev/null +++ b/packages/examples/upgrade/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "lib": ["dom", "es2015"], + "types": ["angular", "jasmine"], + "declaration": true, + "sourceMap": true, + "paths": { + "@angular/*": ["../../*/index"], + }, + "experimentalDecorators": true, + "target": "es2015", + "moduleResolution": "node", + } +} diff --git a/packages/examples/upgrade/upgrade_example.bzl b/packages/examples/upgrade/upgrade_example.bzl index 33934a3ecce..35598a80fc8 100644 --- a/packages/examples/upgrade/upgrade_example.bzl +++ b/packages/examples/upgrade/upgrade_example.bzl @@ -1,4 +1,5 @@ -load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module", "protractor_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "esbuild", "http_server", "protractor_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") """ Macro that can be used to create the Bazel targets for an "upgrade" example. Since the @@ -8,33 +9,53 @@ load("//tools:defaults.bzl", "esbuild", "http_server", "ng_module", "protractor_ """ def create_upgrade_example_targets(name, srcs, e2e_srcs, entry_point, assets = []): - ng_module( + #ng_module( + # name = "%s_sources" % name, + # srcs = srcs, + # deps = [ + # "@npm//@types/angular", + # "@npm//@types/jasmine", + # "//packages/core", + # "//packages/platform-browser", + # "//packages/upgrade/static", + # "//packages/core/testing", + # "//packages/upgrade/static/testing", + # ], + # tsconfig = "//packages/examples/upgrade:tsconfig.json", + #) + + ng_project( name = "%s_sources" % name, srcs = srcs, - deps = [ - "@npm//@types/angular", - "@npm//@types/jasmine", - "//packages/core", + interop_deps = [ "//packages/platform-browser", "//packages/platform-browser-dynamic", - "//packages/upgrade/static", - "//packages/core/testing", - "//packages/upgrade/static/testing", ], - tsconfig = "//packages/examples/upgrade:tsconfig-build.json", + deps = [ + "//:node_modules/@types/angular", + "//:node_modules/@types/jasmine", + "//:node_modules/tslib", + "//packages/core:core_rjs", + "//packages/core/testing:testing_rjs", + "//packages/upgrade/static:static_rjs", + "//packages/upgrade/static/testing:testing_rjs", + ], + tsconfig = "//packages/examples/upgrade:tsconfig_build", ) - ts_library( + ts_project( name = "%s_e2e_lib" % name, srcs = e2e_srcs, testonly = True, - deps = [ - "@npm//@types/jasminewd2", - "@npm//protractor", - "//packages/examples/test-utils", + interop_deps = [ "//packages/private/testing", ], - tsconfig = "//packages/examples:tsconfig-e2e.json", + deps = [ + "//:node_modules/@types/jasminewd2", + "//:node_modules/protractor", + "//packages/examples/test-utils:test-utils_rjs", + ], + tsconfig = "//packages/examples/upgrade:tsconfig_e2e", ) esbuild( diff --git a/tools/defaults2.bzl b/tools/defaults2.bzl index 43573845a00..a78eeda9208 100644 --- a/tools/defaults2.bzl +++ b/tools/defaults2.bzl @@ -34,6 +34,9 @@ def _determine_tsconfig(testonly): if native.package_name().startswith("packages/common/locales/generate-locales-tool"): return "//packages:tsconfig_test" if testonly else "//packages/common/locales/generate-locales-tool:tsconfig_build" + if native.package_name().startswith("packages/examples"): + return "//packages/examples:tsconfig_test" if testonly else "//packages/examples:tsconfig_build" + if native.package_name().startswith("packages"): return "//packages:tsconfig_test" if testonly else "//packages:tsconfig_build"