* Move toInterfaceContractId and fromInterfaceContractId out of Implements class
* Split Implements class into single-method classes
* Define toInterface outside its class to swap type arguments
This allows users to call 'toInterface @Interface', since the type of the template can usually be inferred
* Move interface classes and functions to DA.Internal.Interface
changelog_begin
changelog_end
Apparently this works very poorly with damlc_legacy which fails to
find hpp after the latest nixpkgs upgrade. Somewhat confusingly it
only fails to find that on release builds and I don’t understand how
it ever worked but this seems more sensible anyway.
changelog_begin
changelog_end
* Split release process (PoC)
This PR adds the necessary infrastructure for the new split release
process. Releases are still triggered via the LATEST file but you can
choose between the old and the new release process by adding
SPLIT-RELEASE at the end of the line.
As a first step this publishes all artifacts we currently publish to
Github releases to our GCP bucket.
changelog_begin
changelog_end
* drop report-start
changelog_begin
changelog_end
* fix gcp bucket
changelog_begin
changelog_end
* review feedback
changelog_begin
changelog_end
* Update azure-pipelines.yml
Co-authored-by: Gary Verhaegen <gary.verhaegen@digitalasset.com>
* SPLIT-RELEASE ->SPLIT_RELEASE
changelog_begin
changelog_end
Co-authored-by: Gary Verhaegen <gary.verhaegen@digitalasset.com>
Changelog
---------
```
- [JSON-API] added metrics to separately track:
- time taken to update query-store ACS (from ledger)
- lookup times for the query store
[HTTP/JSON API]
- metrics reporting can now be chosen via the command line option --metrics-reporter (currently hidden), valid options are console, csv://, graphite:// and prometheus://
- metrics reporting interval can also now be chosen via a command line option --metrics-reporting-interval (currently hidden)
- [Ledger HTTP Json Service] Logging output can now be in JSON either via providing the cli option `--log-encoder json` or via setting the env var `LOG_FORMAT_JSON=true`
[HTTP-JSON]
- fixed that json log output could not be enabled via cli options except via usage of env vars
- [Ledger HTTP Json service] Logging can now be configured via the `--log-level` cli argument. Valid values are `error`, `warn`, `info` (default), `debug`, `trace`
- [Ledger HTTP Json Service] Logging now also tells service name if log level was changed.
http-json:
- add contextual id as logging context to distinguish different application runs in logs
- add request id as logging context to distinguish different http requests within an application run
- add for non-static endpoints trace logs which show how long processing it took in ns
- [JSON API] Fix an error where transactions that delete a large
number of contracts resulted in stackoverflows with the PostgreSQL
backend and database errors with Oracle.
- [JSON API] While updating the contract table for a query, if the DB appears to be slow,
JSON API will slow down its own inserts and deletes at some point rather than construct
ever-larger INSERT and DELETE batch commands.
See `issue #11589 <https://github.com/digital-asset/daml/pull/11589>`__.
Backport of Hikari connection pool for 1.11.x plus addition of configurable connection pool properties to jdbcConfig string, the properties are listed below
poolSize -- specifies the max pool size for the database connection pool
minIdle -- specifies the min idle connections for database connection pool
connectionTimeout -- long value, specifies the connection timeout for database connection pool
idleTimeout -- long value, specifies the idle timeout for the database connection pool
[Ledger API] Retry the interpretation of a command in case of a race
with other transactions. This fix drastically reduces the likelihood of the error
"Could not find a suitable ledger time after 0 retries".
For every update in the index db log the full context at the INFO level.
[Integration Kit] The state of the participant indexer can now be checked via the GRPC health endpoint
```
Commits
-------
```
c679b4ab23 [1.11.x] Metrics for investigating json api performance (#11769)
437c3d4639 Bump Windows postgres (#11806)
382168b7f0 Add metrics to the http json service (#9923) (#11768)
b7fc305427 [Backport] Add cli option & system property to enable json only logging for the json api (#11717)
17cacb05f1 [Backport] Add logging command line option to ledger http service (#9581) (#11699)
56531e8610 Backport: Support deletion of a large number of contracts (#11646)
6bf19fce82 Backport: limit contract insertion/deletion batching on backpressure (#11647)
eed4ad32b7 Backport signing tool changes (#11651)
ee7547ed88 [JSON-API] Backport of connection pool for 1.11.x , configurable db options needs forward porting (#11615)
632ba5a7b3 Backport: Avoid collision in execution log postfix (#11644)
cf4f1a1d8f Backport: add tar to dev-env (#10173) (#11636)
b78fa8c4a3 Backport: Restart the submission interpretation in case of a race [DPP-737] (#11578)
5c3220d2db Fix build of release/1.11.x branch (#11582)
cce7c79ec5 Log context of all updates written to the database (#10057)
a9d0473473 Adds Indexer state to GRPC health checks [DPP-434] (#9951) (#9961)
```
changelog_begin
changelog_end
Add support for offset deduplication periods for KV ledgers by converting the offset into a duration using the record time for the completion found of the offset.
changelog_begin
changelog_end
* Drop snapshots from compat tests
We don’t really give strict compatibility guarantees on snapshots and
we actively break them (e.g. you cannot migrate across snapshots). So
this PR stops including snapshots in the compat tests which should
both speed them up a bit and stop irrelevant failures.
changelog_begin
changelog_end
* hlint
changelog_begin
changelog_end
As mentioned in the comment, I view these tests as a way to guard us
against bricking ledgers on upgrades so they somewhat deliberately
ignore ordering of non-cachable errors relative to each other since
those only change error messages.
changelog_begin
changelog_end
* Mark lsp tests as flaky
Not quite sure what is going wrong and doesn’t seem worth prioritizing
right now so marking them flaky again (they were marked flaky until a
few weeks ago).
changelog_begin
changelog_end
* .
changelog_begin
changelog_end
* Remove the use of nesting with `size` and `resize` approach as suggested by scalacheck.
CHANGELOG_BEGIN
CHANGELOG_END
* Biased to shorter names generator for Name
* Update rules_haskell
changelog_begin
changelog_end
* Use mostly deterministic distdir path
changelog_begin
changelog_end
Use a path for distdir in the `haskell_cabal_*` rules that is based on
the package name and deterministic unless there is a collision with an
already existing file or directory.
The distdir path enters flags that are passed to GHC and thereby enters
the 'flag hash' field of the generated interface files. If the distdir
path is indeterministic, then the interface file will also be
indeterministic.
* Pin com_google_protobuf to 3.17.3
The latest version of rules_haskell pins protoc to 3.19.1. However, this
generates code that also requires a more recent version of the Java
proto libraries. This change pins the protoc version at the same version
as the protobuf-java library, see https://github.com/protocolbuffers/protobuf/issues/9236.
Co-authored-by: Andreas Herrmann <andreas.herrmann@tweag.io>
After staring at a type mismatch between `Nested` and `Nested` this
seemed like a sensible change. We could also include the package
ids. I don’t have strong feelings about this but this seems like a
clear uncontroversial improvement.
changelog_begin
changelog_end
This is part of #11691
This PR allows to limits:
- the number of signatories,
- the number of observers,
- the number of controllers,
- the number of inputContracts,
CHANGELOG_BEGIN
CHANGELOG_END
* Add skeleton for trace-based LF evaluation tests
The recent issues around wrong ordering of contract id typechecks got
me thinking about this again so I wanted to hack up a PR of how we can
test evaluation order sensibly directly at the LF level.
This is only testing a single create but I first wanted to see if we
agree that this is a sensible approach using a simple example.
If we agree that this is a sensible approach, I’d suggest to extend
those tests later in separate PRs to make them exhaustive.
changelog_begin
changelog_end
* cleanup
changelog_begin
changelog_end
* docs: support for interface implementations
This produces documentation for interface implementations of templates.
CHANGELOG_BEGIN
CHANGELOG_END
* Update compiler/damlc/daml-doc/src/DA/Daml/Doc/Render/Output.hs
Co-authored-by: Sofia Faro <sofia.faro@digitalasset.com>
* add check for modulename for implementations
CHANGELOG_BEGIN
CHANGELOG_END
* added golden tests to daml-test-files
Co-authored-by: Sofia Faro <sofia.faro@digitalasset.com>