Skip to content
This repository has been archived by the owner on Oct 3, 2023. It is now read-only.

Commit

Permalink
Add makefile, upgrade to use opentelemetry protoc docker, newer protoc (
Browse files Browse the repository at this point in the history
#225)

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
  • Loading branch information
Bogdan Drutu committed Sep 22, 2022
1 parent 032ec2a commit a5f3b19
Show file tree
Hide file tree
Showing 47 changed files with 1,841 additions and 1,773 deletions.
59 changes: 59 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
OTEL_DOCKER_PROTOBUF ?= otel/build-protobuf:0.11.0
BUF_DOCKER ?= bufbuild/buf:1.7.0

PROTOC := docker run --rm -u ${shell id -u} -v${PWD}:${PWD} -w${PWD} ${OTEL_DOCKER_PROTOBUF} --proto_path=${PWD}/src


PROTO_GEN_GO_DIR ?= gen-go
PROTO_GEN_PYTHON_DIR ?= gen-python
PROTO_GEN_RUBY_DIR ?= gen-ruby
PROTO_GEN_OPENAPI_DIR ?= gen-openapi

# Generate gRPC/Protobuf implementation for Go.
.PHONY: gen-go
gen-go:
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/agent/common/v1/common.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/resource/v1/resource.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/metrics/v1/metrics.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/stats/v1/stats.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/trace/v1/trace.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/trace/v1/trace_config.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/agent/common/v1/common.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/agent/metrics/v1/metrics_service.proto
$(PROTOC) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR) opencensus/proto/agent/trace/v1/trace_service.proto
$(PROTOC) --grpc-gateway_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/trace/v1/trace_service_http.yaml:./$(PROTO_GEN_GO_DIR) opencensus/proto/agent/trace/v1/trace_service.proto
$(PROTOC) --grpc-gateway_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/metrics/v1/metrics_service_http.yaml:./$(PROTO_GEN_GO_DIR) opencensus/proto/agent/metrics/v1/metrics_service.proto
mv $(PROTO_GEN_GO_DIR)/github.com/census-instrumentation/opencensus-proto/gen-go/* $(PROTO_GEN_GO_DIR)
rm -fr $(PROTO_GEN_GO_DIR)/github.com

# Generate gRPC/Protobuf implementation for Go.
.PHONY: gen-python
gen-python:
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/agent/common/v1/common.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/resource/v1/resource.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/metrics/v1/metrics.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/stats/v1/stats.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/trace/v1/trace.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/trace/v1/trace_config.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/agent/common/v1/common.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) --grpc-python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/agent/metrics/v1/metrics_service.proto
$(PROTOC) --python_out=./$(PROTO_GEN_PYTHON_DIR) --grpc-python_out=./$(PROTO_GEN_PYTHON_DIR) opencensus/proto/agent/trace/v1/trace_service.proto

# Generate gRPC/Protobuf implementation for Go.
.PHONY: gen-ruby
gen-ruby:
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/agent/common/v1/common.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/resource/v1/resource.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/metrics/v1/metrics.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/stats/v1/stats.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/trace/v1/trace.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/trace/v1/trace_config.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/agent/common/v1/common.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/agent/metrics/v1/metrics_service.proto
$(PROTOC) --ruby_out=./$(PROTO_GEN_RUBY_DIR) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR) opencensus/proto/agent/trace/v1/trace_service.proto

# Generate OpenApi (Swagger) documentation file for grpc-gateway endpoints.
.PHONY: gen-openapi
gen-openapi:
$(PROTOC) --openapiv2_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/trace/v1/trace_service_http.yaml:$(PROTO_GEN_OPENAPI_DIR) opencensus/proto/agent/trace/v1/trace_service.proto
$(PROTOC) --openapiv2_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/metrics/v1/metrics_service_http.yaml:$(PROTO_GEN_OPENAPI_DIR) opencensus/proto/agent/metrics/v1/metrics_service.proto
40 changes: 20 additions & 20 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,56 +17,56 @@ Follow the instructions [here](http://google.github.io/proto-lens/installing-pro
Then run the following commands to re-generate the gen-go files:

```bash
$ cd $(go env GOPATH)/src/github.com/census-instrumentation/opencensus-proto
$ git checkout -b update-gen-go
$ rm -rf gen-go
$ cd src
$ ./mkgogen.sh
$ rm -rf gen-go/*
$ make gen-go
$ git add -A
$ git commit -m "Update gen-go files."
```

Go through PR review and merge the changes to GitHub.

## Release Ruby files
## Release OpenAPI files

To generate the Ruby files from protos, you'll need to install grpc-tools gem.
Then run the following commands to re-generate the gen-openapi files:

```bash
gem install grpc-tools
$ git checkout -b update-gen-ruby
$ rm -rf gen-openapi/*
$ make gen-openapi
$ git add -A
$ git commit -m "Update gen-openapi files."
```

Go through PR review and merge the changes to GitHub.

## Release Ruby files

Then run the following commands to re-generate the gen-ruby files:

```bash
$ git@github.com:census-instrumentation/opencensus-proto.git
$ cd opencensus-proto
$ git checkout -b update-gen-ruby
$ rm -rf gen-ruby
$ cd src
$ ./mkrubygen.sh
$ rm -rf gen-ruby/*
$ make gen-ruby
$ git add -A
$ git commit -m "Update gen-ruby files."
```

## Release Python files

To generate the Python files from protos, you'll need to install grpc-tools from PIP.
Go through PR review and merge the changes to GitHub.

```bash
python -m pip install grpcio-tools
```
## Release Python files

Then run the following commands to re-generate the gen-python files:

```bash
$ git checkout -b update-gen-python # Assume you're under opencensus-proto/
$ cd src
$ ./mkpygen.sh
$ make gen-python
$ git add -A
$ git commit -m "Update gen-python files."
```

Go through PR review and merge the changes to GitHub.

## Tagging the Release

Our release branches follow the naming convention of `v<major>.<minor>.x`, while the tags include the
Expand Down
38 changes: 17 additions & 21 deletions gen-go/agent/common/v1/common.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit a5f3b19

Please sign in to comment.