Skip to content

Releases: digital-asset/daml

v0.13.37

20 Nov 17:57
Compare
Choose a tag to compare

DAML Stdlib

  • Added the NumericScale typeclass, which improves the type inference for Numeric literals, and helps catch the creation of out-of-bound Numerics earlier in the compilation process.
  • fromAnyChoice and fromAnyContractKey now take
    the template type into account.

Navigator

  • Fixed a bug where Navigator becomes unresponsive if the ledger does not contain any DAML packages.

Ledger-API

  • Add field gen_map in Protobuf definition for ledger
    api values. This field is used to support generic maps, an new
    feature currently in development. See issue #2256 for more details
    about generic maps.
    The Ledger API will send no messages where this field is set, when
    using a stable version of DAML-LF. However the addition of this
    field may cause pattern-matching exhaustive warnings in the code of
    ledger API clients. Those warnings can be safely ignored until
    GenMap is made stable in an upcoming version of DAML-LF.

Extractor

  • The app can now work against a Ledger API server that requires client authentication.
    See issue #3157.

DAML Compiler

  • Breaking The default DAML-LF version is now 1.7. You can still
    produce DAML-LF 1.6 by passing --target=1.6 to daml build. This removes the Decimal type in favor of a Numeric s type with a flexible scale. Decimal is now a synonym for
    Numeric 10. If you get errors about ambigous literals, you might
    need to add a type annotation, e.g., replace 1.0 by (1.0 : Decimal).

JSON API - Experimental

  • CLI configuration to enable serving static content as part of the JSON API daemon:
    --static-content "directory=/full/path,prefix=static"
    This configuration is NOT recommended for production deployment. See issue #2782.
  • The database schema has changed; if using
    --query-store-jdbc-config, you must rebuild the database by adding
    ,createSchema=true.
    See issue #3461.
  • Terminate process immediately after creating schema. See issue #3386.

DAML Triggers - Experimental

  • emitCommands now accepts an additional argument
    that allows you to mark contracts as pending. Those contracts will
    be automatically filtered from the result of getContracts until
    we receive the corresponding completion/transaction.

DAML Script - Experimental

  • This release contains a first version of an experimental DAML script
    feature that provides a scenario-like API that is run against an actual ledger.

v0.13.36

14 Nov 21:02
Compare
Choose a tag to compare

DAML Compiler

  • Support for incremental builds in daml build using the --incremental=yes flag.
    This is still experimental and disabled by default but will become enabled by default in the future.
    On large codebases, this can significantly improve compile times and reduce memory usage.
  • Support for data dependencies on packages compiled with an older SDK
    (experimental). To import data dependencies, list the packages under the data-dependencies
    stanza in the project's daml.yaml file.

DAML Stdlib

  • maintainer function that will give you the list of maintainers of a contract key.

Sandbox

  • Add the option to start the sandbox with JWT based authentication. See issue #3363.
  • Fixed a bug in the SQL backend that caused the database to be flooded with requests when streaming out transactions.
  • Fix divulged contract visibility in multi-participant environments. See issue #3351.
  • Enable the ability to configure ledger api servers with a time service (for test purposes only).
  • Allow a ledger api server to share the DAML engine with the DAML-on-X participant node for performance. See issue #2975.
  • Allow non-alphanumeric characters in ledger api server participant ids (space, colon, hash, slash, dot).
  • Include SQL statement type in ledger api server logging of SQL errors.

DAML Triggers

  • Added exerciseByKeyCmd and dedupExerciseByKey to exercise a choice given the contract key instead of the contract id.
  • getTemplates has been renamed to getContracts to describe its behavior more accurately.
    getTemplates still exists as a compatiblity helper but it is deprecated and will be removed in a future SDK release.
  • Fix a bug where the use of Numeric caused triggers to crash with an assertion error.

JSON API - Experimental

  • Fix to support Archive choice. See issue #3219
  • Implement replay on database consistency violation, See issue #3387.
  • Comparison/range queries supported. See issue #2780.

