Skip to content

Mark the Checker Framework version on template-generated pages - #116

Open
wmdietl wants to merge 1 commit into
masterfrom
site-version-marker
Open

wmdietl wants to merge 1 commit into
masterfrom
site-version-marker

Conversation

@wmdietl

@wmdietl wmdietl commented Oct 10, 2026

Copy link
Copy Markdown
Member

Problem. The Checker Framework release scripts read the current release's version from the live site: release_build.py (to suggest the next version) and release_push.py (Push Step 1) call release_utils.current_distribution_by_website("https://eisop.github.io/cf"), which searches for <!-- checker-framework-zip-version -->checker-framework-(.*)\.zip and raises ReleaseError("Didn't find zip version ...") if it is absent. docs/checker-framework-webpage.html, which newer release zips ship and the generator turns into the release page, has that marker. The pages generated from cf-template.md do not, and https://eisop.github.io/cf/ is currently such a page (3.49.5-eisop1 has no shipped page): curl -s https://eisop.github.io/cf/ | grep -c checker-framework-zip-version prints 0. So the next release run fails at its first site lookup.

Fix. Write the download link in cf-template.md as an HTML anchor containing the marker, the same markup as the shipped page.

Applying it to the live page. The generator writes a release's page only when it first downloads that release, so merging this changes nothing on the live site by itself. Before the next release, either add the marker by hand to cf/index.md and cf/checker-framework-3.49.5-eisop1/index.md on gh-pages, or delete cf/checker-framework-3.49.5-eisop1.zip and cf/checker-framework-3.49.5-eisop1/ there and run the publish workflow so that it regenerates them. (The first release whose zip ships the page makes this moot.)

Testing. Rendered the substituted template with kramdown 2.5.2 (GFM input, as GitHub Pages uses): the output contains <a href="/cf/checker-framework-3.49.5-eisop1.zip"><!-- checker-framework-zip-version -->checker-framework-3.49.5-eisop1.zip<!-- /checker-framework-zip-version --></a>, and the regex from release_utils.py extracts 3.49.5-eisop1 from it. Does not overlap with #112.

The Checker Framework release scripts read the version of the current
release from https://eisop.github.io/cf: release_build.py and
release_push.py call current_distribution_by_website, which looks for
"<!-- checker-framework-zip-version -->checker-framework-VERSION.zip" and
raises ReleaseError if it is missing.  The page that ships in newer
release zips has that marker, but the pages generated from cf-template.md,
including the live /cf/ page for 3.49.5-eisop1, do not.

Write the download link of cf-template.md as an HTML anchor that carries
the marker, as the shipped page does.  kramdown passes the comment
through unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 10, 2026 08:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

This branch has not been deployed

No deployments
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.

2 participants