Commit Graph

3204 Commits

Author SHA1 Message Date
Martin Huschenbett
19e1973b29
Improve documentation of DA.Text.sha256 (#4649)
This was suggested on the public slack. Easy enough to fix it quickly.

changelog_begin
changelog_end
2020-02-21 11:48:52 +00:00
Samir Talwar
d729e5135e
recovering-indexer-integration-tests: Extract from reference-v2. (#4636)
This moves IndexerIT into its own package, and swaps the dependency from
reference-v2 to ledger-on-memory.

This test should ideally live in the sandbox code, but because it
depends on ledger-on-memory, it's easier to keep it separate.

Also rewrites a lot of the code because the API is different. The tests
should now be clearer too.

I've also marked the test as flaky, because, well, it is.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-21 11:10:32 +00:00
Martin Huschenbett
0284fd04b4
@daml/react: Make the test suite invokable by yarn test (#4646)
Unfortunately, we need to work around some bazel issues which lead to
confliciting versions of react in our tests. This workaround cannot be
used the tests are invoked via `yarn test`. Thus, we only use it when
we the tests from bazel. We use the existence of the environment
variable `TEST_WORKSPACE` as a proxy for whether we run from bazel.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-21 10:38:27 +00:00
Moritz Kiefer
64dbc52d43
Remove telemetry batching (#4644)
This was initially done as an optimization but now that we’ve used
telemetry for a while this hasn’t really been necessary and we’ve
spend way more time on people being confused by the fact that
telemetry messages are only flushed on shutdown.

Furthermore, I’m also slighlty worried that flushing the telemetry
messages on shutdown might go wrong on Windows given that everything
there seems to insist on hard-killing proesses.

changelog_begin
changelog_end
2020-02-21 10:46:56 +01:00
Moritz Kiefer
fe6b710329
Typify splitUnitId (#4643)
Strings are confusing so let’s throw in some more types.

changelog_begin
changelog_end
2020-02-21 10:26:16 +01:00
Moritz Kiefer
1bc2f9a189
Fix JWT example in sandbox auth docs (#4640)
Trailing commas are not allowed in JSON.

changelog_begin
changelog_end
2020-02-20 13:56:22 -05:00
Rohan Jacob-Rao
eed4828b08
GSG: Explain UI better in app arch section (#4639)
* Explain UI better in app arch section

Still rough but better than the void of information there currently.

changelog_begin
changelog_end

* Finish sentence
2020-02-20 18:45:56 +00:00
Moritz Kiefer
a252605d91
Refactor handling of package names and versions (#4633)
* Refactor handling of package names and versions

This is a preparatory refactoring PR in preparation for propagating
package metadata into DAML-LF. There are no actual changes in here.

Primarily the changes consist of 3 things:

1. In options, we split the `optMbPackageName` field which previously
contained the unit id into `optMbPackageName` and
`optMbPackageVersion`.
2. We use newtypes for names and versions and try to keep them pretty
much everywhere (the only place missing is `splitUnitId`, I’ll do that
separately).
3. We use `UnitId` where we want `name-version`.

As was probably to be expected, this surfaced some minor issues. They
are pretty much exclusively in debugging or “internal” commands so
I’ve mostly just added notes/todos.

changelog_begin
changelog_end

* cry about applicativedo
2020-02-20 17:57:35 +00:00
Moritz Kiefer
2fb53497d4
Support authentication in DAML script (#4637)
changelog_begin

- [DAML Script - Experimental] Support running DAML scripts against an
authenticated ledger. The token is passed via ``--access-token-file``.

changelog_end
2020-02-20 17:52:57 +00:00
Martin Huschenbett
24cfd1ebe5
@daml/react: Add an initial test suite (#4612)
* @daml/react: Add an initial test suite

This only tests that the `useQuery` hook does the right thing once the
call to `Ledger.query` has resolved.

CHANGELOG_BEGIN
CHANGELOG_END

* Workaround for "Invalid hook call."

* Fix lint in BUILD file

CHANGELOG_BEGIN
CHANGELOG_END

Co-authored-by: Andreas Herrmann <andreash87@gmx.ch>
2020-02-20 17:50:58 +00:00
Rohan Jacob-Rao
77b189b675
Reword introduction and explanation of codegen (#4635)
* Reword introduction and explanation of codegen

CHANGELOG_BEGIN
CHANGELOG_END

* Say DAR instead of archive

Co-Authored-By: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>

* Remove 'i'll explain later'

* Include links to sections of this guide

* More links

Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
2020-02-20 17:36:00 +00:00
Gary Verhaegen
2b951e7296
increase linux nodes to 10 (#4634)
We're still seeing cases where we are hampered by a lack of Linux nodes,
so increasing this again.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-20 17:02:41 +00:00
Remy
3a8139d9c1
Engine: move partialTransaction to interpreter (#4617)
* Engine: move partialTransaction to interpreter

CHANGELOG_BEGIN
CHANGELOG_END

* formating

* fix
2020-02-20 16:48:47 +00:00
Robert Autenrieth
726b692797
Fix typo in the docs (#4632)
CHANGELOG_BEGIN
CHANGELOG_END
2020-02-20 17:44:11 +01:00
Moritz Kiefer
820563b576
Release 0.13.54 (#4627)
* Release 0.13.54

changelog_begin
changelog_end

* Update docs/source/support/release-notes.rst

Co-Authored-By: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>

* update version

Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
2020-02-20 16:42:00 +00:00
Martin Huschenbett
1c5efbfff9
@daml/ledger: Use {live: true} marker from JSON API (#4628)
Currently, we're using the first heartbeat as a guesstimate when we're
switching from the ACS to the live stream. These days, the JSON API has
a marker, namely `{live: true}`, to indicate this switch. This PR,
makes use of that marker.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-20 16:18:49 +00:00
Samir Talwar
ba1be72ebd
Revert "sandbox: Log, explaining the removal of static time and scenarios." (#4626)
* Revert "sandbox: Log, explaining the removal of static time and scenarios. (#4582)"

This reverts commit b5cb341e8d.

CHANGELOG_BEGIN
- [Sandbox] Removed the warnings regarding static time and scenarios on
  initialization. We will not deprecate these until we have a stable
  path forward.
CHANGELOG_END

* Sandbox: Include the log level in output.
2020-02-20 14:37:48 +00:00
Samir Talwar
46e046a68b
ledger-on-sql: Split read queries out from write queries. (#4620)
* ledger-on-sql: Provide queries in the transaction lambda.

* ledger-on-sql: Split read queries out from write queries.

Can't run write queries from a read transaction.

CHANGELOG_BEGIN
CHANGELOG_END

* ledger-on-sql: Pass the connection into the `Queries` constructors.

Way less typing this way round.
2020-02-20 13:48:37 +00:00
Rohan Jacob-Rao
87a8a2548e
Update to changes in create-daml-app (#4619)
* Update MainView in App Arch section

* Update Feed to MessageList

* Update MessageEdit and MainView components and description in First Feature section

CHANGELOG_BEGIN
CHANGELOG_END

* Underline length

Co-Authored-By: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>

Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
2020-02-20 13:21:58 +00:00
Moritz Kiefer
c1a2569481
Add subtractDays to the standard library (#4618)
`addDays d (- r)` looks a bit confusing and it’s not obvious that
negative numbers even work.

changelog_begin

- [DAML Standard Library] Add `subtractDays` to the DAML Standard Library.

changelog_end
2020-02-20 12:23:18 +00:00
Moritz Kiefer
88330c9ced
Add package metadata to DAML-LF proto and the Haskell AST (#4616)
* Add package metadata to DAML-LF proto and the Haskell AST

This adds package metadata (currently only the package name and
version) to DAML-LF and the corresponding Haskell ASTs. This is useful
for debugging and “codegens” (typescript, damlc dependencies, …)

This PR does not yet add it to the Scala side or change the compiler
to actually produce this metadata.

Part of #4412

changelog_begin
changelog_end

* Address review comments
2020-02-20 12:08:27 +00:00
Gary Verhaegen
11efaebe8e
tell Gary when Azure fails to fetch commit (#4611)
We have seen a number of failures recently where the collect_build_data
and notify_user steps failed to fetch their branch commit from GitHub.
Trying to reproduce locally doesn't work (i.e. fetching the same sha
succeeds), so we're currently assuming transient network errors.

This PR adds a retry mechanism as well as a Slack message to help me
keep tabs on the issue.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-20 13:07:53 +01:00
Samir Talwar
2ec710b0e3
Sandbox & kvutils: Use the existing ledger ID if no ledger ID is specified. (#4607)
* sandbox: If the ledger ID isn't provided, use the one in the database.

Previously, we would fail if working against an existing ledger, and not
explicitly providing the ledger ID. This was the case even if the ledger
ID was randomly generated initially.

CHANGELOG_BEGIN
- [Sandbox] If no ledger ID is provided when running against an existing
  ledger, use the existing ID. Previously, Sandbox would fail to start.
CHANGELOG_END

* sandbox: The ReadOnlySqlLedger should always receive a ledger ID.

It's read-only; it can't create one.

* sandbox: Stop using `equal` in SqlLedgerSpec.

* sandbox: Test that the ledger ID is as specified in SqlLedgerSpec.

* sandbox: Let the top-level runner handle a ledger ID mismatch.

And clean up the log text.

* sandbox: Initialize the ledger properly when the ID is dynamic.

* sandbox: Use `Vector`, not `List`, for SqlLedger initialization.

Append with Vector, good. List, bad.

* ledger-api-common: Make `LedgerApiMode.Dynamic` an object.

And add Java-style static factory methods.

* kvutils/app | ledger-on-{memory,sql}: Make `ledgerId` optional.

It should be generated or retrieved from the persistence layer by the
ledger itself.

* kvutils: Make the ledger ID optional in the tests.

* ledger-on-sql: Store the ledger ID, and reject conflicting IDs.

* ledger-on-sql: Make more things final.

* ledger-on-sql: Document the `ledger_meta.table_key` column better.

* sandbox: Don't hardcode the number of packages in the test DAR.

It changes.

* ledger-on-sql: Merge the `head` resource owner with the `dispatcher`.

* sandbox: Use backticks to simplify pattern match in ReadOnlySqlLedger.

* ledger-on-sql: Extract methods in `owner`.
2020-02-20 10:35:16 +00:00
Martin Huschenbett
34b032c80c
TypeScript: Make contract ids more type safe (#4614)
Currently, contract ids are simply presented by strings. Thus, it is very
easy to accidentally mix up contract ids of different templates. This PR
is an attempt to provide more safety in this regard. It prevents contract
ids of template types which are not in a _structural_ subtyping
relationship from being mixed up. This is far from perfect, but clearly
better than what we have now.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-20 09:07:32 +01:00
Shayne Fletcher
fbd8326b1e
Add unit-tests for daml2ts (#4613)
changelog_begin
changelog_end
2020-02-19 18:42:21 -05:00
Robert Autenrieth
16c33a77d7
Update Navigator dependencies (#3550)
* Update webpack to 4.x

CHANGELOG_BEGIN
CHANGELOG_END

* Update webpack plugins

* Remove webpack git plugin

* Update webpack plugins

* Update webpack config

* Update typescript

Including fixing new compiler errors
and removing obsolete tslint warnings.

* Update webpack

* Update webpack plugins

including fixing new tslint-react warnings
2020-02-19 23:51:32 +01:00
Remy
4c88adb962
[Engine] optimize conversion of Hash to String (#4608)
* [engine] optimize conversion of hash to string

* Revert "Bump daml-lf engine test timeout (#4591)"

This reverts commit 9495d78240.

* use guava to convert bytes to string

* changelog

CHANGELOG_BEGIN
CHANGELOG_END

* Engine: 

Switch BaseEncoding to lowercase

* formatting
2020-02-19 21:48:25 +00:00
Stefano Baghino
9eb28924ef
Push down completion requests to data access layer (#4609)
* Push down completion requests to data access layer

This is largely a refactoring. The externally observable behavior is unchanged, but:

- a sub-dao is created for command completions (with the intent of breaking up the dao completely in future commits)
- the command completions dao can, in theory, directly fetch completions off the index
- in practice this is not implemented here to keep this PR as small as possible

Filtering ledger entries to get completions is moved to a function that is in turn used by:
- the ledger dao
- the in-memory sandbox

The plan for the former is to add a new table where completion-relevant data is stored so that it can be fetched quickly.

The plan for the latter is to get rid of it once DAML-on-SQL ships.

CHANGELOG_BEGIN
CHANGELOG_END

* Fix off-by-one error in the in-memory sandbox
2020-02-19 17:37:07 +00:00
Moritz Kiefer
183a2ea9fa
Remove the hardcoded number of packages from JdbcLedgerDaoSpec (#4606)
This breaks every time we change this in damlc which is unnecessary
noise.

changelog_begin
changelog_end
2020-02-19 16:18:15 +00:00
Moritz Kiefer
ff90ec643e
Remove hardcoded number of packages from Java codegen test (#4604)
This breaks everytime we change the number of packages in damlc which
is rather annoying.

changelog_begin
changelog_end
2020-02-19 15:45:35 +01:00
nickchapman-da
f22ea41251
release 0.13.53 (#4601)
* release 0.13.53

changelog_begin

changelog_end

* Update docs/source/support/release-notes.rst

Co-Authored-By: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>

* Update docs/source/support/release-notes.rst

Co-Authored-By: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>

Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
2020-02-19 14:35:04 +00:00
Moritz Kiefer
e419ae06de
Remove hardcoded number of packages from Haskell ledger binding tests (#4603)
This is one of the tests that keeps breaking every time we change the
number of packages `damlc build` outputs by default which is quite
annoying.

The actual change is trivial, we just read the number of packages from
the manifest. The diff is mostly just propagating this through everything.

changelog_begin
changelog_end
2020-02-19 14:16:43 +00:00
Moritz Kiefer
126e9c68d8
Remove hardcode number of packages from kvutils tests (#4605)
This breaks everytime we add another package to damlc’s default output
which is unnecessary.

changelog_begin
changelog_end
2020-02-19 15:07:39 +01:00
Martin Huschenbett
b6a3606ece
@daml/react: Add useStreamFetchByKey hook (#4602)
This is pretty much a verbatim copy of the `useStreamQuery` hook but it
works against the `/v1/stream/fetch` endpoint of the JSON API.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-19 13:22:19 +00:00
associahedron
5db4ac8b0e
Support type-level strings in DAML. (#4571)
* Add type-level strings in DAML.

This PR adds a `PromotedText` stable package, with `PromotedText` type, which is used to encode type-level strings from DAML into DAML-LF. The reason for this is to preserve the `HasField` instance argument. This PR adds a test that `HasField` is succesfully reconstructed incontexts, during data-dependencies, which wasn't possible before.

changelog_begin
changelog_end

* adresss comments

* fix overly specific tests
2020-02-19 13:10:36 +00:00
Jussi Mäki
61a65fe16f
Use the contract key hasher in kvutils (#4542)
* Use KeyHasher to serialize contract keys in kvutils

- Use Value instead of VersionedValue in GlobalKey as the versioning does not make sense here
  and may be misleading as the a value with a different version but same meaning would still
  be the same key.

- Relocate the KeyHasher to ledger-api-common so kvutils can use it (otherwise cyclic dependencies)

- Replace storing of the contract key as a VersionedValue with the hash produced by KeyHasher.
  This is backwards incompatible. A compatible option would require us to query the key with both
  the old way and the new way which is unattenable. We're making a calculated breaking change.

CHANGELOG_BEGIN
- [DAML Ledger Integration Kit] Serialize contract keys using a hash instead of the value in kvutils.
  This is a backwards incompatible change to kvutils.
CHANGELOG_END

* Use proper hasher for contract keys and not KeyHasher

- Use Hash.scala, not KeyHasher.scala.
- Add hash to GlobalKey as we want the hash to be computed from the inside.
  The use of KeyHasher will be later deprecated and replaced by this.

* Use "sealed abstract case class" trick instead of private ctor

and rebase fix

* Revert change to unsupported value version decode error

* Reformat code

* Add kvutils changelog entry and bump the version
2020-02-19 11:56:31 +00:00
Gerolf Seitz
0b07b6e0b4
Navigator: don't store divulged contracts (#4594)
CHANGELOG_BEGIN
- [Navigator]: Contracts visible to a party without being a stakeholder are not stored anymore.
CHANGELOG_END

Contributes to #3498.
2020-02-19 12:17:20 +01:00
Martin Huschenbett
7a7f37f71f
@daml/react: Port version from DAVL (#4599)
By using the streaming endpoint of the JSON API we can get rid of  a
lot of internal state management.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-19 12:13:51 +01:00
Moritz Kiefer
4147f24ab8
Fall back on the builtin SDK version in damlc telemetry (#4595)
We have seen a few telemetry messages with the SDK version set to
`null` which is obviously not very useful. I suspect this is probably
because some users invoke damlc directly. This change is backwards
compatible since the ToJSON instance does encode `version = Just "x"` as
`"version" = "x"` and version = Nothing as `version = null`.

changelog_begin
changelog_end
2020-02-19 10:10:03 +00:00
Robert Autenrieth
ba7d23bea0
Introduce new time model fields (#4558)
Those will be used for the new time model.

Fixes #4346.

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-19 09:22:43 +01:00
Moritz Kiefer
5731787042
Cleanup DarReaderTest (#4590)
Manually matching on every package isn’t actually testing for anything
meaningful since the number of packages here really isn’t something
that we should test since we change it quite regularly in the
compiler.

changelog_begin
changelog_end
2020-02-19 08:08:52 +00:00
Moritz Kiefer
9495d78240
Bump daml-lf engine test timeout (#4591)
We have seen a few timeouts on CI recently so for now let’s bump the
timeout.

changelog_begin
changelog_end
2020-02-19 06:35:37 +01:00
Shayne Fletcher
5171c830ea
Multi-dar support; first cut. (#4589)
* Multi-dar support; first cut.

changelog_begin
changelog_end

* Try to overcome broken Windows cache
2020-02-18 17:29:19 -05:00
Samir Talwar
b5cb341e8d
sandbox: Log, explaining the removal of static time and scenarios. (#4582)
CHANGELOG_BEGIN
- [Sandbox] Static time mode is being deprecated in the future. A warning has been added to notify users of this fact.
- [Sandbox] Scenarios are being deprecated in the future, in favor of `DAML Script <https://docs.daml.com/daml-script/>`_. A warning has been added to notify users of this fact.
CHANGELOG_END
2020-02-18 19:02:38 +00:00
Miklos
4ee5abc550
Allow custom commit workflow to be implemented for SubmissionValidator (#4587)
* Allow transformations to be written that have access to the ledger state.

CHANGELOG_BEGIN
CHANGELOG_END

* Added missing parameter description.
2020-02-18 18:13:35 +00:00
Samir Talwar
f231ebc1b3
Sandbox-Next: Re-establish static time support. (#4581)
* kvutils: Extract a committer from the uses of `SubmissionValidator`.

This makes the clock injectable too.

* kvutils: Provide logging contexts in the `Runner`.

* sandbox: Remove the `StaticAllowBackwards` time provider type.

It's not used anywhere.

* sandbox: Fix warnings in CliSpec.

* sandbox: Ensure that we cannot specify both static and wall-clock time.

* sandbox-next: Crash if wall clock time is not specified.

* sandbox-next: Document more known issues in the new Sandbox.

* sandbox: Add a Clock (and some tests) to TimeServiceBackend.

* sandbox-next: Support static time.

CHANGELOG_BEGIN
- [Sandbox Next] Re-establish static time mode.
CHANGELOG_END

* ledger-on-(memory|sql): Expect a `() => Instant`, not a `Clock`.
2020-02-18 17:03:15 +00:00
Shayne Fletcher
a49bc83502
Update hlint (#4577)
changelog_begin
changelog_end
2020-02-18 16:54:16 +00:00
Moritz Kiefer
668373ca85
Embed shake data-files via TH (#4584)
This is a bit ugly but after spending some time digging into the
issues in rules_haskell around data-files, this seems like the most
sensible option especially given that we also want to ship them in the
SDK which woud require additional work even if we do fix it in
rules_haskell.

fixes #4457

changelog_begin
changelog_end
2020-02-18 17:53:27 +01:00
fabiotudone-da
c7d370025e
Fix validator accepting transactions with unallocated informees (#4551)
* Fix validator accepting transactions with unallocated informees.

CHANGELOG_BEGIN
[DAML Ledger Integration Kit] Enforce that all parties referenced as stakeholders, actors, or maintainers in a transaction have been allocated
CHANGELOG_END

* Remove unused `InputsAndEffects.subValues`

* Add unallocated informee failure `KVUtilsTransactionSpec` test

* 📝 Improve documentation of `ClosedWorldIT`

* 🎨 Better names and remove irrelevant formatting changes

* 🎨 Better names and remove useless bindings

* 🎨 Remove irrelevant formatting changes

* 🐛 Fix merge
2020-02-18 15:40:54 +00:00
Martin Huschenbett
3ea5ac3f94
@daml/ledger: Consolidate the expectations for arrays in tests (#4578)
There's no point in first testing for the length of the array and then
testing all elements individually. That's what arrays are for. :)

CHANGELOG_BEGIN
CHANGELOG_END
2020-02-18 16:40:04 +01:00