🏡 index : quine-global-labs/plasma-desktop.git

# plasma-desktop, Quine Linux's fork

KDE's [plasma-desktop](https://invent.kde.org/plasma/plasma-desktop), with
the changes Quine Linux ships. Copied from our pull mirror,
[`mirror-kde-plasma-desktop`](../mirror-kde-plasma-desktop).

## Branches

- **`quine-v<version>`**: KDE's release tag `v<version>` plus our commits.
  [quine-linux](../quine-linux) builds Kickoff (the start menu) from the
  branch for the Plasma version its image ships (its Containerfile's
  `kickoff-builder` stage); there's one per Plasma release since 6.7.5.
- **`quine`** (default): this README and the workflow below. No KDE code.
- **`master`** and KDE's tags: as copied from upstream.

Our commits so far:

- Kickoff: an update bar ("A system update is available" / "Restart to
  finish updating"), fed by quine-linux's `quine-update-check.service`.

## Following new Plasma releases

[`.forgejo/workflows/rebase.yml`](.forgejo/workflows/rebase.yml) runs daily
at 06:00 UTC, between our Aurora build (05:00) and quine-linux's (07:00).
For every Plasma 6 release tag newer than the newest `quine-v*` branch (from
the mirror; betas, `.80` and up, are skipped), it puts our commits from that
branch on top of the tag as a new `quine-v<version>` branch.

If a commit doesn't apply cleanly, the run fails and makes no branch. Then
make the branch by hand:

```sh
git fetch origin && git fetch https://forge.quinefoundation.com/quine-global-labs/mirror-kde-plasma-desktop.git 'refs/tags/v<new>:refs/tags/v<new>'
git switch -c quine-v<new> v<new>
git cherry-pick v<old>..origin/quine-v<old>   # resolve, git cherry-pick --continue
git push origin quine-v<new> v<new>
```

Until then, quine-linux's build fails when its image moves to that Plasma
version, saying which branch is missing.

To change our commits: commit on the newest `quine-v*` branch (and older
ones still in use, if needed); the next release's branch picks them up.