Add scripts-to-rule-them-all scaffold (closes #4)
All checks were successful
check / check (push) Successful in 4s
Build and Deploy to Cloudflare Pages / build (push) Successful in 5s
Build and Deploy to Cloudflare Pages / deploy (push) Successful in 18s

Adopt the Scripts to Rule Them All standard for this Hugo site:

- script/ POSIX-sh entrypoints (bootstrap, setup, projectname, test,
  lint, fmt, fmt-check, check, docker, cibuild, precommit,
  install-precommit). The correctness check (test/lint) is a clean
  `hugo --minify` production build; fmt/fmt-check run prettier over the
  repo's own top-level markdown only, leaving content/ untouched.
- Makefile targets reduced to thin shims that call script/NAME, plus a
  convenience serve target for `hugo server`.
- Dockerfile on a sha256-pinned alpine base that installs deps via
  script/bootstrap and runs `make check`, so the image build fails on
  any formatting or Hugo build error; .dockerignore added.
- .gitea/workflows/check.yml runs script/cibuild on push.
- README Entrypoints section documenting the scripts.
This commit was merged in pull request #5.
This commit is contained in:
2026-07-25 18:22:52 +07:00
parent 612d15587b
commit 7cad989724
18 changed files with 365 additions and 38 deletions

72
TODO.md
View File

@@ -1,51 +1,53 @@
# Workflow
* branch (from `main`)
* do the work in Next Step
* move Next Step to the top of Completed Steps
* move the top item of Future Steps into Next Step
* commit (`TODO.md` changes in the same commit as the work)
* merge to `main` if the branch is not protected, otherwise open a PR
* push
- branch (from `main`)
- do the work in Next Step
- move Next Step to the top of Completed Steps
- move the top item of Future Steps into Next Step
- commit (`TODO.md` changes in the same commit as the work)
- merge to `main` if the branch is not protected, otherwise open a PR
- push
# Status
pre-1.0
No git tags. The site is live, but the repo lacks the standard scaffold
(Makefile, LICENSE, Dockerfile, policy files).
No git tags. The site is live and now has the scripts-to-rule-them-all scaffold
(`Makefile`, `script/`, `Dockerfile`, `check.yml`); still missing `LICENSE` and
policy files.
# Next Step
Add the policy scaffold in one commit: Makefile with Hugo-appropriate
targets (test builds the site with hugo --minify, lint/fmt/fmt-check via
prettier over content and theme, check, hooks), .prettierrc and
.prettierignore, LICENSE, REPO_POLICIES.md, .editorconfig, and a
Dockerfile plus .dockerignore that builds the site and runs make check,
images pinned by sha256. Update README to mention the new workflow.
Add the remaining policy scaffold: `LICENSE`, `REPO_POLICIES.md`,
`.editorconfig`, and prettier config files (`.prettierrc`, `.prettierignore`).
Update `README.md` accordingly.
# Completed Steps
* 2026-02-10: design pass: minimal light theme with inline CSS, grey
wells for mesh channels and signal groups, horizontal overflow fix,
body width tuning, map link update
* 2026-02-10: added README and footer contribute link
* 2026-02-10: added Gitea workflow that builds the site and deploys to
Cloudflare Pages
* 2026-02-08: initial Hugo static site for lora.vegas
- 2026-07-25: added the scripts-to-rule-them-all scaffold (closes #4): `script/`
entrypoints, `Makefile` shims, a Hugo `Dockerfile` (sha256-pinned alpine) plus
`.dockerignore` that runs `make check`, `.gitea/workflows/check.yml` running
`script/cibuild`, and a README Entrypoints section. `test`/`lint` are a clean
`hugo --minify` build; `fmt`/`fmt-check` run prettier over the repo's own
top-level markdown only
- 2026-02-10: design pass: minimal light theme with inline CSS, grey wells for
mesh channels and signal groups, horizontal overflow fix, body width tuning,
map link update
- 2026-02-10: added README and footer contribute link
- 2026-02-10: added Gitea workflow that builds the site and deploys to
Cloudflare Pages
- 2026-02-08: initial Hugo static site for lora.vegas
# Future Steps
* Add .gitea/workflows/check.yml that runs make check; pin the images
and actions in deploy.yml by sha256 (klakegg/hugo:ext-alpine,
node:20, actions/checkout, upload/download-artifact are all
unpinned)
* Rework README.md into the standard sections: Description, Getting
Started, Rationale, Design, TODO, License, Author (currently About,
Contributing, Technical Details, License)
* Replace the "content is provided as-is" README note with the text of
the committed LICENSE
* Expand .gitignore beyond Hugo outputs (OS and editor files)
* Verify the Cloudflare Pages deploy still works after the workflow
changes
* Keep mesh channel and signal group listings current
- Pin the images and actions in `deploy.yml` by sha256
(`klakegg/hugo:ext-alpine`, `node:20`, `actions/checkout`,
`upload`/`download-artifact` are all unpinned)
- Rework README.md into the standard sections: Description, Getting Started,
Rationale, Design, TODO, License, Author (currently About, Contributing,
Technical Details, License)
- Replace the "content is provided as-is" README note with the text of the
committed LICENSE
- Expand .gitignore beyond Hugo outputs (OS and editor files)
- Verify the Cloudflare Pages deploy still works after the workflow changes
- Keep mesh channel and signal group listings current