Extractor - Experimental

  • Fix bug in reading TLS parameters.

v0.13.34

07 Nov 15:09
fa6b339
Compare
Choose a tag to compare

DAML-LF - Internal

  • Freeze DAML-LF 1.7. Summary of changes (See DAML-LF specification for more details.):

    • Add support for parametrically scaled Numeric type.
    • Drop support of Decimal in favor or Numerics.
    • Add interning of strings and names. This reduces drastically dar file size.
    • Add support for 'Any' type.
    • Add support for type representation values.
  • Add immutable bintray/maven packages for handling DAML-LF archive up to version 1.7:

    • com.digitalasset.daml-lf-1.7-archive-proto

      This package contains the archive protobuf definitions as they
      were introduced when 1.7 was frozen. These definitions can be
      used to read DAML-LF archives up to version 1.7.

DAML Triggers

  • Triggers must now be compiled with daml build --target 1.7 instead of 1.dev.

v0.13.33

07 Nov 01:24
Compare
Choose a tag to compare

Navigator

  • Fixed regression in Navigator to properly respect the CLI option --ledger-api-inbound-message-size-max again. See issue #3301.

DAML Compiler

  • Reduce the memory footprint of the IDE and the command line tools (ca. 18% in our experiments).
  • Fix compile error caused by instantiating generic templates at Numeric n.
  • The compiler now accepts single-constructor enum types. For example data A = A or data Foo = Bar.

DAML Triggers

  • Add dedupCreate and dedupExercise helpers that will only send
    commands if they are not already in flight.
  • Remove the custom AbsoluteContractId type in favor of the regular ContractId type used in DAML templates.

Sandbox

  • Fixed a bug a database migration script for Sandbox on Postgres introduced in SDK 0.13.32. See issue #3284.
  • Timing about database operations are now exposed over JMX as well as via the logs.
  • Added a missing index to the SQL schema for the Postgres Ledger.

DAML Integration Kit

  • Re-add :doc:integration kit documentation </daml-integration-kit/index> that got accidentally deleted.

Ledger API

DAML Stdlib

  • Add DA.TextMap.filter and DA.Next.Map.filter.
  • Add assertEq and assertNotEq to DA.Assert as synonyms for === and =/=.
  • Add DA.Foldable.mapA_, DA.Foldable.forA_, DA.Foldable.sequence_ and DA.Action.replicateA_. These functions match the behavior of corresponding functions without the underscore suffix but ignore the result which can be more convenient and efficient.

Extractor - Experimental

  • Extractor now stores exercise events in the single table data format. See issue #3274.

JSON API - Experimental

  • workflowId no longer included in any responses.
  • /contracts/search endpoint can optionally store searched
    contracts in a Postgres-based cache, by passing the new --query-store-jdbc-config option.
    See issue #2781.

DAML SDK

  • Display release notes in the IDE when the DAML extension is upgraded.

v0.13.32

29 Oct 15:36
d5de7d2
Compare
Choose a tag to compare

DAML Triggers

  • The trigger runner now supports triggers using the high-level API directly. These no longer need to be converted to low-level Triggers using runTrigger. Triggers using the low-level API are still supported.
  • The trigger runner has a new command that just lists the triggers in
    a dar using daml trigger list --dar path/to/dar.

DAML Compiler

  • The package database is now be cleaned automatically on initialization.
    This means that you should no longer have to run daml clean on SDK upgrades
    if you use DAR dependencies (e.g. with DAML triggers).

Sandbox

  • Improve performance of looking up contracts from postgres. See issue #2330.

v0.13.31

18 Oct 15:24
aa30fed
Compare
Choose a tag to compare

Sandbox

  • Party management fix, see issue #3177.
  • The maximum allowed TTL for commands is now configurable via the --max-ttl-seconds parameter, for example: daml sandbox --max-ttl-seconds 300.
  • Fixed a bug where CreatedEvent#event_id field is not properly filled by ActiveContractsService.
    See issue #65.

