rules_jvm_external 4.0 introduced the @maven//:outdated command, which
checks the dependencies for newer versions. This can help us keep the
dependency versions up-to-date.
CHANGELOG_BEGIN
CHANGELOG_END
* update telemetry version to 1.19.1 to match canton
CHANGELOG_BEGIN
Update telemetry version to 1.19.1
CHANGELOG_END
* update opentelemetry to 1.12.0. Avoid repetition on dropwizard and prometheus versions
* bazel reformat
New instances and collection methods, many of which included
as-is from @andreaslochbihler-da's experiments downstream.
* mk, a version of apply with special inference
* new names for the conversion functions suggested by
@andreaslochbihler-da
* groupBy1, zipWithIndex, reduceLeft, last1, distinct, toVector1
* a derived Semigroup instance
* a more explicit subtyping utility to specify implicit preference than
what we get with shapeless @@
* from method, alias for unapply
* cats functorial, foldable instances in the new nonempty-cats library
* new NonEmpty utilities
CHANGELOG_BEGIN
CHANGELOG_END
Co-authored-by: Andreas Lochbihler <36634420+andreaslochbihler-da@users.noreply.github.com>
* upgrade scalapb/netty/grpc/protobuf in proven combination
CHANGELOG_BEGIN
Upgrade scalapb, netty, grpc, protobuf and guava versions
CHANGELOG_END
* bazel reformat
* match grpc version in deps.bzl
* upgrade akka
* keep grpc version to 1.43 that is used in latest nixpkgs-unstable
* rebase and regen
* update SHA for scalapb tarball
Co-authored-by: Samir Talwar <samir.talwar@digitalasset.com>
* Upgrade to Scala 2.13.8
changelog_begin
changelog_end
* Update hash for scala in nixpkgs
* update more hashes for scala upgrade
* Fix most warnings etc.
* Fix remaining errors etc.
* Fix formatting
* Resolve last errors hopefully
* Fix ledger api common build file
* Combine imports & revert accidental change that broke the CI run
* Rename exporting vals to scriptExport & minimize diff
* Remove more wrong changes
* moved warning around
* Allow defining ledger-begin and ledger-end offset conditions for transactions and transaction-trees streams in ledger-api-bench-tool
CHANGELOG_BEGIN
- [Integration Kit] - ledger-api-bench-tool allow to define ledger-begin and ledger-end offset boundaries for streams.
CHANGELOG_END
* Print ledger-api-bench-tool config in black&white to avoid colouring special characters printed
* Reduce duplication
* Add more unit tests for offset
* Add an endpoint used for querying user rights of a specific user
changelog_begin
- [HTTP-JSON] Added endpoint /user/rights that if called with POST will return user rights of the user specified via the payload
changelog_end
* Add grant&revoke user rights endpoint
changelog_begin
- [HTTP-JSON] Added endpoints user/rights/grant & user/rights/revoke which allow granting & revoking user rights for a specific user
changelog_end
* Switch to using the UserRights list instead of a case class with fields
* fix type annotation
* Rename allocateUser func to createUser to comform with the endpoint path
* Response format simplification & cleanup
* Add one last test that ensure that the JSON format of UserRight doesn't change without us noticing
* Apply suggestions from code review
Co-authored-by: Stephen Compall <stephen.compall@daml.com>
* Remove unnecessary conversations and also just use unwrap for tagged strings
Co-authored-by: Stephen Compall <stephen.compall@daml.com>
Continues the work started in https://github.com/digital-asset/daml/pull/12543
These libraries were only needed to transition from Scala 2.12 to 2.13
and are no longer useful as all the necessary items are now available
in Scala 2.13.
changelog_begin
changelog_end
This is to remove a JNDI and JDBC related vulnerability.
See https://jira.qos.ch/browse/LOGBACK-1591.
The vulnerability is only exploitable if the logback configuration
already makes use of JNDI lookups. This is _NOT_ the case for
logback configuration files shipped with any Daml components.
Nevertheless, it is good practice to upgrade dependencies known to be
vulnerable.
Regenerating the bazel dependency files also revealed that a previous
update to gRPC 1.42.0 was committed without running
`bazel run @unpinned_maven//:pin`.
CHANGELOG_BEGIN
CHANGELOG_END
I’ve kept the infrastructure for versioned_scala_deps around because
I’m optimistic and hope that eventually we’ll do another Scala upgrade.
changelog_begin
changelog_end
* [Ledger API error codes] ErrorCode interfaces and generator
* Implementation of annotation processor
* Implementation of DocItem generator
* Unit testing of the generator and error code logging
CHANGELOG_BEGIN
CHANGELOG_END
* Addressed review comments
* Upgrade Scalatest to v3.2.9.
Because of some coupling we also have to upgrade Scalaz to the latest
v7.2 point release, v7.2.33.
The Scalatest changes are quite involved because the JAR has been broken
up into several smaller JARs. Because Bazel expects us to specify all
dependencies and doesn't allow transitive dependencies to be used
directly, this means that we need to specify the explicit Scalatest
components that we use.
As you can imagine, this results in quite a big set of changes. They
are, however, constrained to dependency management; all the code remains
the same.
CHANGELOG_BEGIN
CHANGELOG_END
* http-json-oracle: Fix a Scalatest dependency.
* ledger-api-client: Fix a Scalatest dependency.
Looks like the old version does not have support for Arm macs. I don’t
actually have one to test but I can see that it at least shows up in
the JAR with this change:
972888 2010-01-01 00:00 org/sqlite/native/Mac/aarch64/libsqlitejdbc.jnilib
changelog_begin
changelog_end
Thought it might help with something, it didn’t but no reason to stick
to an older version.
Note that 5.x don’t work on jdk8 so this is the latest we can get.
changelog_begin
changelog_end
Was curious if there were any relevant performance improvements in
newer versions. Looks like the answer is no but we might as well
upgrade anyway.
changelog_begin
changelog_end
CHANGELOG_BEGIN
* [Integration Kit] Removed trace_context field from Ledger API and its bindings as we now have trace context propagation support via gRPC metadata. If you are constructing or consuming Ledger API requests or responses directly, you may need to update your code.
CHANGELOG_END
* upgrade scalacheck to 1.14.3
* regenerate maven_install files
* some different names and implicits
* remove some fromTryCatchNonFatal
* more porting
* port fromTryCatchNonFatal to attempt
* factor the assertions in SignatureSpec to avoid \/
* deal with invariant \/
* make partial unification do what we want
* \/, parse*, and toNel
* many uses of the .right method
* a legitimate use of fromTryCatchThrowable
* rebuild maven pins
* further invariant \/
* OneAnd and Nel interface changes
* further Either games
* \/ and reformatting
* \/ in http-json
* \/ in http-json
* deprecations
* more invariance
* cleanup unused
* more invariance; http-json compiles
* final either follies
* small 2.12 extra incompatibility
* rebuild deps
* revisit a couple earlier fixes using nicer expressions I learned later
* no changelog
CHANGELOG_BEGIN
CHANGELOG_END
* repin 2.12
* oracle varray to json
CHANGELOG_BEGIN
CHANGELOG_END
* various cleanup, mostly removing printlns
* remove oracle connection from conversions and dependencies, cleaning up vestigial scala side varray code
* fix lazylist/stream issue by using java stream. remove braces
* Upgrade protobuf-java and scalapb.
CHANGELOG_BEGIN
CHANGELOG_END
* Bazel: Generate ScalaPB classes without `unknownFields`.
This is very annoying because it means that extractors need an extra
`_` for no good reason. It also breaks Circe's automatic derivation.
Including unknown fields is the default behavior in Protocol Buffers for
Java now, and we'll probably have to reckon with it at some point, but
let's kick that can down the road a little.
* Upgrade protobuf-java to 3.17.1.
This is identical to 3.17.0, but let's track it anyway.
* Bazel: Move ScalaPB versions into their own file.
They don't need to go into the generated one.
* Simplified metrics names
* Metrics returning domain values instead of formatted strings
* Always returning metric Value objects with possibly optional contents
* Use the new metric Value classes
* Remove the old metric reporting mechanism
* CHANGELOG_BEGIN
CHANGELOG_END
* Fixed 2.12 build
* Removed random generators from metric tests
* Fixed 2.12 build
* Improved readability of the size metric calculation
* Minor change
* `ledger-api-bench-tool`: max consumption delay SLO [DPP-400] (#9785)
* ServiceLevelObjective trait
* Added copyright to a new file
* A model for combining metrics and objectives in type families
* Mechanism for returning metric violation information
* Return error code when SLOs violated
* Use type parameter for the result of transaction service methods
* max-delay command line parameter for the max delay SLO
* Logging violated objectives in the final report
* Simplified size rate metric value
* CHANGELOG_BEGIN
- [Integration Kit] - ledger-api-bench-tool - new parameter max-delay for specifying the service-level objective for max delay
CHANGELOG_END
* Fixed tests
* Simplified MetricsManager.Message trait
* Fixed build errors
* Changed objectives violated message
* Removed DelayObjective trait
* Comments improvement
* Ordering for MaxDelay.Value
* Removed redundant method from the ServiceLevelObjective trait
As everyone knows that has worked on the ledger API test tool, diffx
makes compilation very very slow (>150s for TransactionServiceIT).
As some people (myself included) know, trying to get diffx to not be
slow is also a giant nightmare (have fun debugging mutually recursive
implicits derived by Scala macros)
So this PR takes a different approach:
Drop diffx completely and replace it by munit. This leads to slightly
different diffs but I think they’re close enough and importantly munit
involves absolutely no macros for those diffs so compilation takes 5s
for TransactionServiceIT.
changelog_begin
changelog_end
changelog_begin
- [Ledger HTTP Json Service] Logging output can now be in JSON either via providing the cli option `--log-encoder json` or via setting the env var `LOG_FORMAT_JSON=true`
changelog_end
Ths is required to get a version of Gatling that supports Scala
2.13 (and only that because they do not cross build).
Unfortunately the upgrade is a bit more annoying than I was hoping for:
Our custom gatling utils rely on parsing the simulation log. This is
an internal file format with zero documentation or stabilityt
guarantees and as expected it has changed in incompatible ways during
the upgrade.
Rather than trying to reverse engineer and adapt to changes everytime
we upgrade, this PR switches us to a slightly more supported codepath
by parsing the `stats.json` and `assertions.json` produced by the
highcharts stuff. Afaict this is also what for example the Jenkins
integration relies on so while it’s not completely public API it seems
like the best option I could find.
There are a few pieces of information we can’t get out of those
files. Specifically:
1. maxUsers: we only ever need one users anyway so not really relevant.
2. start, duration, end: no idea why we would want those. we want per
request metrics not the total duration.
3. geometric mean: slightly annoying, but avg & stdev should be good
enough™.
4. The scenario name: Not really an issue but if it is, we can
disambiguate by changing request names.
changelog_begin
changelog_end
* Add unit tests for Telemetry
CHANGELOG_BEGIN
CHANGELOG_END
* Make Tracers injectable, improve the TelemetryContextSpec, add a metrics-test-lib package
* Change the TelemetryContext to use SpanAttributes instead of raw AttributeKeys
and remove an unused object along with its dependencies
CHANGELOG_BEGIN
CHANGELOG_END
* Change the Tracer name and the instrumentation name from participant to com.daml.telemetry
* Add telemetry classes from the oem integration kit and use it for command submissions
* Change submitTransaction to submitTransactionWithTelemetry and add a deprecation
* Fix tests
* Revert "Change submitTransaction to submitTransactionWithTelemetry and add a deprecation"
CHANGELOG_BEGIN
- [Integration Kit] TelemetryContext has been introduced to the WriteService.submitTransaction method to support distributed tracing
CHANGELOG_END
* implement prometheus metrics backend
CHANGELOG_BEGIN
- Add prometheus metrics as a cli option in the participant integration api
CHANGELOG_END
* repin scala 2.13 lockfile
* format scala
* Upgrade Scala 2.12 to v2.12.13.
This is being pulled in anyway because of Maven/Gradle/etc's fun
"favor the most recent" resolution mechanism. The version of Akka we
depend upon transitively depends on Scala 2.12.13, so any downstream
consumers will see that as the Scala version required.
Bringing the Daml repo in line means no more confusion.
CHANGELOG_BEGIN
- [Scala Bindings] If you are using Daml on Scala 2.12, it now depends
on Scala v2.12.13 (from v2.12.12).
CHANGELOG_END
* Scala 2.12.13 is the default version in our pinned version of nixpkgs.
* Upgrade Scala 2.13's Wartremover version.
* Rename `scala_version_rule` to `scala_version_configure`.
* Add a test case to ensure the Scala versions are the same everywhere.
* Add tests for the Scala JAR versions in maven_install_*.json
* gatling-utils: Change the sort order of the expected CSV in tests.
I don't know why this changed, but it seems to be stable.
* compatibility: `scala_version` -> `scala_version_configure`.
* Bazel: Disable the Scala version tests on Windows.
* compatibility: Upgrade Wartremover to Scala 2.12.13.