Releases: digital-asset/daml
v0.13.37
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
andfromAnyContractKey
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
todaml build
. This removes theDecimal
type in favor of aNumeric 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., replace1.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 ofgetContracts
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
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 thedata-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
anddedupExerciseByKey
to exercise a choice given the contract key instead of the contract id. getTemplates
has been renamed togetContracts
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
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 of1.dev
.
v0.13.33
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
ordata Foo = Bar
.
DAML Triggers
- Add
dedupCreate
anddedupExercise
helpers that will only send
commands if they are not already in flight. - Remove the custom
AbsoluteContractId
type in favor of the regularContractId
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
- Disallow empty commands. See issue #592.
DAML Stdlib
- Add
DA.TextMap.filter
andDA.Next.Map.filter
. - Add
assertEq
andassertNotEq
toDA.Assert
as synonyms for===
and=/=
. - Add
DA.Foldable.mapA_
,DA.Foldable.forA_
,DA.Foldable.sequence_
andDA.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
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 usingdaml 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 rundaml 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
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 byActiveContractsService
.
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
tocom.digitalasset.daml-lf-archive-reader
v0.13.30
DAML Standard Library
-
Add
DA.Action.State
module containing aState
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 indaml.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
tocom.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 thedev
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 thedev
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 toPATH
.
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 statusRESOURCE_EXHAUSTED
orUNAVAILABLE
.
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
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 returnsActiveContract
objects withoutGetActiveContractsResponse
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 yourdaml.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 thebuild-options
field indaml.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 theUndecidableInstances
language extension. - Generic template instantiations like
template instance IouProposal = Proposal Iou
now generate a type synonymtype IouProposal = Proposal Iou
that can be used in DAML. Before, they generated anewtype
, 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
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 bydaml build
were missing
all.daml
files except for the one thatsource
pointed to. - Fix a bug where importing the same module from different directories
resulted in an error indaml build
. damlc migrate
now produces a project that can be built withdaml build
as opposed to
having to use the specialbuild.sh
andbuild.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
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.