mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Move go-licenses to generate and separate generate into a frontend and backend component (#21061)
The `go-licenses` make task introduced in #21034 is being run on make vendor and occasionally causes an empty go-licenses file if the vendors need to change. This should be moved to the generate task as it is a generated file. Now because of this change we also need to split generation into two separate steps: 1. `generate-backend` 2. `generate-frontend` In the future it would probably be useful to make `generate-swagger` part of `generate-frontend` but it's not tolerated with our .drone.yml Ref #21034 Signed-off-by: Andrew Thornton <art27@cantab.net> Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
		
							
								
								
									
										27
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								Makefile
									
									
									
									
									
								
							@@ -111,6 +111,8 @@ WEBPACK_DEST_ENTRIES := public/js public/css public/fonts public/img/webpack pub
 | 
				
			|||||||
BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go
 | 
					BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go
 | 
				
			||||||
BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST))
 | 
					BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GENERATED_GO_DEST := modules/charset/invisible_gen.go modules/charset/ambiguous_gen.go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SVG_DEST_DIR := public/img/svg
 | 
					SVG_DEST_DIR := public/img/svg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AIR_TMP_DIR := .air
 | 
					AIR_TMP_DIR := .air
 | 
				
			||||||
@@ -130,9 +132,12 @@ GO_DIRS := cmd tests models modules routers build services tools
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
GO_SOURCES := $(wildcard *.go)
 | 
					GO_SOURCES := $(wildcard *.go)
 | 
				
			||||||
GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" -not -path modules/options/bindata.go -not -path modules/public/bindata.go -not -path modules/templates/bindata.go)
 | 
					GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" -not -path modules/options/bindata.go -not -path modules/public/bindata.go -not -path modules/templates/bindata.go)
 | 
				
			||||||
 | 
					GO_SOURCES += $(GENERATED_GO_DEST)
 | 
				
			||||||
 | 
					GO_SOURCES_NO_BINDATA := $(GO_SOURCES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(filter $(TAGS_SPLIT),bindata),bindata)
 | 
					ifeq ($(filter $(TAGS_SPLIT),bindata),bindata)
 | 
				
			||||||
	GO_SOURCES += $(BINDATA_DEST)
 | 
						GO_SOURCES += $(BINDATA_DEST)
 | 
				
			||||||
 | 
						GENERATED_GO_DEST += $(BINDATA_DEST)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Force installation of playwright dependencies by setting this flag
 | 
					# Force installation of playwright dependencies by setting this flag
 | 
				
			||||||
@@ -259,7 +264,7 @@ clean:
 | 
				
			|||||||
