README: drop the tooling attribution, document the entrypoints (closes #21) #40
Reference in New Issue
Block a user
Delete Branch "readme-entrypoints"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Docs-only pass over the four independent
README.mddefects in #21.README.mdis the only file changed.git diff --stat main..HEADreports
1 file changed, 71 insertions(+), 6 deletions(-). No code,config,
script/, CI or build file is touched.TODO.mdis normallyupdated in the same commit as the work; it is deliberately not updated
here, because the issue's definition of done (item 5) restricts this
change to the README alone.
What changed
1. The tooling-attribution sentence is gone (DoD 1). It was the
only such reference in the tree. The Description paragraph above it
already carried authorship and licence, so nothing is lost.
2. An
Entrypointssection now exists (DoD 2), placed immediatelybefore
## Build, which is the adjacent topic and what it hands offto. It opens by stating that the repository adheres to Scripts to Rule
Them All, links the standard, and states that the
script/executables are the entrypoints and the
Makefiletargets are shimsonto them. All twelve entrypoints are documented —
bootstrap,setup,projectname,test,lint,fmt,fmt-check,check,docker,cibuild,precommit,install-precommit— each writtenfrom reading the script rather than inferring from its name. Two
behaviours get more than a line because they are unusual and recently
hard-won:
script/bootstrapchecks the installedgolangci-lintagainst theversion pinned in the script and reinstalls on any mismatch, older
or newer, not merely when absent; it then verifies the pin against
the binary
PATHactually resolves and fails, naming both theinstall directory and the shadowing binary, rather than reporting a
success the gate would not honour.
script/dockerandscript/cibuildboth pass a freshly computedCHECK_EPOCHbuild argument, without which an unchanged tree letsDocker serve the gate layers from cache and the build exits 0 having
executed no tests and no lint. Documented once, after the list,
since it applies to both.
3. §Build is no longer stale (DoD 3). The "
Makefileis the singlesource of truth for all operations" claim is replaced by prose pointing
at
script/as where the implementations live, noting thatbuildisthe one target carrying its own recipe.
make bootstrapandmake setupare now documented. Themake cleanentry drops the legacyfiles.datclause. Thefiles.datreferences still present inMakefile,.gitignoreand.dockerignoreare #22 and are untouched.4. The summary example adds up (DoD 4).
removedis deliberatelyexcluded from the files-seen total, as the paragraph below the example
says and as
scan.goimplements, so the total was the wrong number,not the semantics: 1200 + 34 + 122166 = 123400, and the example now
reads
123400 files seen.56 removedand3 skippedare unchanged.Verification
make check— green (testsok, 88.5% coverage;golangci-lint0 issues.;gofmtclean).make fmt— run, produced no change (make fmtin this repo isGo-only; the Markdown-formatting gap is #19 and out of scope here).
git diff --name-only main..HEAD—README.md, and nothing else.prose line is within the file's 72-column body wrap, except the
Scripts to Rule Them All link line, which is a single unbreakable
Markdown link.
make dockerwas not run: this change cannot affect a build, andthe host BuildKit cache is cold.
Noticed, out of scope, not acted on:
make lintstill emitsThe linter 'gomodguard' is deprecated (since v2.12.0) ... Replaced by gomodguard_v2on every run. Already tracked as #26 (with #35 and #38closed as duplicates of it) and awaiting a decision on the canonical
.golangci.yml, so nothing new is filed here — and it could not befixed in this PR regardless, which must not touch
.golangci.yml.Built and verified
One commit,
9322e8d, on branchreadme-entrypointsoffmain(
a102b8f).Against #21's definition of done:
surrounding blank line were removed as a unit, so the Description
now runs straight into "This README is the complete and
authoritative specification."
grep -niover the file for theremoved names returns nothing.
## Entrypointsexists, immediately before## Build. Itopens with the adherence statement and the
https://github.com/github/scripts-to-rule-them-alllink, saysthe
script/executables are the entrypoints and theMakefiletargets are shims onto them, then documents all twelve:
bootstrap,setup,projectname,test,lint,fmt,fmt-check,check,docker,cibuild,precommit,install-precommit. Every description was written from readingthe script. Some things that only reading turns up and that the
section therefore states:
script/testruns with coverage as wellas the 30-second timeout;
script/fmtisgofmt -s -wand doesnot touch Markdown;
script/install-precommitwrites into thecommon git directory, so worktrees share the hook;
script/bootstrappresence-checks the system tooling but version-checks the linter,
reinstalls on mismatch in either direction, and then verifies the
pin against what
PATHresolves, failing with both paths namedwhen something shadows it.
CHECK_EPOCHis documented once in aparagraph after the list, since it is the same reason for both
script/dockerandscript/cibuild: without it the gate layerscome from cache and the build exits 0 having run no tests and no
lint.
replaced by prose pointing at
script/, notingbuildas the onetarget with its own recipe rather than a shim.
make bootstrapand
make setupare documented.make cleannow reads "removethe binary" — the
files.datclause is gone, and thefiles.datreferences in
Makefile,.gitignoreand.dockerignoreareuntouched, as they belong to #22.
reads
scan: 123400 files seen (1200 added, 34 updated, 56 removed, 122166 unchanged), 3 skipped. The total moved ratherthan the breakdown, because
removedbeing outside the total isthe specified and implemented behaviour (the paragraph below, and
scan.go), so the components were right and the total was not.git diff --name-only main..HEADprints exactlyone line,
README.md.make checkgreen.Verification run
make fmt— produced no change (Go-only in this repo; #19).make check— green: testsok sneak.berlin/go/sfdupes 1.042s coverage: 88.5% of statements,golangci-lint0 issues.,gofmtclean. The only output besides that is the pre-existinggomodguarddeprecation warning tracked in #26.git diff --stat main..HEAD—1 file changed, 71 insertions(+), 6 deletions(-),README.mdonly.awk 'length>72':everything new is within the file's existing 72-column body wrap
except the Scripts to Rule Them All link line, which is one
unbreakable Markdown link.
make dockernot run: a README edit cannot change a build result,and the host BuildKit cache is cold.
Reviewer note on scope: no
TODO.mdentry accompanies this commit,which departs from the repo's usual workflow. That is deliberate and
comes from the issue — DoD item 5 makes
README.mdthe only file thischange may touch.