Skip to content

Releases: digital-asset/daml

v0.13.13: Release 0.13.13 (#2170)

16 Jul 18:23
Compare
Choose a tag to compare

DAML Assistant

  • Fix VSCode path for use if not already in PATH on mac
  • BREAKING: remove --replace=newer option.

DAML Studio

  • Fix a bug where the extension seemed to disappear every other
    time VS Code was opened.
  • DAML Studio now displays a “Processing” indicator on the bottom
    left while the IDE is doing work in the background.

Sandbox

  • Fixing an issue around handling passTime in scenario loader
    See #1953.
  • Remembering already loaded packages after reset
    See #1979.

DAML-LF

  • Release version 1.6. This versions provides:

    • enum types. See issue #105 and DAML-LF 1 specification for more details.

    • new builtins for (un)packing strings. See issue #16.

    • intern package IDs. See issue #1614.

    • BREAKING CHANGE Restrict contract key lookups. In short, when looking up or fetching a key, the transaction submitter must be one of the key maintainers. The restriction was done in the DAML-LF development version (1.dev) until now.
      See issue #1866.
      This change is breaking, since this release makes DAML-LF 1.6 the default compiler output.

DAML Compiler

  • Add support for DAML-LF 1.6. In particular:

    • BREAKING CHANGE Add support for enum types. DAML variant types that look like enumerations (i.e., those variants without type parameters and without arguments) are compiled to the new DAML-LF enum type when DAML-LF 1.6 target is selected. For instance the daml type declaration of the form:

      data Color = Red | Green | Blue
      

      will produce a DAML-LF enum type instead of DAML-LF variant type. This change is breaking, since this release makes DAML-LF 1.6 the default compiler output.

    • Add DA.Text.toCodePoints and DA.Text.fromCodePoints primitives to (un)pack strings.

    • Add support for DAML-LF intern package IDs.

  • BREAKING CHANGE Make DAML-LF 1.6 the default output.
    This change activates the support of enum type describes above, and the restriction about contract key lookup described in the DAML-LF section

  • BREAKING CHANGE Drop support for DAML-LF 1.5. Compiling to DAML-LF 1.6 requires some changes regarding enum types to applications using the Ledger API, see above. (The ledger server still supports DAML-LF 1.5.)

Ledger API

  • Add support for enum types. Simple DAML variant types will be mapped to DAML-LF enum types when using a DAML-LF 1.6 archive. Ledger API Value Protobuf provides the new Enum message. This message must be used to communicate this new data type through the API.

Java Codegen

Scala Codegen

  • Add support for enum types.

Navigator

  • Add support for enum types.

Extractor

  • Add support for enum types.

DAML Docs

v0.13.12

09 Jul 18:47
Compare
Choose a tag to compare

Sandbox

  • The completion stream method of the command completion service uses the ledger end as a default value for the offset. See 1913.
  • Fixed an issue when CompletionService returns offsets having inclusive semantics when used for re-subscription. See #1932.
  • DAML-LF packages used by the sandbox are now stored in Postgres,
    allowing users to resume a Postgres sandbox ledger without having to again
    specify all packages through the CLI. See #1929.

Java Bindings

  • Added overloads to the Java bindings CompletionStreamRequest constructor and the CommandCompletionClient to accept a request without an explicit ledger offset. See #1913.
  • DEPRECATION: the CompletionStreamRequest#getOffset method is deprecated in favor of the non-nullable CompletionStreamRequest#getLedgerOffset. See #1913.

Scala Bindings

  • Contract keys are exposed on CreatedEvent. See #1681.

Navigator

  • Contract keys are show in the contract details page. See #1681.

DAML Standard Library

  • BREAKING CHANGE: Remove the deprecated modules DA.Map, DA.Set, DA.Experimental.Map and DA.Experimental.Set. Please use DA.Next.Map and DA.Next.Set instead.
  • Add Sum and Product newtypes that provide Monoid instances based on the Additive and Multiplicative instances of the underlying type.
  • Add Min and Max newtypes that provide Semigroup instances based min and max.

DAML Compiler

  • The default output path for all artifacts is now in the .daml directory. In particular, the default output path for .dar files in daml build is now .daml/dist/<projectname>.dar.

DAML Studio

  • DAML Studio is now published as an extension in the Visual Studio Code marketplace. The daml studio command will now install the published extension by default, but will revert to the extension bundled with the DAML SDK if installation fails. You can get the old default behavior of always using the bundled extension by running daml studio --replace=newer or daml studio --replace=always instead.
  • You can now configure the gRPC message size limit in daml.yaml via scenario-service: {"grpc-max-message-size": 1000000}. This will set the limit to 1000000 bytes. This should only be necessary for very large projects.
  • You can now configure the gRPC timeout daml.yaml via scenario-service: {"grpc-timeout": 42}. This option will set the timeout to 42 seconds. You should only need to set this option for very large projects.

DAML Integration Kit

  • Make DivulgenceIT properly work when run via the Ledger API Test Tool.
  • The submission service shuts down its ExecutorService upon exit to ensure a smooth shutdown.

DAML-LF

  • The DAML-LF developement version (1.dev) includes a new, breaking restriction regarding contract key lookups. In short, when looking up or fetching a key, the transaction submitter must be one of the key maintainers. Note that this change is not breaking since the compiler does not produce DAML-LF 1.dev by default. However it will be a breaking change once this restriction makes it into DAML-LF 1.6 and once DAML-LF 1.6 becomes the default.
  • Fixed regression that produced an invalid daml-lf-archive artefact. See #2058.

DAML Assistant

  • Fix VSCode path for use if not already in PATH on mac.
  • Kill child processes on SIGTERM. This means that killing daml sandbox will also kill the sandbox process.

DAML Docs

  • BREAKING CHANGE damlc docs now typechecks the source files before doc generation, to be able to use type information during doc generation. This may break existing doc builds.
  • Added --package-name and --input-format flags to damlc docs.

v0.13.10: Release 0.13.10 (#1936)

28 Jun 12:21
21644bd
Compare
Choose a tag to compare

Sandbox

  • Added --log-level command line flag.
  • Made the archive CLI arguments optional.
    See #1905.

Ledger API

  • Added new CLI flags --stable-party-identifiers and
    --stable-command-identifiers to the Ledger API Test Tool
    to allow disabling randomization of party
    and command identifiers. It is useful for testing of ledgers which are
    configured with a predefined static set of parties.
  • Expose signatories and observers for a contract in CreatedEvent.
    See #1269.
  • BREAKING CHANGE: Specify pretty C# namespaces in ledger api protos. C# bindings will end up in a different namespace than the default one.
    See #1901.
  • Added additional Ledger API integration tests to Ledger API Test Tool.

DAML Studio

  • Fix an error in the package.json that stopped the extension from being loaded.
  • Opening an already open scenario will now focus it rather than opening
    it in a new empty tab which is never updated with results.
  • The selected view for scenario results (table or transaction) is now
    preserved when the scenario results are updated.
    See #1675.
  • Goto definition now works on the export list of modules.
  • Goto definition now works on types.

Navigator

  • Contract details now show signatories and observers.
    See #1269.
  • Added support for SDK project configuration files. If you start Navigator with the SDK Assistant,
    Navigator will directly read the daml.yaml config file instead of the old Navigator config file.
    See #1128.

Scala Bindings

  • Reflect addition of signatories and observers to the bindings.
    See #1269.

Java Codegen

  • Generated code supports signatories and observers as exposed by the bindings.
    See #1269.

Java Bindings

  • Reflect addition of signatories and observers to the bindings.
    See #1269.
  • The artefact com.daml.ledger:bindings-java now has grpc-netty as dependency so that users don't need to explicitly add it.

DAML Compiler

  • BREAKING CHANGE: Drop support for DAML-LF 1.4. Compiling to DAML-LF 1.5 should work without any code changes, although we highly recommend not specifying a target DAML-LF version at all. (The ledger server still supports DAML-LF 1.4.)

DAML-LF

  • BREAKING CHANGE: Specify pretty C# namespaces in archive protos. C# bindings will end up in a different namespace than the default one.
    See #1900.
  • Rename none and some to optional_none and optional_some, resp., in Expr and CasePat.
  • Rename TO_TEXT_CODE_POINTS and FROM_TEXT_CODE_POINTS to TEXT_FROM_CODE_POINTS and TEXT_TO_CODE_POINTS, resp.

DAML Assistant

  • Added --install-assistant flag to daml install command,
    changing the default behavior of daml install to install the assistant
    whenever we are installing a newer version of the SDK. Deprecated the
    --activate flag.
  • Added --start-navigator, --on-start, and --wait-for-signal
    options to daml start, to make scripting and testing with the sandbox much easier.

Dependencies

  • Protobuf has been upgraded to version 3.8.0. This
    also includes the protobuf-java library used as a dependency.

DAML Integration Kit

  • Fixed a bug in the test tool that prevented users from running the tests.
    See #1841.

Docker Image

  • The daml-sdk docker images are now based on Alpine Linux.

v0.13.5

19 Jun 17:52
fda517a
Compare
Choose a tag to compare

Sandbox

  • Introduced a new API for package management.
    See [#1311].
  • Fixed a bug in migration scripts that could cause databases originally created with older versions of the Sandbox to not upgrade schemas properly.
    See [#1682].

Java Codegen

  • Support generic types (including tuples) as contract keys in codegen.
    See [#1728].

Ledger API

  • A new command ExerciseByKey allows to exercise choices on active contracts referring to them by their key.
    See [#1366].

Java Bindings

  • The addition of the ExerciseByKey to the Ledger API is reflected in the bindings.
    See [#1366].
  • Release the Java Bindings to the public Maven Central repository. To move to using the Maven Central repository, remove the <repository>...</repository> and <pluginRepository>...</pluginRepository> blocks from Maven POM files that use version 0.13.5 (or later) of the Java Bindings.
    See [#1205].

DAML Studio

  • Closing and reopening scenario results will now show the results
    instead of an empty view.
    See [#1606].
  • The IDE now executes tasks in parallel.

Docs

  • Added 'An introduction to DAML'.
  • Added 'Visualizing DAML Contracts'.

Language

  • Add an instance for IsParties (Optional Party), allowing Optional values to be used in signatory, observer and maintainer clauses.

v0.13.0

17 Jun 12:45
9aec784
Compare
Choose a tag to compare

SDK

  • This marks the first release that is no longer released for the
    da assistant. It is still possible to use it to get older SDK
    releases. Take a look at documentation for the new daml
    assistant for migration instructions.

Sandbox

  • Fixed a bug in an internal data structure that broke contract keys.
    See #1623.

DAML Studio

  • Double the gRPC message limit used for the scenario service. This
    avoids issues on large projects.

Ledger API

  • Slash (/) is now an allowed character in contract, workflow, application
    and command identifiers.

v0.12.25

13 Jun 15:44
949f608
Compare
Choose a tag to compare

0.12.25 — 2019-06-13

DAML Integration Kit

  • Added new CLI flag --all-tests to the Ledger API Test Tool to run all default and optional tests.
  • Added new CLI flag --command-submission-ttl-scale-factor to the
    Ledger API Test Tool. It scales time-to-live of commands sent for ledger processing (captured as Maximum Record Time in submitted transactions) for some suites. Useful to tune Maximum Record Time depending on the environment and the Ledger implementation under test.
  • Fixed various bugs in the daml-on-x ledger api server and index service.

Sandbox

  • Introduced a new API for party management.
    See #1312.

Scala bindings

  • New --root command-line option for limiting what templates are selected for codegen.
    See #1210.

Ledger API

  • Contract keys are now available for created events from the transaction service.
    See #1268.

Java Bindings

  • The addition of contract keys on created events in the Ledger API is reflected in the bindings.
    See #1268.

Java Codegen

  • Contracts decoded from the transaction service now expose their contract key (if defined).
    See #1268.

v0.12.24

06 Jun 14:16
Compare
Choose a tag to compare

0.12.24 - 2019-06-06

DAML Studio

  • Fix errors due to unhandled $/cancelRequest and textDocument/willSave requests from showing up in the output tab in VSCode. These errors also caused an automatic switch from the problems tab to the output tab which should now no longer happen.
  • Note that upgrading the VSCode extension requires launching it via daml studio. If you launch VSCode directly, you might get issues due to an outdated extension.

0.12.23 - 2019-06-05

SQL Extractor

  • 50MiB is no longer hard-coded on extractor input for sandbox or any other server, permitting large packages, e.g. pass --ledger-api-inbound-message-size-max 62914560 to extractor to get a 60MiB limit. See #1520.
  • Improving logging. See #1518.

DAML Language

  • BREAKING CHANGE: Contract key maintainers must now explicitly be computed from the contract key using the implicit key variable. For instance, if you have key (bank, accountId) : (Party, Text) and want bank to be the maintainer, you have to write maintainer key._1 (before, you could write maintainer bank).

DAML Compiler

  • BREAKING CHANGE: Drop support for DAML-LF 1.3. Compiling to DAML-LF 1.4 should work without any code changes, although we highly recommend not specifying a target DAML-LF version at all. (The ledger server still supports DAML-LF 1.3.)

  • Fix initialization of package-db for non-default DAML-LF versions. This fixes issues when using daml build --target 1.3 (or other target versions).

DAML Standard Library

  • Add enumerate function.

Navigator

  • Fixed a regression where Navigator console was not able to inspect contracts and events. See #1454.
  • 50MiB is no longer hard-coded on extractor input for sandbox or any other server, permitting large packages, e.g. pass --ledger-api-inbound-message-size-max 62914560 to extractor to get a 60MiB limit. See #1520.

Sandbox

  • Added recovery around failing ledger entry persistence queries using Postgres. See #1505.

v0.12.22

29 May 13:44
43d7cb0
Compare
Choose a tag to compare

0.12.22 - 2019-05-29

DAML Studio

  • Fixed a bug where type check errors would persist if there was a subsequent parse error.

DAML Compiler

  • BREAKING CHANGE: Drop support for DAML-LF 1.2. Compiling to DAML-LF 1.3 should work without any code changes, although we highly recommend not specifying a target DAML-LF version at all.
  • BREAKING CHANGE: By default damlc test must be executed in a project and will test the whole project. Testing individual files, potentially outside a project, requires passing the new --files flag.

SQL Extractor

  • The extractor --party option may now specify multiple parties, separated by commas;
    e.g. instead of --party Bob you can say --party Bob,Bar,Baz and get the contracts
    for all three parties in the database.
    See #1360 <https://github.com/digital-asset/daml/pull/1360>__.

  • The extractor --templates option to specify template IDs in the format:
    <module1>:<entity1>,<module2>:<entity2>. If not provided, extractor subscribes to all available templates.
    See #1352 <https://github.com/digital-asset/daml/issues/1352>__.

Sandbox

  • Fixed a bug in the SQL backend that caused transactions with a fetch node referencing a contract created in the same transaction to be rejected.
    See issue #1435.

v0.12.21

28 May 11:51
435eee5
Compare
Choose a tag to compare

Release Notes

SDK version: 0.12.21
Release date: 2019-05-28

DAML Assistant

  • The exposed-modules field in daml.yaml is now optional. If it is
    not specified, all modules in the project are exposed.
    See #1328.

  • You can now see all available versions with daml version using the --all flag.

DAML Compiler

  • BREAKING CHANGE: Drop support for DAML-LF 1.1. Compiling to DAML-LF 1.2 should work without any code changes, although we highly recommend not specifying a target DAML-LF version at all.

  • Make DAML-LF 1.5 the default version produced by the compiler.

DAML Standard Library

  • parseInt and parseDecimal now work at more extremes of values and accept leading plus signs.

DAML-LF

v0.12.20

23 May 12:46
99de88c
Compare
Choose a tag to compare

DAML Assistant

The daml assistant is now ready to be used and the old da assistant will be deprecated in the near future. See https://docs.daml.com/tools/assistant.html for migration instructions.

Sandbox

  • Contract keys: Support arbitrary key expressions (this was accidentally omitted from 0.12.19).