Commit Graph

887 Commits

Author SHA1 Message Date
Beth Aitman
fc0a3c9a98
Move DAML snippets from inline to their own files, so they're tested (#446)
* Move DAML-LF snippets to .daml file

* Move codegen snippets to .daml files

* Fix new code snippets

* Fixes from code review

* Silly mistake
2019-04-15 15:47:39 +02:00
Beth Aitman
7b8acd81d8
Update multiparty text (#486) 2019-04-15 15:45:33 +02:00
Francesco Mazzoli
6af84051ee
fix various conversion functions from string to Decimal (#439)
* fix various conversion functions from string to Decimal

Fixes #399.

This fixes a critical bug -- since:

* The DAML-LF spec specifies that the scale of `Decimal` is 10 --
    that is, there are at most 10 digits past the decimal point:
    <79bbf5c794/daml-lf/spec/value.rst (field-decimal)>.
* However, the code converting from the string representation that
    we get on the wire was _not_ performing this check. This is due
    to two reasons:

    - `Decimal.check` is a function that checks whether a given
        `Decimal` is within the upper and lower bounds of what the
        DAML-LF spec specifies, but crucially it does _not_ check that
        the scale is not exceeded:
        <79bbf5c794/daml-lf/data/src/main/scala/com/digitalasset/daml/lf/data/Decimal.scala (L31)>.
        This behavior is correct in some cases (more on that later),
        but not in others. Crucially, `Decimal.fromString`, which was
        supposed to check if a decimal string literal is valid, used
        this function, which means that it accepted string literals
        containing numbers out of the required scale, rounding them to
        make them fit within the scale. This function has been renamed
        to `Decimal.checkWithinBoundsAndRound`, and a new function
        `Decimal.checkWithinBoundsAndWithinScale` has been added, which
        fails if the number provided has data not within the scale.
        `Decimal.fromString` now uses
        `Decimal.checkWithinBoundsAndWithinScale`.

    - `ApiToLfEngine.parseDecimal` assumed that `Decimal.fromString` _did_
        fail when passed numbers that were in any way invalid, and
        moreover did _not_ use the result of `Decimal.fromString`, but rather
        re-parsed the string into an unconstrained `BigDecimal`:
        <79bbf5c794/ledger/ledger-api-common/src/main/scala/com/digitalasset/platform/participant/util/ApiToLfEngine.scala (L96)>.
        The reason for the code to work this way is that in the past
        it was responsible for converting decimal strings both for the
        current engine but also for an older version of the engine which
        handled decimals of a different type. Both issues have been fixed.

* Therefore, `Decimal`s with scale exceeding the specified scale
    made it into the engine, and contracts could be created containing
    this invalid value.

* Once on the ledger, these bad numbers can be used to produce extremely
    surprising results, due to how `Decimal` operations are
    implemented. Generally speaking, all operations on `Decimal`
    first compute the result and then run the output through
    `Decimal.checkWithinBoundsAndRound`. The reason for this behavior
    is that we specify multiplication and division as rounding their
    output. Consider the case where the bad value 0.00000000005 made
    it to the engine, and is then added to 100. The full-precision
    result will be 100.00000000005, which after rounding becomes 100.
    Therefore, on a ledger where such invalid values exist, it is not
    the case that `y > 0 ==> x + y != x`, and so on.

Thanks a bunch to @briandbecker for the excellent bug report.

* fix failing test using to much precision
2019-04-14 13:49:28 +02:00
moritzkiefer-da
1326596795
Release 0.12.3 (#458) 2019-04-12 20:22:31 +02:00
Gary Verhaegen
59f480d978 prepare release note for next release (#443) 2019-04-12 16:17:31 +02:00
Beth Aitman
b902239fa3
Remove ExcludeFromDamlTests (#437) 2019-04-12 14:44:17 +02:00
gleber
aa70c7f64e
Enforce consistent formatting of BUILD files. (#412)
* Add buildifier targets.

The tool allows to check and format BUILD files in the repo.

To check if files are well formatted, run:

    bazel run //:buildifier

To fix badly-formatted files run:

    bazel run //:buildifier-fix

* Cleanup dade-copyright-headers formatting.

* Fix dade-copyright-headers on files with just the copyright.

* Run buildifier automatically on CI via 'fmt.sh'.

* Reformat all BUILD files with buildifier.

Excludes autogenerated Bazel files.
2019-04-12 13:10:16 +02:00
Gabor Aranyossy
3e154fd682
Sandbox Postgres support with passing api integration tests (#392)
* TransactionServiceIT passes

* fixup

* using record time taken from TimeProvider

* taming TransactionBackPressureIT to avoid overloading of submission service

* implement AutoClosable on all Ledger related components having stateful resources

* reenabling InMemory fixture

* disabling contract key integration test for SandboxSQL fixture

* removing TODO

* bumping up timeout on TransactionServiceIT due to slow Azure pipeline

* 1 minute timeout for SqlLedgerSpec

* making jdbcurl CLI argument hidden

* updating release notes
2019-04-12 12:25:48 +02:00
Gerolf Seitz
bc5a543177
docs: Explain the dependencies for the output of the Java codegen. (#362) 2019-04-12 08:58:07 +02:00
moritzkiefer-da
14cb5be2d0
Make "damlc test" exit with non-zero exit code on failed scenarios (#394)
fixes #291
2019-04-11 20:44:49 +02:00
Jussi Mäki
1f2246c822 Do not divulge contracts to observers in nonconsuming exercises (#325)
* Do not divulge contracts to observers in nonconsuming exercises

Disables support for non-default ledger feature flags, as they
are meaningless since ledger server logic does not respect the flags.
Instead of large refactoring to add support for the old flag settings,
it is best to disallow the deprecated flags, and later on phase out the
flags completely.

Re-enables test_divulgence_of_token in sandbox semantic tests.

Fixes #157.

* purge LedgerFlags entirely...

...since we only support one version of them anyway, and clearing them

* updated release notes
2019-04-11 14:41:35 +02:00
Nick Smith
03d3d909a0
Fix #152 java-codegen: Document parameterized types. (#290)
* Fix #152 java-codegen: Document parameterized types.

Explain the sources that the Java Code Generator creates for
parameterized DAML types including the implications for converting
between Java Bindings Value types and Java native types.
2019-04-11 14:36:14 +02:00
Beth Aitman
233b814469
Move protobuf docs into rst format (#334)
* Attempt to move template to rst

* Removing pandoc from export

* Get rst tables working

* Move proto comments into rst format

* More tidying up proto docs to work in rst

* Remove unnecessary whitespace

* Add back some necessary whitespace

* Correcting rst whitespace, again

* Remove processing script

* Clean up proto files

* Remove broken link from pdf toc

* Reinstate post-process script

* Try to fix process script

* Fix permissions issue
2019-04-10 16:42:35 +02:00
Robert Autenrieth
aa1f6f65fc
Update Navigator customizable table views docs (#342)
A new config schema version was introduced recently.
This updates the example snippet in the docs to the new version.
2019-04-10 15:05:48 +02:00
Gerolf Seitz
403919f3c7
Improve SDK installations instructions a bit (#354)
I'm moving the sentence to follow the instructions of the installer
output to a separate bullet, so that it is a bit harder to miss this
quite important point.
2019-04-10 13:56:52 +02:00
Stefano Baghino
e775b4974e
Amend the Node.js bindings Ledger API values representation (#338)
Finishes the work started in #324:

- drops deprecated `name` in identifiers, adopting `moduleName` and `entityName`
- use string to represent `timestamp`s to avoid a loss of precision
- use string for `date`s too for consistency and future-proofness

The work unconvered a quite serious bug caused by the lack of coverage
on the validation of timestamps: the model was expecting timestamps to
be of type timestamp, whereas in Ledger API values they are represented
by numbers.
2019-04-10 10:47:29 +02:00
Beth Aitman
7c154227ce
Add missing link to rst primer (#328) 2019-04-10 10:27:37 +02:00
zimbatm
430a85649c add more Azure Pipeline agents (#230)
* nix: add the more providers to terraform
* docs: make tarballs more reproducible
* ci: use the linux-pool pool
* ci: tweak the nix installation

handle the case where the user is root and on ubuntu

* infra: terraform fmt

* infra: add Azure Pipeline agents

* ci: only enable linux-pool for internal PRs
2019-04-09 18:59:37 +02:00
Beth Aitman
0c84153a1b
Update multi-party pattern using flexible controllers (#326) 2019-04-09 15:48:27 +02:00
Stefano Baghino
fa5c704e7e
Map Protobuf's 64 bit integers to strings in JS (#324) 2019-04-09 15:19:32 +02:00
Beth Aitman
4183a2fa17
Clarify some stdlib stuff (#317)
* Clarify some stdlib stuff

* Improve stdlib phrasing
2019-04-09 14:55:41 +02:00
Beth Aitman
9d6c7af0fc
Tidying up proto docs (#303)
* Tidying up proto docs

* Fix typo

Co-Authored-By: bethaitman-da <42940582+bethaitman-da@users.noreply.github.com>

* Add extra newline
2019-04-09 11:11:11 +02:00
Nick Smith
098120e7a9
Fixes #257 java-codegen: Reorganize Java Codegen ITs (#258)
* Fixes #257 java-codegen: Reorganize Java Codegen ITs
2019-04-08 16:26:34 +02:00
Gerolf Seitz
6c50e13b16
Describe escaping rules in Java codegen docs (#281) 2019-04-08 15:05:01 +02:00
Gerolf Seitz
ad122cdb34
Fixes the missing margin between codeblocks and headings (#282)
Contributes to #147
2019-04-08 13:44:52 +02:00
moritzkiefer-da
1b89882449
Hide LaTeX warnings (#278)
* Hide LaTeX warnings

Currently LaTeX warnings make up about half of our Bazel output which
makes it tricky to find the output that you actually care
about. @bame-da said that he doesn’t care about the warnings so
probably nobody else cares either :)

* Add -halt-on-error
2019-04-08 11:10:03 +02:00
Nick Smith
3d9731162b
Java codegen daml lf map (#201)
* Fixes #184 java-codgen: Correct num. of type params for DamlLf Map primitive.
2019-04-08 08:31:23 +02:00
Beth Aitman
52ce976792
Update Java example instructions to use new repository (#216)
* Update instructions to use new repository

* Update instructions on second page as well
2019-04-05 13:12:42 +02:00
Stefano Baghino
f275b0c471 Add verbosity option for Java codegen (#218)
Allows users to supply the argument -V or --verbosity with a number from 0 to 4 for additional logging.

Also, the first and last log message is logged as a warning, when it really
should just be on INFO level.
2019-04-05 10:54:42 +02:00
moritzkiefer-da
1f821953e8
Bump timeout of daml-ref-daml-test (#225)
This tests seems to timeout on CI sometimes so let’s increase the timeout.
2019-04-04 19:58:56 +02:00
Bernhard Elsner
e2524806ac Incorporate Robert's suggestion 2019-04-04 16:40:36 +02:00
Bernhard Elsner
14cc757b13 Update docs preview script 2019-04-04 16:40:36 +02:00
Bernhard Elsner
d03c24262f Update release notes for Navigator changes 2019-04-04 16:40:36 +02:00
Robert Autenrieth
874e4d5b89 Navigator: Add frontend-config version 2.0 (#202)
* Navigator: Add frontend-config version 2.0

New major version to reflect the recent breaking
changes to DAML-LF types and values.

* Fix sorting of Navigator columns in docs template
2019-04-04 16:36:51 +02:00
Francesco Mazzoli
9c7357c7de update all references of old repo to new repo 2019-04-04 16:20:07 +02:00
Gabor Aranyossy
ab72aab696 fixes inconsistent help about Sandbox port
changing ports to use 6865 everywhere

no need for default ports

addressing missed outdated ports

changed more ports from 7600 to 6865

dealt with more 8080s
2019-04-04 13:03:48 +02:00
Digital Asset GmbH
05e691f558 open-sourcing daml 2019-04-04 09:33:38 +01:00