fix(taskfile): decouple tool installs; bump chainsaw to v0.2.15#38
Merged
Conversation
`install-tools` was a single task that installed every tool under `set -e` and was a hard `deps` of generate, manifests, test, and lint. chainsaw v0.2.12 fails to compile under Go 1.26 (its runner predates testing.testDeps.ModulePath), so its `go install` aborted the whole task and blocked all codegen, lint, and unit-test work — none of which need the e2e runner. - Split `install-tools` into per-tool tasks (`install:controller-gen`, `install:defaulter-gen`, `install:golangci-lint`, `install:chainsaw`, `install:crdoc`, `install:setup-envtest`), each with its own status guard. `install-tools` stays as an aggregate (deps all) for one-shot/CI setup. - Re-scope task deps to the tool actually used: generate/manifests -> controller-gen, test -> setup-envtest, lint -> golangci-lint, api-docs -> crdoc, e2e -> chainsaw. A single tool's install failure no longer blocks unrelated tasks. - Bump CHAINSAW_VERSION v0.2.12 -> v0.2.15 (compiles under Go 1.26). Verified: `task generate`, `task manifests`, `task install:chainsaw` (installs v0.2.15) all succeed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
kevwilliams
approved these changes
Jun 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #36.
Problem
install-toolswas one task that installed every dev tool underset -e, and was a harddepsofgenerate,manifests,test, andlint. chainsawv0.2.12no longer compiles under Go 1.26 (its runner predatestesting.testDeps.ModulePath):So a broken e2e tool blocked all codegen, lint, and unit-test work — none of which need chainsaw.
Fix
install-toolsinto per-tool tasks, each with its ownstatus:guard:install:controller-gen,install:defaulter-gen,install:golangci-lint,install:chainsaw,install:crdoc,install:setup-envtest.install-toolsstays as an aggregate (depsall) for one-shot / CI setup.depsto the tool it actually uses:generate,manifestsinstall:controller-gentestinstall:setup-envtestlintinstall:golangci-lintapi-docsinstall:crdoce2einstall:chainsawCHAINSAW_VERSIONv0.2.12→v0.2.15(latest; compiles under Go 1.26).A single tool's install failure no longer cascades into unrelated tasks.
Verification
task --listparses; working tree clean (codegen produced no diff against main).Note (out of scope)
The remote-taskfile
includes:still requiresTASK_X_REMOTE_TASKFILES=1to be set before any task parses. That's a separate environmental concern from the chainsaw compile failure this issue covers.🤖 Generated with Claude Code