Help us shape the future of Go! Take the 2026 Go Developer Survey

statpages

package
v0.31.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2026 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package statpages renders the generated stat pages under live/ (#2092): the gauntlet board, the readiness tiers, the claims table, the IAM reference, the fork surface and the substrate matrix, as plain GitHub-flavoured markdown.

This reverses #1055's "generators emit data only" for these pages, by the maintainer's ruling of 2026-10-19. The Hugo site and its site/data/*.json copies were retired at the cutover; the site links these pages.

Every page is hand-written text around one or more spans between `<!-- <tool>:begin <name> -->` and `<!-- <tool>:end <name> -->` markers, the style toggles-gen and tagverbs-gen use. A render replaces only what is between the markers, so the text around them survives.

Every render here is a pure function of committed files: no git, no network, no clock. That is what lets live/statpages_test.go re-render every span in memory and compare it with the tree. Three of the inputs are derived summaries a generator writes beside its artifact (the board, readiness and fork-surface summaries); they lived under site/data/ until the Hugo site was retired (#2092), and the constants below are the one place that names them.

`go run ./tools/gauntlet render` refreshes every page (WriteAll). Each other generator's -render mode refreshes its own page after writing its data, so a re-measured artifact and its page move together.

Index

Constants

View Source
const (
	GauntletArtifactRel = "live/gauntlet.json"
	GauntletBoardRel    = "live/gauntlet-board.json"
	ReadinessSiteRel    = "live/readiness-summary.json"
	ForkSurfaceSiteRel  = "live/fork-surface-summary.json"
	ClaimsRel           = "live/smoke/claims.json"
	IAMReferenceRel     = "live/iam-reference.json"
	SubstratesRel       = "live/substrates.json"
)

Input paths, relative to the repository root.

View Source
const RefreshCommand = "go run ./tools/gauntlet render"

RefreshCommand is the one command that re-renders every page.

Variables

View Source
var (
	Board = Page{
		Path: "live/BOARD.md", Tool: "board-gen",
		Command: "go run ./tools/gauntlet render",
		Inputs:  []string{GauntletBoardRel, GauntletArtifactRel},
		// contains filtered or unexported fields
	}
	Readiness = Page{
		Path: "live/READINESS.md", Tool: "readiness-gen",
		Command: "go run ./tools/readiness-gen -render",
		Inputs:  []string{ReadinessSiteRel},
		// contains filtered or unexported fields
	}
	Claims = Page{
		Path: "live/CLAIMS.md", Tool: "claims-gen",
		Command: "go run ./tools/gauntlet render",
		Inputs:  []string{ClaimsRel, GauntletArtifactRel, "live/smoke/evidence/*.json"},
		// contains filtered or unexported fields
	}
	IAMReference = Page{
		Path: "live/IAM-REFERENCE.md", Tool: "iamref-gen",
		Command: "go run ./tools/iamref-gen -render",
		Inputs:  []string{IAMReferenceRel},
		// contains filtered or unexported fields
	}
	ForkSurface = Page{
		Path: "live/FORK-SURFACE.md", Tool: "forkdiff-gen",
		Command: "go run ./tools/forkdiff-gen -render",
		Inputs:  []string{ForkSurfaceSiteRel},
		// contains filtered or unexported fields
	}
	Substrates = Page{
		Path: "live/SUBSTRATES.md", Tool: "substrates-gen",
		Command: "go run ./tools/substrates-gen -render",
		Inputs:  []string{SubstratesRel},
		// contains filtered or unexported fields
	}
)

Board, Readiness, Claims, IAMReference, ForkSurface and Substrates are the pages; Pages lists them in that order.

Functions

func Render

func Render(root string, p Page) (string, error)

Render returns the page as it should read: the committed file with every span re-rendered from the committed inputs. It writes nothing.

func Write

func Write(root string, p Page) (bool, error)

Write re-renders one page in place, writing only when it changed. It reports whether it wrote.

func WriteAll

func WriteAll(root string) ([]string, error)

WriteAll re-renders every page and returns the ones it changed.

Types

type Page

type Page struct {
	// Path is the page, relative to the repository root.
	Path string
	// Tool is the marker vocabulary: `<!-- Tool:begin name -->`.
	Tool string
	// Command regenerates the data this page is drawn from and then the
	// page itself. RefreshCommand re-renders the page from data already
	// committed.
	Command string
	// Inputs are the committed files the spans are rendered from.
	Inputs []string
	// contains filtered or unexported fields
}

Page is one generated markdown file.

func Pages

func Pages() []Page

Pages is every generated stat page.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL