mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
7e05dc7932
This is necessary to at least attempt an upgrade to 2.13 and generally, I want to keep our rulesets up2date. rules-scala forces the version of scalatest so we have to bump that at the same time. This requires changes to basically all Scala test suites since the import structure has changed and a bunch of things (primarily scalacheck support) got split out. Apologies for the giant PR, I don’t see a way to keep it smaller. changelog_begin changelog_end
337 lines
15 KiB
Python
337 lines
15 KiB
Python
# Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#
|
|
# The dependencies of the daml workspace.
|
|
# This allows using the daml workspace externally
|
|
# from another bazel workspace.
|
|
#
|
|
# For example, another Bazel project can depend on
|
|
# targets in the daml repository by doing:
|
|
# ---
|
|
# local_repository(
|
|
# name = "com_github_digital_asset_daml",
|
|
# path = "/path/to/daml"
|
|
# )
|
|
# load("@com_github_digital_asset_daml//:deps.bzl", "daml_deps")
|
|
# daml_deps()
|
|
# ---
|
|
#
|
|
# A 3rd-party consumer would also need to register relevant
|
|
# toolchains and repositories in order to build targets.
|
|
# That is, copy some setup calls from WORKSPACE into the
|
|
# other WORKSPACE.
|
|
#
|
|
# Make sure to reference repository local files with the full
|
|
# prefix: @com_github_digital_asset_daml//..., as these won't
|
|
# be resolvable from external workspaces otherwise.
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
|
|
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
|
|
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
|
|
|
rules_scala_version = "67a7ac178a73d1d5ff4c2b0663a8eda6dfcbbc56"
|
|
rules_scala_sha256 = "95054009fd938ac7ef53a20619f94a5408d8ae74eb5b318cd150a3ecb1a6086f"
|
|
|
|
rules_haskell_version = "130121dac45dc726175fbb15230c02325b6fe73a"
|
|
rules_haskell_sha256 = "423112ebcd17ae609caf6b76c75d5785f58a41a197fb62545d46f89bd66b508c"
|
|
rules_nixpkgs_version = "0dd4c8a085b108592b0193ad1e237e2e07f715ac"
|
|
rules_nixpkgs_sha256 = "f2073135db911ee94b70da1e2288dd2445976a1b20a1edfe67773b29751f50a9"
|
|
buildifier_version = "3.3.0"
|
|
buildifier_sha256 = "f11fc80da0681a6d64632a850346ed2d4e5cbb0908306d9a2a2915f707048a10"
|
|
zlib_version = "1.2.11"
|
|
zlib_sha256 = "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff"
|
|
rules_nodejs_version = "2.0.1"
|
|
rules_nodejs_sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3"
|
|
rules_jvm_external_version = "3.3"
|
|
rules_jvm_external_sha256 = "d85951a92c0908c80bd8551002d66cb23c3434409c814179c0ff026b53544dab"
|
|
rules_go_version = "0.23.6"
|
|
rules_go_sha256 = "8663604808d2738dc615a2c3eb70eba54a9a982089dd09f6ffe5d0e75771bc4f"
|
|
rules_bazel_common_version = "9e3880428c1837db9fb13335ed390b7e33e346a7"
|
|
rules_bazel_common_sha256 = "48a209fed9575c9d108eaf11fb77f7fe6178a90135e4d60cac6f70c2603aa53a"
|
|
|
|
# Recent davl.
|
|
davl_version = "f2d7480d118f32626533d6a150a8ee7552cc0222" # 2020-03-23, "Deploy upgrade to SDK 0.13.56-snapshot.20200318",https://github.com/digital-asset/davl/pull/233/commits.
|
|
davl_sha256 = "3e8ae2a05724093e33b7f0363381e81a7e8e9655ccb3aa47ad540ea87e814321"
|
|
|
|
# Pinned davl relied on by damlc packaging tests.
|
|
davl_v3_version = "51d3977be2ab22f7f4434fd4692ca2e17a7cce23"
|
|
davl_v3_sha256 = "e8e76e21b50fb3adab36df26045b1e8c3ee12814abc60f137d39b864d2eae166"
|
|
|
|
# daml cheat sheet
|
|
daml_cheat_sheet_version = "9d44b550de6c5d23096116da37ccb2fb4a90f7af" # 2020-06-30
|
|
daml_cheat_sheet_sha256 = "6429b73e33a7a937048c3d1316182bff0cb34b6aed30e2915875da698ee4d5c9"
|
|
|
|
def daml_deps():
|
|
if "rules_haskell" not in native.existing_rules():
|
|
http_archive(
|
|
name = "rules_haskell",
|
|
strip_prefix = "rules_haskell-%s" % rules_haskell_version,
|
|
urls = ["https://github.com/tweag/rules_haskell/archive/%s.tar.gz" % rules_haskell_version],
|
|
patches = [
|
|
# Update and remove this patch once this is upstreamed.
|
|
# See https://github.com/tweag/rules_haskell/pull/1281
|
|
"@com_github_digital_asset_daml//bazel_tools:haskell-strict-source-names.patch",
|
|
# The fake libs issue should be fixed in upstream rules_haskell
|
|
# or GHC. Remove this patch once that's available.
|
|
"@com_github_digital_asset_daml//bazel_tools:haskell-windows-remove-fake-libs.patch",
|
|
# This is a daml specific patch and not upstreamable.
|
|
"@com_github_digital_asset_daml//bazel_tools:haskell-windows-extra-libraries.patch",
|
|
# This should be made configurable in rules_haskell.
|
|
# Remove this patch once that's available.
|
|
"@com_github_digital_asset_daml//bazel_tools:haskell-opt.patch",
|
|
],
|
|
patch_args = ["-p1"],
|
|
sha256 = rules_haskell_sha256,
|
|
)
|
|
|
|
if "io_tweag_rules_nixpkgs" not in native.existing_rules():
|
|
http_archive(
|
|
name = "io_tweag_rules_nixpkgs",
|
|
strip_prefix = "rules_nixpkgs-%s" % rules_nixpkgs_version,
|
|
urls = ["https://github.com/tweag/rules_nixpkgs/archive/%s.tar.gz" % rules_nixpkgs_version],
|
|
sha256 = rules_nixpkgs_sha256,
|
|
patches = [
|
|
# On CI and locally we observe occasional segmantation faults
|
|
# of nix. A known issue since Nix 2.2.2 is that HTTP2 support
|
|
# can cause such segmentation faults. Since Nix 2.3.2 it is
|
|
# possible to disable HTTP2 via a command-line flag, which
|
|
# reportedly solves the issue. See
|
|
# https://github.com/NixOS/nix/issues/2733#issuecomment-518324335
|
|
"@com_github_digital_asset_daml//bazel_tools:nixpkgs-disable-http2.patch",
|
|
],
|
|
patch_args = ["-p1"],
|
|
)
|
|
|
|
if "com_github_madler_zlib" not in native.existing_rules():
|
|
http_archive(
|
|
name = "com_github_madler_zlib",
|
|
build_file = "@com_github_digital_asset_daml//3rdparty/c:zlib.BUILD",
|
|
strip_prefix = "zlib-{}".format(zlib_version),
|
|
urls = ["https://github.com/madler/zlib/archive/v{}.tar.gz".format(zlib_version)],
|
|
sha256 = zlib_sha256,
|
|
)
|
|
|
|
if "io_bazel_rules_go" not in native.existing_rules():
|
|
http_archive(
|
|
name = "io_bazel_rules_go",
|
|
urls = [
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v{version}/rules_go-v{version}.tar.gz".format(version = rules_go_version),
|
|
"https://github.com/bazelbuild/rules_go/releases/download/v{version}/rules_go-v{version}.tar.gz".format(version = rules_go_version),
|
|
],
|
|
sha256 = rules_go_sha256,
|
|
)
|
|
|
|
if "rules_jvm_external" not in native.existing_rules():
|
|
http_archive(
|
|
name = "rules_jvm_external",
|
|
strip_prefix = "rules_jvm_external-{}".format(rules_jvm_external_version),
|
|
sha256 = rules_jvm_external_sha256,
|
|
url = "https://github.com/bazelbuild/rules_jvm_external/archive/{}.zip".format(rules_jvm_external_version),
|
|
)
|
|
|
|
if "io_bazel_rules_scala" not in native.existing_rules():
|
|
http_archive(
|
|
name = "io_bazel_rules_scala",
|
|
url = "https://github.com/bazelbuild/rules_scala/archive/%s.zip" % rules_scala_version,
|
|
type = "zip",
|
|
strip_prefix = "rules_scala-%s" % rules_scala_version,
|
|
sha256 = rules_scala_sha256,
|
|
patches = [
|
|
"@com_github_digital_asset_daml//bazel_tools:scala-escape-jvmflags.patch",
|
|
],
|
|
patch_args = ["-p1"],
|
|
)
|
|
|
|
if "com_google_protobuf" not in native.existing_rules():
|
|
http_archive(
|
|
name = "com_google_protobuf",
|
|
sha256 = "60d2012e3922e429294d3a4ac31f336016514a91e5a63fd33f35743ccfe1bd7d",
|
|
# changing this version needs to be in sync with protobuf-java and grpc dependencies in bazel-java-deps.bzl
|
|
strip_prefix = "protobuf-3.11.0",
|
|
urls = ["https://github.com/google/protobuf/archive/v3.11.0.zip"],
|
|
patches = [
|
|
],
|
|
patch_args = ["-p1"],
|
|
)
|
|
|
|
if "bazel_gazelle" not in native.existing_rules():
|
|
http_archive(
|
|
name = "bazel_gazelle",
|
|
urls = [
|
|
"https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/v0.19.1/bazel-gazelle-v0.19.1.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.19.1/bazel-gazelle-v0.19.1.tar.gz",
|
|
],
|
|
sha256 = "86c6d481b3f7aedc1d60c1c211c6f76da282ae197c3b3160f54bd3a8f847896f",
|
|
)
|
|
|
|
if "io_bazel_rules_sass" not in native.existing_rules():
|
|
http_archive(
|
|
name = "io_bazel_rules_sass",
|
|
sha256 = "7b9c9a88099d00dbb16be359c3b1946309d99673220c6b39c7e8bda8ecc692f8",
|
|
strip_prefix = "rules_sass-1.24.4",
|
|
urls = [
|
|
"https://github.com/bazelbuild/rules_sass/archive/1.24.4.zip",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.24.4.zip",
|
|
],
|
|
)
|
|
|
|
# Fetch rules_nodejs so we can install our npm dependencies
|
|
if "build_bazel_rules_nodejs" not in native.existing_rules():
|
|
http_archive(
|
|
name = "build_bazel_rules_nodejs",
|
|
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/{}/rules_nodejs-{}.tar.gz".format(rules_nodejs_version, rules_nodejs_version)],
|
|
sha256 = rules_nodejs_sha256,
|
|
patches = [
|
|
# Work around for https://github.com/bazelbuild/rules_nodejs/issues/1565
|
|
"@com_github_digital_asset_daml//bazel_tools:rules_nodejs_npm_cli_path.patch",
|
|
"@com_github_digital_asset_daml//bazel_tools:rules_nodejs_node_dependency.patch",
|
|
],
|
|
patch_args = ["-p1"],
|
|
)
|
|
|
|
if "com_github_grpc_grpc" not in native.existing_rules():
|
|
# This should be kept in sync with the grpc version we get from Nix.
|
|
http_archive(
|
|
name = "com_github_grpc_grpc",
|
|
strip_prefix = "grpc-1.23.1",
|
|
urls = ["https://github.com/grpc/grpc/archive/v1.23.1.tar.gz"],
|
|
sha256 = "dd7da002b15641e4841f20a1f3eb1e359edb69d5ccf8ac64c362823b05f523d9",
|
|
patches = [
|
|
"@com_github_digital_asset_daml//bazel_tools:grpc-bazel-apple.patch",
|
|
"@com_github_digital_asset_daml//bazel_tools:grpc-bazel-mingw.patch",
|
|
],
|
|
patch_args = ["-p1"],
|
|
)
|
|
|
|
if "io_grpc_grpc_java" not in native.existing_rules():
|
|
http_archive(
|
|
name = "io_grpc_grpc_java",
|
|
strip_prefix = "grpc-java-1.21.0",
|
|
urls = ["https://github.com/grpc/grpc-java/archive/v1.21.0.tar.gz"],
|
|
sha256 = "9bc289e861c6118623fcb931044d843183c31d0e4d53fc43c4a32b56d6bb87fa",
|
|
patches = [
|
|
"@com_github_digital_asset_daml//bazel_tools:grpc-java-plugin-visibility.patch",
|
|
],
|
|
patch_args = ["-p1"],
|
|
)
|
|
|
|
if "com_github_johnynek_bazel_jar_jar" not in native.existing_rules():
|
|
http_archive(
|
|
name = "com_github_johnynek_bazel_jar_jar",
|
|
sha256 = "841ae424eec3f322d411eb49d949622cc84787cb4189a30698fa9adadb98deac",
|
|
strip_prefix = "bazel_jar_jar-20dbf71f09b1c1c2a8575a42005a968b38805519",
|
|
urls = ["https://github.com/johnynek/bazel_jar_jar/archive/20dbf71f09b1c1c2a8575a42005a968b38805519.zip"], # Latest commit SHA as at 2019/02/13
|
|
)
|
|
|
|
if "com_github_googleapis_googleapis" not in native.existing_rules():
|
|
http_archive(
|
|
name = "com_github_googleapis_googleapis",
|
|
strip_prefix = "googleapis-6c48ab5aef47dc14e02e2dc718d232a28067129d",
|
|
urls = ["https://github.com/googleapis/googleapis/archive/6c48ab5aef47dc14e02e2dc718d232a28067129d.tar.gz"],
|
|
sha256 = "70d7be6ad49b4424313aad118c8622aab1c5fdd5a529d4215d3884ff89264a71",
|
|
)
|
|
|
|
# Buildifier.
|
|
# It is written in Go and hence needs rules_go to be available.
|
|
if "com_github_bazelbuild_buildtools" not in native.existing_rules():
|
|
http_archive(
|
|
name = "com_github_bazelbuild_buildtools",
|
|
sha256 = buildifier_sha256,
|
|
strip_prefix = "buildtools-{}".format(buildifier_version),
|
|
url = "https://github.com/bazelbuild/buildtools/archive/{}.tar.gz".format(buildifier_version),
|
|
)
|
|
|
|
native.bind(
|
|
name = "guava",
|
|
actual = "@com_google_guava_guava//jar",
|
|
)
|
|
native.bind(
|
|
name = "gson",
|
|
actual = "@com_google_code_gson_gson//jar",
|
|
)
|
|
|
|
if "com_github_google_bazel_common" not in native.existing_rules():
|
|
http_archive(
|
|
name = "com_github_google_bazel_common",
|
|
sha256 = rules_bazel_common_sha256,
|
|
strip_prefix = "bazel-common-{}".format(rules_bazel_common_version),
|
|
urls = ["https://github.com/google/bazel-common/archive/{}.zip".format(rules_bazel_common_version)],
|
|
)
|
|
|
|
maybe(
|
|
http_archive,
|
|
name = "rules_pkg",
|
|
urls = [
|
|
"https://github.com/bazelbuild/rules_pkg/releases/download/0.2.6-1/rules_pkg-0.2.6.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.6/rules_pkg-0.2.6.tar.gz",
|
|
],
|
|
sha256 = "aeca78988341a2ee1ba097641056d168320ecc51372ef7ff8e64b139516a4937",
|
|
)
|
|
|
|
if "com_github_grpc_ecosystem_grpc_health_probe_binary" not in native.existing_rules():
|
|
http_file(
|
|
name = "com_github_grpc_ecosystem_grpc_health_probe_binary",
|
|
sha256 = "bfbe82e34645e91cdf3bacbb0d2dc7786f3c3cc4da6b64a446e5fdfb7bb0429f",
|
|
downloaded_file_path = "grpc-health-probe",
|
|
urls = [
|
|
"https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.3.1/grpc_health_probe-linux-amd64",
|
|
],
|
|
executable = True,
|
|
)
|
|
|
|
if "davl-v3" not in native.existing_rules():
|
|
http_archive(
|
|
name = "davl-v3",
|
|
strip_prefix = "davl-{}".format(davl_v3_version),
|
|
urls = ["https://github.com/digital-asset/davl/archive/{}.tar.gz".format(davl_v3_version)],
|
|
sha256 = davl_v3_sha256,
|
|
build_file_content = """
|
|
package(default_visibility = ["//visibility:public"])
|
|
exports_files(["released/davl-v3.dar"])
|
|
""",
|
|
)
|
|
|
|
if "davl" not in native.existing_rules():
|
|
http_archive(
|
|
name = "davl",
|
|
strip_prefix = "davl-{}".format(davl_version),
|
|
urls = ["https://github.com/digital-asset/davl/archive/{}.tar.gz".format(davl_version)],
|
|
sha256 = davl_sha256,
|
|
build_file_content = """
|
|
package(default_visibility = ["//visibility:public"])
|
|
exports_files(["released/davl-v4.dar", "released/davl-v5.dar", "released/davl-upgrade-v3-v4.dar", "released/davl-upgrade-v4-v5.dar"])
|
|
""",
|
|
)
|
|
|
|
if "daml-cheat-sheet" not in native.existing_rules():
|
|
http_archive(
|
|
name = "daml-cheat-sheet",
|
|
strip_prefix = "daml-cheat-sheet-{}".format(daml_cheat_sheet_version),
|
|
urls = ["https://github.com/digital-asset/daml-cheat-sheet/archive/{}.tar.gz".format(daml_cheat_sheet_version)],
|
|
sha256 = daml_cheat_sheet_sha256,
|
|
build_file_content = """
|
|
package(default_visibility = ["//visibility:public"])
|
|
genrule(
|
|
name = "site",
|
|
srcs = ["_config.yml"] + glob(["**/*"],
|
|
exclude = ["_config.yml", "LICENSE", "WORKSPACE", "BUILD.bazel", "README.md"]),
|
|
outs = ["cheat-sheet.tar.gz"],
|
|
tools = ["@jekyll_nix//:bin/jekyll"],
|
|
cmd = '''
|
|
DIR=$$(dirname $(execpath _config.yml))
|
|
$(execpath @jekyll_nix//:bin/jekyll) build -s $$DIR
|
|
tar hc _site \\
|
|
--owner=1000 \\
|
|
--group=1000 \\
|
|
--mtime=2000-01-01\\ 00:00Z \\
|
|
--no-acls \\
|
|
--no-xattrs \\
|
|
--no-selinux \\
|
|
--sort=name \\
|
|
| gzip -n > $(OUTS)
|
|
''',
|
|
)
|
|
""",
|
|
)
|