06.1 Workspace manifest
.bws structure—identity, members, overrides, registries.
Workspace manifest
.bws workspace manifests coordinate multi-project repos. They do not replace per-member .bproj files—they declare members and shared resolver policy.
Legacy Workspace.proj is rejected (E1895); rename to a .bws file (for example CoreLib.bws).
Building blocks
Section titled “Building blocks”workspace { ... }— workspace identity and resolver policy; extras such asdefaultTestMemberselect the member when you pass the workspace path without--workspace-membermember "<label>" { path = "..." }— adds a project atpath; optional extras (package,description,category,tags) are publish/editor metadata merged from the workspace manifestoverride "<dep>" { version = "..." }— shared version policy (forward-looking as registry deps mature)registry "<name>" { url = "..." }— centralized registry endpoints
Why bother
Section titled “Why bother”| Without workspace | With workspace |
|---|---|
| Each project owns conflicting dep policy | Shared overrides |
| CI scripts special-case every folder | One lock/resolution story |
”Which .bproj?” roulette | Explicit members |
Minimal mental picture
Section titled “Minimal mental picture”flowchart TD W[CoreLib.bws] --> M1[member app] W --> M2[member lib] M1 --> P1[app.bproj] M2 --> P2[lib.bproj]