Skip to content

[ci] Use gofmt to rename generated identifiers #2883

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Nov 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 15 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -171,19 +171,19 @@ all: test-ci-unit test-ci-integration services tools
.PHONY: install-tools
install-tools:
@echo "Installing build tools"
GOBIN=$(tools_bin_path) go install github.com/fossas/fossa-cli/cmd/fossa
GOBIN=$(tools_bin_path) go install github.com/golang/mock/mockgen
GOBIN=$(tools_bin_path) go install github.com/google/go-jsonnet/cmd/jsonnet
GOBIN=$(tools_bin_path) go install github.com/m3db/build-tools/utilities/genclean
GOBIN=$(tools_bin_path) go install github.com/m3db/tools/update-license
GOBIN=$(tools_bin_path) go install github.com/golangci/golangci-lint/cmd/golangci-lint
GOBIN=$(tools_bin_path) go install github.com/mauricelam/genny
GOBIN=$(tools_bin_path) go install github.com/mjibson/esc
GOBIN=$(tools_bin_path) go install github.com/pointlander/peg
GOBIN=$(tools_bin_path) go install github.com/robskillington/gorename
GOBIN=$(tools_bin_path) go install github.com/rakyll/statik
GOBIN=$(tools_bin_path) go install github.com/garethr/kubeval
GOBIN=$(tools_bin_path) go install github.com/wjdp/htmltest
GOBIN=$(tools_bin_path) go install \
github.com/fossas/fossa-cli/cmd/fossa \
github.com/golang/mock/mockgen \
github.com/google/go-jsonnet/cmd/jsonnet \
github.com/m3db/build-tools/utilities/genclean \
github.com/m3db/tools/update-license \
github.com/golangci/golangci-lint/cmd/golangci-lint \
github.com/mauricelam/genny \
github.com/mjibson/esc \
github.com/pointlander/peg \
github.com/rakyll/statik \
github.com/garethr/kubeval \
github.com/wjdp/htmltest

.PHONY: check-for-goreleaser-github-token
check-for-goreleaser-github-token:
Expand Down Expand Up @@ -298,14 +298,12 @@ asset-gen-$(SUBDIR): install-tools
@[ ! -d src/$(SUBDIR)/$(assets_rules_dir) ] || \
PATH=$(combined_bin_paths):$(PATH) PACKAGE=$(m3_package) $(auto_gen) src/$(SUBDIR)/$(assets_output_dir) src/$(SUBDIR)/$(assets_rules_dir)

# NB(schallert): gorename (used by our genny process) doesn't work with go
# modules https://github.com/golang/go/issues/34222
.PHONY: genny-gen-$(SUBDIR)
genny-gen-$(SUBDIR): install-tools
@echo "--- Generating genny files $(SUBDIR)"
@[ ! -f $(SELF_DIR)/src/$(SUBDIR)/generated-source-files.mk ] || \
PATH=$(combined_bin_paths):$(PATH) GO111MODULE=off make -f $(SELF_DIR)/src/$(SUBDIR)/generated-source-files.mk $(genny_target)
@PATH=$(combined_bin_paths):$(PATH) GO111MODULE=off bash -c "source ./scripts/auto-gen-helpers.sh && gen_cleanup_dir '*_gen.go' $(SELF_DIR)/src/$(SUBDIR)/ && gen_cleanup_dir '*_gen_test.go' $(SELF_DIR)/src/$(SUBDIR)/"
PATH=$(combined_bin_paths):$(PATH) make -f $(SELF_DIR)/src/$(SUBDIR)/generated-source-files.mk $(genny_target)
@PATH=$(combined_bin_paths):$(PATH) bash -c "source ./scripts/auto-gen-helpers.sh && gen_cleanup_dir '*_gen.go' $(SELF_DIR)/src/$(SUBDIR)/ && gen_cleanup_dir '*_gen_test.go' $(SELF_DIR)/src/$(SUBDIR)/"

