Goal
Document the upstream rebase process so that any contributor (including Claude Code) can perform it without guesswork.
Context
compositor is a fork of cosmic-comp. Upstream is actively developed by System76.
Weekly upstream merges are the goal. Without documented process, each rebase risks inconsistency.
Scope
Extend PORTING.md with a dedicated section covering:
Rebase procedure
- Fetch upstream: git fetch upstream
- Create rebase branch: git checkout -b chore/rebase-YYYY-MM-DD
- Rebase: git rebase upstream/master
- Known conflict zones (always expect conflicts here):
- src/state.rs (Common struct, new() initializer)
- src/wayland/protocols/mod.rs (new protocols upstream adds)
- src/wayland/handlers/mod.rs
- Cargo.toml (dependency versions)
- Resolution strategy per conflict zone
- Verify: cargo check --lib passes
- Verify: cargo test --lib passes
- Document any new upstream changes in PORTING.md
What CI checks
- cargo check --lib on every push
- cargo test --lib on every push
- Upstream rebase CI (what it does and how to interpret failures)
PORTING.md current Lunaris changes
Document every intentional deviation from upstream with rationale:
- xdg-decoration: always ClientSide
- shell_overlay protocol registration
- event_bus integration
- cosmic-protocols kept (reason: merge conflict avoidance)
Goal
Document the upstream rebase process so that any contributor (including Claude Code) can perform it without guesswork.
Context
compositor is a fork of cosmic-comp. Upstream is actively developed by System76.
Weekly upstream merges are the goal. Without documented process, each rebase risks inconsistency.
Scope
Extend PORTING.md with a dedicated section covering:
Rebase procedure
What CI checks
PORTING.md current Lunaris changes
Document every intentional deviation from upstream with rationale: