Protobuf files for Ledger API and DAML-LF

Where can I find the protobuf files for the Ledger API and DAML-LF for a given release? I need to download them automatically as part of a CI pipeline.

1 Like

Ah, I just found them myself, they’re provided as artefacts for each release: https://github.com/digital-asset/daml/releases/download/v1.0.0/protobufs-1.0.0.zip

2 Likes

I noticed in that zip that ledger and daml_lf_dev files are under the daml namespace, but daml_lf_1_6, daml_lf_1_7 and daml_lf_1_8 are under the digitalasset namespace. Shouldn’t they all be in the same?

No, as part of 1.0.0 we transitioned everything we could to com.daml, but doing the same for existing DAML-LF protobuf packages could break existing code.

1 Like

Makes sense, thanks. The dependency google/rpc/status.proto is not included in the zip. Would it make sense to do so? Otherwise I don’t know where or which version of this file I need to pull in.

The argument is fair, but rather then including I think it would make sense to document the correct source. That would be here: https://raw.githubusercontent.com/grpc/grpc/master/src/proto/grpc/status/status.proto

The version is not particularly relevant as this definition never changed, but if you want to hook up to a stable version to protect yourself against future changes you can use the latest one:
https://raw.githubusercontent.com/grpc/grpc/v1.28.1/src/proto/grpc/status/status.proto

1 Like

Addressed by https://github.com/digital-asset/daml/pull/5664

3 Likes

To find these in a web browser:

  1. Browse to the digital-asset/daml repo’s Releases page.
  2. Search for the version of interest.
  3. Expand the list of Assets.
  4. Download the protobufs zip file.

To find them in the source control repo:

  1. Browse to the digital-asset/daml repo.
  2. Click the drop-down to select the current branch (e.g., main).
  3. Select the Tags tab.
  4. Search for and select the version of interest (e.g., 2.8.3).
  5. In the “Go to file” box, search for one of the proto files (e.g., commands.proto).