Task: Init vcpkg submodule in env provision for full environments
This page documents a task in the Compass environment improvements: port auto-assignment and fleet env-type display story. It captures the goal, current status, acceptance, and any notes or results.
Goal
When env provision creates a full (C++) environment it should automatically run git submodule update --init vcpkg in the new worktree so that cmake --preset works without a manual step. Light environments do not include vcpkg and should not have the submodule initialized.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Compass environment improvements: port auto-assignment and fleet env-type display |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-06-24 |
Acceptance
compass env provisionwith--type full(or default) automatically initializes the vcpkg submodule in the new worktreecompass env provision --type lightdoes not touch the vcpkg submodulecmake --preset linux-clang-debug-makeworks immediately after provision without a manualgit submodule updatestep
Plan
After git worktree add succeeds and before writing the skeleton .env, run:
git submodule update --init vcpkg
in the new worktree directory when env_type = "full"=. A non-zero return code prints a warning but does not abort provisioning (the user can retry the submodule init manually).
Notes
Root cause: Git worktrees share the object store and ref list of the parent repository but do not automatically initialize submodules — each worktree is an independent working tree and submodule init must be run per-worktree.
Discovered while manually configuring solid-dirac, brave-hopper, and merry-newton after provisioning from ores_dev_prime_origin. Each required a manual git submodule update --init vcpkg before cmake --preset would work.
PRs
| PR | Title |
|---|---|
| #1292 | [compass] Init vcpkg submodule on full env provision; show type in fleet |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | #+pr: field empty; PRs table not filled | task_provision_vcpkg_init.org | Fixed in c96ac90ff | 3 of 3 reviews flagged |
Result
Merged as PR #1292. Added `git submodule update –init vcpkg` call in `env_create.py` immediately after `git worktree add` for `env_type == "full"` environments. Light environments are skipped. A failed init prints a warning but does not abort provisioning.