30 lines
1.8 KiB
Markdown
30 lines
1.8 KiB
Markdown
# PageBlock Contribution Lifecycle Plan
|
|
|
|
**Goal:** Turn PageBlock Manifest template, Validator, and Quality Check declarations into executable contributions while migrating Notice and News without changing generated output.
|
|
|
|
## Task 1: Common Resource Plugin Contract
|
|
|
|
- [x] Add a resource-backed PageBlock base that loads the existing `block.json` definition.
|
|
- [x] Build Manifest template ownership from the definition instead of duplicating template paths in Java.
|
|
- [x] Publish a stable Validator code and rendered-source Quality Check for each resource plugin.
|
|
|
|
## Task 2: Executable Contribution Lifecycle
|
|
|
|
- [x] Verify PageBlock identity, capability, Validator, Quality Check, and template declarations during Registry loading.
|
|
- [x] Reject missing template resources and declarations that do not exactly match `block.json`.
|
|
- [x] Route instance validation and generation-context contribution through one coordinator.
|
|
- [x] Execute the declared rendered-source check after Velocity rendering.
|
|
|
|
## Task 3: Notice And News Migration
|
|
|
|
- [x] Publish `page-block.notice@1.0.0` and `page-block.news@1.0.0` as trusted built-in plugins.
|
|
- [x] Move Notice primary key, status, active value, and publish-time context into its plugin.
|
|
- [x] Move News primary key, status, active value, publish-time, summary, and image context into its plugin.
|
|
- [x] Preserve the existing definitions, templates, output paths, API routes, and generated source behavior.
|
|
|
|
## Task 4: ProjectSpec And Verification
|
|
|
|
- [x] Auto-select exact Notice and News plugin releases when projected layouts use those blocks.
|
|
- [x] Keep migrated PageBlock selection enforcement generic in `PluginResolver`.
|
|
- [x] Cover Manifest mismatch, missing executable identity, empty rendered output, generation context, and legacy rendering compatibility.
|