mirror of
https://github.com/digital-asset/daml.git
synced 2024-11-08 21:34:22 +03:00
66b407467f
* Try to upgrade protobuf docs plugin changelog_begin changelog_end * Fix extension number 65020 is already registered Building `//ledger-api/grpc-definitions:ledger-api-docs` [failed with](https://github.com/digital-asset/daml/issues/11761#issuecomment-978947565) ``` panic: proto: extension number 65020 is already registered on message google.protobuf.FieldOptions ``` Go dependencies are now pulled in via Gazelle. By default Gazelle will generate new proto rules for any `.proto` files encountered in third party Go dependencies. However, many of these already have pregenerated `.pb.go` files generate with the appropriate configuration. The problem can be avoided by configuring Gazelle to not generate new proto rules, but instead use pre-existing `.pb.go` files. For reference the field number is set in [go-proto-validators](32a686adf8/validator.proto (L19)
) which is an indirect dependency through protoc-gen-doc. In this case we need to update protoc-gen-validate to v0.6.2 to include4f41f10dde
which fixes unknown label errors. * ./fmt * Expose gRPC status.proto for Haskell bindings * Update Gazelle to support embedsrcs on Windows `protoc-gen-doc` relies on `go:embed` file embedding2dde01902b/resources.go (L8)
. Gazelle supports `embedsrcs`, however, it did not generate the attribute correctly on Windows due to the different directory separator. This is fixed in https://github.com/bazelbuild/bazel-gazelle/pull/1101. * Add gazelle to compatibility workspace It's loaded into `@daml`'s top-level `BUILD` file and ends up being a dependency of the compatibility workspace as well. * shift go_googleapis import * Delete dead code protobuf is imported transitively. * Document how to add Go dependencies Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org> Co-authored-by: Andreas Herrmann <andreas.herrmann@tweag.io>
287 lines
5.7 KiB
Python
287 lines
5.7 KiB
Python
package(default_visibility = ["//:__subpackages__"])
|
|
|
|
load(
|
|
"@rules_haskell//haskell:defs.bzl",
|
|
"haskell_toolchain",
|
|
)
|
|
load(
|
|
"@rules_haskell//haskell:c2hs.bzl",
|
|
"c2hs_toolchain",
|
|
)
|
|
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
|
|
load("//bazel_tools:haskell.bzl", "da_haskell_library", "da_haskell_repl")
|
|
load("//bazel_tools:scala.bzl", "da_scala_library")
|
|
load("@os_info//:os_info.bzl", "is_windows")
|
|
load("@build_environment//:configuration.bzl", "ghc_version", "mvn_version", "sdk_version")
|
|
|
|
exports_files([".hlint.yaml"])
|
|
|
|
config_setting(
|
|
name = "on_linux",
|
|
constraint_values = [
|
|
"@bazel_tools//platforms:linux",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "on_osx",
|
|
constraint_values = [
|
|
"@bazel_tools//platforms:osx",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "on_freebsd",
|
|
constraint_values = [
|
|
"@bazel_tools//platforms:freebsd",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "on_windows",
|
|
constraint_values = [
|
|
"@bazel_tools//platforms:windows",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "profiling_build",
|
|
values = {
|
|
"compilation_mode": "dbg",
|
|
},
|
|
)
|
|
|
|
load(
|
|
"@rules_haskell//haskell:c2hs.bzl",
|
|
"c2hs_toolchain",
|
|
)
|
|
|
|
c2hs_toolchain(
|
|
name = "c2hs-toolchain",
|
|
c2hs = "@stackage-exe//c2hs",
|
|
)
|
|
|
|
filegroup(
|
|
name = "node_modules",
|
|
srcs = glob(["node_modules/**/*"]),
|
|
)
|
|
|
|
config_setting(
|
|
name = "ghci_data",
|
|
define_values = {
|
|
"ghci_data": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "hie_bios_ghci",
|
|
define_values = {
|
|
"hie_bios_ghci": "True",
|
|
},
|
|
)
|
|
|
|
#
|
|
# Metadata
|
|
#
|
|
|
|
# The VERSION file is inlined in a few builds.
|
|
exports_files([
|
|
"NOTICES",
|
|
"LICENSE",
|
|
"CHANGELOG",
|
|
"tsconfig.json",
|
|
])
|
|
|
|
genrule(
|
|
name = "mvn_version_file",
|
|
outs = ["MVN_VERSION"],
|
|
cmd = "echo -n {mvn} > $@".format(mvn = mvn_version),
|
|
)
|
|
|
|
genrule(
|
|
name = "sdk-version-hs",
|
|
srcs = [],
|
|
outs = ["SdkVersion.hs"],
|
|
cmd = """
|
|
cat > $@ <<EOF
|
|
module SdkVersion where
|
|
|
|
import Module (stringToUnitId, UnitId)
|
|
|
|
sdkVersion :: String
|
|
sdkVersion = "{sdk}"
|
|
|
|
mvnVersion :: String
|
|
mvnVersion = "{mvn}"
|
|
|
|
damlStdlib :: UnitId
|
|
damlStdlib = stringToUnitId ("daml-stdlib-" ++ "{ghc}")
|
|
EOF
|
|
""".format(
|
|
ghc = ghc_version,
|
|
mvn = mvn_version,
|
|
sdk = sdk_version,
|
|
),
|
|
)
|
|
|
|
da_haskell_library(
|
|
name = "sdk-version-hs-lib",
|
|
srcs = [":sdk-version-hs"],
|
|
hackage_deps = [
|
|
"base",
|
|
"extra",
|
|
"ghc-lib-parser",
|
|
"split",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
genrule(
|
|
name = "sdk-version-scala",
|
|
srcs = [],
|
|
outs = ["SdkVersion.scala"],
|
|
cmd = """
|
|
cat > $@ <<EOF
|
|
package com.daml
|
|
|
|
object SdkVersion {{
|
|
val sdkVersion: String = "{sdk}"
|
|
|
|
val mvnVersion: String = "{mvn}"
|
|
}}
|
|
|
|
EOF
|
|
""".format(
|
|
mvn = mvn_version,
|
|
sdk = sdk_version,
|
|
),
|
|
)
|
|
|
|
da_scala_library(
|
|
name = "sdk-version-scala-lib",
|
|
srcs = [":sdk-version-scala"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
#
|
|
# Common aliases
|
|
#
|
|
|
|
alias(
|
|
name = "damlc",
|
|
actual = "//compiler/damlc:damlc",
|
|
)
|
|
|
|
alias(
|
|
name = "damlc@ghci",
|
|
actual = "//compiler/damlc:damlc@ghci",
|
|
)
|
|
|
|
alias(
|
|
name = "damlc-dist",
|
|
actual = "//compiler/damlc:damlc-dist",
|
|
)
|
|
|
|
alias(
|
|
name = "daml2js",
|
|
actual = "//language-support/ts/codegen:daml2js",
|
|
)
|
|
|
|
alias(
|
|
name = "daml2js@ghci",
|
|
actual = "//language-support/ts/codegen:daml2js@ghci",
|
|
)
|
|
|
|
alias(
|
|
name = "daml-lf-repl",
|
|
actual = "//daml-lf/repl:repl",
|
|
)
|
|
|
|
alias(
|
|
name = "bindings-java",
|
|
actual = "//language-support/java/bindings:bindings-java",
|
|
)
|
|
|
|
alias(
|
|
name = "yarn",
|
|
actual = "@nodejs//:yarn",
|
|
)
|
|
|
|
alias(
|
|
name = "java",
|
|
actual = "@local_jdk//:bin/java.exe" if is_windows else "@local_jdk//:bin/java",
|
|
)
|
|
|
|
exports_files([
|
|
".scalafmt.conf",
|
|
"maven_install_2.12.json",
|
|
"maven_install_2.13.json",
|
|
])
|
|
|
|
# Buildifier.
|
|
|
|
load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier")
|
|
|
|
buildifier_excluded_patterns = [
|
|
"./3rdparty/haskell/c2hs-package.bzl",
|
|
"./3rdparty/haskell/network-package.bzl",
|
|
"**/node_modules/*",
|
|
]
|
|
|
|
# Run this to check if BUILD files are well-formatted.
|
|
buildifier(
|
|
name = "buildifier",
|
|
exclude_patterns = buildifier_excluded_patterns,
|
|
mode = "check",
|
|
)
|
|
|
|
# Run this to fix the errors in BUILD files.
|
|
buildifier(
|
|
name = "buildifier-fix",
|
|
exclude_patterns = buildifier_excluded_patterns,
|
|
mode = "fix",
|
|
verbose = True,
|
|
)
|
|
|
|
# Default target for da-ghci, da-ghcid.
|
|
da_haskell_repl(
|
|
name = "repl",
|
|
testonly = True,
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":damlc",
|
|
"//compiler/daml-lf-ast:tests",
|
|
"//compiler/damlc/daml-doc:daml-doc-testing",
|
|
"//compiler/damlc/daml-ide-core:ide-testing",
|
|
"//compiler/damlc/stable-packages:generate-stable-package",
|
|
"//compiler/damlc/tests:daml-doctest",
|
|
"//compiler/damlc/tests:damlc-test",
|
|
"//compiler/damlc/tests:generate-simple-dalf",
|
|
"//compiler/damlc/tests:incremental",
|
|
"//compiler/damlc/tests:integration-v1dev",
|
|
"//compiler/damlc/tests:packaging",
|
|
"//daml-assistant:daml",
|
|
"//daml-assistant:test",
|
|
"//daml-assistant/daml-helper",
|
|
"//daml-assistant/daml-helper:test-deployment",
|
|
"//daml-assistant/daml-helper:test-tls",
|
|
"//daml-assistant/integration-tests",
|
|
"//language-support/hs/bindings:hs-ledger",
|
|
"//language-support/hs/bindings:test",
|
|
"//language-support/ts/codegen:daml2js",
|
|
],
|
|
)
|
|
|
|
load("@bazel_gazelle//:def.bzl", "gazelle")
|
|
|
|
gazelle(
|
|
name = "gazelle-update-repos",
|
|
args = [
|
|
"-from_file=go.mod",
|
|
"-to_macro=go_deps.bzl%go_deps",
|
|
"-prune",
|
|
"-build_file_proto_mode=disable",
|
|
],
|
|
command = "update-repos",
|
|
)
|