struct

Hwaro::Core::Build::CacheMetadata

Inherits JSON::Serializable / Struct / Value / Object

Persistent build metadata stored alongside per-file entries

Constructors

new(pull : JSON::PullParser)
Source
new(template_hash : String = "", config_hash : String = "", page_set_hash : String = "", section_set_hash : String = "")
Source
new(*, __pull_for_json_serializable pull : JSON::PullParser)
Source

Instance methods

config_hash
Source
config_hash=(config_hash : String)
Source
generator_version

hwaro version that wrote this cache. Every hash above fingerprints the inputs (sources, templates, config, cascade) — none of them move when only the renderer changes, so a build that fixes how markdown becomes HTML would otherwise never reach a --cache site: its pages are unedited, so they stay skipped indefinitely. Treating a version change as a full invalidation costs one cold build per upgrade and makes every future rendering fix actually land.

Written by Cache#save (which always stamps the running version, so the in-memory rebuilds in set_global_checksums/set_set_fingerprints cannot drop it) and compared by Cache#load. Default "" so caches written before this field existed invalidate once on upgrade.

Source
generator_version=(generator_version : String)

hwaro version that wrote this cache. Every hash above fingerprints the inputs (sources, templates, config, cascade) — none of them move when only the renderer changes, so a build that fixes how markdown becomes HTML would otherwise never reach a --cache site: its pages are unedited, so they stay skipped indefinitely. Treating a version change as a full invalidation costs one cold build per upgrade and makes every future rendering fix actually land.

Written by Cache#save (which always stamps the running version, so the in-memory rebuilds in set_global_checksums/set_set_fingerprints cannot drop it) and compared by Cache#load. Default "" so caches written before this field existed invalidate once on upgrade.

Source
page_set_hash

Fingerprints of the global page/section sets. Listing pages (homepage, section indexes, archives, taxonomy widgets) render content derived from these sets even when their own source is unchanged, so a change here forces those pages to re-render on an incremental build. Default "" so older cache files (without these keys) load and rebuild once.

Source
page_set_hash=(page_set_hash : String)

Fingerprints of the global page/section sets. Listing pages (homepage, section indexes, archives, taxonomy widgets) render content derived from these sets even when their own source is unchanged, so a change here forces those pages to re-render on an incremental build. Default "" so older cache files (without these keys) load and rebuild once.

Source
section_set_hash
Source
section_set_hash=(section_set_hash : String)
Source
template_hash
Source
template_hash=(template_hash : String)
Source