mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 09:17:43 +03:00
ccacddbbc6
* Add documentation for upgrading using DAML script and triggers This PR adds documentation for how you can automate the upgrade process from the Coin example using DAML Script and DAML Triggers. Having written this, I think we might want to add some integration tests for this but it’s rather complex to setup since it ties together so many pieces so I’d like to leave it out for now. We do at least test that the code compiles and we all knows that code that compiles never has bugs. changelog_begin changelog_end * Apply suggestions from code review Co-Authored-By: associahedron <231829+associahedron@users.noreply.github.com> Co-authored-by: associahedron <231829+associahedron@users.noreply.github.com>
721 lines
24 KiB
Python
721 lines
24 KiB
Python
# Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
|
|
load("@os_info//:os_info.bzl", "is_linux", "is_windows")
|
|
load("//rules_daml:daml.bzl", "daml_build_test", "daml_compile", "daml_test")
|
|
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
|
|
load("@build_environment//:configuration.bzl", "mvn_version", "sdk_version")
|
|
|
|
nodejs_binary(
|
|
name = "grunt",
|
|
data = [
|
|
"@npm//grunt-cli",
|
|
"@npm//matchdep",
|
|
],
|
|
entry_point = "@npm//:node_modules/grunt-cli/bin/grunt",
|
|
)
|
|
|
|
genrule(
|
|
name = "theme",
|
|
srcs = glob(
|
|
["theme/**"],
|
|
exclude = [
|
|
"theme/bower_components/**",
|
|
"theme/node_modules/**",
|
|
"theme/da_theme/**",
|
|
],
|
|
) + [
|
|
# we need to list all the transitive dependencies here because of https://github.com/bazelbuild/rules_nodejs/issues/1553
|
|
"@npm//acorn",
|
|
"@npm//acorn-dynamic-import",
|
|
"@npm//acorn-node",
|
|
"@npm//acorn-walk",
|
|
"@npm//ansi-regex",
|
|
"@npm//ansi-styles",
|
|
"@npm//anymatch",
|
|
"@npm//assert",
|
|
"@npm//async",
|
|
"@npm//async-each",
|
|
"@npm//balanced-match",
|
|
"@npm//basic-auth",
|
|
"@npm//batch",
|
|
"@npm//binary-extensions",
|
|
"@npm//body",
|
|
"@npm//brace-expansion",
|
|
"@npm//browserify",
|
|
"@npm//browserify-cache-api",
|
|
"@npm//browserify-incremental",
|
|
"@npm//browserify-zlib",
|
|
"@npm//browser-pack",
|
|
"@npm//browser-resolve",
|
|
"@npm//buffer",
|
|
"@npm//buffer-from",
|
|
"@npm//cached-path-relative",
|
|
"@npm//chalk",
|
|
"@npm//chokidar",
|
|
"@npm//coffeescript",
|
|
"@npm//color-convert",
|
|
"@npm//colors",
|
|
"@npm//combine-source-map",
|
|
"@npm//concat-map",
|
|
"@npm//concat-stream",
|
|
"@npm//connect",
|
|
"@npm//connect-livereload",
|
|
"@npm//console-browserify",
|
|
"@npm//constants-browserify",
|
|
"@npm//continuable-cache",
|
|
"@npm//convert-source-map",
|
|
"@npm//core-util-is",
|
|
"@npm//cross-spawn",
|
|
"@npm//crypto-browserify",
|
|
"@npm//dargs",
|
|
"@npm//dash-ast",
|
|
"@npm//dateformat",
|
|
"@npm//defined",
|
|
"@npm//depd",
|
|
"@npm//deps-sort",
|
|
"@npm//destroy",
|
|
"@npm//detective",
|
|
"@npm//domain-browser",
|
|
"@npm//duplexer",
|
|
"@npm//duplexer2",
|
|
"@npm//ee-first",
|
|
"@npm//encodeurl",
|
|
"@npm//error",
|
|
"@npm//escape-html",
|
|
"@npm//escape-string-regexp",
|
|
"@npm//etag",
|
|
"@npm//eventemitter2",
|
|
"@npm//events",
|
|
"@npm//exit",
|
|
"@npm//faye-websocket",
|
|
"@npm//figures",
|
|
"@npm//file-sync-cmp",
|
|
"@npm//findup-sync",
|
|
"@npm//fresh",
|
|
"@npm//fs.realpath",
|
|
"@npm//function-bind",
|
|
"@npm//gaze",
|
|
"@npm//get-assigned-identifiers",
|
|
"@npm//getobject",
|
|
"@npm//glob",
|
|
"@npm//glob-parent",
|
|
"@npm//globule",
|
|
"@npm//graceful-fs",
|
|
"@npm//grunt",
|
|
"@npm//grunt-banner",
|
|
"@npm//grunt-browserify",
|
|
"@npm//grunt-contrib-clean",
|
|
"@npm//grunt-contrib-connect",
|
|
"@npm//grunt-contrib-copy",
|
|
"@npm//grunt-contrib-sass",
|
|
"@npm//grunt-contrib-uglify",
|
|
"@npm//grunt-contrib-watch",
|
|
"@npm//grunt-exec",
|
|
"@npm//grunt-legacy-log",
|
|
"@npm//grunt-legacy-log-utils",
|
|
"@npm//grunt-legacy-util",
|
|
"@npm//grunt-open",
|
|
"@npm//gzip-size",
|
|
"@npm//has",
|
|
"@npm//has-ansi",
|
|
"@npm//has-flag",
|
|
"@npm//hooker",
|
|
"@npm//htmlescape",
|
|
"@npm//http-parser-js",
|
|
"@npm//https-browserify",
|
|
"@npm//iconv-lite",
|
|
"@npm//inflight",
|
|
"@npm//inherits",
|
|
"@npm//inline-source-map",
|
|
"@npm//insert-module-globals",
|
|
"@npm//is-binary-path",
|
|
"@npm//is-number-like",
|
|
"@npm//is-wsl",
|
|
"@npm//jsonparse",
|
|
"@npm//json-stable-stringify",
|
|
"@npm//JSONStream",
|
|
"@npm//js-yaml",
|
|
"@npm//labeled-stream-splicer",
|
|
"@npm//lodash",
|
|
"@npm//lodash.isfinite",
|
|
"@npm//lodash.memoize",
|
|
"@npm//lru-cache",
|
|
"@npm//matchdep",
|
|
"@npm//maxmin",
|
|
"@npm//mime-db",
|
|
"@npm//mime-types",
|
|
"@npm//minimatch",
|
|
"@npm//mkdirp",
|
|
"@npm//module-deps",
|
|
"@npm//morgan",
|
|
"@npm//node-http2",
|
|
"@npm//nopt",
|
|
"@npm//normalize-path",
|
|
"@npm//number-is-nan",
|
|
"@npm//object-assign",
|
|
"@npm//once",
|
|
"@npm//on-finished",
|
|
"@npm//on-headers",
|
|
"@npm//opn",
|
|
"@npm//os-browserify",
|
|
"@npm//parents",
|
|
"@npm//parseurl",
|
|
"@npm//path-browserify",
|
|
"@npm//path-dirname",
|
|
"@npm//path-is-absolute",
|
|
"@npm//path-platform",
|
|
"@npm//portscanner",
|
|
"@npm//pretty-bytes",
|
|
"@npm//process",
|
|
"@npm//process-nextick-args",
|
|
"@npm//querystring-es3",
|
|
"@npm//readable-stream",
|
|
"@npm//readdirp",
|
|
"@npm//read-only-stream",
|
|
"@npm//remove-trailing-separator",
|
|
"@npm//rimraf",
|
|
"@npm//safe-buffer",
|
|
"@npm//safe-json-parse",
|
|
"@npm//safer-buffer",
|
|
"@npm//serve-index",
|
|
"@npm//shasum",
|
|
"@npm//sprintf-js",
|
|
"@npm//statuses",
|
|
"@npm//stream-browserify",
|
|
"@npm//stream-combiner2",
|
|
"@npm//stream-http",
|
|
"@npm//stream-splicer",
|
|
"@npm//string_decoder",
|
|
"@npm//string-template",
|
|
"@npm//strip-ansi",
|
|
"@npm//supports-color",
|
|
"@npm//syntax-error",
|
|
"@npm//through",
|
|
"@npm//through2",
|
|
"@npm//timers-browserify",
|
|
"@npm//tiny-lr",
|
|
"@npm//tty-browserify",
|
|
"@npm//uglify-js",
|
|
"@npm//umd",
|
|
"@npm//undeclared-identifiers",
|
|
"@npm//underscore.string",
|
|
"@npm//unpipe",
|
|
"@npm//upath",
|
|
"@npm//uri-path",
|
|
"@npm//url",
|
|
"@npm//util",
|
|
"@npm//util-deprecate",
|
|
"@npm//utils-merge",
|
|
"@npm//vm-browserify",
|
|
"@npm//watchify",
|
|
"@npm//websocket-driver",
|
|
"@npm//websocket-extensions",
|
|
"@npm//wrappy",
|
|
"@npm//xtend",
|
|
],
|
|
outs = ["da_theme.tar.gz"],
|
|
cmd = """
|
|
cp -rL docs/theme theme
|
|
cd theme
|
|
|
|
# Make the node_modules available
|
|
ln -s ../external/npm/node_modules .
|
|
|
|
# Run sass and grunt
|
|
../$(location @sass_nix//:bin/sass) \
|
|
-I bower_components_static/bourbon/dist \
|
|
-I bower_components_static/neat/app/assets/stylesheets \
|
|
-I bower_components_static/font-awesome/scss \
|
|
-I bower_components_static/wyrm/sass \
|
|
--style compressed \
|
|
--sourcemap=none \
|
|
--update \
|
|
sass:da_theme/static/css
|
|
../$(location :grunt) build
|
|
|
|
tar c da_theme \
|
|
--owner=1000 \
|
|
--group=1000 \
|
|
--mtime=2000-01-01\ 00:00Z \
|
|
--no-acls \
|
|
--no-xattrs \
|
|
--no-selinux \
|
|
--sort=name \
|
|
| gzip -n > ../$(location da_theme.tar.gz)
|
|
""",
|
|
tools = [
|
|
":grunt",
|
|
"@sass_nix//:bin/sass",
|
|
],
|
|
) if not is_windows else None
|
|
|
|
genrule(
|
|
name = "sources",
|
|
srcs = glob(["source/**"]) + [
|
|
"//compiler/damlc:daml-base-rst-docs",
|
|
"//triggers/daml:daml-trigger-rst-docs",
|
|
"//daml-script/daml:daml-script-rst-docs",
|
|
"//ledger-api/grpc-definitions:docs",
|
|
"//:LICENSE",
|
|
"//:NOTICES",
|
|
],
|
|
outs = ["source.tar.gz"],
|
|
cmd = """
|
|
cp -rL docs/source source
|
|
|
|
# Copy in Stdlib
|
|
cp -rL $(location //compiler/damlc:daml-base-rst-docs) source/daml/reference/base.rst
|
|
|
|
# Copy in daml-trigger documentation
|
|
cp -rL $(location //triggers/daml:daml-trigger-rst-docs) source/triggers/trigger-docs.rst
|
|
|
|
# Copy in daml-script documentation
|
|
cp -rL $(location //daml-script/daml:daml-script-rst-docs) source/daml-script/daml-script-docs.rst
|
|
|
|
# Copy in Protobufs
|
|
cp -rL $(location //ledger-api/grpc-definitions:docs) source/app-dev/grpc/proto-docs.rst
|
|
|
|
# Copy in License and Notices
|
|
cp -L $(location //:LICENSE) source/LICENSE
|
|
cp -L $(location //:NOTICES) source/NOTICES
|
|
|
|
tar c source \
|
|
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\ 00:00Z --sort=name \
|
|
| gzip -n > $(location source.tar.gz)
|
|
""",
|
|
)
|
|
|
|
genrule(
|
|
name = "pdf-docs",
|
|
srcs = glob([
|
|
"configs/pdf/**",
|
|
"configs/static/pygments_daml_lexer.py",
|
|
"configs/static/typescript.py",
|
|
]) + [
|
|
":sources",
|
|
],
|
|
outs = ["DigitalAssetSDK.pdf"],
|
|
cmd = ("""
|
|
export LOCALE_ARCHIVE="$$PWD/$(location @glibc_locales//:locale-archive)"
|
|
""" if is_linux else "") + """
|
|
set -euo pipefail
|
|
# Set up tools
|
|
export PATH="$$( cd "$$(dirname "$(location @imagemagick_nix//:bin/convert)")" ; pwd -P )":$$PATH
|
|
|
|
# Copy files into the right structure and remove symlinks
|
|
tar -zxf $(location sources) -C .
|
|
cp -L docs/configs/pdf/index.rst source/
|
|
cp -L docs/configs/pdf/conf.py source/
|
|
cp -L docs/configs/pdf/logo.png source/
|
|
cp -rL docs/configs/static ./
|
|
|
|
# Build with Sphinx
|
|
sed -i "s,__VERSION__,"{sdk}"," source/conf.py
|
|
export LC_ALL=en_US.UTF-8
|
|
export LANG=en_US.UTF-8
|
|
$(location @sphinx_nix//:bin/sphinx-build) -b latex source out
|
|
|
|
# Copy in fonts and build with lualatex
|
|
cp -L docs/configs/pdf/fonts/* out/
|
|
cd out
|
|
# run twice to generate all references properly (this is a latex thing...)
|
|
../$(location @texlive_nix//:bin/lualatex) -halt-on-error -interaction=batchmode --shell-escape *.tex
|
|
../$(location @texlive_nix//:bin/lualatex) -halt-on-error -interaction=batchmode --shell-escape *.tex
|
|
|
|
# Move output to target
|
|
mv DigitalAssetSDK.pdf ../$(location DigitalAssetSDK.pdf)""".format(sdk = sdk_version),
|
|
tags = ["pdfdocs"],
|
|
tools =
|
|
[
|
|
"@texlive_nix//:bin/lualatex",
|
|
"@sphinx_nix//:bin/sphinx-build",
|
|
"@imagemagick_nix//:bin/convert",
|
|
] + (["@glibc_locales//:locale-archive"] if is_linux else []),
|
|
) if not is_windows else None
|
|
|
|
genrule(
|
|
name = "docs-no-pdf",
|
|
srcs = glob([
|
|
"configs/html/**",
|
|
"configs/static/pygments_daml_lexer.py",
|
|
"configs/static/typescript.py",
|
|
]) + [
|
|
":sources",
|
|
":theme",
|
|
"//compiler/damlc:daml-base-rst-docs",
|
|
"//compiler/damlc:daml-base-hoogle-docs",
|
|
"//language-support/java:javadoc",
|
|
"//language-support/ts/daml-react:docs",
|
|
"//language-support/ts/daml-ledger:docs",
|
|
"//language-support/ts/daml-types:docs",
|
|
"//templates:templates-tarball",
|
|
],
|
|
outs = ["html-only.tar.gz"],
|
|
cmd = ("""
|
|
export LOCALE_ARCHIVE="$$PWD/$(location @glibc_locales//:locale-archive)"
|
|
""" if is_linux else "") + """
|
|
# Copy files into the right structure and remove symlinks
|
|
mkdir build
|
|
cp -rL docs build
|
|
tar -zxf $(location sources) -C build/docs
|
|
|
|
# Copy in theme
|
|
mkdir -p build/docs/theme
|
|
tar -zxf $(location :theme) -C build/docs/theme
|
|
|
|
# Copy templates for code snippets in getting started guide
|
|
mkdir -p build/docs/source/getting-started/code
|
|
tar -zxf $(location //templates:templates-tarball) -C build/docs/source/getting-started/code/
|
|
|
|
# Build with Sphinx
|
|
cd build
|
|
sed -i "s,__VERSION__,"{sdk}"," docs/configs/html/conf.py
|
|
export LC_ALL=en_US.UTF-8
|
|
export LANG=en_US.UTF-8
|
|
WARNINGS=$$(../$(location @sphinx_nix//:bin/sphinx-build) -c docs/configs/html docs/source html 2>&1 | \
|
|
grep -Ei "warning:" || true)
|
|
|
|
if [ "$$WARNINGS" != "" ]; then
|
|
echo "$$WARNINGS"
|
|
exit 1
|
|
fi
|
|
|
|
# Copy Javadoc using unzip to avoid having to know the path to the 'jar' binary. Note flag to overwrite
|
|
unzip -o ../$(locations //language-support/java:javadoc) -d html/app-dev/bindings-java/javadocs
|
|
# Remove JAR metadata
|
|
rm -r html/app-dev/bindings-java/javadocs/META-INF
|
|
|
|
# Copy generated documentation for typescript libraries
|
|
mkdir -p html/app-dev/bindings-ts/daml-react
|
|
mkdir -p html/app-dev/bindings-ts/daml-ledger
|
|
mkdir -p html/app-dev/bindings-ts/daml-types
|
|
tar -xzf ../$(location //language-support/ts/daml-react:docs) --strip-components 1 -C html/app-dev/bindings-ts/daml-react/
|
|
tar -xzf ../$(location //language-support/ts/daml-ledger:docs) --strip-components 1 -C html/app-dev/bindings-ts/daml-ledger/
|
|
tar -xzf ../$(location //language-support/ts/daml-types:docs) --strip-components 1 -C html/app-dev/bindings-ts/daml-types/
|
|
|
|
# Copy in hoogle DB
|
|
mkdir -p html/hoogle_db
|
|
cp -rL ../$(location //compiler/damlc:daml-base-hoogle-docs) html/hoogle_db/base.txt
|
|
|
|
tar c html \
|
|
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\ 00:00Z --sort=name \
|
|
| gzip -n > ../$(location html-only.tar.gz)
|
|
""".format(sdk = sdk_version),
|
|
tools =
|
|
["@sphinx_nix//:bin/sphinx-build"] +
|
|
(["@glibc_locales//:locale-archive"] if is_linux else []),
|
|
) if not is_windows else None
|
|
|
|
genrule(
|
|
name = "redirects",
|
|
srcs = [
|
|
"redirects.map",
|
|
"redirect_template.html",
|
|
],
|
|
outs = ["redirects.tar.gz"],
|
|
cmd = """
|
|
mkdir redirects
|
|
while read l; do
|
|
from=$$(awk -F' -> ' '{print $$1}' <<<$$l)
|
|
to=$$(awk -F' -> ' '{print $$2}' <<<"$$l")
|
|
if [ $$to ]
|
|
then
|
|
mkdir -p redirects/$$(dirname $$from)
|
|
cp -L docs/redirect_template.html redirects/$$from
|
|
sed -i -e "s,__URL__,$${to}," redirects/$$from
|
|
fi
|
|
done <docs/redirects.map
|
|
tar c redirects \
|
|
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\ 00:00Z --sort=name \
|
|
| gzip -n > $(location redirects.tar.gz)
|
|
""",
|
|
)
|
|
|
|
genrule(
|
|
name = "docs",
|
|
srcs = [
|
|
":docs-no-pdf",
|
|
":pdf-docs",
|
|
":redirects",
|
|
"error.html",
|
|
],
|
|
outs = ["html.tar.gz"],
|
|
cmd = """
|
|
VERSION_DATE=$$(cat bazel-out/stable-status.txt | grep STABLE_VERSION_DATE | head -1 | cut -f 2 -d' ')
|
|
tar -zxf $(location :redirects)
|
|
tar -zxf $(location :docs-no-pdf)
|
|
cp -rn redirects/* html
|
|
cp -L docs/error.html html
|
|
cd html
|
|
find . -name '*.html' | sort | sed -e 's,^\\./,https://docs.daml.com/,' > sitemap
|
|
SMHEAD=\"{head}\"
|
|
SMITEM=\"{item}\"
|
|
SMFOOT=\"{foot}\"
|
|
echo $$SMHEAD > sitemap.xml
|
|
while read item; do
|
|
echo $$SMITEM | sed -e "s,%DATE%,$${{VERSION_DATE}}," | sed -e "s,%LOC%,$${{item}}," >> sitemap.xml
|
|
done < sitemap
|
|
rm sitemap
|
|
echo $$SMFOOT >> sitemap.xml
|
|
echo {{ \\"{version}\\" : \\"{version}\\" }} > versions.json
|
|
cd ..
|
|
cp -L $(location :pdf-docs) html/_downloads
|
|
# Remove Sphinx build products
|
|
rm -rf .buildinfo .doctrees objects.inv
|
|
tar c html \
|
|
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\ 00:00Z --sort=name \
|
|
| gzip -n > $(location html.tar.gz)
|
|
""".format(
|
|
head = """<?xml version='1.0' encoding='UTF-8'?><urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'>""",
|
|
item = """<url><loc>%LOC%</loc><lastmod>%DATE%</lastmod><changefreq>daily</changefreq><priority>0.8</priority></url>""",
|
|
foot = """</urlset>""",
|
|
version = sdk_version,
|
|
),
|
|
stamp = 1,
|
|
tags = ["pdfdocs"],
|
|
) if not is_windows else None
|
|
|
|
filegroup(
|
|
name = "daml-assistant-iou-setup",
|
|
srcs = glob(
|
|
["source/app-dev/bindings-java/quickstart/template-root/*"],
|
|
# excluding quickstart-java stuff
|
|
exclude = [
|
|
"source/app-dev/bindings-java/quickstart/template-root/src",
|
|
"source/app-dev/bindings-java/quickstart/template-root/pom.xml",
|
|
],
|
|
exclude_directories = 0,
|
|
),
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
genrule(
|
|
name = "quickstart-java",
|
|
srcs = glob(["source/app-dev/bindings-java/quickstart/template-root/**"]),
|
|
outs = ["quickstart-java.tar.gz"],
|
|
cmd = """
|
|
mkdir -p quickstart-java
|
|
cp -rL docs/source/app-dev/bindings-java/quickstart/template-root/* quickstart-java/
|
|
sed -i "s/__VERSION__/{mvn}/" quickstart-java/pom.xml
|
|
tar c quickstart-java \
|
|
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\ 00:00Z --sort=name \
|
|
| gzip -n > $@
|
|
""".format(mvn = mvn_version),
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
load("//language-support/java/codegen:codegen.bzl", "dar_to_java")
|
|
|
|
genrule(
|
|
name = "quickstart-model",
|
|
srcs = [
|
|
"//docs:source/app-dev/bindings-java/quickstart/template-root/daml/Main.daml",
|
|
"//docs:source/app-dev/bindings-java/quickstart/template-root/daml/Iou.daml",
|
|
"//docs:source/app-dev/bindings-java/quickstart/template-root/daml/IouTrade.daml",
|
|
"//docs:source/app-dev/bindings-java/quickstart/template-root/daml/Setup.daml",
|
|
"//daml-script/daml:daml-script.dar",
|
|
],
|
|
outs = ["quickstart-model.dar"],
|
|
cmd = """
|
|
set -eou pipefail
|
|
TMP_DIR=$$(mktemp -d)
|
|
mkdir -p $$TMP_DIR/daml
|
|
cp -R -L $(location //docs:source/app-dev/bindings-java/quickstart/template-root/daml/Main.daml) $$TMP_DIR/daml/
|
|
cp -R -L $(location //docs:source/app-dev/bindings-java/quickstart/template-root/daml/Iou.daml) $$TMP_DIR/daml/
|
|
cp -R -L $(location //docs:source/app-dev/bindings-java/quickstart/template-root/daml/IouTrade.daml) $$TMP_DIR/daml/
|
|
cp -R -L $(location //docs:source/app-dev/bindings-java/quickstart/template-root/daml/Setup.daml) $$TMP_DIR/daml/
|
|
cp -L $(location //daml-script/daml:daml-script.dar) $$TMP_DIR/
|
|
cat << EOF > $$TMP_DIR/daml.yaml
|
|
sdk-version: {sdk}
|
|
name: quickstart-model
|
|
source: daml
|
|
version: 0.0.1
|
|
dependencies:
|
|
- daml-stdlib
|
|
- daml-prim
|
|
- daml-script.dar
|
|
build-options: ["--ghc-option", "-Werror"]
|
|
EOF
|
|
$(location //compiler/damlc) build --project-root=$$TMP_DIR -o $$PWD/$(location quickstart-model.dar)
|
|
rm -rf $$TMP_DIR
|
|
""".format(sdk = sdk_version),
|
|
tools = ["//compiler/damlc"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
dar_to_java(
|
|
name = "quickstart-model",
|
|
src = "quickstart-model.dar",
|
|
package_prefix = "com.daml.quickstart.model",
|
|
)
|
|
|
|
java_binary(
|
|
name = "quickstart-java-lib",
|
|
srcs = glob(["source/app-dev/bindings-java/quickstart/template-root/src/main/java/**/*.java"]) + [":quickstart-model-srcjar"],
|
|
main_class = "com.daml.quickstart.iou.IouMain",
|
|
deps = [
|
|
"//daml-lf/archive:daml_lf_dev_archive_java_proto",
|
|
"//language-support/java/bindings:bindings-java",
|
|
"//language-support/java/bindings-rxjava",
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:com_google_code_gson_gson",
|
|
"@maven//:com_google_guava_guava",
|
|
"@maven//:com_google_protobuf_protobuf_java",
|
|
"@maven//:com_sparkjava_spark_core",
|
|
"@maven//:io_reactivex_rxjava2_rxjava",
|
|
"@maven//:org_slf4j_slf4j_api",
|
|
],
|
|
)
|
|
|
|
daml_test(
|
|
name = "ledger-api-daml-test",
|
|
srcs = glob(["source/app-dev/code-snippets/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "bindings-java-daml-test",
|
|
srcs = glob(["source/app-dev/bindings-java/code-snippets/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "patterns-daml-test",
|
|
srcs = glob(["source/daml/patterns/daml/**/*.daml"]),
|
|
)
|
|
|
|
pkg_tar(
|
|
name = "daml-patterns",
|
|
srcs = glob(["source/daml/patterns/daml/**/*.daml"]) + ["source/daml/patterns/daml.yaml.template"],
|
|
strip_prefix = "/docs/source/daml/patterns",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
daml_test(
|
|
name = "daml-studio-daml-test",
|
|
srcs = glob(["source/daml/daml-studio/daml/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "daml-ref-daml-test",
|
|
timeout = "long",
|
|
srcs = glob(["source/daml/code-snippets/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "introduction-daml-test",
|
|
srcs = glob(["source/getting-started/introduction/code/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "quickstart-daml-test",
|
|
srcs = glob(
|
|
include = ["source/app-dev/bindings-java/quickstart/template-root/daml/**/*.daml"],
|
|
# excluding Setup.daml, because it doesn't contain any scenarios,
|
|
# and we cannot conveniently add daml-script as a dependency for daml_test
|
|
exclude = ["source/app-dev/bindings-java/quickstart/template-root/daml/Setup.daml"],
|
|
),
|
|
)
|
|
|
|
daml_test(
|
|
name = "ledger-model-daml-test",
|
|
srcs = glob(["source/concepts/ledger-model/daml/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "java-bindings-docs-daml-test",
|
|
srcs = glob(["source/app-dev/bindings-java/daml/**/*.daml"]),
|
|
)
|
|
|
|
daml_test(
|
|
name = "daml-intro-daml-test",
|
|
srcs = glob(["source/daml/intro/daml/**/*.daml"]),
|
|
)
|
|
|
|
daml_build_test(
|
|
name = "daml-upgrade-example-v1",
|
|
project_dir = "source/upgrade/example/coin-1.0.0",
|
|
)
|
|
|
|
daml_build_test(
|
|
name = "daml-upgrade-example-v2",
|
|
project_dir = "source/upgrade/example/coin-2.0.0",
|
|
)
|
|
|
|
daml_build_test(
|
|
name = "daml-upgrade-example-upgrade",
|
|
dar_dict = {
|
|
":daml-upgrade-example-v1": "path/to/coin-1.0.0.dar",
|
|
":daml-upgrade-example-v2": "path/to/coin-2.0.0.dar",
|
|
},
|
|
project_dir = "source/upgrade/example/coin-upgrade",
|
|
)
|
|
|
|
daml_build_test(
|
|
name = "daml-upgrade-example-upgrade-script",
|
|
dar_dict = {
|
|
":daml-upgrade-example-v1": "path/to/coin-1.0.0.dar",
|
|
":daml-upgrade-example-v2": "path/to/coin-2.0.0.dar",
|
|
":daml-upgrade-example-upgrade": "path/to/coin-upgrade-1.0.0.dar",
|
|
"//daml-script/daml:daml-script.dar": "path/to/daml-script.dar",
|
|
},
|
|
project_dir = "source/upgrade/example/coin-initiate-upgrade",
|
|
)
|
|
|
|
daml_build_test(
|
|
name = "daml-upgrade-example-upgrade-trigger",
|
|
dar_dict = {
|
|
":daml-upgrade-example-v1": "path/to/coin-1.0.0.dar",
|
|
":daml-upgrade-example-v2": "path/to/coin-2.0.0.dar",
|
|
":daml-upgrade-example-upgrade": "path/to/coin-upgrade-1.0.0.dar",
|
|
"//triggers/daml:daml-trigger.dar": "path/to/daml-trigger.dar",
|
|
},
|
|
project_dir = "source/upgrade/example/coin-upgrade-trigger",
|
|
)
|
|
|
|
filegroup(
|
|
name = "daml-intro-1",
|
|
srcs = glob(
|
|
["source/daml/intro/daml/1_Token/**/*"],
|
|
# excluding quickstart-java stuff
|
|
exclude = [
|
|
"source/app-dev/bindings-java/quickstart/template-root/src",
|
|
"source/app-dev/bindings-java/quickstart/template-root/pom.xml",
|
|
],
|
|
exclude_directories = 0,
|
|
),
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
pkg_tar(
|
|
name = "daml-intro-templates",
|
|
srcs = glob(["source/daml/intro/daml/**"]),
|
|
strip_prefix = "source/daml/intro/daml",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
pkg_tar(
|
|
name = "copy-trigger-template",
|
|
srcs = glob(
|
|
["source/triggers/template-root/**"],
|
|
exclude = ["**/*~"],
|
|
),
|
|
strip_prefix = "source/triggers/template-root",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
pkg_tar(
|
|
name = "script-example-template",
|
|
srcs = glob(
|
|
["source/daml-script/template-root/**"],
|
|
exclude = ["**/*~"],
|
|
),
|
|
strip_prefix = "source/daml-script/template-root",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
exports_files([
|
|
"source/triggers/template-root/src/CopyTrigger.daml",
|
|
"source/daml-script/template-root/src/ScriptExample.daml",
|
|
])
|