Files
temporal/develop/protoc.sh
Alex Shtin 91893f1064 Remove license header from every file (#7689)
## What changed?
<!-- Describe what has changed in this PR -->
Remove license header from every file. Because it is really hard to
follow in this PR here is the summary:
1. License header is removed from all `.go` and `.proto` files
:fireworks::fireworks:🎆.
2. `LICENSE` file in the root directory has only Temporal and Uber
copyrights.
3. 5 other `LICENSE` files added to the packages which have copyrights
different from Temporal and Uber: Datadog, Xargin, "Mat Ryer, Tyler
Bunnell and contributors".
4. `license_file` flag is removed from all code generation tools.
5. `copyright_file` flag is removed from `go:generate mockgen`
directive.
6. All copyright related targets are removed from `Makefile`.
7. Updated Temporal copyright year to 2025 everywhere.

## Why?
<!-- Tell your future self why have you made these changes -->
I double checked with legal department that it is not needed to have
license header in every file. One file per repo is enough. I put all
copyrights to the root `LICENSE` file and removed header from all other
files. Also updated tools and `Makefile`.
2025-05-01 18:50:21 -07:00

50 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu -o pipefail
color() { printf "\e[1;36m%s\e[0m\n" "$*"; }
api=$PROTO_OUT
new=$api.new
color "Generating protos..."
rm -rf "$new" && mkdir -p "$new"
$PROTOGEN \
--descriptor_set_in="$API_BINPB" \
--root="$PROTO_ROOT"/internal \
--rewrite-enum=BuildId_State:BuildId \
--output="$new" \
-p go-grpc_out=paths=source_relative:"$new" \
-p go-helpers_out=paths=source_relative:"$new"
color "Run goimports for proto files..."
$GOIMPORTS -w "$new"
color "Generate proto mocks..."
find "$new" -name service.pb.go -o -name service_grpc.pb.go | while read -r src; do
dst=$(echo "$src" | sed -e 's,service/,servicemock/,' -e 's,[.]go$,.mock.go,')
pkg=$(basename "$(dirname "$(dirname "$dst")")")
$MOCKGEN -package "$pkg" -source "$src" -destination "$dst"
# Since we're generating mocks from files in incorrect locations, mockgen
# writes incorrect imports. Fix them manually. The awkward sed/rm invocation
# is to work on linux and macos.
sed -i.replaced "s,$new/temporal/server/,," "$dst"
rm -f "$dst.replaced"
done
color "Modify history service server interface..."
sed -i.bak \
-e 's/GetWorkflowExecutionHistory(context\.Context, \*GetWorkflowExecutionHistoryRequest) (\*GetWorkflowExecutionHistoryResponse, error)/GetWorkflowExecutionHistory(context.Context, *GetWorkflowExecutionHistoryRequest) (*GetWorkflowExecutionHistoryResponseWithRaw, error)/g' \
-e 's/RecordWorkflowTaskStarted(context\.Context, \*RecordWorkflowTaskStartedRequest) (\*RecordWorkflowTaskStartedResponse, error)/RecordWorkflowTaskStarted(context.Context, *RecordWorkflowTaskStartedRequest) (*RecordWorkflowTaskStartedResponseWithRawHistory, error)/g' \
"$new"/temporal/server/api/historyservice/v1/service_grpc.pb.go
rm "$new"/temporal/server/api/historyservice/v1/service_grpc.pb.go.bak
color "Moving proto files into place..."
old=$api.old
[[ -d "$api" ]] && mv -f "$api" "$old"
mkdir -p "$api"
mv -f "$new"/temporal/server/api/* "$api"/
rm -rf "$new" "$old"