modmesh ships two separate mmdv (development-environment) build scripts (contrib/dependency/ubuntu2404/build-mmdv-ubuntu24.sh for Ubuntu, contrib/dependency/macos26/build-mmdv-macos26.sh for macOS) that are nearly identical but maintained independently. Consider to have a single mmdv build script that works on both Ubuntu and macOS, so the shared behavior lives in one place and only the genuinely platform-specific parts differ.
Pros:
- Single source of truth: the shared logic is written, reviewed, and tested once instead of twice.
- No more duplicating the same change across two files; this removes the drift that appears whenever an edit lands in one script but not the other.
- Lower long-term maintenance cost as dependency versions and recipes evolve.
Cons:
- One file covering two platforms is harder to read than a focused per-OS script.
- Per-OS branching adds conditional complexity, and a careless edit to the shared path can regress both platforms at once.
- Every change must be validated on both platforms, and anything that references the old per-OS script paths (CI, docs) needs a migration path.
This issue is created to track the discussion and implementation. Patches are welcome.
modmesh ships two separate mmdv (development-environment) build scripts (
contrib/dependency/ubuntu2404/build-mmdv-ubuntu24.shfor Ubuntu,contrib/dependency/macos26/build-mmdv-macos26.shfor macOS) that are nearly identical but maintained independently. Consider to have a single mmdv build script that works on both Ubuntu and macOS, so the shared behavior lives in one place and only the genuinely platform-specific parts differ.Pros:
Cons:
This issue is created to track the discussion and implementation. Patches are welcome.