Commit Graph

1310 Commits

Author SHA1 Message Date
nickchapman-da
85a5222a28
Hlb address review comments (#2034)
* inline Convert.lowerList

* newtype Verbosity

* generalize type for raiseMap, and add comment
2019-07-08 16:28:07 +01:00
mziolekda
71e3edb21c clean up versions v1 and v2 of participant-state (#2036) 2019-07-08 15:04:17 +00:00
Michał Majcherski
3751ce9cee
Fix Maven calls in daml-assistant integration tests on Windows (#2027)
* Fix Maven calls in daml-assistant integration tests on Windows

* Cleanup daml-assistant integration tests
2019-07-08 16:38:35 +02:00
mziolekda
36ef2d1d1b Generate a list of single package updates for an upload message containing multiple packages (#2031)
* make every PublicPackageUploaded update contain exactly one package

* implement update subscriptions that start with offsets with the same major number

* address review comments
2019-07-08 11:22:28 +00:00
Gerolf Seitz
f310fe45e6 Integration test fixes + enable tests for postgres index|er (#2032)
* Do not convert the transaction id to Long in LedgerBackedIndexService

The InMemoryLedger does this, because it can make certain assumptions
(like transactionId == offset), but the sql based ledger cannot do that,
because the transactionId may be produced by another backend and thus
have a different format.

* Move tests that use contract keys into their own integration test file

This allows us to run the other tests via the ledger api test tool with
the postgres indexer while InMemoryKVParticipantState doesn't support
contract keys yet.

* Remove a few occurrences of LedgerBegin from TransactionServiceIT.

* Rename CommandTransactionChecksNo1866IT to ContractKeysNo1866IT

* Enable TransactionServiceTests,DivulgenceIT,TransactionBackpressureIT for postgres index|er

* format all the things

* Address a few review comments.

See https://github.com/digital-asset/daml/pull/2032#pullrequestreview-258771927

* Extract reusable base class for ContractKeys tests

This is needed because Bazel's scala_test_suite isolates the tests from
another, and one test cannot extend another one.

* Classify the reference-v2 conformance tests with a long timeout
2019-07-08 11:10:55 +00:00
Moritz Kiefer
bb3a98bf61
Move code in daml-tools outside of daml-foundations (#2033) 2019-07-08 11:40:48 +02:00
Oliver Seeliger
33695b9961
DamlOnXSubmissionService shuts down ExecutorService on close (#1999)
* DamlOnXSubmissionService shut down of package load executor service

* ReferenceIndexServer specifies viable PackageId

Using dash (-) instead of slash (/)
2019-07-08 08:58:27 +02:00
Moritz Kiefer
cd69b6f553
Cache rewrites of PRSelf references (#2028)
Previously we rewrote references to `PRSelf` to `PRImport` references
every time we call `initWorld`. However, we call `initWorld` quite
often (e.g. every time we run a scenario) while the packages that need
to be rewritten stay constant. Since rewriting the package references
requires traversing the whole package, this can be quite expensive.

This PR moves the rewriting of package references out of `initWorld`
and caches it as part of `GeneratePackageMap`.

On a large project where I tested this, this caused a drop in the
runtime of `daml test` from 250s to 200s. In the IDE this can also
make a pretty big difference since we call this everytime we run a
scenario which we do on every file change.
2019-07-08 08:48:09 +02:00
Stefano Baghino
3799847041 Make PostgresIndexer persist PublicPackagesUploaded (#2022)
Advances #1273

Also adds tests for the data access object to upload packages and fixes
bug that emerged.
2019-07-05 19:04:52 +00:00
nickchapman-da
74b684ee0a
Hlb transaction service (#2029)
* support rpc: GetFlatTransactionByEventId

* support rpc: GetFlatTransactionById

* test: GetTransactions

* support rpc: GetTransactionTrees, and types: TransactionTree,TreeEvent

* reorder TransactionService.hs to match .proto

* rpcs: GetTransactionByEventId, GetTransactionById
2019-07-05 17:20:08 +01:00
mziolekda
7e3d580768 Connect LedgerAPI party and package management with KVUtils (#1985)
* connenct LedgerAPI party and package management with KVUtils

* formatting

* address review comments

* add participantId parameter to sandbox and indexer

* annotate TODO's with github issue numbers
2019-07-05 15:31:17 +00:00
Shayne Fletcher
f7657159e4 ghc-lib-8.8.0.20190704.selective-optimizations-off (#2023) 2019-07-05 14:10:05 +00:00
Andreas Herrmann
df7bff6288 Update to bazel-0.27 (#1957)
* Bazel: 0.24.0 -> 0.27.0

* Update rules_haskell for Bazel 0.27 compatibility

* Update bazel-deps and bazel-watcher

* Windows escape JVM flags

* load commands at top of .bzl file

Bazel 0.27 no longer allows load commands that are not at the beginning
of the file.

* Update Bazel rules

* subpackage boundary

* native is not defined in BUILD files

* yarn: @bazel/hide-bazel-files

Seems to be required since latest rules_nodejs version. Otherwise, yarn
fails with errors about existing BUILD or BUILD.bazel files.

* grpc-java plugin visibility

* Update fat_cc_library

* Nix Python3 toolchain

* Iteration over depset

* dev_env_package: Create symlinks one level deeper

To prevent symlinking the BUILD file as well. The nested BUILD file
confuses Bazel as of 0.27 and rules_nodejs cannot find the node
executable anymore.

* Update rules_nodejs

* Add managed_directories for node_modules

* hie-bios: Extract bazel-genfiles from bazel info

Bazel 0.27 changed the genfiles location which breaks the hie-core test
on macOS.

* update cc_wrapper to Bazel 0.27

* bazel info -> bazel info bazel-genfiles

* Fix typo in BUILD

Co-Authored-By: Stefano Baghino <43749967+stefanobaghino-da@users.noreply.github.com>
2019-07-05 14:04:47 +00:00
Gerolf Seitz
79d88a4952 dd a reference server main class that starts an ephemeral postgres server (#2024)
This way we can run the test suite of the ledger api test tool against the
postgres index and postgres indexer.
2019-07-05 13:52:43 +00:00
Martin Huschenbett
4debfda0d8 Remove DA.HKTemplate from daml-stdlib (#2020)
This is superseded by the implementation of generic templates that is
under way.
2019-07-05 12:35:12 +00:00
Gary Verhaegen
f23fe7cd98 record build times & statuses (#2016) 2019-07-05 11:35:30 +00:00
Andreas Herrmann
45b2e47819
GHC: Shorten linker library search paths (#1964) 2019-07-05 13:25:49 +02:00
Gary Verhaegen
e524c70cfc remove cmd echo from build.sh (#2018) 2019-07-05 11:18:12 +00:00
Moritz Kiefer
c1cfcbb773 Refactor generatePackageMap (#2021)
* Refactor generatePackageMap

1. I’m too stupid for 4-tuples  so I replaced it by a record.
2. GlobalPkgMap was simply unnecessary given that we have a rule for
getting the package map.
3. getDalfDependencies threw away the bytestring that we store in the
package db only to then read the file again.

This also brings a measurable performance improvement:

On the skeleton project, the runtime of `daml build` drops from 1.4s
to 0.9s and total memory use drops from 67MB to 44MB.

* Address review comments
2019-07-05 10:25:05 +00:00
Francesco Mazzoli
ca5d045e62 check that submitter is in maintainers for lookup by key (#1967)
* check that submitter is in maintainers when looking up keys

Fixes #1866. Note that this limitation applies both for `lookupByKey`
and `fetchByKey` -- anything involving retrieving a key is affected.

* add UNTIL-LF to run tests up to a certain version of DAML-LF

* name targets for DAML tests better

* add notes about DAML-LF changes

* commit Test.daml with DAML-LF 1.5 rather than compiling it on the fly

* add scenario tests for #1866

* add warnings about future key behavior in docs

* use flag rather than version when executing
2019-07-05 09:34:26 +00:00
Gary Verhaegen
acbc5de820 remove some build warnings (#2012) 2019-07-04 22:07:49 +00:00
Moritz Kiefer
ef9d27d80a Expose TcModuleResult in RuleTypes (#2014)
This should really be part of the public API.
2019-07-04 18:29:52 +00:00
Gerolf Seitz
399cab79be
Make DivulgenceIT work with the test tool (#2002)
1) Change to SuiteResourceManagementAroundAll, transforming the test to
not assume a new/empty ledger for each test case
2) Use distinct workflow ids so the individual test cases don't clash
with each other
3) Use a new UUID for each randomized command id, instead of using the
uuid used per test run.
2019-07-04 18:43:38 +02:00
Moritz Kiefer
8b04206a35 Add Min and Max newtypes (#2011) 2019-07-04 16:02:59 +00:00
Francesco Mazzoli
6cc5510dae purge all Map#mapValues from daml-lf codebase (#1864)
fixes #1861.
2019-07-04 15:08:43 +00:00
Moritz Kiefer
6e14215bcc Fix some expected failures in damlc-shake-tests (#2010)
Most of them were caused by off-by-one errors in goto definition.

There was also one test that was marked as an expected failure but the
actual bug has been fixed for some time and the only reason it was
failing is that the error message was different than the test
expected.

I’ve also renamed daml-ghc-shake-test-ci to damlc-shake-tests which is
something that I might actually be able to remember :)
2019-07-04 14:57:14 +00:00
Gary Verhaegen
03cbb2efe9
extract slack fail message (#2009) 2019-07-04 15:22:22 +01:00
Moritz Kiefer
cf0e0d6243 Remove outdated fixme in scenario service client (#2008) 2019-07-04 13:31:26 +00:00
Moritz Kiefer
aa4e093074 Remove unused damlPreprocessorImports (#2007) 2019-07-04 13:15:25 +00:00
Moritz Kiefer
3dfca69163
Add Sum and Product newtypes to the standard library (#2001) 2019-07-04 14:45:27 +02:00
Moritz Kiefer
0459f199c9
Stop publishing damlc tarball, VSCode extension and quickstart-java to bintray (#2006) 2019-07-04 14:45:09 +02:00
Moritz Kiefer
93f930f438 Fix flaky LSP stress tests (#2004)
Previously, we only checked two diagnostics messages. However, the
second diagnostics messages does not actually need to correspond to
the latest change but can just be a message that has been in the queue
from one of the 1000 changes before. Now we make sure to actually
check all (or at least every second) diagnostic.

This was technically also an issue before but since we only emitted
diagnostics when they changed and we alternate between two states it
worked fine. The way we implement debouncing means that we can now
also end up emitting two consecutive diagnostics changes for the same
set of diagnostics which made this test flaky.
2019-07-04 12:44:35 +00:00
Gary Verhaegen
36070476c3 collect historical download data (#2003) 2019-07-04 11:23:51 +00:00
Moritz Kiefer
bc20ace034
Make the gRPC timeout used for the scenario service configurable (#2000)
Given that we already made the max message size configurable it only
seems reasonable to also make the timeout configurable and on very
large projects, we do sometimes hit this.
2019-07-04 11:01:01 +02:00
Beth Aitman
5daf3f55f3 Improve java install step (#1997) 2019-07-03 21:50:38 +02:00
Shayne Fletcher
96cfa3e346 Add Development.IDE.Core.Debouncer to library other-modules (#1998) 2019-07-03 19:05:54 +00:00
gleber
3dac96f8d3 Ledger API Test Tool: skip semantic tests on unsupported Ledger API. (#1976)
Semantic tests will be skipped if the specified Ledger API endpoint does not
implement TimeService.

This teaches MultiLedgerFixture to deal with cancelled tests.

This improves Ledger API Test Tool reporter to deal with cancellations better.
2019-07-03 18:27:25 +00:00
Brian Healey
ecbe0b15b5 resolve daml warnings for language-support (#1995)
* resolve daml warnings for language-support

* resolve warnings for generated very large archive daml
2019-07-03 17:48:42 +00:00
Moritz Kiefer
79f44e703c Implement debouncing of diagnostics (#1991)
Previously, we emitted diagnostics notifications as soon as we got
them. This resulted in a lot of flickering due to diagnostics getting
cleared briefly when typing only to immediately reappear.

Now, we buffer them for 0.1s so that a new event restoring the
same diagnostics for a slightly modified file will overwrite the
initial clear of diagnostics for the new document version.
2019-07-03 17:30:59 +00:00
Leonid Shlyapnikov
d06191e85d
Defining first endpoints for ledger-service/http-json (#1749) 2019-07-03 12:01:46 -04:00
Neil Mitchell
4dc9cd0020 Clean up hie-core (#1992)
* Split off addRelativeImport from modifying the session

* Switch located imports to adding their own relative imports

* Delete the unused getGhcDynFlags

* Make runGhcEnv no longer need to consult import paths

* Call runGhcEnv directly

* Move getSrcSpanInfos out to Spans

* Remove a redundant import

* Make findImports in Either rather than ExceptT

* Move getImports over to the right place

* Switch to liftEither
2019-07-03 15:38:57 +00:00
Neil Mitchell
a2ba883092 Make Haddock work for hie-core (#1990) 2019-07-03 15:21:12 +01:00
Neil Mitchell
ea3e0a863c Hide some hie-core modules (#1987)
* Hide some hie-core modules

* Make bazelifier happy
2019-07-03 13:37:13 +00:00
nickchapman-da
f3ae835d30
Hlb optional offset in command completion (#1989)
* dont drop error info when not StatusOk

* CommandCompletionService supports optional offset; adapt tests
2019-07-03 14:32:46 +01:00
Gerolf Seitz
a449d86ee0
Initial Ledger API Server (#1978)
* Add external offset column to parameters

We only ever need to use the external offset when restarting the api
server from a persistent data store to resume the ReadService state
update stream from the last processed offset.

In the PostgresIndexer we then need to store the external offset while
adding a new ledger entry.

* Allow disabling the jmx reporter in metricsmanager

* Implement PostgresIndexer component

* Introduce read-only Ledger and Dao

* SandboxEventIdFormatter treats transactionId as opaque string

* Introduce LedgerBackedIndexService

This can be reused both in the Sandbox and the ApiServer

* Implement PostgresIndex component

* Reference Service based on kvutils-v2 and postgres(index|indexer)

* Disable conformance test for ReferenceServer
2019-07-03 15:25:22 +02:00
Moritz Kiefer
a5fdc51662 Restart on nix compression errors (#1986)
We have seen this error on CI at least 2 times so lets restart
automatically when we encounter it.
2019-07-03 12:00:43 +00:00
Neil Mitchell
ad1e8cafbf Fewer orphan instances in hie-core (#1984)
* Get rid of orphan usage in Convert

* Get rid of orphan usage in AtPoint

* Delete one entirely unused orphan

* Remove a comment that is no longer true
2019-07-03 13:01:26 +02:00
Neil Mitchell
2e45ff3c57 Standalone pieces for hie-core (#1982)
* Add a .gitignore just for the hie-core piece

* Add standalone pieces to make hie-core work with a global Cabal install

* Add more things to .gitignore, PR suggestion

* Add copyright header
2019-07-03 11:51:46 +01:00
Moritz Kiefer
330ee17be6 Make Priority in hie-core independent of DAML (#1983) 2019-07-03 10:03:16 +00:00
Moritz Kiefer
3b64291a92 Cleanup moduleImportPaths now that file paths are normalized (#1980) 2019-07-03 09:55:40 +00:00