DAML SDK

  • Shrink docker image containing the full DAML SDK from 2.8 GB to 1.2 GB.

Navigator

  • Accept and use an access token to be used against Ledger API servers that require authentication, see issue #3156.
  • Demo-oriented password workflow has been removed.

Scala Bindings

  • Expose new method to construct channels for more granular control over the client creation process.

JSON API - Experimental

  • Add /parties endpoint.

DAML Triggers - Experimental

  • The trigger runner now logs output from trace, error and
    failed command completions and hides internal debugging output.

DAML-LF - Internal

  • Changed the name of the bintray/maven package from com.digitalasset.daml-lf-archive-scala to com.digitalasset.daml-lf-archive-reader

v0.13.30

16 Oct 09:33
2bc6b8d
Compare
Choose a tag to compare

DAML Standard Library

  • Add DA.Action.State module containing a State action that
    can be used for computations that modify a state variable.

  • Add createAndExercise.

DAML Compiler

  • Fixed the location of interface files when the
    source field in daml.yaml points to a file. This is mainly
    important for when you want to use the created .dar in the
    dependencies field of another package.
    See issue #3135.

DAML-LF

  • Breaking Rename DAML-LF Archive protobuf package from
    com.digitalasset.daml_lf to com.digitalasset.daml_lf_dev. This
    will only affect you do not use the DAML-LF Archive reader provided
    with the SDK but a custom one based on code generation by protoc.

  • Breaking Some bintray/maven packages are renamed:

    • com.digitalasset.daml-lf-proto becomes
      com.digitalasset.daml-lf-dev-archive-proto
    • com.digitalasset.daml-lf-archive becomes
      com.digitalasset:daml-lf-dev-archive-java-proto
  • Add immutable bintray/maven packages for handling DAML-LF archive up to version 1.6 in a stable way:

    • com.digitalasset.daml-lf-1.6-archive-proto

      This package contains the archive protobuf definitions as they
      were introduced when 1.6 was frozen. These definitions can be
      used to read DAML-LF archives up to version 1.6.

      The main advantage of this package over the dev version
      (com.digitalasset.daml-lf-dev-archive-proto) is that it is
      immutable (it is guaranteed to never changed once introduced
      in the SDK). In other words one can used it without suffering
      frequent breaking changes introduced in the dev version.

      Going forward the SKD will contain a similar immutable package
      containning the proto definition for at least each DAML-LF
      version the compiler supports.

      We strongly advise anyone reading DAML-LF Archive directly to use
      this package (or the
      com.digitalasset:daml-lf-1.6-archive-java-proto package
      described below). Breaking changes to the dev version may be
      introduced frequently and without further notice in the release
      notes.

    • com.digitalasset:daml-lf-1.6-archive-java-proto

      This package contains the java classes generated from the package
      com.digitalasset.daml-lf-1.6-archive-proto

DAML Triggers

  • This release contains a first version of an experimental DAML
    triggers feature that allows you to implement off-ledger automation
    in DAML.

DAML-SDK Docker Image

  • The image now contains a daml user and the SDK is installed to /home/daml/.daml.
    /home/daml/.daml/bin is automatically added to PATH.

JSON API - Experimental

  • Support for automatic package reload
    See issue #2906.

  • Add --address CLI option. IP address that HTTP JSON API service listens on. Defaults to 0.0.0.0.

Java Bindings

  • Add helper to prepare transformer for Bot.wire. See issue #3097.

Ledger

  • The ledger api index server starts only after the indexer has finished initializing the database.

Sandbox

  • Filter contracts or contracts keys in the database query for parties that cannot see them.

Scala Bindings

  • Fixed a bug in the retry logic of LedgerClientBinding#retryingConfirmedCommands. Commands are now only retried when the server responds with status RESOURCE_EXHAUSTED or UNAVAILABLE.

Scala Codegen

  • Fixes for StackOverflowErrors in reading large LF archives. See issue #3104

