Implement catalog idempotent publish skips
This commit is contained in:
@@ -144,7 +144,7 @@ Review these action labels before publishing:
|
||||
- `publish_new`: destination state is absent and the destination bundle path is empty.
|
||||
- `upsert_additive`: additive workflow will write planned outputs into valid catalog state.
|
||||
- `replace_catalog`: replacement workflow will write planned outputs and remove omitted outputs for the current owner.
|
||||
- `skip_same`: no-op action value in the run output vocabulary.
|
||||
- `skip_same`: planned outputs already match valid catalog metadata, so publication will not write outputs, rewrite `.distributor.json`, delete files, or notify.
|
||||
- `force_replace`: destructive catalog replacement selected because `--force` is present for unmanaged content, a planned unmanaged path collision, invalid state, or unsupported future state.
|
||||
- `fail_unmanaged`: unmanaged destination content prevents publication.
|
||||
- `fail_conflict`: invalid or unsupported destination state prevents publication.
|
||||
@@ -152,6 +152,8 @@ Review these action labels before publishing:
|
||||
|
||||
Text and JSON summaries count `publish_new`, `upsert_additive`, `replace_catalog`, `skip_same`, `force_replace`, `fail_unmanaged`, `fail_conflict`, and failed destinations separately. JSON output includes warnings, pipeline summaries, destination action records, output records, URLs when configured, final counters, and partial failure details. Fatal setup failures such as unreadable config or invalid secrets do not produce a JSON result document.
|
||||
|
||||
The `skip_same` optimization trusts valid catalog metadata. It compares owner identity, source identity, output path, kind, digest, size, generated output metadata, and URL metadata recorded in `.distributor.json`; it does not read destination file bytes to detect bitrot.
|
||||
|
||||
Fixed destinations add fixed-path warnings during dry runs, including the selected source bundle and replacement warnings when the destination root would be replaced. For fixed destinations, the resolved destination bundle path is the backend root.
|
||||
|
||||
## Forced Replacement Workflow
|
||||
|
||||
Reference in New Issue
Block a user