daml/ledger-api
Gerolf Seitz 2a932d9b22
Include google/rpc/*.proto into ledger-api-scalapb (#477)
Considering that there is no canonical source for status.proto generated
for scalapb (for java it is pulled in via a transitive dependency of
grpc-protobuf), we should rather compile and include it in the
ledger-api-scalapb artefact.
2019-04-15 14:57:43 +02:00
..
grpc-definitions Include google/rpc/*.proto into ledger-api-scalapb (#477) 2019-04-15 14:57:43 +02:00
npm-package open-sourcing daml 2019-04-04 09:33:38 +01:00
perf-testing Enforce consistent formatting of BUILD files. (#412) 2019-04-12 13:10:16 +02:00
rs-grpc-akka Enforce consistent formatting of BUILD files. (#412) 2019-04-12 13:10:16 +02:00
rs-grpc-bridge Enforce consistent formatting of BUILD files. (#412) 2019-04-12 13:10:16 +02:00
sample-service Enforce consistent formatting of BUILD files. (#412) 2019-04-12 13:10:16 +02:00
scripts open-sourcing daml 2019-04-04 09:33:38 +01:00
testing-utils Enforce consistent formatting of BUILD files. (#412) 2019-04-12 13:10:16 +02:00
.gitignore open-sourcing daml 2019-04-04 09:33:38 +01:00
.sbtopts open-sourcing daml 2019-04-04 09:33:38 +01:00
BUILD.bazel Enforce consistent formatting of BUILD files. (#412) 2019-04-12 13:10:16 +02:00
README.md open-sourcing daml 2019-04-04 09:33:38 +01:00
UNRELEASED.md open-sourcing daml 2019-04-04 09:33:38 +01:00

Ledger-API

This is the API code for the ledger, which contains:

  • gRPC API definitions
  • Generated Scala bindings
  • gRPC-RS bridge
  • gRPC-Akka bridge
  • Server API classes with validation
  • Prototype Server
  • Prototype Clients
    • Scala
    • Python
    • Node.js
  • Integration tests for all of the above

Documentation

The Ledger API Introduction documentation package contains introductory material as well as the protodocs reference documentation.

Generate ProtoDocs with ledger-api/docs/ledger-api-introduction/generate-protodocs script.

Preview the documentation with da-docs-preview or da-docs-preview-all.

Publish the documentation with da-docs-publish x.y.z.

Build

The code uses SBT as a build system

sbt compile

To run the tests

sbt test

Release

The release process on jenkins also publishes the Ledger API Introduction documentation package with the release version.

  1. Create a branch ledger-api-release-<major>-<minor>-<point> for the release. Check the file ledger-api/version.sbt. For example, let's say the the current version of the project is 0.9.3-SNAPSHOT. You need to create a branch called ledger-api-release-0-9-3;

  2. Generate the protobuf ProtoDocs with ledger-api/docs/ledger-api-introduction/generate-protodocs and commit to that branch.

  3. Bump the version for the NPM distribution channel:

    (cd npm-package && npm version ..)

  4. Move the ## Unreleased section of ledger-api/UNRELEASED.md to the new release version you have created in ledger-api/CHANGELOG.md and commit to that branch. The message of the commit is not important as it will be discarded;

  5. Run sbt release. This will ask for the release version and the next version, and will create commit with the release version and next version, and also takes care about tagging;

  6. Push your branch and tag:

git push origin release/ledger-api/0.9.3        # check the tag that has been created, and push it
git push -u origin ledger-api-release-0-9-3    # push your branch
  1. Go to the release Jenkins job Enter the tag you published and run the job.
  2. Create a Pull Request from your branch, have it reviewed and merged. After it's done, you can delete the branch.