SQL Extractor

  • The format used for storing Optional and Map values found in contracts
    as JSON has been replaced with :doc:/json-api/lf-value-specification. See issue
    #3066 for specifics.

v0.13.29

04 Oct 15:49
aef44ab
Compare
Choose a tag to compare

JSON API - Experimental

  • Returning archived and active/created contracts from /command/exercise
    enpoint. See issue #2925.
  • Flattening the output of the /contracts/search endpoint.
    The endpoint returns ActiveContract objects without GetActiveContractsResponse wrappers.
    See issue #2987.

SDK

  • Bundle the daml-trigger package. Note, this package is experimental and will change.
  • Releases can now bundle additional libraries with the SDK in $DAML_SDK/daml-libs. You
    can refer to them in your daml.yaml file by listing the package name without .dar
    extension. See issue #2979.

DAML Studio

  • damlc ide now also supports a --target option.
    The easiest way to specify this is the build-options field in daml.yaml.
  • Fix a bug where the same module was imported twice
    under different file paths caused module name
    collisions. See issue #3099.

Ledger

  • Improve SQL backend performance by eliminating extra queries to the database.
  • Enhance logging to correlate log messages with the associated participant id in multi-participant node tests and environments
  • Ledger api server indexer closes akka system on shutdown.
  • The ledger api server now stores divulged, otherwise unknown contracts.

DAML Visualization

  • Adding daml damlc visual-web command. visual-command generates webpage with d3 network.

DAML Ledger Integration Kit

  • The transaction service is now fully tested.
  • The TTL for commands is now read from the configuration service.
  • The contract key tests now live under a single test suite and are multi-node aware.

DAML Compiler

  • Fix a problem where constraints of the form Template (Foo t) caused the compiler to suggest enabling the UndecidableInstances language extension.
  • Generic template instantiations like template instance IouProposal = Proposal Iou now generate a type synonym type IouProposal = Proposal Iou that can be used in DAML. Before, they generated a newtype, which cannot be used anymore.
  • Fixed a bug where damlc build sometimes did not find modules during typechecking
    even if they were present during parallel compilations.

Security

  • Document how to verify the signature on release tarballs.

v0.13.27

25 Sep 10:57
5eb76ee
Compare
Choose a tag to compare

0.13.27

DAML Assistant

  • daml start now supports --sandbox-option=opt, --navigator-option=opt
    and --json-api-option=opt to pass additional option to sandbox/navigator/json-api.
    These flags can be specified multiple times.

DAML Compiler

  • Fix a bug where generic templates could crash the compiler.

Security

  • Fix release signing process.

0.13.26 (not published)

JSON API

  • /contracts/search now supports a query language for filtering the
    contracts returned by matching fields. See issue 2778.

DAML Compiler

  • Fix a bug where .dar files produced by daml build were missing
    all .daml files except for the one that source pointed to.
  • Fix a bug where importing the same module from different directories
    resulted in an error in daml build.
  • damlc migrate now produces a project that can be built with daml build as opposed to
    having to use the special build.sh and build.cmd scripts.

DAML Integration Toolkit

  • 30 more test cases have been added to the transaction service test suite.

Security

  • Starting with this one, releases are now signed on GitHub.

v0.13.25

18 Sep 13:46
26c5a64
Compare
Choose a tag to compare

Documentation

  • Suppress instance documentation when --data-only mode is requested.

DAML-LF

  • Add CAST_NUMERIC and SHIFT_NUMERIC in DAML-LF 1.dev.
  • Change signature of MUL_NUMERIC and DIV_NUMERIC.

DAML Integration Kit

  • Fix contract key uniqueness check in kvutils.

  • Preload packages in a background thread in kvutils.

Ledger

  • ActiveContractsService now specifies to always return at least one message with the offset. This removes a special case where clients would need to check if the stream was empty or not.

  • Dramatically increased performance of the ActiveContractService by only loading the contracts that the parties in the transaction filter are allowed to see.