mirror of
https://github.com/digital-asset/daml.git
synced 2024-11-10 00:35:25 +03:00
6ec61bf506
* Write proper SDK version in DAR manifest for snapshots Currently, we don't write the actual SDK version in the DAR manifest but rather the version that has been sanitized for `ghc-pkg`. For proper releases, these are identical but for snapshots the latter does not contain the `-snapshot` part and the commit hash because `ghc-pkg` can only handle numeric components. This PR changes this behaviour such that we write the actual unsanitized SDK version in the DAR manifest. The implementation might look a bit unintuitive. However, we use the `PackageSdkVersion` type for exactly two things: 1. Writing it into the manifest. 2. Using it to initialize the package database. As mentioned above, the former should not be sanitized whereas the latter should. So far, we've done the sanitization right after reading the SDK version from `daml.yaml` or `DAML_SDK_VERSION`. Now, we do the sanitization only in the code concerned with initializing the package database. CHANGELOG_BEGIN [DAML Compiler] - Bugfix: write the proper SDK version in the DAR manifest for snapshot releases instead of a sanitized version CHANGELOG_END * Drop SdkVersion.toGhcPkgVersion entirely CHANGELOG_BEGIN CHANGELOG_END
243 lines
4.8 KiB
Python
243 lines
4.8 KiB
Python
package(default_visibility = ["//:__subpackages__"])
|
|
|
|
load(
|
|
"@rules_haskell//haskell:defs.bzl",
|
|
"haskell_toolchain",
|
|
)
|
|
load(
|
|
"@rules_haskell//haskell:c2hs.bzl",
|
|
"c2hs_toolchain",
|
|
)
|
|
load("//bazel_tools:haskell.bzl", "da_haskell_library", "da_haskell_repl")
|
|
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"],
|
|
)
|
|
|
|
#
|
|
# 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",
|
|
])
|
|
|
|
# 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",
|
|
],
|
|
)
|