.PHONY: license-gen-$(SUBDIR)
license-gen-$(SUBDIR): install-tools
Expand Down
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ require (
github.com/rakyll/statik v0.1.6
github.com/remeh/sizedwaitgroup v1.0.0 // indirect
github.com/rhysd/go-github-selfupdate v1.2.2 // indirect
github.com/robskillington/gorename v0.0.0-20180424020013-52c7307cddd2
github.com/rveen/ogdl v0.0.0-20200522080342-eeeda1a978e7 // indirect
github.com/satori/go.uuid v1.2.0
github.com/sergi/go-diff v1.1.0
Expand Down
2 changes: 0 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -755,8 +755,6 @@ github.com/remeh/sizedwaitgroup v1.0.0 h1:VNGGFwNo/R5+MJBf6yrsr110p0m4/OX4S3DCy7
github.com/remeh/sizedwaitgroup v1.0.0/go.mod h1:3j2R4OIe/SeS6YDhICBy22RWjJC5eNCJ1V+9+NVNYlo=
github.com/rhysd/go-github-selfupdate v1.2.2 h1:G+mNzkc1wEtpmM6sFS/Ghkeq+ad4Yp6EZEHyp//wGEo=
github.com/rhysd/go-github-selfupdate v1.2.2/go.mod h1:khesvSyKcXDUxeySCedFh621iawCks0dS/QnHPcpCws=
github.com/robskillington/gorename v0.0.0-20180424020013-52c7307cddd2 h1:t+C9QFlvAI+evRn96lz7eKyzo1CgDx3YVx3N/GJIetk=
github.com/robskillington/gorename v0.0.0-20180424020013-52c7307cddd2/go.mod h1:CVTJ4xwzb/4H98jrd7NFgNoTAiL63scr2Pl7kqOcQAQ=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
Expand Down
4 changes: 2 additions & 2 deletions src/dbnode/storage/id_list_gen.go

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

4 changes: 2 additions & 2 deletions src/x/context/finalizeable_list_gen.go

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

105 changes: 71 additions & 34 deletions src/x/generated-source-files.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ gopath_prefix := $(GOPATH)/src
m3x_package := github.com/m3db/m3/src/x
m3x_package_path := $(gopath_prefix)/$(m3x_package)
temp_suffix := _temp
gorename_package := github.com/robskillington/gorename
gorename_package_version := 52c7307cddd221bb98f0a3215216789f3c821b10

# Tests that all currently generated types match their contents if they were regenerated
.PHONY: test-genny-all
Expand Down Expand Up @@ -53,25 +51,6 @@ ifneq ($(rename_type_prefix),)
make hashmap-gen-rename rename_nogen_key="true"
endif

.PHONY: hashmap-gen-rename-helper
hashmap-gen-rename-helper:
gorename -from '"$(target_package)$(temp_suffix)".Map' -to $(rename_type_prefix)Map
gorename -from '"$(target_package)$(temp_suffix)".MapHash' -to $(rename_type_prefix)MapHash
gorename -from '"$(target_package)$(temp_suffix)".HashFn' -to $(rename_type_prefix)MapHashFn
gorename -from '"$(target_package)$(temp_suffix)".EqualsFn' -to $(rename_type_prefix)MapEqualsFn
gorename -from '"$(target_package)$(temp_suffix)".CopyFn' -to $(rename_type_prefix)MapCopyFn
gorename -from '"$(target_package)$(temp_suffix)".FinalizeFn' -to $(rename_type_prefix)MapFinalizeFn
gorename -from '"$(target_package)$(temp_suffix)".MapEntry' -to $(rename_type_prefix)MapEntry
gorename -from '"$(target_package)$(temp_suffix)".SetUnsafeOptions' -to $(rename_type_prefix)MapSetUnsafeOptions
gorename -from '"$(target_package)$(temp_suffix)".mapAlloc' -to _$(rename_type_prefix)MapAlloc
gorename -from '"$(target_package)$(temp_suffix)".mapOptions' -to _$(rename_type_prefix)MapOptions
gorename -from '"$(target_package)$(temp_suffix)".mapKey' -to _$(rename_type_prefix)MapKey
gorename -from '"$(target_package)$(temp_suffix)".mapKeyOptions' -to _$(rename_type_prefix)MapKeyOptions
[ "$(rename_constructor)" = "" ] || \
gorename -from '"$(target_package)$(temp_suffix)".NewMap' -to '$(rename_constructor)'
[ "$(rename_constructor_options)" = "" ] || \
gorename -from '"$(target_package)$(temp_suffix)".MapOptions' -to '$(rename_constructor_options)'

key_type_alias ?= $(key_type)
value_type_alias ?= $(value_type)
.PHONY: hashmap-gen-rename
Expand All @@ -95,11 +74,55 @@ ifeq ($(rename_nogen_value),)
test "$(value_type_alias)" = "struct*" || echo 'type $(value_type_alias) interface{}' >> $(temp_outdir)/value.go
endif
mv $(out_dir)/map_gen.go $(temp_outdir)/map_gen.go
make hashmap-gen-rename-helper

gofmt -w -r 'Map -> $(rename_type_prefix)Map' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// Map# // $(rename_type_prefix)Map#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'MapHash -> $(rename_type_prefix)MapHash' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// MapHash# // $(rename_type_prefix)MapHash#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'HashFn -> $(rename_type_prefix)MapHashFn' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// HashFn# // $(rename_type_prefix)MapHashFn#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'EqualsFn -> $(rename_type_prefix)MapEqualsFn' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// EqualsFn# // $(rename_type_prefix)MapEqualsFn#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'CopyFn -> $(rename_type_prefix)MapCopyFn' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// CopyFn# // $(rename_type_prefix)MapCopyFn#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'FinalizeFn -> $(rename_type_prefix)MapFinalizeFn' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// FinalizeFn# // $(rename_type_prefix)MapFinalizeFn#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'MapEntry -> $(rename_type_prefix)MapEntry' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// MapEntry# // $(rename_type_prefix)MapEntry#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'SetUnsafeOptions -> $(rename_type_prefix)MapSetUnsafeOptions' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// SetUnsafeOptions# // $(rename_type_prefix)MapSetUnsafeOptions#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'mapAlloc -> _$(rename_type_prefix)MapAlloc' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// mapAlloc#// _$(rename_type_prefix)MapAlloc#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'mapOptions -> _$(rename_type_prefix)MapOptions' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// mapOptions#// _$(rename_type_prefix)MapOptions#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'mapKey -> _$(rename_type_prefix)MapKey' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// mapKey#// _$(rename_type_prefix)MapKey#g' $(temp_outdir)/*_gen.go

gofmt -w -r 'mapKeyOptions -> _$(rename_type_prefix)MapKeyOptions' $(temp_outdir)/*_gen.go
sed -i'tmp' 's#^// mapKeyOptions#// _$(rename_type_prefix)MapKeyOptions#g' $(temp_outdir)/*_gen.go

[ "$(rename_constructor)" = "" ] || \
gofmt -w -r 'NewMap -> $(rename_constructor)' $(temp_outdir)/*_gen.go && \
sed -i'tmp' 's#^// NewMap#// $(rename_constructor)#g' $(temp_outdir)/*_gen.go
[ "$(rename_constructor_options)" = "" ] || \
gofmt -w -r 'MapOptions -> $(rename_constructor_options)' $(temp_outdir)/*_gen.go && \
sed -i'tmp' 's#^// MapOptions#// $(rename_constructor_options)#g' $(temp_outdir)/*_gen.go

mv $(temp_outdir)/map_gen.go $(out_dir)/map_gen.go
! test -f $(temp_outdir)/new_map_gen.go || mv $(temp_outdir)/new_map_gen.go $(out_dir)/new_map_gen.go
rm -f $(temp_outdir)/key.go
rm -f $(temp_outdir)/value.go
rm -f $(temp_outdir)/*.gotmp
rmdir $(temp_outdir)

# Generation rule for all generated lists
Expand Down Expand Up @@ -150,6 +173,7 @@ ifneq ($(rename_type_prefix),)
mv $(out_dir)/$(out_file) $(temp_outdir)/$(out_file)
make arraypool-gen-rename out_dir=$(out_dir)
mv $(temp_outdir)/$(out_file) $(out_dir)/$(out_file)
rm -f $(temp_outdir)/*.gotmp
rmdir $(temp_outdir)
endif

Expand All @@ -163,13 +187,19 @@ ifneq ($(rename_gen_types),)
echo '' >> $(temp_outdir)/types.go
echo "type $(elem_type_alias) interface{}" >> $(temp_outdir)/types.go
endif
gorename -from '"$(target_package)$(temp_suffix)".elemArrayPool' -to $(rename_type_prefix)ArrayPool
gorename -from '"$(target_package)$(temp_suffix)".elemArr' -to $(rename_type_prefix)Arr
gorename -from '"$(target_package)$(temp_suffix)".elemArrPool' -to $(rename_type_prefix)ArrPool
gorename -from '"$(target_package)$(temp_suffix)".elemArrayPoolOpts' -to $(rename_type_prefix)ArrayPoolOpts
gorename -from '"$(target_package)$(temp_suffix)".elemFinalizeFn' -to $(rename_type_prefix)FinalizeFn
gorename -from '"$(target_package)$(temp_suffix)".newElemArrayPool' -to $(rename_constructor)
gorename -from '"$(target_package)$(temp_suffix)".defaultElemFinalizerFn' -to default$(rename_type_middle)FinalizerFn
gofmt -w -r 'elemArrayPool -> $(rename_type_prefix)ArrayPool' $(temp_outdir)/*.go
gofmt -w -r 'elemArr -> $(rename_type_prefix)Arr' $(temp_outdir)/*.go
gofmt -w -r 'elemArrPool -> $(rename_type_prefix)ArrPool' $(temp_outdir)/*.go
gofmt -w -r 'elemArrayPoolOpts -> $(rename_type_prefix)ArrayPoolOpts' $(temp_outdir)/*.go
gofmt -w -r 'elemFinalizeFn -> $(rename_type_prefix)FinalizeFn' $(temp_outdir)/*.go
gofmt -w -r 'newElemArrayPool -> $(rename_constructor)' $(temp_outdir)/*.go
gofmt -w -r 'defaultElemFinalizerFn -> default$(rename_type_middle)FinalizerFn' $(temp_outdir)/*.go

# best effort comment rename
sed -i'tmp' 's#^// elemArr#// $(rename_type_prefix)Arr#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// elemFinalizeFn#// $(rename_type_prefix)FinalizeFn#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// newElemArrayPool#// $(rename_constructor)#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// defaultElemFinalizerFn#// default$(rename_type_middle)FinalizerFn#g' $(temp_outdir)/*.go
ifneq ($(rename_gen_types),)
rm $(temp_outdir)/types.go
endif
Expand All @@ -192,6 +222,7 @@ ifneq ($(rename_type_prefix),)
mv $(out_dir)/list_gen.go $(temp_outdir)/list_gen.go
make list-gen-rename out_dir=$(out_dir)
mv $(temp_outdir)/list_gen.go $(out_dir)/list_gen.go
rm -f $(temp_outdir)/*.gotmp
rmdir $(temp_outdir)
endif

Expand All @@ -205,11 +236,17 @@ ifneq ($(rename_gen_types),)
echo '' >> $(temp_outdir)/types.go
echo "type $(elem_type_alias) interface{}" >> $(temp_outdir)/types.go
endif
gorename -from '"$(target_package)$(temp_suffix)".Element' -to $(rename_type_prefix)Element
gorename -from '"$(target_package)$(temp_suffix)".List' -to $(rename_type_prefix)List
gorename -from '"$(target_package)$(temp_suffix)".ElementPool' -to $(rename_type_prefix)ElementPool
gorename -from '"$(target_package)$(temp_suffix)".newElementPool' -to new$(rename_type_middle)ElementPool
gorename -from '"$(target_package)$(temp_suffix)".newList' -to new$(rename_type_middle)List
gofmt -w -r 'Element -> $(rename_type_prefix)Element' $(temp_outdir)/*.go
gofmt -w -r 'List -> $(rename_type_prefix)List' $(temp_outdir)/*.go
gofmt -w -r 'ElementPool -> $(rename_type_prefix)ElementPool' $(temp_outdir)/*.go
gofmt -w -r 'newElementPool -> new$(rename_type_middle)ElementPool' $(temp_outdir)/*.go
gofmt -w -r 'newList -> new$(rename_type_middle)List' $(temp_outdir)/*.go
# best-effort comment fixup
sed -i'tmp' 's#^// Element#// $(rename_type_prefix)Element#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// List#// $(rename_type_prefix)List#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// ElementPool#// $(rename_type_prefix)ElementPool#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// newElementPool#// new$(rename_type_middle)ElementPool#g' $(temp_outdir)/*.go
sed -i'tmp' 's#^// newList#// new$(rename_type_middle)List#g' $(temp_outdir)/*.go
ifneq ($(rename_gen_types),)
rm $(temp_outdir)/types.go
endif
2 changes: 1 addition & 1 deletion src/x/generics/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func (e *Element) Prev() *Element {
}

// List represents a doubly linked list.
// The zero value for List is an empty list ready to use.
// The zero value is an empty, ready to use list.
type List struct {
root Element // sentinel list element, only &root, root.prev, and root.next are used
len int // current list length excluding (this) sentinel element
Expand Down
1 change: 0 additions & 1 deletion tools.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,5 @@ import (
_ "github.com/mjibson/esc"
_ "github.com/pointlander/peg"
_ "github.com/rakyll/statik"
_ "github.com/robskillington/gorename"
_ "github.com/wjdp/htmltest"
)