daml/ledger-api
2019-04-04 16:08:52 -04:00
..
grpc-definitions open-sourcing daml 2019-04-04 09:33:38 +01:00
npm-package open-sourcing daml 2019-04-04 09:33:38 +01:00
perf-testing open-sourcing daml 2019-04-04 09:33:38 +01:00
rs-grpc-akka open-sourcing daml 2019-04-04 09:33:38 +01:00
rs-grpc-bridge open-sourcing daml 2019-04-04 09:33:38 +01:00
sample-service open-sourcing daml 2019-04-04 09:33:38 +01:00
scripts open-sourcing daml 2019-04-04 09:33:38 +01:00
testing-utils open-sourcing daml 2019-04-04 09:33:38 +01: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 open-sourcing daml 2019-04-04 09:33:38 +01: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.