tmux-python / tmux-python/tmuxp

WorkspaceBuilder: add an opt-in parallel builder

Open
#1,062 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement WorkspaceBuilder
Dominant language
Python
Stars
4.6k
Forks
248
Avg merge
2h 13m
Merged PRs (30d)
1

Description

Summary

Add a separate opt-in builder that prioritizes faster workspace construction while keeping the classic builder as the compatibility default.

Related: #1053, #1054, #1056, #1058.

Proposed behavior

  • Implement a parallel builder selected explicitly through the builder mechanism introduced in the base work.
  • Keep the classic builder as the default for existing workspaces and dependency-sensitive configurations.
  • Allow the parallel builder to create pane/window structure and observe readiness with less serialized waiting where the builder contract allows it.
  • Document that pane commands are not guaranteed to prepare later pane split-time inputs such as start_directory, shell, window_shell, pane environment, or other split-time state.
  • Recommend classic builder behavior or earlier setup phases such as before_script / shell_command_before for configs that rely on strict side effects.
  • Keep this separate from the experimental chain-builder work while allowing the protocol to learn from #1054.

Acceptance criteria

  • The parallel builder is opt-in and not selected by existing workspace files.
  • Tests cover faster grouped creation behavior and the documented relaxed dependency guarantees.
  • Compatibility-sensitive ordering remains covered by classic-builder tests.
  • Documentation explains when to choose classic versus parallel behavior.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the builder mechanism introduced in the base work and the related issues #1053, #1054, #1056, and #1058, then inspect the classic-builder tests and documentation. Done means an explicitly selected parallel builder, coverage for grouped creation and relaxed dependencies, unchanged classic-builder compatibility, and documentation describing when to choose each behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.