mirror of
https://github.com/getpelican/pelican.git
synced 2026-10-22 19:16:54 +02:00
Generator.get_files() returns a set, and the article, page, static, and disabled-reader loops iterated it directly (the static generator iterates a set union). Set iteration order depends on the interpreter's hash seed, so the order of generator.staticfiles, and the order files are processed in, changed from build to build. Default output isn't affected, but anything that depends on that order is: a plugin that lists static files gets a different file each build, and a plugin that reads a static file's url during generation freezes its output location, so which shared attachment gets frozen also varied. Iterate in sorted order at the call sites. get_files() still returns a set, so plugins using set operations on it are unaffected. Plugin-free output is byte-identical before and after. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
150 B
150 B
Release type: patch
Process content and static files in a stable, sorted order so that build output no longer depends on the interpreter's hash seed