Always use dedicated configuration files for specific configuration needs rather than modifying core build or system files. This practice improves maintainability, traceability, and scope control.
Always use dedicated configuration files for specific configuration needs rather than modifying core build or system files. This practice improves maintainability, traceability, and scope control.
When working with configuration:
buf.yaml
for build ignores) instead of modifying core build files like MakefilesExample:
# Don't do this:
# In Makefile
ci-build-misc: \
clean-tools \
proto \
go-generate \
# buf-breaking was removed here
# Instead do this:
# 1. Keep the Makefile entry
ci-build-misc: \
clean-tools \
proto \
go-generate \
buf-breaking \ # Don't remove this, add ignores to proto/internal/buf.yaml instead
# 2. Add specific ignores in the dedicated configuration file (buf.yaml)
# 3. For tool dependencies, use specific versions:
WORKFLOWCHECK := $(LOCALBIN)/workflowcheck
$(WORKFLOWCHECK): | $(LOCALBIN)
$(call go-install-tool,$(WORKFLOWCHECK),go.temporal.io/sdk/contrib/tools/workflowcheck,v0.3.0)
This approach keeps configuration changes properly scoped, makes them easier to track, and prevents unintended consequences from global modifications or unexpected version changes.
Enter the URL of a public GitHub repository