Task: Init vcpkg submodule in env provision for full environments

Table of Contents

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 provision with --type full (or default) automatically initializes the vcpkg submodule in the new worktree
  • compass env provision --type light does not touch the vcpkg submodule
  • cmake --preset linux-clang-debug-make works immediately after provision without a manual git submodule update step

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.

Emacs 29.1 (Org mode 9.6.6)