This is the repo-level follow-on that matters beyond v5.5.
The v5.5 dry run is encouraging because the overlap with upstream is still fairly concentrated. But that is only helpful if we manage the repo in a way that keeps future pulls small and predictable.
I want us to treat upstream compatibility as a default design rule for MUIOGO. That does not mean we stop doing downstream work. It means we should avoid creating incompatibility when an adapter, wrapper, or additive downstream layer would do the job just as well.
What this issue should decide:
- which shared MUIO files we consider the protected overlap surface
- when it is acceptable to edit those files directly versus adding a downstream wrapper/adapter
- what we expect PRs to say when they deliberately diverge from upstream
- how we review upstream releases so drift does not pile up for months
The practical goal is simple: future upstream pulls should feel more like maintaining a structured fork and less like rediscovering a custom merge strategy every time.
Done when:
- we have an explicit overlap inventory
- we have a default rule to prefer wrappers/adapters/additive modules over invasive rewrites
- PRs touching overlap files are expected to explain whether the change stays upstream-friendly or deliberately diverges
- future upstream sync work has a lightweight playbook
Related work:
This is the repo-level follow-on that matters beyond v5.5.
The v5.5 dry run is encouraging because the overlap with upstream is still fairly concentrated. But that is only helpful if we manage the repo in a way that keeps future pulls small and predictable.
I want us to treat upstream compatibility as a default design rule for MUIOGO. That does not mean we stop doing downstream work. It means we should avoid creating incompatibility when an adapter, wrapper, or additive downstream layer would do the job just as well.
What this issue should decide:
The practical goal is simple: future upstream pulls should feel more like maintaining a structured fork and less like rediscovering a custom merge strategy every time.
Done when:
Related work: