Skip to content

Document upstream rebase process in PORTING.md #31

Description

@timkicker

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

  1. Fetch upstream: git fetch upstream
  2. Create rebase branch: git checkout -b chore/rebase-YYYY-MM-DD
  3. Rebase: git rebase upstream/master
  4. 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)
  5. Resolution strategy per conflict zone
  6. Verify: cargo check --lib passes
  7. Verify: cargo test --lib passes
  8. 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions