v0.3.0 99dc266

RELEASING.md RawHistoryFolder

Releasing vev

Releases are cut by tagging: git tag v0.X.Y && git push origin v0.X.Y. The release workflow cross-compiles linux/amd64 + darwin/arm64 (CGO_ENABLED=0), publishes a GitHub Release with checksums.txt, and pushes the vev-bin PKGBUILD to AUR (stable tags only — skip_upload: auto skips AUR for -rc.*/-alpha.* prerelease tags).

Checklist

  1. main is green on both CI legs (ubuntu, macos-14).
  2. Tag and push. Watch: gh run watch.
  3. Verify the release page: two archives + checksums.txt + grouped changelog.
  4. On Linux amd64, download the installer from the exact tag, inspect it, then run it for that same version:
    installer=$(mktemp)
    curl -fsSL https://raw.githubusercontent.com/bnema/vev/v0.X.Y/install.sh -o "$installer"
    less "$installer"
    VEV_VERSION=v0.X.Y sh "$installer"
    rm -f "$installer"
    
    Confirm vev --version prints vev 0.X.Y (commit ..., built ...).
  5. Stable tags only: confirm https://aur.archlinux.org/packages/vev-bin picked up the new version.

If GitHub publishes but AUR fails

Do not delete or re-push the tag. The GitHub release is the source of truth; only the PKGBUILD push failed (usually SSH/key). Fix the cause, then either:

  • Re-run the failed workflow job (gh run rerun <run-id> --failed), which re-executes goreleaser idempotently for the same tag, or
  • For manual recovery, clone ssh://aur@aur.archlinux.org/vev-bin.git, update its existing PKGBUILD for the exact tag using that GitHub Release's checksums.txt, and regenerate .SRCINFO with makepkg --printsrcinfo > .SRCINFO. Review the diff, then commit and push only the AUR repository.

If AUR publishes but GitHub fails

Do not delete or re-push the tag. Fix the GitHub workflow failure and rerun it (gh run rerun <run-id> --failed); if necessary, repair the GitHub Release manually with the same tag's archives and checksums.txt, then verify both publication targets before proceeding.

Version stamping

vev --version reads internal/app.{version,commit,date}, stamped via ldflags in .goreleaser.yaml. Local builds report 0.1.0-dev.

source
1# Releasing vev
2
3Releases are cut by tagging: `git tag v0.X.Y && git push origin v0.X.Y`.
4The `release` workflow cross-compiles linux/amd64 + darwin/arm64
5(`CGO_ENABLED=0`), publishes a GitHub Release with `checksums.txt`, and pushes
6the `vev-bin` PKGBUILD to AUR (stable tags only — `skip_upload: auto` skips
7AUR for `-rc.*`/`-alpha.*` prerelease tags).
8
9## Checklist
10
111. main is green on both CI legs (ubuntu, macos-14).
122. Tag and push. Watch: `gh run watch`.
133. Verify the release page: two archives + `checksums.txt` + grouped changelog.
144. On Linux amd64, download the installer from the exact tag, inspect it,
15   then run it for that same version:
16   ```sh
17   installer=$(mktemp)
18   curl -fsSL https://raw.githubusercontent.com/bnema/vev/v0.X.Y/install.sh -o "$installer"
19   less "$installer"
20   VEV_VERSION=v0.X.Y sh "$installer"
21   rm -f "$installer"
22   ```
23   Confirm `vev --version` prints `vev 0.X.Y (commit ..., built ...)`.
245. Stable tags only: confirm https://aur.archlinux.org/packages/vev-bin
25   picked up the new version.
26
27## If GitHub publishes but AUR fails
28
29Do **not** delete or re-push the tag. The GitHub release is the source of truth;
30only the PKGBUILD push failed (usually SSH/key). Fix the cause, then either:
31
32- Re-run the failed workflow job (`gh run rerun <run-id> --failed`), which
33  re-executes goreleaser idempotently for the same tag, or
34- For manual recovery, clone
35  `ssh://aur@aur.archlinux.org/vev-bin.git`, update its existing PKGBUILD for
36  the exact tag using that GitHub Release's `checksums.txt`, and regenerate
37  `.SRCINFO` with `makepkg --printsrcinfo > .SRCINFO`. Review the diff, then
38  commit and push only the AUR repository.
39
40## If AUR publishes but GitHub fails
41
42Do **not** delete or re-push the tag. Fix the GitHub workflow failure and rerun
43it (`gh run rerun <run-id> --failed`); if necessary, repair the GitHub Release
44manually with the same tag's archives and `checksums.txt`, then verify both
45publication targets before proceeding.
46
47## Version stamping
48
49`vev --version` reads `internal/app.{version,commit,date}`, stamped via
50ldflags in `.goreleaser.yaml`. Local builds report `0.1.0-dev`.

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 12

Tags 11

↑↓ moveenter openesc close