Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b76ab2f
feat(codemod): scaffold cmd/iac-codemod with 4-mode subcommand dispat…
intel352 May 4, 2026
26ac916
fix(codemod): pin SkipMarker const + document flag ordering (T8.1 rev…
intel352 May 4, 2026
19e66d5
fix(codemod): close -dry-run=false mutation-gate bypass (T8.1 review #4)
intel352 May 4, 2026
441dfcf
docs(codemod): warn future maintainers off t.Parallel in main_test.go…
intel352 May 4, 2026
2908fa1
feat(codemod): lint mode with 4 static-check assertions
intel352 May 4, 2026
ddca423
fix(codemod): T8.2 review — stdout for -h, marker context, precision …
intel352 May 4, 2026
1da1197
fix(codemod): T8.2 review round-2 — tab-delimited marker, literal-fal…
intel352 May 4, 2026
9874b0c
feat(codemod): refactor-plan mode (canonical pattern detection + rewr…
intel352 May 4, 2026
840bb64
feat(codemod): refactor-apply with informative non-canonical idiom re…
intel352 May 4, 2026
7e37d03
feat(codemod): add-validate-plan mode (no-op stub injection); honors …
intel352 May 4, 2026
b29a4b9
chore(make): add migrate-providers target for workspace-wide codemod
intel352 May 4, 2026
6f632dc
fix(codemod): T8.7 verification — exclude _worktrees and other unders…
intel352 May 4, 2026
6cd5889
fix(codemod): Copilot review round 1 — 9 critical + 2 important findings
intel352 May 4, 2026
0930e59
fix(codemod): Copilot review round 2 — 5 critical + 4 important findings
intel352 May 4, 2026
7dedad6
fix(codemod): Copilot review round 3 — 6 critical + 1 important findings
intel352 May 4, 2026
8c3c3ac
fix(codemod): Copilot review round 4 — 6 critical-detection-loosening…
intel352 May 4, 2026
15af298
fix(codemod): Copilot review round 5 — 9 deeper-detection findings
intel352 May 4, 2026
735acfc
fix(codemod): Copilot review round 6 — type-doc skip-marker honored a…
intel352 May 4, 2026
8e57ac2
fix(codemod): Copilot review round 7 — 6 cross-file + detection-tight…
intel352 May 4, 2026
8b55293
fix(codemod): Copilot review round 8 — 9 dedup + skip-marker + identi…
intel352 May 5, 2026
003c493
fix(codemod): Copilot review round 9 — 4 behavior-preservation findings
intel352 May 5, 2026
1cf79e9
fix(codemod): Copilot review round 10 — 8 cross-file + perf + tightening
intel352 May 5, 2026
23171bd
fix(codemod): Copilot review round 11 — 6 polish + revert findings
intel352 May 5, 2026
e5d9c33
fix(codemod): Copilot review round 12 — 8 dispatcher + detection-tigh…
intel352 May 5, 2026
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
45 changes: 44 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: build build-ui build-go test bench bench-baseline bench-compare lint fmt vet fix install-hooks clean ko-build build-wfctl
.PHONY: build build-ui build-go test bench bench-baseline bench-compare lint fmt vet fix install-hooks clean ko-build build-wfctl build-iac-codemod migrate-providers

# Common benchmark flags
BENCH_FLAGS = -bench=. -benchmem -run=^$$ -timeout=30m
Expand Down Expand Up @@ -83,8 +83,51 @@ run-admin: build
ko-build:
KO_DOCKER_REPO=ko.local ko build ./cmd/server --bare --platform=linux/$(shell go env GOARCH)

# Build the iac-codemod CLI (W-8 / cmd/iac-codemod). GOWORK=off keeps
# the build self-contained: contributors with a workspace go.work file
# that doesn't include this module shouldn't have to amend their
# environment to run `make migrate-providers`.
build-iac-codemod:
GOWORK=off go build -o iac-codemod ./cmd/iac-codemod

# Workspace-wide IaC migration runner (W-8 / T8.6).
#
# Runs `iac-codemod lint -dry-run` against the AWS, GCP, and Azure plugin
# repos as advisory-only checks. The plugins themselves stay un-migrated
# at v1 (per plan §W-8: "AWS/GCP/Azure plugins are run advisory-only (no
# `-fix`); their reports are filed as GitHub issues against the
# respective plugin repos for activation-time triage"). For DO, run the
# refactor-* modes manually with `-fix` against the workspace's DO
# checkout — that migration is the subject of P-DO and is intentionally
# excluded from this target's mechanical sweep.
#
# Provider paths are sibling-repo defaults; override on the command line:
#
# make migrate-providers AWS=/path/to/workflow-plugin-aws \
# GCP=/path/to/workflow-plugin-gcp \
# AZURE=/path/to/workflow-plugin-azure
AWS ?= ../workflow-plugin-aws
GCP ?= ../workflow-plugin-gcp
AZURE ?= ../workflow-plugin-azure

migrate-providers: build-iac-codemod
@# iac-codemod lint exit-code semantics (review round-5 finding #7):
@# 0 = clean / 1 = advisory findings (continue) / 2 = parse errors (fail).
@# Naive `|| true` would swallow real execution failures alongside the
@# expected advisory findings; gate on exit code 1 specifically so a
@# parse-error or unknown-flag (>=2) still fails the target.
@echo "==> Running iac-codemod lint (advisory) against AWS plugin: $(AWS)"
@if [ -d "$(AWS)" ]; then ./iac-codemod lint -dry-run "$(AWS)"; ec=$$?; if [ $$ec -ne 0 ] && [ $$ec -ne 1 ]; then echo " iac-codemod lint failed (exit=$$ec)"; exit $$ec; fi; else echo " (skipping: $(AWS) not found)"; fi
@echo "==> Running iac-codemod lint (advisory) against GCP plugin: $(GCP)"
@if [ -d "$(GCP)" ]; then ./iac-codemod lint -dry-run "$(GCP)"; ec=$$?; if [ $$ec -ne 0 ] && [ $$ec -ne 1 ]; then echo " iac-codemod lint failed (exit=$$ec)"; exit $$ec; fi; else echo " (skipping: $(GCP) not found)"; fi
@echo "==> Running iac-codemod lint (advisory) against Azure plugin: $(AZURE)"
@if [ -d "$(AZURE)" ]; then ./iac-codemod lint -dry-run "$(AZURE)"; ec=$$?; if [ $$ec -ne 0 ] && [ $$ec -ne 1 ]; then echo " iac-codemod lint failed (exit=$$ec)"; exit $$ec; fi; else echo " (skipping: $(AZURE) not found)"; fi
@echo "==> migrate-providers complete (advisory-only; no files mutated)"
Comment thread
intel352 marked this conversation as resolved.

# Clean build artifacts
clean:
rm -f server
rm -f wfctl
rm -f iac-codemod
rm -f example/workflow-example
rm -rf module/ui_dist/assets module/ui_dist/index.html module/ui_dist/vite.svg
Loading
Loading