Skip to content

M3: Pinning, and volume names derived from the selector #77

Description

@koenkooi

Part of #72.

mackas project add <name> [--url/--branch | --from <checkout>] creating the workspace directory and writing the pinned config (seeded from currently-effective settings); mackas-<name>-* naming for all three volumes, including a private mackas-<name>-dl — sharing is opt-in via MACKAS_VOLUME_DL_NAME, never a default (see #72); adopt_unique_volume_name()'s now-misleading -dl probe fixed; destroy/clean taught to refuse shared volumes.

This is the backward-compatibility-critical milestone and its regression tests are the compatibility contract — in particular "MACKAS_PROJECT_DIR=meta-ai with no selector still resolves oe-build-*" must be written first and mutation-tested.

Precedence decision (Koen, 2026-09-04): an explicit volume stem always wins over the selector-derived name, but mackas warns once when they disagree. When a pinned project's config sets MACKAS_VOLUME_NAME (or _DL_NAME/_SSTATE_NAME) to something other than the mackas-<name>-* convention the selector would derive, the explicit value is honored — this is the existing precedence chain (defaults → config file → environment → --set) unchanged, not a new rule — but mackas surfaces an informational note (e.g. on status) so an unintentional-looking mismatch doesn't go unnoticed. Rejected: refusing the disagreement outright, because #72's documented migration path B ("keep oe-build-*, no data moves") depends on an explicit stem legitimately disagreeing with the derived name — refusing would break a supported, common choice, not catch a mistake.

Size: M. Risk: high.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions