Closed zoechi closed 7 years ago
Can you share an example of your generated BUILD file?
I thought I dealt with this by using the file name - but maybe that wasn't good enough:
https://github.com/dart-lang/bazel/blob/master/lib/src/bazelify/build.dart#L43
# Automatically generated by "pub global run bazel:bazelify".
# DO NOT MODIFY BY HAND
# Bazelify: 1 libraries.
load("@io_bazel_rules_dart//dart/build_rules:core.bzl", "dart_library")
# Bazelify: 3 web apps.
load("@io_bazel_rules_dart//dart/build_rules:ddc.bzl", "dart_ddc_bundle")
load("@io_bazel_rules_dart//dart/build_rules:dev_server.bzl", "dev_server")
load("@io_bazel_rules_dart//dart/build_rules:web.bzl", "dart_web_application")
# Bazelify: 1 binaries.
load("@io_bazel_rules_dart//dart/build_rules:vm.bzl", "dart_vm_binary")
package(default_visibility = ["//visibility:public"])
_PUB_DEPS = [
"@angular2//:angular2",
"@bootstrap_sass//:bootstrap_sass",
"@browser//:browser",
"@fhir_client_api//:fhir_client_api",
"@google_maps//:google_maps",
"@http//:http",
"@logging//:logging",
"@meta//:meta",
"@ng_bootstrap//:ng_bootstrap",
"@path//:path",
"@quiver//:quiver",
"@sass//:sass",
]
# Generated automatically for package:fhir_client
dart_library(
name = "fhir_client",
srcs = glob(["lib/**", "web/**"]),
deps = _PUB_DEPS,
pub_pkg_name = "fhir_client",
)
# Generated automatically for package:fhir_client|web/designer.dart
dart_web_application(
name = "designer",
srcs = glob(["web/**"]),
script_file = "web/designer.dart",
deps = _PUB_DEPS + [
":fhir_client",
],
)
dev_server(
name = "designer_dartium_serve",
deps = _PUB_DEPS + [
":fhir_client",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "designer_ddc_bundle",
entry_library = "web/designer.dart",
entry_module = ":fhir_client",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "designer_ddc_serve",
data = [":designer_ddc_bundle"],
)
# Generated automatically for package:fhir_client|web/index.dart
dart_web_application(
name = "index",
srcs = glob(["web/**"]),
script_file = "web/index.dart",
deps = _PUB_DEPS + [
":fhir_client",
],
)
dev_server(
name = "index_dartium_serve",
deps = _PUB_DEPS + [
":fhir_client",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "index_ddc_bundle",
entry_library = "web/index.dart",
entry_module = ":fhir_client",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "index_ddc_serve",
data = [":index_ddc_bundle"],
)
# Generated automatically for package:fhir_client|web/practitioner.dart
dart_web_application(
name = "practitioner",
srcs = glob(["web/**"]),
script_file = "web/practitioner.dart",
deps = _PUB_DEPS + [
":fhir_client",
],
)
dev_server(
name = "practitioner_dartium_serve",
deps = _PUB_DEPS + [
":fhir_client",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "practitioner_ddc_bundle",
entry_library = "web/practitioner.dart",
entry_module = ":fhir_client",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "practitioner_ddc_serve",
data = [":practitioner_ddc_bundle"],
)
# Generated automatically for package:fhir_client|bin/uploader.dart
dart_vm_binary(
name = "uploader",
srcs = glob(["bin/**"]),
script_file = "bin/uploader.dart",
deps = _PUB_DEPS + [
":fhir_client",
],
)
Can I have a copy of the error too?
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/ng_bootstrap/BUILD:89:1: dart_web_application rule 'main' in package '' conflicts with existing dart_web_application rule.
Seems to be caused by .bazelify/ng_bootstrap.BUILD
(not BUILD
) I had to remove the duplicates there to get rid of the error.
# Automatically generated by "pub global run bazel:bazelify".
# DO NOT MODIFY BY HAND
# Bazelify: 1 libraries.
load("@io_bazel_rules_dart//dart/build_rules:core.bzl", "dart_library")
# Bazelify: 17 web apps.
load("@io_bazel_rules_dart//dart/build_rules:ddc.bzl", "dart_ddc_bundle")
load("@io_bazel_rules_dart//dart/build_rules:dev_server.bzl", "dev_server")
load("@io_bazel_rules_dart//dart/build_rules:web.bzl", "dart_web_application")
package(default_visibility = ["//visibility:public"])
_PUB_DEPS = [
"@angular2//:angular2",
"@bootstrap_sass//:bootstrap_sass",
"@browser//:browser",
"@dart_to_js_script_rewriter//:dart_to_js_script_rewriter",
"@font_awesome//:font_awesome",
"@intl//:intl",
"@markdown//:markdown",
"@node_shims//:node_shims",
"@sass//:sass",
"@stream_transformers//:stream_transformers",
]
# Generated automatically for package:ng_bootstrap
dart_library(
name = "ng_bootstrap",
srcs = glob(["lib/**", "web/**"]),
deps = _PUB_DEPS,
pub_pkg_name = "ng_bootstrap",
)
# Generated automatically for package:ng_bootstrap|web/index.dart
dart_web_application(
name = "index",
srcs = glob(["web/**"]),
script_file = "web/index.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "index_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "index_ddc_bundle",
entry_library = "web/index.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "index_ddc_serve",
data = [":index_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/buttons/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/buttons/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/buttons/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/datepicker/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/datepicker/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/datepicker/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/typeahead/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/typeahead/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/typeahead/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/accordion/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/accordion/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/accordion/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/tooltip/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/tooltip/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/tooltip/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/tabsx/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/tabsx/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/tabsx/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/dropdown/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/dropdown/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/dropdown/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/timepicker/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/timepicker/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/timepicker/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/rating/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/rating/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/rating/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/carousel/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/carousel/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/carousel/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/tabs/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/tabs/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/tabs/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/pagination/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/pagination/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/pagination/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/modal/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/modal/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/modal/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/progress/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/progress/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/progress/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/alert/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/alert/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/alert/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
# Generated automatically for package:ng_bootstrap|web/components/collapse/main.dart
dart_web_application(
name = "main",
srcs = glob(["web/**"]),
script_file = "web/components/collapse/main.dart",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
)
dev_server(
name = "main_dartium_serve",
deps = _PUB_DEPS + [
":ng_bootstrap",
],
data = glob(["web/**"]),
)
dart_ddc_bundle(
name = "main_ddc_bundle",
entry_library = "web/components/collapse/main.dart",
entry_module = ":ng_bootstrap",
input_html = "web/index.html",
output_dir = "web",
)
dev_server(
name = "main_ddc_serve",
data = [":main_ddc_bundle"],
)
Might be caused because it's a path dependency.
I checked out markdown
to fix a strong mode error and added a dependency_override to use my local version. Now I get the same error for markdown
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:24:1: dart_vm_binary rule 'markdown' in package '' conflicts with existing dart_library rule.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/markdown.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/ast.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/block_parser.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/document.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/extension_set.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/html_renderer.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/inline_parser.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/util.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/markdown/BUILD:17:1: Target '@markdown//:lib/src/version.dart' contains an error and its package is in error and referenced by '@markdown//:markdown'.
ERROR: /home/zoechi/.cache/bazel/_bazel_zoechi/d7cc63dbd0d8e0618a44683ac56d1bee/external/ng_bootstrap/BUILD:28:1: Target '@markdown//:markdown' contains an error and its package is in error and referenced by '@ng_bootstrap//:ng_bootstrap'.
ERROR: Analysis of target '//:designer_ddc_serve' failed; build aborted.
INFO: Elapsed time: 0.337s
ERROR: Build failed. Not running target.
z
ng_bootstrap
also is a path dependency (but not with dependency_overrides
)
Ah I see, ng_bootstrap
has a bunch of main.dart.
We need to emit something like components_collapse_main
.
Are these needed at all? If I would want to run entrypoints from dependencies I would check out that project and run bazelify there.
https://github.com/dart-lang/bazel/pull/54 fixes a lot of issues with web app discovery, and should solve this issue (at least for web apps).
Should we skip checking for web apps at all in deps?
good question.... it might actually be cool to be able to run things under say the example
folder
If we want to have https://github.com/dart-lang/bazel/issues/56 work for dependencies too we'd have to solve this problem.
If we limit to a dart_library only for deps it'd be harder to get broken by your deps, but in an ideal world we'd work when bazelifying those packages directly and thats the same problem.
Closing now as I think the original issue is resolved.
I have 3 entry points in
web/
andbazelify
creates a rule for each. When I want to build or run I always get errors because of conflicting rules.I removed the duplicate rules in
BUILD
but now I get conflicts for rules of dependency packages./home/myuser/.cache/myuser/_bazel_myuser/d7cc63dbd0d8e0618a44683ac56d1bee/external/ng_bootstrap/BUILD:89:1: dart_web_application rule 'main' in package '' conflicts with existing dart_web_application rule.
ng_bootstrap
is a dependency and I don't care about it's entry points because its just the demo applications. Any hint how to work around? I'm just starting with bazel.