-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Labels
ideaFuture idea — not planned yetFuture idea — not planned yet
Description
Context
The version field in techpack.yaml is currently used for:
- Display: log messages,
mcs pack list, section markers (<!-- mcs:begin ios v2.0.1 -->) - Peer dependency checks:
SemVer.isCompatible()enforcesminVersionconstraints between packs - Lockfile mismatch reporting: shows version alongside SHA
However, all actual pinning and reproducibility is commitSHA-driven. The lockfile pins by commit hash, mcs sync --lock checks out by commit hash, and mismatch detection compares commit hashes.
This means:
- A pack author can push new commits without bumping the version — the system still works correctly
- A version bump without a new commit has no effect
- The version in section markers is actually
MCSVersion.current(the tool version), not the pack version
Questions to resolve
- Is the
versionfield pulling its weight, or is it just noise? - Should pinning use version tags instead of (or in addition to) raw commit SHAs?
- If we keep it, should
mcs pack updatewarn when the commit changed but the version didn't? - The only functional use is peer dependency
minVersion— could that use git tags instead?
References
- PR Support local packs and GitHub shorthand (#81, #82) #143: Local packs and GitHub shorthand (Support local packs without file:// URL (direct path reading) #81, Support username/repo shorthand for GitHub-hosted tech packs #82)
Sources/mcs/ExternalPack/ExternalPackLoader.swift— peer dependency checksSources/mcs/Templates/TemplateComposer.swift— section markers useMCSVersion.current, not pack versionSources/mcs/Doctor/SectionValidator.swift— staleness uses content hash, not version
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ideaFuture idea — not planned yetFuture idea — not planned yet