Skip to content

FEATURE: add quick content releases - #61

Merged
t-heuser merged 23 commits into
mainfrom
feature/enable-fast-content-releases
Aug 19, 2026
Merged

FEATURE: add quick content releases#61
t-heuser merged 23 commits into
mainfrom
feature/enable-fast-content-releases

Conversation

@t-heuser

@t-heuser t-heuser commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Quick content releases: publish single documents without re-rendering the whole site

Rendering is 92% of a content release — measured on an 18 000-document installation, 2 183 s out of 2 384 s — and almost all of it produces a release that is identical to the previous one everywhere except the page somebody just fixed.

This adds a second pipeline for that case. do_quick_content_release copies the release which is currently live (server-side COPY, so nothing travels over the wire), enumerates only the documents you name, and lets the ordinary orchestrator render those into the copy. From the enumeration onwards nothing changes: validation, transfer and switch behave as they always do, and what goes live is a complete, ordinary content release rather than a patch. On the same installation a quick release renders in 10 s instead of 36 minutes.

It comes with the pause switch it needs to be useful: automatic releases can be held back from the Content Store module while a fix is prepared, editors see a warning in the content module telling them their changes are not going live yet, and Publish All keeps working throughout. Pause, resume and quick publish sit behind a new Flowpack.DecoupledContentStore:ReleaseControl privilege target, separate from the module privilege.

Two things installations with custom release keys need to know: which keys a quick release carries over is configuration (copyOnQuickRelease, defaulting to false), and validators can scope themselves to the changed URLs through QuickPublish\ContentReleaseScope — which the package's own contentReleaseValidation:validate had to do, since a quick release deliberately enumerates a handful of documents and would otherwise trip its 70% threshold every time.

Nothing changes for an existing installation which does not add the pipeline: the flag defaults to false, the pause defaults to off, and Redis 6.2 is required only by the copy command itself, which checks the server version before it does anything. No upgrade guide.

Full documentation in the README under Quick Content Releases; the design, the measurements and the trade-offs are in Documentation/Concepts/QuickContentReleases.md.

@t-heuser t-heuser self-assigned this Aug 17, 2026
@t-heuser
t-heuser force-pushed the feature/enable-fast-content-releases branch 4 times, most recently from 6011cda to 553e782 Compare August 17, 2026 12:30
@t-heuser
t-heuser force-pushed the feature/enable-fast-content-releases branch from 553e782 to 143b759 Compare August 18, 2026 11:20
@t-heuser
t-heuser force-pushed the feature/enable-fast-content-releases branch from 143b759 to 21dd24e Compare August 18, 2026 13:20
@t-heuser
t-heuser merged commit e0d267f into main Aug 19, 2026
3 checks passed
@t-heuser
t-heuser deleted the feature/enable-fast-content-releases branch August 19, 2026 07:58
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.

1 participant