┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/REBASE.md
blob: 544f527a9109711f58eb592f5ea1a3ebbffbf0af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Rebase workflow

This branch (`pixelated-scaling-option`) carries our feature commits on
top of upstream KDE Dolphin (pixelated thumbnail scaling, hide-file
extensions, selection-highlight alpha bump, etc.). This file is only on
this branch, never on `master`.

## Layout

- `master` — pure mirror of `kde/master`. Never commit here.
- `pixelated-scaling-option` — feature commit + this file.
- Remote `kde` → `https://invent.kde.org/system/dolphin.git` (upstream).
- Remote `origin` → `ssh://katana/srv/git/dolphin.git` (cgit mirror).
- Companion repo: `~/Documents/Repositories/arch-dolphin`, branch
  `pixelated-scaling-option`, holds the PKGBUILD and the generated patch.

## When a new Dolphin version is released

### 1. Update master to upstream

```
git fetch kde
git checkout master
git reset --hard kde/master
git push --force-with-lease origin master
```

### 2. Rebase the feature branch

```
git checkout pixelated-scaling-option
git rebase master
git push --force-with-lease origin pixelated-scaling-option
```

If conflicts hit `kfileitemmodel.cpp` or `viewsettingstab.{cpp,h}`: keep
the genuine feature additions and take upstream for everything else.
Do **not** let the resolution bring back deleted upstream code (e.g. the
font-style warning UI, `expandUrlAfterInserted`, `RatingRole`) — that
was the original bug we cleaned up in commit `41d6039c9`.

### 3. Pick the new release tag

```
git tag -l 'v*' | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -5
```

Pick the latest (e.g. `v26.08.0`). KDE only keeps recent tarballs on
`download.kde.org`, so use a current one.

### 4. Regenerate the patch against that tag

```
TAG=v26.08.0   # whatever you picked

git checkout --detach "$TAG"

# Cherry-pick every branch-only feature commit, in chronological order.
# Filtering by `-- src/` excludes the REBASE.md doc commit (it lives at
# repo root). Any future commit that touches src/ on this branch will be
# picked up automatically — no per-commit edits needed here.
for sha in $(git log --reverse --format=%H master..pixelated-scaling-option -- src/); do
    git cherry-pick "$sha"
done

git diff "$TAG"..HEAD > ~/Documents/Repositories/arch-dolphin/pixelated-scaling-and-hide-extensions.patch
git checkout pixelated-scaling-option
```

### 5. Bump and rebuild the package

```
cd ~/Documents/Repositories/arch-dolphin
git checkout pixelated-scaling-option

# edit PKGBUILD: set pkgver=<TAG without 'v'>
updpkgsums
# updpkgsums will replace the patch's SKIP with a real sha; flip it back to SKIP

makepkg -sf --skippgpcheck
sudo pacman -U dolphin-*.pkg.tar.zst

git add PKGBUILD pixelated-scaling-and-hide-extensions.patch
git commit -m "upgpkg: <version>: Upstream update"
```