Tailwind v3.4.17 → v4.3.0: drop tailwind.config.js, move @source globs into static/css/input.css (CSS-first config), rename bare `rounded` → `rounded-sm` in templates for the renamed v4 radius scale. Go 1.25 → 1.26.3 (toolchain directive), modernc.org/sqlite v1.50.0 → v1.50.1, plus indirect bumps via go get -u. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
85 lines
3.2 KiB
Makefile
85 lines
3.2 KiB
Makefile
# Veola build.
|
|
#
|
|
# Tool dependencies — the `*_VERSION` variables below are the single source of
|
|
# truth for every non-Go thing Veola pulls in at build time. To upgrade one,
|
|
# bump its version and run `make vendor` (vendored JS) or just `make css`
|
|
# (Tailwind) on a clean `bin/` to refetch.
|
|
#
|
|
# Go module dependencies live in go.mod and are bumped via `make update-deps`.
|
|
|
|
TAILWIND_VERSION := v4.3.0
|
|
HTMX_VERSION := 2.0.9
|
|
CHARTJS_VERSION := 4.5.1
|
|
TEMPL_VERSION := v0.3.1020
|
|
|
|
TAILWIND_BIN := bin/tailwindcss
|
|
# Override TAILWIND_URL for non-linux-x64 platforms — see README "Build-time
|
|
# tools" for the matching asset names on the Tailwind releases page.
|
|
TAILWIND_URL ?= https://github.com/tailwindlabs/tailwindcss/releases/download/$(TAILWIND_VERSION)/tailwindcss-linux-x64
|
|
|
|
HTMX_URL := https://unpkg.com/htmx.org@$(HTMX_VERSION)/dist/htmx.min.js
|
|
CHARTJS_URL := https://cdn.jsdelivr.net/npm/chart.js@$(CHARTJS_VERSION)/dist/chart.umd.min.js
|
|
|
|
TEMPL := $(shell go env GOPATH)/bin/templ
|
|
|
|
.PHONY: all generate css build run test clean tools vendor update-deps
|
|
|
|
all: build
|
|
|
|
$(TAILWIND_BIN):
|
|
mkdir -p bin
|
|
curl -sL --fail $(TAILWIND_URL) -o $(TAILWIND_BIN)
|
|
chmod +x $(TAILWIND_BIN)
|
|
|
|
# Compile Tailwind utilities (scanned from the .templ sources) into
|
|
# static/css/tailwind.css. The hand-written component layer is app.css.
|
|
# Tailwind v4 uses CSS-first config — content sources and theme live in
|
|
# static/css/input.css via @source and @theme directives.
|
|
css: $(TAILWIND_BIN)
|
|
$(TAILWIND_BIN) -i static/css/input.css -o static/css/tailwind.css --minify
|
|
|
|
# Regenerate templ Go from the .templ sources.
|
|
generate:
|
|
$(TEMPL) generate
|
|
|
|
build: generate css
|
|
go build -o veola-bin .
|
|
|
|
run: build
|
|
./veola-bin -config config.toml
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
clean:
|
|
rm -f veola-bin
|
|
|
|
# Install the pinned templ CLI into $(go env GOPATH)/bin. Pinning matters
|
|
# because two contributors on different templ versions can produce
|
|
# differently-formatted generated Go for the same .templ source.
|
|
tools:
|
|
go install github.com/a-h/templ/cmd/templ@$(TEMPL_VERSION)
|
|
|
|
# Re-fetch vendored third-party JS at the currently pinned versions,
|
|
# overwriting whatever is on disk. Also clears bin/tailwindcss so the next
|
|
# `make css` pulls the pinned Tailwind binary. Use after bumping any of
|
|
# HTMX_VERSION / CHARTJS_VERSION / TAILWIND_VERSION.
|
|
vendor:
|
|
curl -sL --fail $(HTMX_URL) -o static/vendor/htmx.min.js
|
|
curl -sL --fail $(CHARTJS_URL) -o static/vendor/chart.umd.min.js
|
|
rm -f $(TAILWIND_BIN)
|
|
$(MAKE) $(TAILWIND_BIN)
|
|
|
|
# Bump Go module dependencies to their newest compatible versions, then
|
|
# print upstream-release URLs for the non-Go tools so you can decide
|
|
# whether to bump those pins too. Does not modify the pinned versions.
|
|
update-deps:
|
|
go get -u ./...
|
|
go mod tidy
|
|
@echo
|
|
@echo "Pinned tool versions (current → upstream releases):"
|
|
@printf " Tailwind %s → https://github.com/tailwindlabs/tailwindcss/releases/latest\n" "$(TAILWIND_VERSION)"
|
|
@printf " htmx %s → https://github.com/bigskysoftware/htmx/releases/latest\n" "$(HTMX_VERSION)"
|
|
@printf " Chart.js %s → https://github.com/chartjs/Chart.js/releases/latest\n" "$(CHARTJS_VERSION)"
|
|
@printf " templ %s → https://github.com/a-h/templ/releases/latest\n" "$(TEMPL_VERSION)"
|