Skip to content

chore: prepare the template for public release - #11

Merged
DeyangChan merged 1 commit into
mainfrom
chore/prepare-open-source-release
Jul 30, 2026
Merged

chore: prepare the template for public release#11
DeyangChan merged 1 commit into
mainfrom
chore/prepare-open-source-release

Conversation

@DeyangChan

Copy link
Copy Markdown
Contributor

Prepares vstack-template-base for publication as an open-source GitHub template.

License and community docs

  • MIT LICENSE, copyright Cavalry Collective (verified against the GitHub org, the README, and the maintainer domain).
  • CONTRIBUTING.md, SECURITY.md, Contributor Covenant 2.1 CODE_OF_CONDUCT.md, .github/CODEOWNERS.
  • README now states audience, status, support route, and license, and no longer claims an instantiated project is production-ready before its CI, infrastructure, secrets, and deployment are configured and verified.

Workflows no longer report false greens

  • .github/workflows/ci.yml (every check commented out, job ended in echo "TODO...") and deploy.yml (printed a TODO and exited 0) are gone from the executable path.
  • New template-integrity.yml checks only what this repository actually contains: whitespace invariants, relative-link resolution, the stack-pack contract from stacks/README.md, the add-on contract, and a guard against muted or placeholder workflow steps. permissions: contents: read.
  • The generic application scaffolds moved to .github/workflows/examples/{ci,deploy}.yml.example, which Actions does not execute. Day-1 step 7 says when to copy each, and deploy stays uncopied until a target exists.

Stack corrections against current vendor docs

  • vercel-csr — rewritten around Vercel's zero-config Fastify support: a detected entrypoint calling listen() on the environment's port. Removes the app.server.emit("request", req, res) forwarding, the app.ready() adapter, the "never call listen()" rule, and the @vercel/node handler plus catch-all rewrite.
  • wechat — was internally inconsistent: it prescribed Node 20 (EOL 24 Mar 2026) on a managed runtime that does not offer it, with Fastify 4 (EOL 30 Jun 2025). Now an SCF Web Function deployed as a container image on Node 24 LTS (Active LTS, EOL Apr 2028) with Fastify 5, started by the container command on port 9000. The managed runtime survives as a labelled Legacy managed runtime note that names Node 18 / Fastify 4 as end-of-life and not recommended.
  • wechat database — "MySQL 8" becomes TDSQL-C (CynosDB) MySQL 8.0, the newest engine that product offers; TDSQL-C is wire-compatible with 5.7 and 8.0 only, so MySQL 8.4 LTS is not available here. Local and CI pin to the same 8.0 line.

Small fixes

  • .claude/scheduled_tasks.lock added to .gitignore (local generated state, never tracked).
  • Escaped the ampersands in the design guide's Google Fonts URL.

Test plan

  • template-integrity.yml's Python step, extracted verbatim from the YAML, reports 0 problem(s) on this tree.
  • The same step reports 2 errors and exits 1 against a probe file with a broken relative link and trailing whitespace, so the check is not vacuous.
  • The workflow-honesty step runs clean under bash over .github/workflows/*.yml.
  • git diff --check clean.
  • All three workflow YAML files parse.
  • Confirmed the only unescaped & left in design-guide.html are inside a <style> and a <script> block, where escaping would be wrong.

Add MIT LICENSE (Cavalry Collective), CONTRIBUTING, SECURITY, Contributor
Covenant 2.1, and CODEOWNERS. Reframe the README around production-oriented
defaults rather than a production-ready result, and state audience, status,
support route, and license.

Replace the two fake-green workflows. `template-integrity.yml` now runs real
checks over what this repository actually contains: whitespace invariants,
relative-link resolution, the stack-pack and add-on contracts, and a guard
against muted or placeholder workflow steps. The generic application CI and
deploy scaffolds move to `.github/workflows/examples/*.example`, which Actions
does not execute, and the Day-1 checklist says when to copy each one.

Correct two stack packs against current vendor documentation:

- vercel-csr now uses Vercel's zero-config Fastify support — a conventional
  entrypoint calling listen() on the environment's port, no @vercel/node
  handler, no app.server.emit bridge, no rewrite-only vercel.json.
- wechat moves to an SCF Web Function deployed as a container image on Node 24
  LTS with Fastify 5, since the managed Node runtime pins an end-of-life Node
  and Fastify major. The legacy managed runtime is kept as a labelled non-default
  fallback. "MySQL 8" becomes TDSQL-C MySQL 8.0, the newest engine that product
  offers, with local and CI pinned to the same line.

Also ignore .claude/scheduled_tasks.lock and escape the ampersands in the
design guide's Google Fonts URL.
@DeyangChan
DeyangChan merged commit 2a7b356 into main Jul 30, 2026
1 check passed
@DeyangChan
DeyangChan deleted the chore/prepare-open-source-release branch July 30, 2026 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant