Releases: digital-asset/daml
v0.13.13: Release 0.13.13 (#2170)
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-LF1.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-LFenum
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-LFvariant
type. This change is breaking, since this release makes DAML-LF1.6
the default compiler output. -
Add
DA.Text.toCodePoints
andDA.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 ofenum
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 DAMLvariant
types will be mapped to DAML-LFenum
types when using a DAML-LF1.6
archive. Ledger API Value Protobuf provides the newEnum
message. This message must be used to communicate this new data type through the API.
Java Codegen
- Add support for
enum
types.enum
types are mapped to standard java enum. See Generate Java code from DAML for more details.
Scala Codegen
- Add support for
enum
types.
Navigator
- Add support for
enum
types.
Extractor
- Add support for
enum
types.
DAML Docs
- Added links to type signatures in generated docs. Check out the updated standard library docs.
v0.13.12
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 theCommandCompletionClient
to accept a request without an explicit ledger offset. See #1913. - DEPRECATION: the
CompletionStreamRequest#getOffset
method is deprecated in favor of the non-nullableCompletionStreamRequest#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
andDA.Experimental.Set
. Please useDA.Next.Map
andDA.Next.Set
instead. - Add
Sum
andProduct
newtypes that provideMonoid
instances based on theAdditive
andMultiplicative
instances of the underlying type. - Add
Min
andMax
newtypes that provideSemigroup
instances basedmin
andmax
.
DAML Compiler
- The default output path for all artifacts is now in the
.daml
directory. In particular, the default output path for .dar files indaml 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 runningdaml studio --replace=newer
ordaml studio --replace=always
instead. - You can now configure the gRPC message size limit in
daml.yaml
viascenario-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
viascenario-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-LF1.dev
by default. However it will be a breaking change once this restriction makes it into DAML-LF1.6
and once DAML-LF1.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 killingdaml 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 todamlc docs
.
v0.13.10: Release 0.13.10 (#1936)
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 thedaml.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 hasgrpc-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
andsome
tooptional_none
andoptional_some
, resp., inExpr
andCasePat
. - Rename
TO_TEXT_CODE_POINTS
andFROM_TEXT_CODE_POINTS
toTEXT_FROM_CODE_POINTS
andTEXT_TO_CODE_POINTS
, resp.
DAML Assistant
- Added
--install-assistant
flag todaml install
command,
changing the default behavior ofdaml 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 todaml 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
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)
, allowingOptional
values to be used insignatory
,observer
andmaintainer
clauses.
v0.13.0
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 newdaml
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
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
0.12.24 - 2019-06-06
DAML Studio
- Fix errors due to unhandled
$/cancelRequest
andtextDocument/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 havekey (bank, accountId) : (Party, Text)
and wantbank
to be the maintainer, you have to writemaintainer key._1
(before, you could writemaintainer 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
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
Release Notes
SDK version: 0.12.21
Release date: 2019-05-28
DAML Assistant
-
The
exposed-modules
field indaml.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
andparseDecimal
now work at more extremes of values and accept leading plus signs.
DAML-LF
- Add new version 1.5. See DAML-LF 1 specification for details.
v0.12.20
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).