Repository navigation
docs: say what a release brought, in the words of somebody who would use it - #676
Merged
Merged
Conversation
…use it CHANGELOG.md and the releases page list every change, generated from the commits, for people tracking the repository. Nothing said what a release means to somebody who uses wikven, and the generated list cannot: it is grouped by commit type, it omits everything the changelog config hides, and it is written in the register of the diff. Release notes/1.1.0 is that page for the release now waiting in #618. Not a rewrite of the changelog -- the three things a reader of this site would notice (a site that can say where it is, a build that stops on a page it rendered wrong, a licenses page that names the server) get sections, and the rest is a list at the bottom. ## The draft hatnote A release page is written before its release exists, so it says so until the release catches up. Template:draft compares the version in the page's own title with {{WIKVENVERSION}}, the version of the Wikven that built the page, and shows the notice only while the first is newer. Nothing is edited when the release happens. The bake that publishes it is built by it, so the comparison stops being true and the notice stops rendering. Both halves are wikitext. #explode reads a version out of the title and out of {{WIKVENVERSION}}, Template:draft/number turns each into one number so that "1.10.0" is after "1.9.0" rather than before it, and one #ifexpr compares them. That needs PFEnableStringFunctions, which ParserFunctions keeps off by default and docs/.wikven.yaml now turns on for this site: the reason it is off is a wiki that takes edits from anyone, and this one is a directory of files rendered once. A version neither of them can read is 0, which is what leaves the template a single comparison with no guard around it: a page that is not a release page is 0 and no build is older than it, so no hatnote; a {{WIKVENVERSION}} that is missing is 0 and every release is newer, so the hatnote shows -- a draft shown as published being the failure worth avoiding. ## Checked The comparison is simulated against ParserFunctions' own runExplode() and #expr's number reading, over twelve cases: the release landing and the one after it, 1.10.0 against 1.9.0 in both directions, "1.1" and "1.1.0" as one version, an empty and a non-version {{WIKVENVERSION}}, and two pages that are not release pages. All twelve answer as intended. Not baked, so the rendering is unproven here; the preview job is what will show it. ## Two names The page is titled "Release notes" and shows "What's new". An apostrophe in a title reaches the canonical link percent-encoded, and the head-links bake check looks the file up without decoding it, so "What's new/1.1.0" would have failed a check on its punctuation. The words readers see are the ones worth having; the string machines see only has to be safe. Nothing links either page yet, and neither is in the sidebar, so no navigation row is written for them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
Three digits a part, which is what the multipliers were already doing and what the comment did not say plainly: it said "room for a thousand patches and a thousand minors", which reads as the count rather than as the ceiling. It now says three digits, that 999 is the last minor or patch that still compares, and that the major has the rest of the number and no such ceiling. The check that reads this template now reads its multipliers out of it rather than restating them, because restating them is how I got them wrong: editing the two numbers in two places left the check measuring a formula the template did not have. Two cases added at the boundary -- 1.999.999 against 1.999.998, and 2.0.0 against 1.999.999 -- so the ceiling is asserted rather than described. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
mediawiki.org says this with a template of its own, Template:DoNotTranslate: "Please do not mark this page for translation yet. It is still being drafted." The reason is the same here -- a draft that is still moving costs a translator their work twice -- and so is the timing, which is why it is a sentence in Template:draft rather than a template beside it: it is true of a page for exactly as long as the rest of that notice is, and this site has no other page that would ask it. Split it out when a second one does. The other half is written down too: once the release is out and the notice is gone, the page is an ordinary page of this site and can be wrapped in <translate> and marked like any one of them. Nothing here does that. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
`translate check` refused Template:draft: "Unmatched opening tag". The
<noinclude> documentation said the page could be "wrapped in <translate>",
written as the tag rather than as the name of one, so Translate read an
opening tag with nothing closing it and gave up on the page. A source page
it cannot parse is a gating finding, which is what caught this.
The same mistake was in the same block three more times, and those were
quieter: {{WIKVENVERSION}} and {{#ifexpr:}} written into prose are calls,
not names. The first expands to a version and the second evaluates an empty
expression to nothing, so the sentence renders with a hole in it rather than
with the thing it is about. Nobody would have seen it -- Template: is not a
content namespace and the page is never exported -- which is the reason to
fix it rather than a reason not to.
All four are inside <nowiki> now, the way docs/Lua modules.wikitext and
Template:prevnext/doc write the same kind of thing. Asked with
StalenessComputer::strayTranslateTags(), which masks armoured nowiki the way
Translate does: no bare tag left in any of the four new pages.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
This branch was successfully deployed
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.
CHANGELOG.mdand the releases page list every change, generated from the commits, for people tracking the repository. Nothing says what a release means to somebody who uses wikven — and the generated list cannot: it is grouped by commit type, it omits everything.release-please-config.jsonhides (refactor,test,docs,ci), and it is written in the register of the diff.Release notes/1.1.0is that page for the release waiting in #618. Three things a reader of this site would notice get sections — a site that can say where it is, a build that stops on a page it rendered wrong, a licenses page that names the server — and the rest is a list at the bottom.The draft hatnote
A release page is written before its release exists, so it says so until the release catches up.
Template:draftcompares the version in the page's own title with{{WIKVENVERSION}}, the version of the Wikven that built the page, and shows the notice only while the first is newer.Nothing is edited when the release happens. The bake that publishes it is built by it, so the comparison stops being true and the notice stops rendering.
Both halves are wikitext, not Lua.
#explodereads a version out of the title and out of{{WIKVENVERSION}},Template:draft/numberturns each into one number so that1.10.0sorts after1.9.0rather than before it, and one#ifexprcompares them. That needsPFEnableStringFunctions, which ParserFunctions keeps off by default anddocs/.wikven.yamlnow turns on for this site — the reason it is off is a wiki that takes edits from anyone, and this one is a directory of files rendered once at build time.A version neither can read is
0, which is what leaves the template a single comparison with no guard around it:Checked
The comparison is simulated against ParserFunctions' own
runExplode()and#expr's number reading, over twelve cases: the release landing and the one after it,1.10.0against1.9.0in both directions,1.1and1.1.0as one version written two ways, an empty and a non-version{{WIKVENVERSION}}, and two pages that are not release pages. All twelve answer as intended.Not baked here, so the rendering itself is unproven — the preview job is what will show it, and I will read it when it does.
yamllintpasses on the edited.wikven.yaml. Neither page carries<translate>or<languages />, sotranslate checkhas nothing to say about them and thelanguage-barsassertion is unaffected.Two names
The page is titled Release notes and displays What's new. An apostrophe in a title reaches the canonical link percent-encoded, and the
head-linksbake check looks the file up without decoding it, soWhat's new/1.1.0would have failed a check on its punctuation. The words readers see are the ones worth having; the string machines see only has to be safe.Left for you
Module:Sequence.luawrites no navigation row for them. Worth linking from the front page when 1.1.0 ships.🤖 Generated with Claude Code
https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
Generated by Claude Code