ci: fix plugin bundle missing top-level directory entry #4

Merged
mohlec merged 1 commit from fix/bundle-missing-dir-entries into main 2026-07-07 19:18:56 +00:00
Owner

Root cause of the mmctl "An error occurred extracting the plugin bundle" failure discovered while trying to install this plugin on CT#137 for the first time.

tar --transform rewrote a flat list of already-built paths as if prefixed by com.ncwcom.slash-sip/, but since those inputs were never walked as a real directory, the resulting tarball never got an actual entry for the top-level plugin-id directory (or bare intermediate dirs) -- only entries whose names happened to start with that prefix. Confirmed via Python's tarfile (strict reader) against slash-dispatch-plugin's working bundle for comparison, and confirmed the fix by manually re-packing into a real staged directory and successfully installing on CT#137 (temporary diagnostic asset, removed after testing).

This switches to the same staged-directory tar approach every other Slash plugin already uses.

Root cause of the mmctl "An error occurred extracting the plugin bundle" failure discovered while trying to install this plugin on CT#137 for the first time. tar --transform rewrote a flat list of already-built paths as if prefixed by com.ncwcom.slash-sip/, but since those inputs were never walked as a real directory, the resulting tarball never got an actual entry for the top-level plugin-id directory (or bare intermediate dirs) -- only entries whose *names* happened to start with that prefix. Confirmed via Python's tarfile (strict reader) against slash-dispatch-plugin's working bundle for comparison, and confirmed the fix by manually re-packing into a real staged directory and successfully installing on CT#137 (temporary diagnostic asset, removed after testing). This switches to the same staged-directory tar approach every other Slash plugin already uses.
ci: fix plugin bundle missing top-level directory entry
All checks were successful
Build slash-sip-plugin / build (pull_request) Successful in 16s
ed5ad32fc8
Root cause of the mmctl 'An error occurred extracting the plugin
bundle' failure (found while trying to install this plugin on CT#137):
the Bundle step used tar --transform to rename a flat list of paths
(plugin.json, server/dist/, webapp/dist/, public/) as if prefixed by
com.ncwcom.slash-sip/. --transform only rewrites path *strings* on
inputs that were never actually walked as a real directory, so the
resulting tarball never contained an entry for the top-level plugin-id
directory itself (or bare intermediate dirs like server/) -- only
entries whose *names* happened to start with that prefix. Verified
with Python's tarfile (a spec-strict reader, similar constraints to
Go's archive/tar) against a known-working bundle (slash-dispatch-
plugin's) for comparison: the working one has an explicit entry for
every directory level; this one was missing all of them.

Confirmed root cause AND fix by manually re-packing the existing built
binaries into a real staged directory tree and tar'ing that instead --
installed cleanly on CT#137 with mmctl (temporary diagnostic asset,
removed after testing). This CI fix applies the same staged-directory
approach every other Slash plugin's CI already uses, permanently.
mohlec merged commit a6e64db494 into main 2026-07-07 19:18:56 +00:00
mohlec deleted branch fix/bundle-missing-dir-entries 2026-07-07 19:18:56 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
slash/slash-sip-plugin!4
No description provided.