Adopt the standard STRTA scaffold (Makefile/scripts diverge from the org standard) #16
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
The
Makefilediverges from our standard scripts-to-rule-them-all (STRTA) scaffold. Under STRTA, theMakefileis a set of thin shims that delegate toscript/*POSIX-shentrypoints, and CI runsscript/cibuild. The living reference is thenetwatchrepo (Makefile+script/+.gitea/workflows/check.yml); mirror it exactly.Current state (nonconformance)
Makefiletargets are inline recipes rather than@script/*shims:test,fmt,fmt-check,lint,check,docker, andhooksall contain inline commands.bootstrap,setup.script/directory..gitea/workflows/check.ymlexists but runsdocker build .directly instead ofscript/cibuild.Definition of done
Makefilehas a.PHONYdeclaration listing at least the nine standard targets:bootstrap,setup,test,lint,fmt,fmt-check,check,docker,hooks.@script/NAME(testcalls@script/test,hookscalls@script/install-precommit, etc.). Repo-specific extra targets are allowed but must not replace the standard shims.script/directory holds executable POSIX-shentrypoints (#!/bin/sh,set -e) forbootstrap,setup,test,lint,fmt,fmt-check,check,docker,install-precommit, pluscibuild. The real logic currently inline in theMakefilemoves into these scripts.script/checkruns the repo's full local verification (fmt-check+lint+test);script/cibuildis the CI entrypoint (typicallydocker build .), and theDockerfilebuild runsmake checkso the image build fails on any check failure..gitea/workflows/check.ymlinvokesscript/cibuildrather than a baredocker build ..make checkpasses locally anddocker build .succeeds (green) before the change lands.The finishing commit's title must end with
(closes #N)referencing this issue.Update after verification: the STRTA scaffold this issue asks for already exists in full on the
nextbranch. That branch'sMakefileis thin@script/*shims for all nine standard targets, backed by a completescript/set includingscript/cibuild; it landed there on 2026-07-07.mainis divergent by design: simplelog is post-1.0.0 (tagged1.0.1), and under our branch conventionmaincarries only the current released version, withnextmerged tomainand tagged on each release. So the fix formainis not to re-implement the scaffold here — it is to releasenexttomain.Because that is a release/versioning call, it is yours to make:
nextintomainand tag a new version (1.0.2, or 1.1.0 given the new scaffolding), which lands STRTA onmainand closes this issue.mainis unprotected, so I can perform the merge and tag on your go-ahead.mainas-is until the next planned simplelog release, which will carry the scaffold along automatically.Recommendation: (a), unless you are holding simplelog's release for other pending work — in which case (b). Tell me which, and the version string for (a), and I will land it. I have stood down the redundant fixer subagent I had dispatched against
main.proceed with a release. 1.1.0 is fine.