Decide the deployment, and check what a broken commit would break - #25
Merged
Conversation
Pages serving the default branch at its root, which the repository name already arranged, and no custom domain. The content type was the thing most likely to be quietly wrong, since streaming instantiation refuses anything that is not application/wasm. It is application/wasm. Measured rather than hoped. Caching is not ours to set: everything comes back max-age=600, pages and artifact alike, and Pages has no per-path headers. So the artifact cannot be cached hard even though its name carries the tag and its bytes can never change. Ten minutes with an ETag is a 304 and no bytes, which is a cost worth naming and not worth a CDN. No custom domain, as a decision and not a delay. Nothing to gain, and something specific to lose: GitHub's documentation says a custom domain left configured while a Pages site is disabled is a domain takeover waiting to happen. The claim that moving later splits the links is the one to check first rather than assume, so this does not lean on it. Serving from a branch means there is no half-updated site, only a commit that is fully deployed and wrong. Nothing here fails to compile, so tools/check.mjs is what stands in the way: every local link resolves, every JSON file parses, the tag and version in play.js agree and name an artifact that is committed, and the example index matches the files on disk. Verified by pointing the landing page at a directory that does not exist and watching it say so. Closes #11 Co-authored-by: GitHub Copilot <copilot@github.com>
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.
Closes #11.
Pages serving the default branch at its root, which the repository name already arranged, and no custom domain.
Measured
The content type was the thing most likely to be quietly wrong, since streaming instantiation refuses anything that is not
application/wasm:Caching is not ours to set. Everything comes back
max-age=600, pages and artifact alike, and Pages has no per-path headers, so the artifact cannot be cached hard even though its name carries the tag and its bytes can never change. Ten minutes with anETagis a 304 and no bytes, which is a cost worth naming and not worth a CDN.No custom domain, as a decision
Nothing to gain: the name is already
deed-lang.github.ioand the certificate is already there. Something specific to lose: GitHub's own docs say a custom domain left configured while a Pages site is disabled is a domain takeover waiting to happen.The usual argument for buying early is that moving later splits the links. That is the claim to check rather than assume, and I did not confirm it, so the decision does not lean on it either way. It is written into the record as the thing to check first if this reopens.
A broken deploy
Serving from a branch means there is no half-updated site, only a commit that is fully deployed and wrong. Nothing here fails to compile, so
tools/check.mjsis what stands in the way:hrefandsrcresolves against the treeTAGandVERSIONinassets/play.jsagree, and name an artifact that is actually committedexamples/index.jsonand the files on disk are the same list, at the same tagNode, no dependencies, matching the rest of the repository. It runs on every pull request.
Verified by pointing the landing page at a directory that does not exist:
Written with AI assistance.