Skip to content

Releases: digital-asset/daml

v0.13.19

14 Aug 09:46
Compare
Choose a tag to compare

Sandbox

  • Fixed a bug that prevented the ledger from loading transactions with empty workflow ids.
  • Fixed internal shutdown order to avoid dead letter warnings when
    stopping Sandbox/Ledger API Server. See issue
    #1886.

DAML Studio

  • Added a new command for visualizing a project in the IDE.
  • Print stack trace when a scenario fails.
  • Various memory leaks have been fixed so long-running sessions should
    no longer show a significant increase in memory usage.

DAML Compiler

  • The --project-root option now works properly with relative paths
    in daml build.
  • Support generic template declarations and instances. Documentation
    for generic templates is still being worked on.
  • The --dump-pom flag from damlc package has been removed as
    packaging has not relied on POM files for a while.

Navigator

  • {"None": {}} and {"Some": value}, where previously accepted, are no longer supported or used for DAML Optional values.
    Instead, for simple cases, use the plain value for Some, and null for None.
    See issue #2361 for other cases.

HTTP JSON API

  • A new, more intuitive JSON format for DAML values is supported.
    See issue #2361.

v0.13.18

07 Aug 18:03
Compare
Choose a tag to compare

DAML Docs

  • For damlc docs, the --template argument now takes the path
    to a Mustache template when generating Markdown, Rst, and HTML
    output. The template can use title and body variables to
    control the appearance of the docs.

DAML Assistant

  • Spaces in user names or other parts of file names should now be handled correctly.
  • The daml deploy and daml ledger experimental commands were
    added. Use daml deploy --help and daml ledger --help to find
    out more about them.
  • Fix a bug where daml studio did not launch VSCode on Windows.

v0.13.16

01 Aug 17:43
Compare
Choose a tag to compare

DAML Compiler

  • BREAKING CHANGE Handwritten instances of Template and Choice typeclasses
    are no longer supported. All template constructs must be defined using declarations
    inside template syntax.

DAML Docs

  • The damlc docs command now produces docs to a folder by default. Use the
    new --combine flag to output a single file instead.
  • The damlc docs flag --prefix has been replaced with a --template
    flag which allows for a more flexible template.
  • The damlc docs flag --json has been dropped in favor of --format=json.

Extractor

  • BREAKING CHANGE Changed schema to accomodate removed field
    ExercisedEvent#contract_creating_event_id. Existing database schemas are
    not compatible anymore with the newer version. The extractor needs to be run
    on an empty schema from Ledger Begin.

Java Bindings

  • Add all packages of java bindings to the javadocs. See #2280.
  • BREAKING CHANGE Removed field ExercisedEvent#contract_creating_event_id. See #2068.

Ledger API

  • BREAKING CHANGE Removed field ExercisedEvent#contract_creating_event_id. See #2068.

Sandbox

  • The active contract service correctly serves stakeholders. See #2070.
  • Added the --maxInboundMessageSize CLI parameter to set the maximux size
    of messages received through the Ledger API. If the value is not set the
    current default is preserved (4 MB).
  • Makes package uploads idempotent and tolerate partial duplicates. See #2130.

v0.13.15

25 Jul 13:45
59e581e
Compare
Choose a tag to compare

DAML Studio

  • Scenario links no longer disappear if the current file does not compile. The location is adjusted but this is done one a best effort basis and can fail if the scenario itself is modified.

DAML Compiler

  • Support reading of DAML-LF 1.5 again.

Ledger API

  • BREAKING: Drop support for legacy identifier. The previously deprecated field name in Identifier message is not supported anymore. Use module_name and entity_name instead.

Navigator

  • Fixed an issue when Navigator console did not see any contracts.
    See #2271.

Documentation

  • Improved the Maven pom.xml file for quickstart-java to better integrate with VS Code.
    See #887.

Releases

v0.13.14

22 Jul 17:09
f70ccb2
Compare
Choose a tag to compare

DAML Compiler

  • Support reading of DAML-LF 1.5 again.

DAML Studio

VSCode scenario view improvements. Add a note in the IDE if:

  • there is an open scenario view for a scenario that does no longer exist,
  • there is an open scenario view for a scenario in a file that does no longer compile.

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.