pelican/RELEASE.md
25rushilj 094cb04f35 Process files in a stable, sorted order
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>
2026-10-07 20:39:34 -07:00

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