Skip to content

Combine the per-OS mmdv build scripts into one cross-platform script #871

@yungyuc

Description

@yungyuc

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildBuild system and automation
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions