build: enforce strict Makefile execution - #32
Merged
Conversation
… codex/wp0-make-contract # Conflicts: # .github/workflows/windows-contract.yml # AGENTS.md # Makefile
8 tasks
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.
Summary
helpthe default, documented Make entry point and add a short description for every supported public targeterrexit,nounset, andpipefailsemantics on both GNU Make 3.81 and 4.3Makefileto LF and cover it in the Windows checkout contractRationale
WP0-C in #3 requires strict, discoverable, repository-owned developer commands. The original implementation used
.SHELLFLAGS, which GNU Make 3.81 silently ignored, and Bash nounset masked two existing configuration errors on newer Make versions. This revision keeps the strict contract portable across the supported developer environments while preserving the target-specific guidance.This PR is stacked on #31 (
codex/wp0-windows-contract) and now includes the current base at22485138835f805f507c05fe62ab0c4af31c9a3b.Behavior, API, and compatibility
makeprints the same supported-command list asmake helpMakefileis checked out with LF even whencore.autocrlf=trueValidation
go test ./tools/release -run '^Test(BareMakeListsSupportedTargets|MakefileRejectsFailedPipelines|MakefileMissingCredentialTargetsKeepActionableErrors|FrozenTextAssetsDeclareLFCheckout|BuildAllUsesReadonlyModuleResolution|CoverageTargetUsesRaceAtomicProfileAndThreshold)$' -count=1tools/releasetest binary:PASSfor the complete package suitego run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12 .github/workflows/windows-contract.yml .github/workflows/master.yml .github/workflows/codeql.ymlgit diff --checkExact head validated:
81fda8cfc21c9aa207e2dcff052961e97b4b27f0.AI usage
Implemented and reviewed with Codex assistance. The final five-file Diff, red/green regression behavior, base synchronization, Linux package tests, Windows/WSL Make behavior, and exact-Head CI results were verified directly.