daml/templates
Andreas Herrmann cf24597e70
Factor out reproducibility flags for tar and gzip (#6884)
* Factor out tar/gzip reproducibility flags

* use mktgz in package-app

* Bazel managed tar/gzip

* Remove quiet = True

As stated in the comment this is no longer required with Bazel >= 3.0.

* Build package-app as a sh_binary

This way Bazel will manage the runtime dependencies tar, gzip, mktgz,
and patchelf.

package-app.sh changes directory so it needs to make sure that all paths
are absolute and that the runfiles tree/manifest location is forwarded
to programs called by package-app.sh.

* Avoid file path too long errors

* Fix readlink -f on MacOS

* Document abspath

changelog_begin
changelog_end

Co-authored-by: Andreas Herrmann <andreas.herrmann@tweag.io>
2020-08-05 14:27:14 +00:00
..
create-daml-app Respect project name in create-daml-app (#6694) 2020-07-13 17:30:21 +02:00
create-daml-app-test-resources Avoid contention in create-daml-app tests (#6575) 2020-07-02 12:25:39 +00:00
empty-skeleton language: add an empty template for the daml assistant. (#6102) 2020-05-26 15:27:10 +02:00
quickstart-java Used daml codegen java instead of calling the codegen from maven (#5537) 2020-04-11 11:44:53 +00:00
quickstart-scala Use com.daml as root package (#5343) 2020-04-05 19:49:57 +02:00
skeleton remove warnings from skeletn template (#6762) 2020-07-16 18:36:30 +02:00
BUILD.bazel Factor out reproducibility flags for tar and gzip (#6884) 2020-08-05 14:27:14 +00:00
default-dlint-yaml add default dlint.yaml (#2720) 2019-09-11 21:09:53 +02:00
default-gitignore add gitignores to templates (#2159) 2019-07-16 14:59:08 +01:00
README.txt Rename daml codegen ts to daml codegen js (#5409) 2020-04-03 14:54:46 +00:00

These are template projects for `daml new`.

Testing the create-daml-app template
====================================

While automated integration tests for the create-daml-app template are being built,
we have the following manual testing procedure.
Note that this is for testing against the head of the daml repo.
For testing against a released SDK, you can skip past the package.json step and use
`daml` instead of `daml-head` after installing the released version.


First, build the SDK from head using the `daml-sdk-head` command.
This gives an executable DAML assistant called `daml-head` in your path.

Next, instantiate the `create-daml-app` template as follows:

```
daml-head new create-daml-app
cd create-daml-app
```

Crucially, you'll need to add a package.json file at the root of the project for testing
(this is not required when using the released SDK).
It should look as follows, with the dummy paths here replaced by relative paths to locally
built TypeScript libraries.
(These need to be built from head using Bazel:
```
bazel build //language-support/ts/daml-types
bazel build //language-support/ts/daml-ledger
bazel build //language-support/ts/daml-react```)

package.json:
{
    "resolutions": {
        "@daml/types": "file:path/to/daml-types/npm_package",
        "@daml/ledger": "file:path/to/daml-ledger/npm_package",
        "@daml/react": "file:path/to/daml-react/npm_package"
    },
    "private": true,
    "workspaces": [
        "daml.js",
        "ui"
    ]
}

Now you can continue to build and run the project as described in create-daml-app/README.md,
using `daml-head` instead of `daml`.
Specifically, you should run the following in the root directory:
```
daml-head build
daml-head codegen js .daml/dist/create-daml-app-0.1.0.dar -o daml.js
daml-head start
```

Then in another terminal, navigate to `create-daml-app/ui/` and run:
```
yarn install
yarn start
```
And check that the app works.

Finally, terminate both the `daml start` and `yarn start` processes and run
`yarn test` from the `ui` directory. All tests should pass.