Plugin development checklist
Use this checklist before distributing a Yrendr plugin ZIP.
Package and identity
plugin.jsonis valid JSON.- The package ID is stable and unique.
- The configured entrypoint exists and defines
register(api). - Registration returns quickly.
- Effect and processor IDs are stable and unique inside the package.
- The ZIP installs successfully through Plugin Manager, not only from a source checkout.
Parameters and UI
- Parameter defaults are JSON-compatible.
- Choice defaults exist in
choices. - Presets and randomizers return valid declared keys and values.
- Custom editors keep persisted state in declared parameters.
- Custom editors return a parameter dictionary on apply and
Noneon cancel. PluginWindowOptionsremain usable at minimum and maximum sizes.- Custom topbars preserve host-owned window control hitboxes.
- Custom title-bar actions return rectangles and use
ModalSession.titlebar_action_at()when needed. - Custom modal loops preserve the supplied
window_key.
Processing correctness
- Video output preserves the expected frame dimensions and channel shape.
- Audio output remains finite and preserves the expected frame/channel shape.
- Generators return the requested dimensions as supported surface/RGB/RGBA data.
bypass_whenreturnsTrueonly for exactly neutral states.time_dependent_whenaccurately distinguishes static and animated states.- Expensive work is kept out of real-time hot paths where possible.
Timeline processors
- Worker processing does not call Pygame UI code or mutate the live project.
- Returned actions and outputs use supported dictionaries.
- Output
refvalues are unique when actions reference generated outputs. - Editor-owned generated files are returned as outputs when they should appear in Project Viewer.
- The processor behaves sensibly when no clip or track is selected.
Error handling
- User-correctable failures raise clear, actionable exceptions.
- Debug Log entries identify the failing subsystem or plugin feature.
- External side effects are minimized before host validation succeeds.
Caution: Run this checklist against the Yrendr version you declare as supported. Stable IDs and persisted parameter keys are part of project compatibility.