← Back to issue list

executor: allow capturing error message from scriptlets

View original Github issue

Metadata

Project
craft-parts
Number
#966
Type
pull request
State
merged
Author
cmatsuoka
Labels
—
Created
Updated
Closed

Current evaluation

Merged as 49cde073 and released in 2.3.0: Unix-socket-based I/O now captures scriptlet stderr and raises ScriptletRunError or PluginBuildError.

Resolution: closed resolved

Reason: PR #966 was approved and merged as commit 49cde073. The implementation captures scriptlet error output and propagates craftctl default failures as PluginBuildError; the 2.3.0 changelog confirms both changes shipped.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Change craftctl communication channel from named pipes to unix sockets to consolidate the ctl server and error stream capture. Process execution runs a selector to obtain data from i/o streams to obtain the isolated error output. Allow this selection loop run on a caller-specified selector with handlers registered to also process interactions with craftctl. The captured error output when executing scriptlets is passed to `ScriptletRunError`. Errors from `craftctl default` execution in the build step raise `PluginBuildError`. This is consistent with the exception raised by the built-in build step handler. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com> - [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? - [ ] Have you added an entry to the changelog (`docs/reference/changelog.rst`)? ----- **Notes to reviewers:** see individual commits for pipe-to-socket change, and socket selector consolidation.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged as 49cde073 and released in 2.3.0: Unix-socket-based I/O now captures scriptlet stderr and raises ScriptletRunError or PluginBuildError.
stealth/space-bunny-alpha — closed resolved Merged PR #966 (49cde073), replacing named pipes with Unix sockets so scriptlet errors are captured as ScriptletRunError and craftctl default failures raise PluginBuildError.
qwen/qwen3.6-35b-a3b — — Merged. Replaced named pipes with Unix sockets to consolidate craftctl and error stream capture. Enables capturing scriptlet error output for ScriptletRunError, matching built-in build step handling. Approved by three reviewers with passing CI.
qwen3.6-35b-a3b-mtp-q6 — — Merged. Switched craftctl to Unix sockets to consolidate the control server and error capture. Scriptlet errors now pass to ScriptletRunError, while craftctl default failures raise PluginBuildError. Author will validate with spread tests in a follow-up PR.

Update history

No update history recorded yet.

Related issues

No related issues found above the similarity threshold.