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
    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions