executor: allow capturing error message from scriptlets
Metadata
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.