fmt:
 | 
					fmt:
 | 
				
			||||||
	@MISSPELL_PACKAGE=$(MISSPELL_PACKAGE) GOFUMPT_PACKAGE=$(GOFUMPT_PACKAGE) $(GO) run build/code-batch-process.go gitea-fmt -w '{file-list}'
 | 
						@MISSPELL_PACKAGE=$(MISSPELL_PACKAGE) GOFUMPT_PACKAGE=$(GOFUMPT_PACKAGE) $(GO) run build/code-batch-process.go gitea-fmt -w '{file-list}'
 | 
				
			||||||
	$(eval TEMPLATES := $(shell find templates -type f -name '*.tmpl'))
 | 
						$(eval TEMPLATES := $(shell find templates -type f -name '*.tmpl'))
 | 
				
			||||||
	@# strip whitespace after '{{' and before `}}` unless there is only whitespace before it 
 | 
						@# strip whitespace after '{{' and before `}}` unless there is only whitespace before it
 | 
				
			||||||
	@$(SED_INPLACE) -e 's/{{[ 	]\{1,\}/{{/g' -e '/^[ 	]\{1,\}}}/! s/[ 	]\{1,\}}}/}}/g' $(TEMPLATES)
 | 
						@$(SED_INPLACE) -e 's/{{[ 	]\{1,\}/{{/g' -e '/^[ 	]\{1,\}}}/! s/[ 	]\{1,\}}}/}}/g' $(TEMPLATES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: vet
 | 
					.PHONY: vet
 | 
				
			||||||
@@ -278,7 +283,9 @@ TAGS_PREREQ := $(TAGS_EVIDENCE)
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: generate-swagger
 | 
					.PHONY: generate-swagger
 | 
				
			||||||
generate-swagger:
 | 
					generate-swagger: $(SWAGGER_SPEC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(SWAGGER_SPEC): $(GO_SOURCES_NO_BINDATA)
 | 
				
			||||||
	$(GO) run $(SWAGGER_PACKAGE) generate spec -x "$(SWAGGER_EXCLUDE)" -o './$(SWAGGER_SPEC)'
 | 
						$(GO) run $(SWAGGER_PACKAGE) generate spec -x "$(SWAGGER_EXCLUDE)" -o './$(SWAGGER_SPEC)'
 | 
				
			||||||
	$(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)'
 | 
						$(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)'
 | 
				
			||||||
	$(SED_INPLACE) $(SWAGGER_NEWLINE_COMMAND) './$(SWAGGER_SPEC)'
 | 
						$(SED_INPLACE) $(SWAGGER_NEWLINE_COMMAND) './$(SWAGGER_SPEC)'
 | 
				
			||||||
@@ -398,7 +405,6 @@ unit-test-coverage:
 | 
				
			|||||||
tidy:
 | 
					tidy:
 | 
				
			||||||
	$(eval MIN_GO_VERSION := $(shell grep -Eo '^go\s+[0-9]+\.[0-9.]+' go.mod | cut -d' ' -f2))
 | 
						$(eval MIN_GO_VERSION := $(shell grep -Eo '^go\s+[0-9]+\.[0-9.]+' go.mod | cut -d' ' -f2))
 | 
				
			||||||
	$(GO) mod tidy -compat=$(MIN_GO_VERSION)
 | 
						$(GO) mod tidy -compat=$(MIN_GO_VERSION)
 | 
				
			||||||
	@$(MAKE) --no-print-directory assets/go-licenses.json
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: vendor
 | 
					.PHONY: vendor
 | 
				
			||||||
vendor: tidy
 | 
					vendor: tidy
 | 
				
			||||||
@@ -702,16 +708,25 @@ install: $(wildcard *.go)
 | 
				
			|||||||
build: frontend backend
 | 
					build: frontend backend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: frontend
 | 
					.PHONY: frontend
 | 
				
			||||||
frontend: $(WEBPACK_DEST)
 | 
					frontend: generate-frontend $(WEBPACK_DEST)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: backend
 | 
					.PHONY: backend
 | 
				
			||||||
backend: go-check generate $(EXECUTABLE)
 | 
					backend: go-check generate-backend $(EXECUTABLE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# We generate the backend before the frontend in case we in future we want to generate things in the frontend from generated files in backend
 | 
				
			||||||
.PHONY: generate
 | 
					.PHONY: generate
 | 
				
			||||||
generate: $(TAGS_PREREQ)
 | 
					generate: generate-backend generate-frontend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: generate-backend
 | 
				
			||||||
 | 
					generate-backend: $(TAGS_PREREQ) generate-go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					generate-go: $(TAGS_PREREQ)
 | 
				
			||||||
	@echo "Running go generate..."
 | 
						@echo "Running go generate..."
 | 
				
			||||||
	@CC= GOOS= GOARCH= $(GO) generate -tags '$(TAGS)' $(GO_PACKAGES)
 | 
						@CC= GOOS= GOARCH= $(GO) generate -tags '$(TAGS)' $(GO_PACKAGES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: generate-frontend
 | 
				
			||||||
 | 
					generate-frontend: $(TAGS_PREREQ) go-licenses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ)
 | 
					$(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ)
 | 
				
			||||||
	CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@
 | 
						CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -110,6 +110,17 @@ func runTemplate(t *template.Template, filename string, data interface{}) error
 | 
				
			|||||||
		verbosef("Bad source:\n%s", buf.String())
 | 
							verbosef("Bad source:\n%s", buf.String())
 | 
				
			||||||
		return fmt.Errorf("unable to format source: %w", err)
 | 
							return fmt.Errorf("unable to format source: %w", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						old, err := os.ReadFile(filename)
 | 
				
			||||||
 | 
						if err != nil && !os.IsNotExist(err) {
 | 
				
			||||||
 | 
							return fmt.Errorf("failed to read old file %s because %w", filename, err)
 | 
				
			||||||
 | 
						} else if err == nil {
 | 
				
			||||||
 | 
							if bytes.Equal(bs, old) {
 | 
				
			||||||
 | 
								// files are the same don't rewrite it.
 | 
				
			||||||
 | 
								return nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	file, err := os.Create(filename)
 | 
						file, err := os.Create(filename)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("failed to create file %s because %w", filename, err)
 | 
							return fmt.Errorf("failed to create file %s because %w", filename, err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,6 +63,17 @@ func runTemplate(t *template.Template, filename string, data interface{}) error
 | 
				
			|||||||
		verbosef("Bad source:\n%s", buf.String())
 | 
							verbosef("Bad source:\n%s", buf.String())
 | 
				
			||||||
		return fmt.Errorf("unable to format source: %w", err)
 | 
							return fmt.Errorf("unable to format source: %w", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						old, err := os.ReadFile(filename)
 | 
				
			||||||
 | 
						if err != nil && !os.IsNotExist(err) {
 | 
				
			||||||
 | 
							return fmt.Errorf("failed to read old file %s because %w", filename, err)
 | 
				
			||||||
 | 
						} else if err == nil {
 | 
				
			||||||
 | 
							if bytes.Equal(bs, old) {
 | 
				
			||||||
 | 
								// files are the same don't rewrite it.
 | 
				
			||||||
 | 
								return nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	file, err := os.Create(filename)
 | 
						file, err := os.Create(filename)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("failed to create file %s because %w", filename, err)
 | 
							return fmt.Errorf("failed to create file %s because %w", filename, err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,6 @@ import (
 | 
				
			|||||||
	"code.gitea.io/gitea/modules/structs"
 | 
						"code.gitea.io/gitea/modules/structs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/google/uuid"
 | 
						"github.com/google/uuid"
 | 
				
			||||||
 | 
					 | 
				
			||||||
	"gopkg.in/yaml.v2"
 | 
						"gopkg.in/yaml.v2"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,7 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<a class="ui segment language-stats">
 | 
						<a class="ui segment language-stats">
 | 
				
			||||||
		{{range .LanguageStats}}
 | 
							{{range .LanguageStats}}
 | 
				
			||||||
		<div class="bar tooltip" style="width: {{.Percentage}}%; background-color: {{.Color}}" data-placement="top" data-content={{ .Language }}> </div>
 | 
							<div class="bar tooltip" style="width: {{.Percentage}}%; background-color: {{.Color}}" data-placement="top" data-content={{.Language}}> </div>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
	</a>
 | 
						</a>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/tests"
 | 
						"code.gitea.io/gitea/tests"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user