Skip to content

Concepts

Yusuke Abe edited this page Aug 10, 2026 · 3 revisions

Concepts

Pulls together what wip solves and the design decisions behind it — README covers these in scattered fragments; this page is the single place to read them as a whole.

Outline

  • What wip is
    • A dip-like workflow CLI for WSLC
    • Design stance: delegate to wslc.exe / wslc as safe argument arrays, never via shell interpolation
  • The three modes as the central concept
    • mode: container — wip manages containers directly (default)
    • mode: compose — delegates to a third-party compose-for-wslc tool
    • mode: compose-native — wip parses compose.yml itself and drives wslc directly
    • Decision table (reproduced from README) + a decision-flowchart version
  • Glossary
    • primary container / dependencies / sidecar
    • interaction (and its commands: alias)
    • sync volume, bind mount, shadow context
    • wslc's WslcContainerState (invalid/created/running/exited/deleted)
  • Architectural constraints and policies
    • No resident daemon (every --watch variant is a foreground loop tied to an open terminal)
    • Arguments are passed as arrays, never shell strings (injection safety)
    • compose-native only supports a subset of the Compose spec; out-of-subset keys raise ConfigError
  • Diagram candidates
    • Per-mode architecture diagram (wip → wslc; wip → external compose tool → wslc; wip → compose.yml parser → wslc)
    • Sync architecture diagram (host source → read-only mount / named volume → container)

Clone this wiki locally