GeezerVison is showing github.com — WorkspaceBuilder: define a public builder protocol and entry points · Issue #1060 · tmux-python/tmuxp
WorkspaceBuilder: define a public builder protocol and entry points #1060
Description
Summary
Define the public contract for custom workspace builders after the classic dotted-path selection work lands.
Related: #1054, #1058.
Proposed behavior
- Define a public builder protocol or interface that documents constructor inputs,
.build(), .session, plugin lifecycle compatibility, append/detached behavior, progress callbacks, and script-output callbacks.
- Keep sync builders supported first while making the interface shape compatible with future async builders.
- Add package entry point discovery, for example a
tmuxp.workspace_builders group, so packaged builders can be distributed without asking users to reference implementation module paths.
- Keep dotted-path configuration from the base PR as the simple and transparent path for most users.
- Document how tmuxp resolves builder names, dotted paths, and entry points without changing the classic default.
Acceptance criteria
- The builder contract is represented in public code and docs.
- Existing
WorkspaceBuilder satisfies the contract.
- Tests cover a minimal custom builder, an entry-point-discovered builder, and invalid builder failures.
- The interface does not require async execution in this stage.
Activity
tony commented on Jun 29, 2026
Shipped in v1.73.0 (#1066). WorkspaceBuilderProtocol defines the builder contract (shaped to allow async builders later); builders register under the tmuxp.workspace_builders entry-point group, with the built-in ClassicWorkspaceBuilder registered as classic. WorkspaceBuilder remains importable as a backwards-compatible alias.
Metadata
Metadata
Development
No branches or pull requestsIssue actions